diff options
| author | Anuradha Karuppiah <anuradhak@cumulusnetworks.com> | 2020-05-08 19:24:56 -0700 | 
|---|---|---|
| committer | Anuradha Karuppiah <anuradhak@nvidia.com> | 2020-11-24 11:06:08 -0800 | 
| commit | c589d84746d96c1714582e437eb9cec691795252 (patch) | |
| tree | 2ca0ecf6ec0896991b2e3a3155da69d592f5d308 /bgpd/bgp_nht.h | |
| parent | bbc57c6cfac1d471a8d0293cd30af59facdbd8f4 (diff) | |
bgpd: L3NHG infrastructure for host routes in EVPN
ES-VRF entries are maintained for the purpose of L3-NHG creation -
1. Each ES-EVI entry is associated with a tenant VRF. This associaton
triggers the creation of an ES-VRF entry.
2. Type-2/MAC-IP routes are imported into a tenant VRF and programmed as
a /32 or host route entry in the dataplane. If the destination of
the host route is a remote-ES the route is programmed with the
corresponding (keyed in by {vrf,ES-id}) L3-NHG.
3. The reason for this indirection (route->L3-NHG, L3-NHG->list-of-VTEPs)
is to avoid route updates to the dplane when a remote-ES link flaps i.e.
instead of updating all the dependent routes the NHG's contents are
updated. This reduces the amount of dataplane updates (fewer nhg updates vs.
route updates) allowing for a faster failover.
Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_nht.h')
| -rw-r--r-- | bgpd/bgp_nht.h | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/bgpd/bgp_nht.h b/bgpd/bgp_nht.h index 4e015e4aae..8451f0689d 100644 --- a/bgpd/bgp_nht.h +++ b/bgpd/bgp_nht.h @@ -90,4 +90,10 @@ extern void bgp_nht_register_nexthops(struct bgp *bgp);  extern void bgp_nht_reg_enhe_cap_intfs(struct peer *peer);  extern void bgp_nht_dereg_enhe_cap_intfs(struct peer *peer); +/* APIs for setting up and allocating L3 nexthop group ids */ +extern uint32_t bgp_l3nhg_id_alloc(void); +extern void bgp_l3nhg_id_free(uint32_t nhg_id); +extern void bgp_l3nhg_init(void); +void bgp_l3nhg_finish(void); +  #endif /* _BGP_NHT_H */  | 
