Lines Matching refs:iface
169 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_free_iface() local
177 iface = container_of(entry, struct netlbl_unlhsh_iface, rcu); in netlbl_unlhsh_free_iface()
182 netlbl_af4list_foreach_safe(iter4, tmp4, &iface->addr4_list) { in netlbl_unlhsh_free_iface()
187 netlbl_af6list_foreach_safe(iter6, tmp6, &iface->addr6_list) { in netlbl_unlhsh_free_iface()
192 kfree(iface); in netlbl_unlhsh_free_iface()
250 static int netlbl_unlhsh_add_addr4(struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_add_addr4() argument
268 ret_val = netlbl_af4list_add(&entry->list, &iface->addr4_list); in netlbl_unlhsh_add_addr4()
290 static int netlbl_unlhsh_add_addr6(struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_add_addr6() argument
312 ret_val = netlbl_af6list_add(&entry->list, &iface->addr6_list); in netlbl_unlhsh_add_addr6()
334 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_add_iface() local
336 iface = kzalloc(sizeof(*iface), GFP_ATOMIC); in netlbl_unlhsh_add_iface()
337 if (iface == NULL) in netlbl_unlhsh_add_iface()
340 iface->ifindex = ifindex; in netlbl_unlhsh_add_iface()
341 INIT_LIST_HEAD(&iface->addr4_list); in netlbl_unlhsh_add_iface()
342 INIT_LIST_HEAD(&iface->addr6_list); in netlbl_unlhsh_add_iface()
343 iface->valid = 1; in netlbl_unlhsh_add_iface()
350 list_add_tail_rcu(&iface->list, in netlbl_unlhsh_add_iface()
353 INIT_LIST_HEAD(&iface->list); in netlbl_unlhsh_add_iface()
356 rcu_assign_pointer(netlbl_unlhsh_def, iface); in netlbl_unlhsh_add_iface()
360 return iface; in netlbl_unlhsh_add_iface()
364 kfree(iface); in netlbl_unlhsh_add_iface()
394 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_add() local
411 iface = netlbl_unlhsh_search_iface(ifindex); in netlbl_unlhsh_add()
414 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlhsh_add()
416 if (iface == NULL) { in netlbl_unlhsh_add()
417 iface = netlbl_unlhsh_add_iface(ifindex); in netlbl_unlhsh_add()
418 if (iface == NULL) { in netlbl_unlhsh_add()
430 ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid); in netlbl_unlhsh_add()
443 ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid); in netlbl_unlhsh_add()
486 struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_remove_addr4() argument
500 &iface->addr4_list); in netlbl_unlhsh_remove_addr4()
510 dev = dev_get_by_index(net, iface->ifindex); in netlbl_unlhsh_remove_addr4()
548 struct netlbl_unlhsh_iface *iface, in netlbl_unlhsh_remove_addr6() argument
561 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); in netlbl_unlhsh_remove_addr6()
571 dev = dev_get_by_index(net, iface->ifindex); in netlbl_unlhsh_remove_addr6()
605 static void netlbl_unlhsh_condremove_iface(struct netlbl_unlhsh_iface *iface) in netlbl_unlhsh_condremove_iface() argument
613 netlbl_af4list_foreach_rcu(iter4, &iface->addr4_list) in netlbl_unlhsh_condremove_iface()
616 netlbl_af6list_foreach_rcu(iter6, &iface->addr6_list) in netlbl_unlhsh_condremove_iface()
619 iface->valid = 0; in netlbl_unlhsh_condremove_iface()
620 if (iface->ifindex > 0) in netlbl_unlhsh_condremove_iface()
621 list_del_rcu(&iface->list); in netlbl_unlhsh_condremove_iface()
626 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface); in netlbl_unlhsh_condremove_iface()
656 struct netlbl_unlhsh_iface *iface; in netlbl_unlhsh_remove() local
669 iface = netlbl_unlhsh_search_iface(dev->ifindex); in netlbl_unlhsh_remove()
671 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlhsh_remove()
672 if (iface == NULL) { in netlbl_unlhsh_remove()
679 iface, addr, mask, in netlbl_unlhsh_remove()
685 iface, addr, mask, in netlbl_unlhsh_remove()
693 netlbl_unlhsh_condremove_iface(iface); in netlbl_unlhsh_remove()
722 struct netlbl_unlhsh_iface *iface = NULL; in netlbl_unlhsh_netdev_handler() local
730 iface = netlbl_unlhsh_search_iface(dev->ifindex); in netlbl_unlhsh_netdev_handler()
731 if (iface != NULL && iface->valid) { in netlbl_unlhsh_netdev_handler()
732 iface->valid = 0; in netlbl_unlhsh_netdev_handler()
733 list_del_rcu(&iface->list); in netlbl_unlhsh_netdev_handler()
735 iface = NULL; in netlbl_unlhsh_netdev_handler()
739 if (iface != NULL) in netlbl_unlhsh_netdev_handler()
740 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface); in netlbl_unlhsh_netdev_handler()
1084 const struct netlbl_unlhsh_iface *iface, in netlbl_unlabel_staticlist_gen() argument
1103 if (iface->ifindex > 0) { in netlbl_unlabel_staticlist_gen()
1104 dev = dev_get_by_index(&init_net, iface->ifindex); in netlbl_unlabel_staticlist_gen()
1189 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_staticlist() local
1205 list_for_each_entry_rcu(iface, iter_list, list) { in netlbl_unlabel_staticlist()
1206 if (!iface->valid || in netlbl_unlabel_staticlist()
1210 &iface->addr4_list) { in netlbl_unlabel_staticlist()
1215 iface, in netlbl_unlabel_staticlist()
1226 &iface->addr6_list) { in netlbl_unlabel_staticlist()
1231 iface, in netlbl_unlabel_staticlist()
1268 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_staticlistdef() local
1280 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlabel_staticlistdef()
1281 if (iface == NULL || !iface->valid) in netlbl_unlabel_staticlistdef()
1284 netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) { in netlbl_unlabel_staticlistdef()
1288 iface, in netlbl_unlabel_staticlistdef()
1297 netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) { in netlbl_unlabel_staticlistdef()
1301 iface, in netlbl_unlabel_staticlistdef()
1464 struct netlbl_unlhsh_iface *iface; in netlbl_unlabel_getattr() local
1467 iface = netlbl_unlhsh_search_iface(skb->skb_iif); in netlbl_unlabel_getattr()
1468 if (iface == NULL) in netlbl_unlabel_getattr()
1469 iface = rcu_dereference(netlbl_unlhsh_def); in netlbl_unlabel_getattr()
1470 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()