diff --git a/zebra/rtadv.c b/zebra/rtadv.c index 6aca643bd8e2..b2a11569be32 100644 --- a/zebra/rtadv.c +++ b/zebra/rtadv.c @@ -1310,10 +1310,11 @@ void ipv6_nd_suppress_ra_set(struct interface *ifp, zif->rtadv.NumFastReXmitsRemain = RTADV_NUM_FAST_REXMITS; } - - rtadv_start_interface_events(zvrf, zif); } } + + /* Always receive RS, no matter RA is currently disabled */ + rtadv_start_interface_events(zvrf, zif); } void ipv6_nd_interval_set(struct interface *ifp, uint32_t interval) @@ -1771,8 +1772,7 @@ void rtadv_if_up(struct zebra_if *zif) * startup the state machine, if it hasn't been already * due to a delayed ifindex on startup ordering */ - if (zif->rtadv.AdvSendAdvertisements) - rtadv_start_interface_events(zvrf, zif); + rtadv_start_interface_events(zvrf, zif); } void rtadv_if_init(struct zebra_if *zif)