diff options
| -rw-r--r-- | bgpd/bgp_zebra.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 3f8dc82a44..e2171e03b7 100644 --- a/bgpd/bgp_zebra.c +++ b/bgpd/bgp_zebra.c @@ -837,6 +837,12 @@ bool bgp_zebra_nexthop_set(union sockunion *local, union sockunion *remote,  			if (direct)  				v6_ll_avail = if_get_ipv6_local(  					ifp, &nexthop->v6_local); +			/* +			 * It's fine to not have a v6 LL when using +			 * update-source loopback/vrf +			 */ +			if (!v6_ll_avail && if_is_loopback_or_vrf(ifp)) +				v6_ll_avail = true;  		} else  		/* Link-local address. */  		{  | 
