Lines Matching full:iface

149 	struct netlbl_unlhsh_iface *iface;  in netlbl_unlhsh_free_iface()  local
157 iface = container_of(entry, struct netlbl_unlhsh_iface, rcu); in netlbl_unlhsh_free_iface()
162 netlbl_af4list_foreach_safe(iter4, tmp4, &iface->addr4_list) { in netlbl_unlhsh_free_iface()
167 netlbl_af6list_foreach_safe(iter6, tmp6, &iface->addr6_list) { in netlbl_unlhsh_free_iface()
172 kfree(iface); in netlbl_unlhsh_free_iface()
220 * @iface: the associated interface entry
227 * interface entry specified by @iface. On success zero is returned, otherwise
231 static int netlbl_unlhsh_add_addr4(struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_add_addr4() argument
249 ret_val = netlbl_af4list_add(&entry->list, &iface->addr4_list); in netlbl_unlhsh_add_addr4()
260 * @iface: the associated interface entry
267 * interface entry specified by @iface. On success zero is returned, otherwise
271 static int netlbl_unlhsh_add_addr6(struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_add_addr6() argument
293 ret_val = netlbl_af6list_add(&entry->list, &iface->addr6_list); in netlbl_unlhsh_add_addr6()
315 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_add_iface() local
317 iface = kzalloc(sizeof(*iface), GFP_ATOMIC); in netlbl_unlhsh_add_iface()
318 if (iface == NULL) in netlbl_unlhsh_add_iface()
321 iface->ifindex = ifindex; in netlbl_unlhsh_add_iface()
322 INIT_LIST_HEAD(&iface->addr4_list); in netlbl_unlhsh_add_iface()
323 INIT_LIST_HEAD(&iface->addr6_list); in netlbl_unlhsh_add_iface()
324 iface->valid = 1; in netlbl_unlhsh_add_iface()
331 list_add_tail_rcu(&iface->list, in netlbl_unlhsh_add_iface()
334 INIT_LIST_HEAD(&iface->list); in netlbl_unlhsh_add_iface()
337 rcu_assign_pointer(netlbl_unlhsh_def, iface); in netlbl_unlhsh_add_iface()
341 return iface; in netlbl_unlhsh_add_iface()
345 kfree(iface); in netlbl_unlhsh_add_iface()
375 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_add() local
391 iface = netlbl_unlhsh_search_iface(ifindex); in netlbl_unlhsh_add()
394 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlhsh_add()
396 if (iface == NULL) { in netlbl_unlhsh_add()
397 iface = netlbl_unlhsh_add_iface(ifindex); in netlbl_unlhsh_add()
398 if (iface == NULL) { in netlbl_unlhsh_add()
410 ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid); in netlbl_unlhsh_add()
423 ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid); in netlbl_unlhsh_add()
453 * @iface: interface entry
464 struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_remove_addr4() argument
477 &iface->addr4_list); in netlbl_unlhsh_remove_addr4()
487 dev = dev_get_by_index(net, iface->ifindex); in netlbl_unlhsh_remove_addr4()
512 * @iface: interface entry
523 struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_remove_addr6() argument
535 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); in netlbl_unlhsh_remove_addr6()
545 dev = dev_get_by_index(net, iface->ifindex); in netlbl_unlhsh_remove_addr6()
569 * @iface: the interface entry
577 static void netlbl_unlhsh_condremove_iface(struct netlbl_unlhsh_iface *iface) in netlbl_unlhsh_condremove_iface() argument
585 netlbl_af4list_foreach_rcu(iter4, &iface->addr4_list) in netlbl_unlhsh_condremove_iface()
588 netlbl_af6list_foreach_rcu(iter6, &iface->addr6_list) in netlbl_unlhsh_condremove_iface()
591 iface->valid = 0; in netlbl_unlhsh_condremove_iface()
592 if (iface->ifindex > 0) in netlbl_unlhsh_condremove_iface()
593 list_del_rcu(&iface->list); in netlbl_unlhsh_condremove_iface()
598 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface); in netlbl_unlhsh_condremove_iface()
628 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_remove() local
641 iface = netlbl_unlhsh_search_iface(dev->ifindex); in netlbl_unlhsh_remove()
643 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlhsh_remove()
644 if (iface == NULL) { in netlbl_unlhsh_remove()
651 iface, addr, mask, in netlbl_unlhsh_remove()
657 iface, addr, mask, in netlbl_unlhsh_remove()
665 netlbl_unlhsh_condremove_iface(iface); in netlbl_unlhsh_remove()
694 struct netlbl_unlhsh_iface *iface = NULL; in netlbl_unlhsh_netdev_handler() local
702 iface = netlbl_unlhsh_search_iface(dev->ifindex); in netlbl_unlhsh_netdev_handler()
703 if (iface != NULL && iface->valid) { in netlbl_unlhsh_netdev_handler()
704 iface->valid = 0; in netlbl_unlhsh_netdev_handler()
705 list_del_rcu(&iface->list); in netlbl_unlhsh_netdev_handler()
707 iface = NULL; in netlbl_unlhsh_netdev_handler()
711 if (iface != NULL) in netlbl_unlhsh_netdev_handler()
712 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface); in netlbl_unlhsh_netdev_handler()
1043 * @iface: the interface entry
1057 const struct netlbl_unlhsh_iface *iface, in netlbl_unlabel_staticlist_gen() argument
1075 if (iface->ifindex > 0) { in netlbl_unlabel_staticlist_gen()
1076 dev = dev_get_by_index(&init_net, iface->ifindex); in netlbl_unlabel_staticlist_gen()
1161 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_staticlist() local
1178 list_for_each_entry_rcu(iface, iter_list, list) { in netlbl_unlabel_staticlist()
1179 if (!iface->valid || in netlbl_unlabel_staticlist()
1183 &iface->addr4_list) { in netlbl_unlabel_staticlist()
1188 iface, in netlbl_unlabel_staticlist()
1201 &iface->addr6_list) { in netlbl_unlabel_staticlist()
1206 iface, in netlbl_unlabel_staticlist()
1247 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_staticlistdef() local
1259 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlabel_staticlistdef()
1260 if (iface == NULL || !iface->valid) in netlbl_unlabel_staticlistdef()
1263 netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { in netlbl_unlabel_staticlistdef()
1267 iface, in netlbl_unlabel_staticlistdef()
1276 netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { in netlbl_unlabel_staticlistdef()
1280 iface, in netlbl_unlabel_staticlistdef()
1454 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_getattr() local
1457 iface = netlbl_unlhsh_search_iface(skb->skb_iif); in netlbl_unlabel_getattr()
1458 if (iface == NULL) in netlbl_unlabel_getattr()
1459 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlabel_getattr()
1460 if (iface == NULL || !iface->valid) in netlbl_unlabel_getattr()
1479 &iface->addr4_list); in netlbl_unlabel_getattr()
1492 &iface->addr6_list); in netlbl_unlabel_getattr()