]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_vxlan.c
zebra: Handle L3 multi-tenancy correctly for EVPN
authorvivek <vivek@cumulusnetworks.com>
Mon, 18 Sep 2017 21:45:34 +0000 (14:45 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 6 Oct 2017 13:59:43 +0000 (09:59 -0400)
commit2853fed67a4891e9f9061f56799f79ec329d7df5
treebd527ba964554f32ba6b1cbc44d68ae629225754
parent3782fb37b1c480f2a1c3811fb703bdd5981ca60a
zebra: Handle L3 multi-tenancy correctly for EVPN

Fix following flaws that resulted in EVPN with L3 multi-tenancy (i.e.,
EVPN dealing with VxLAN routing in the presence of tenant VRFs) not
working properly:

1. EVPN enable ("advertise-all-vni") is a global command, ensure it is
accordingly processed. The config is maintained against the default VRF.
2. There was an incorrect attempt to derive the L3 VRF for L2 interfaces
- the VRF only applies for L3 interfaces, though the code may initialize
to the default value in other cases.
3. Functions to map (port, VLAN) to SVI or vice versa were incorrect -
particularly, zvni_map_svi() since it was looking in the L3 VRF for
"matching" L2 interface which it would never find. Fix.

In addition, since the 'zebra_vrf *' parameter is not relevant in most
places, it has been removed.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-17840
Reviewed By: CCR-6685
Testing Done: evpn-smoke, various manual tests
zebra/rt_netlink.c
zebra/zebra_vrf.h
zebra/zebra_vxlan.c
zebra/zebra_vxlan.h