From: Donald Sharp Date: Thu, 5 Dec 2024 15:16:03 +0000 (-0500) Subject: bgpd: When bgp notices a change to shared_network inform bfd of it X-Git-Tag: docker/10.1.3~17^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=0ea7de4c9dd9b90b2f7170aa80b8673bd37b371a;p=matthieu%2Ffrr.git 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 --- diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 2e9c54e126..10e823c14f 100644 --- a/bgpd/bgp_zebra.c +++ b/bgpd/bgp_zebra.c @@ -744,6 +744,7 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote, int ret = 0; struct interface *ifp = NULL; bool v6_ll_avail = true; + bool shared_network_original = peer->shared_network; 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 = 0; } + if (shared_network_original != peer->shared_network) + bgp_peer_bfd_update_source(peer); + /* KAME stack specific treatment. */ #ifdef KAME if (IN6_IS_ADDR_LINKLOCAL(&nexthop->v6_global)