summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_vxlan.h
diff options
context:
space:
mode:
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>2020-05-09 03:47:52 +0200
committerAnuradha Karuppiah <anuradhak@nvidia.com>2020-12-01 18:46:26 +0100
commit15400f95b77f95012e7676f14105ab9280e52c3d (patch)
tree64602fcf60b24e95f8e9f30cf206a60220d74fb9 /zebra/zebra_vxlan.h
parentzebra: on local mac add from the dplane a re-install maybe need as static (diff)
downloadfrr-15400f95b77f95012e7676f14105ab9280e52c3d.tar.xz
frr-15400f95b77f95012e7676f14105ab9280e52c3d.zip
zebra: support for slow-failover of local MACs on an ES
When a local ES flaps there are two modes in which the local MACs are failed over - 1. Fast failover - A backup NHG (ES-peer group) is programmed in the dataplane per-access port. When a local ES flaps the MAC entries are left unaltered i.e. pointing to the down access port. And the dataplane redirects traffic destined to the oper-down access port via the backup NHG. 2. Slow failover - This mode needs to be turned on to allow dataplanes not capable of re-directing traffic. In this mode local MAC entries on a down local ES are re-programmed to point to the ES-peers' NHG. And vice-versa i.e. when the ES comes up the MAC entries are re-programmed with the access port as dest. Fast failover is on by default. Slow failover can be enabled via the following config - evpn mh redirect-off Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_vxlan.h')
-rw-r--r--zebra/zebra_vxlan.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/zebra/zebra_vxlan.h b/zebra/zebra_vxlan.h
index 534e29936..24de8ff04 100644
--- a/zebra/zebra_vxlan.h
+++ b/zebra/zebra_vxlan.h
@@ -177,13 +177,6 @@ extern int zebra_vxlan_local_mac_add_update(struct interface *ifp,
extern int zebra_vxlan_local_mac_del(struct interface *ifp,
struct interface *br_if,
struct ethaddr *mac, vlanid_t vid);
-extern int zebra_vxlan_check_readd_remote_mac(struct interface *ifp,
- struct interface *br_if,
- struct ethaddr *mac,
- vlanid_t vid);
-extern int zebra_vxlan_check_del_local_mac(struct interface *ifp,
- struct interface *br_if,
- struct ethaddr *mac, vlanid_t vid);
extern int zebra_vxlan_check_readd_vtep(struct interface *ifp,
struct in_addr vtep_ip);
extern int zebra_vxlan_if_up(struct interface *ifp);
@@ -222,6 +215,15 @@ extern void zebra_evpn_init(void);
extern void zebra_vxlan_macvlan_up(struct interface *ifp);
extern void zebra_vxlan_macvlan_down(struct interface *ifp);
extern int vni_list_cmp(void *p1, void *p2);
+extern int zebra_vxlan_dp_network_mac_add(struct interface *ifp,
+ struct interface *br_if,
+ struct ethaddr *macaddr, vlanid_t vid,
+ uint32_t nhg_id, bool sticky,
+ bool dp_static);
+extern int zebra_vxlan_dp_network_mac_del(struct interface *ifp,
+ struct interface *br_if,
+ struct ethaddr *macaddr,
+ vlanid_t vid);
#ifdef __cplusplus
}