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>
This commit is contained in:
vivek 2021-04-25 22:37:48 -07:00 committed by Stephen Worley
parent 5c71306220
commit a885db2f8c

View File

@ -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);
}