summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2021-04-25 22:37:48 -0700
committerStephen Worley <sworley@nvidia.com>2023-02-13 18:12:05 -0500
commita885db2f8c52bb583a3692b95171f7c98336b9b1 (patch)
treedeecbd446bf6d55f7607f088b9bffd41c8ab61cc
parent5c713062201d6953e36af651624e506887a1a5d0 (diff)
zebra: Clean remote FDB entries upon VNI removal
When the VLAN-VNI mapping is configured via a map and not using individual VXLAN interfaces, upon removal of a VNI ensure that the remote FDB entries are uninstalled correctly. Signed-off-by: Vivek Venkatraman <vivek@nvidia.com> Ticket: #2613048 Reviewed By: Testing Done: 1. Manual verification - logs in the ticket 2. Precommit (user job #171) and evpn-min (user job #170) Signed-off-by: Stephen Worley <sworley@nvidia.com>
-rw-r--r--zebra/zebra_vxlan_if.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/zebra/zebra_vxlan_if.c b/zebra/zebra_vxlan_if.c
index 1d4b0957ed..57fdc19535 100644
--- a/zebra/zebra_vxlan_if.c
+++ b/zebra/zebra_vxlan_if.c
@@ -785,9 +785,15 @@ int zebra_vxlan_if_vni_table_add_update(struct interface *ifp,
/* release kernel deleted vnis */
if (old_vni_table) {
- if (hashcount(old_vni_table))
+ if (hashcount(old_vni_table)) {
+ /* UGLY HACK: Put back the old table so that delete of
+ * MACs goes through and then flip back.
+ */
+ vni_info->vni_table = old_vni_table;
hash_iterate(old_vni_table, zebra_vxlan_if_vni_clean,
zif);
+ vni_info->vni_table = vni_table;
+ }
zebra_vxlan_vni_table_destroy(old_vni_table);
}