diff options
Diffstat (limited to 'bgpd/bgp_zebra.c')
| -rw-r--r-- | bgpd/bgp_zebra.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 3898383116..17596937d3 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)  | 
