diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-04-08 09:16:14 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2016-04-08 13:15:59 -0400 |
| commit | b2d7c082a2ec76e34c5ec528ac649e185d035616 (patch) | |
| tree | 256011582e089e5ff80d0ec87ea8ea5d0d5a35f3 /zebra/irdp_main.c | |
| parent | 79694123fde6ce0ce9a359f8a31817ffa3c7978f (diff) | |
quagga: Remove iflist global variable
The file if.c has a iflist that had the list of interfaces
in the default vrf. Remove this variable and replace
with a vrf_iflist lookup on the default vrf where it
was used.
Additionally, modify ptm code to iterate over all vrf's
when enabling ptm.
Ticket: CM-10338
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: Radhika Mahankali <radhika@cumulusnetworks.com>
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 */ |
