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 */  | 
