summaryrefslogtreecommitdiff
path: root/bgpd/bgp_nht.h
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2020-12-17 09:46:30 -0500
committerDonald Sharp <sharpd@nvidia.com>2021-02-17 08:14:45 -0500
commit8761cd6ddb5437767625f58c8e9cc3ccda7887ab (patch)
treecff369804f2faca87e5b2b752fda2eb0faf739db /bgpd/bgp_nht.h
parent9ee2ebdc825ea610270462c3b1d8044bb097fd29 (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.h4
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 */