]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_evpn_vty.c
bgpd: re-eval use-l3nhg when a remote ES is [de]activated in a VRF
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Mon, 17 Aug 2020 23:24:50 +0000 (16:24 -0700)
committerAnuradha Karuppiah <anuradhak@nvidia.com>
Fri, 26 Mar 2021 00:09:53 +0000 (17:09 -0700)
commit58bff4d12efb6fc7e88a740d802a22713ff0d2b5
treeff5748f30880505bc84dde81e0473cb7753378ba
parentd656e0aea6f51bfac46a0d7812bdfc1661295a60
bgpd: re-eval use-l3nhg when a remote ES is [de]activated in a VRF

There are two changes in this commit -

1. Maintain a list of global MAC-IP routes per-ES. This list is maintained
for quick processing on the following events -
a. When the first VTEP/PE becomes active in the ES-VRF, the L3 NHG is
activated and the route can be sent to zebra.
b. When there are no active PEs in the ES-VRF the L3 NHG is
de-activated and -
- If the ES is present in the VRF -
The route is not installed in zebra as there are no active PEs for
the ES-VRF
- If the ES is not present in the VRF -
The route is installed with a flat multi-path list i.e. without L3NHG.
This is to handle the case where there are no locally attached L2VNIs
on the ES (for that tenant VRF).

2. Reinstall VRF route when an ES is installed or uninstalled in a
tenant VRF (the global MAC-IP list in #1 is used for this purpose also).
If an ES is present in the VRF we use L3NHG to enable fast-failover of
routed traffic.

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
bgpd/bgp_attr.h
bgpd/bgp_evpn.c
bgpd/bgp_evpn_mh.c
bgpd/bgp_evpn_mh.h
bgpd/bgp_evpn_private.h
bgpd/bgp_evpn_vty.c
bgpd/bgp_route.c