forked from Mirror/frr
bgpd: When bgp notices a change to shared_network inform bfd of it
When bgp is started up and reads the config in *before* it has received interface addresses from zebra, shared_network can be set to false in this case. Later on once bgp attempts to reconnect it will refigure out the shared_network again( because it has received the data from zebra now ). In this case tell bfd about it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
7cde71a8e3
commit
3b97cbf77e
|
@ -744,6 +744,7 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
struct interface *ifp = NULL;
|
struct interface *ifp = NULL;
|
||||||
bool v6_ll_avail = true;
|
bool v6_ll_avail = true;
|
||||||
|
bool shared_network_original = peer->shared_network;
|
||||||
|
|
||||||
memset(nexthop, 0, sizeof(struct bgp_nexthop));
|
memset(nexthop, 0, sizeof(struct bgp_nexthop));
|
||||||
|
|
||||||
|
@ -908,6 +909,9 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,
|
||||||
peer->shared_network = false;
|
peer->shared_network = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (shared_network_original != peer->shared_network)
|
||||||
|
bgp_peer_bfd_update_source(peer);
|
||||||
|
|
||||||
/* KAME stack specific treatment. */
|
/* KAME stack specific treatment. */
|
||||||
#ifdef KAME
|
#ifdef KAME
|
||||||
if (IN6_IS_ADDR_LINKLOCAL(&nexthop->v6_global)
|
if (IN6_IS_ADDR_LINKLOCAL(&nexthop->v6_global)
|
||||||
|
|
Loading…
Reference in a new issue