diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2020-12-17 09:46:30 -0500 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2021-02-17 08:14:45 -0500 | 
| commit | 8761cd6ddb5437767625f58c8e9cc3ccda7887ab (patch) | |
| tree | cff369804f2faca87e5b2b752fda2eb0faf739db /bgpd/bgp_nht.h | |
| parent | 9ee2ebdc825ea610270462c3b1d8044bb097fd29 (diff) | |
bgpd: Switch LL nexthop tracking to be interface based
bgp is currently registering v6 LL as nexthops to be tracked
from zebra.  This presents several problems.
a) zebra does not properly track multiple prefixes that match
the same route properly at this point in time.
b) BGP was receiving nexthops that were just incorrect because
of (a).
c) When a nexthop changed that really didn't affect the v6 LL
we were responding incorrectly because of this
Modify the code such that bgp nexthop tracking notices that
we are trying to register a v6 LL.  When we do so, shortcut
and watch interface up/down events for this v6 LL and do
the work when an interface goes up / down for this type
of tracking.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'bgpd/bgp_nht.h')
| -rw-r--r-- | bgpd/bgp_nht.h | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/bgpd/bgp_nht.h b/bgpd/bgp_nht.h index f374e8dfa5..a1683e1511 100644 --- a/bgpd/bgp_nht.h +++ b/bgpd/bgp_nht.h @@ -97,4 +97,8 @@ extern void bgp_l3nhg_id_free(uint32_t nhg_id);  extern void bgp_l3nhg_init(void);  void bgp_l3nhg_finish(void); +extern void bgp_nht_ifp_up(struct interface *ifp); +extern void bgp_nht_ifp_down(struct interface *ifp); + +extern void bgp_nht_interface_events(struct peer *peer);  #endif /* _BGP_NHT_H */  | 
