diff options
Diffstat (limited to 'zebra/irdp_main.c')
| -rw-r--r-- | zebra/irdp_main.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/zebra/irdp_main.c b/zebra/irdp_main.c index c297979cfc..af493c5c01 100644 --- a/zebra/irdp_main.c +++ b/zebra/irdp_main.c @@ -310,25 +310,27 @@ void irdp_finish() struct interface *ifp; struct zebra_if *zi; struct irdp_interface *irdp; + vrf_iter_t iter; zlog_info("IRDP: Received shutdown notification."); - - for (ALL_LIST_ELEMENTS (iflist, node, nnode, ifp)) - { - zi = ifp->info; - - if (!zi) - continue; - irdp = &zi->irdp; - if (!irdp) - continue; - - if (irdp->flags & IF_ACTIVE ) - { - irdp->flags |= IF_SHUTDOWN; - irdp_advert_off(ifp); - } - } + + for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter)) + for (ALL_LIST_ELEMENTS (vrf_iter2iflist (iter), node, nnode, ifp)) + { + zi = ifp->info; + + if (!zi) + continue; + irdp = &zi->irdp; + if (!irdp) + continue; + + if (irdp->flags & IF_ACTIVE ) + { + irdp->flags |= IF_SHUTDOWN; + irdp_advert_off(ifp); + } + } } #endif /* HAVE_IRDP */ |
