/* Inteface link up message processing. */ int ripng_interface_up (int command, struct zclient *zclient, zebra_size_t length) { struct stream *s; struct interface *ifp; /* zebra_interface_state_read() updates interface structure in iflist. */ s = zclient->ibuf; ifp = zebra_interface_state_read (s); if (ifp == NULL) return 0; if (IS_RIPNG_DEBUG_ZEBRA) zlog_debug ("interface up %s index %d flags %#"PRIx64" metric %d mtu %d", ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu6); /* Check if this interface is RIPng enabled or not. */ ripng_enable_apply (ifp); /* Check for a passive interface. */ ripng_passive_interface_apply (ifp); /* Apply distribute list to the all interface. */ ripng_distribute_update_interface (ifp); return 0; }
static void ripng_passive_interface_apply_all (void) { struct interface *ifp; struct listnode *node; for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp)) ripng_passive_interface_apply (ifp); }
void ripng_passive_interface_apply_all (void) { struct interface *ifp; struct listnode *node; for (node = listhead (iflist); node; nextnode (node)) { ifp = getdata (node); ripng_passive_interface_apply (ifp); } }