}
}
-void rtadv_terminate(struct zebra_vrf *zvrf)
+void rtadv_vrf_terminate(struct zebra_vrf *zvrf)
{
rtadv_event(zvrf, RTADV_STOP, 0);
if (zvrf->rtadv.sock >= 0) {
close(zvrf->rtadv.sock);
zvrf->rtadv.sock = -1;
- } else if (zrouter.rtadv_sock >= 0) {
- close(zrouter.rtadv_sock);
- zrouter.rtadv_sock = -1;
}
+
zvrf->rtadv.adv_if_count = 0;
zvrf->rtadv.adv_msec_if_count = 0;
}
+void rtadv_terminate(void)
+{
+ if (zrouter.rtadv_sock >= 0) {
+ close(zrouter.rtadv_sock);
+ zrouter.rtadv_sock = -1;
+ }
+}
+
void rtadv_cmd_init(void)
{
hook_register(zebra_if_extra_info, nd_dump_vty);
} ipv6_nd_suppress_ra_status;
extern void rtadv_init(struct zebra_vrf *zvrf);
-extern void rtadv_terminate(struct zebra_vrf *zvrf);
+extern void rtadv_vrf_terminate(struct zebra_vrf *zvrf);
+extern void rtadv_terminate(void);
extern void rtadv_stop_ra(struct interface *ifp);
extern void rtadv_stop_ra_all(void);
extern void rtadv_cmd_init(void);
zebra_vxlan_vrf_disable(zvrf);
#if defined(HAVE_RTADV)
- rtadv_terminate(zvrf);
+ rtadv_vrf_terminate(zvrf);
#endif
/* Inform clients that the VRF is now inactive. This is a