summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_vxlan_private.h
diff options
context:
space:
mode:
authorChirag Shah <chirag@cumulusnetworks.com>2019-08-02 08:33:24 +0200
committerChirag Shah <chirag@cumulusnetworks.com>2019-11-22 16:53:29 +0100
commit06d9cde5c71d31c5467b7625d41fb4845fbd6e54 (patch)
treeb1b1b842a147e237f4f1b47f2d3708f532d96524 /zebra/zebra_vxlan_private.h
parentbgpd: evpn pip data struct and cli (diff)
downloadfrr-06d9cde5c71d31c5467b7625d41fb4845fbd6e54.tar.xz
frr-06d9cde5c71d31c5467b7625d41fb4845fbd6e54.zip
zebra: evpn pip extract vrr mac
Extract mac-vlan interface mac when a l3vni add is sent to bgp Per L3VNI maintain vrr interface. An api to extract vrr mac address from a vlan id, associated master svi device. When a l3vni operational up event is sent to bgpd, extract vrr rmac along with svi rmac. Ticket:CM-26190 Reviewed By: Testing Done: Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_vxlan_private.h')
-rw-r--r--zebra/zebra_vxlan_private.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/zebra/zebra_vxlan_private.h b/zebra/zebra_vxlan_private.h
index 8e7804264..784dcdb9d 100644
--- a/zebra/zebra_vxlan_private.h
+++ b/zebra/zebra_vxlan_private.h
@@ -125,6 +125,8 @@ struct zebra_l3vni_t_ {
/* SVI interface corresponding to the l3vni */
struct interface *svi_if;
+ struct interface *mac_vlan_if;
+
/* list of L2 VNIs associated with the L3 VNI */
struct list *l2vnis;
@@ -215,7 +217,8 @@ static inline vrf_id_t zl3vni_vrf_id(zebra_l3vni_t *zl3vni)
return zl3vni->vrf_id;
}
-static inline void zl3vni_get_rmac(zebra_l3vni_t *zl3vni, struct ethaddr *rmac)
+static inline void zl3vni_get_svi_rmac(zebra_l3vni_t *zl3vni,
+ struct ethaddr *rmac)
{
if (!zl3vni)
return;
@@ -433,6 +436,7 @@ struct nh_walk_ctx {
extern zebra_l3vni_t *zl3vni_from_vrf(vrf_id_t vrf_id);
extern struct interface *zl3vni_map_to_vxlan_if(zebra_l3vni_t *zl3vni);
extern struct interface *zl3vni_map_to_svi_if(zebra_l3vni_t *zl3vni);
+extern struct interface *zl3vni_map_to_mac_vlan_if(zebra_l3vni_t *zl3vni);
DECLARE_HOOK(zebra_rmac_update, (zebra_mac_t *rmac, zebra_l3vni_t *zl3vni,
bool delete, const char *reason), (rmac, zl3vni, delete, reason))