Lines Matching refs:iface

149 	struct netlbl_unlhsh_iface *iface;
157 iface = container_of(entry, struct netlbl_unlhsh_iface, rcu);
162 netlbl_af4list_foreach_safe(iter4, tmp4, &iface->addr4_list) {
167 netlbl_af6list_foreach_safe(iter6, tmp6, &iface->addr6_list) {
172 kfree(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,
249 ret_val = netlbl_af4list_add(&entry->list, &iface->addr4_list);
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,
293 ret_val = netlbl_af6list_add(&entry->list, &iface->addr6_list);
315 struct netlbl_unlhsh_iface *iface;
317 iface = kzalloc(sizeof(*iface), GFP_ATOMIC);
318 if (iface == NULL)
321 iface->ifindex = ifindex;
322 INIT_LIST_HEAD(&iface->addr4_list);
323 INIT_LIST_HEAD(&iface->addr6_list);
324 iface->valid = 1;
331 list_add_tail_rcu(&iface->list,
334 INIT_LIST_HEAD(&iface->list);
337 rcu_assign_pointer(netlbl_unlhsh_def, iface);
341 return iface;
345 kfree(iface);
375 struct netlbl_unlhsh_iface *iface;
392 iface = netlbl_unlhsh_search_iface(ifindex);
395 iface = rcu_dereference(netlbl_unlhsh_def);
397 if (iface == NULL) {
398 iface = netlbl_unlhsh_add_iface(ifindex);
399 if (iface == NULL) {
411 ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid);
424 ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid);
456 * @iface: interface entry
467 struct netlbl_unlhsh_iface *iface,
481 &iface->addr4_list);
491 dev = dev_get_by_index(net, iface->ifindex);
517 * @iface: interface entry
528 struct netlbl_unlhsh_iface *iface,
541 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list);
551 dev = dev_get_by_index(net, iface->ifindex);
576 * @iface: the interface entry
584 static void netlbl_unlhsh_condremove_iface(struct netlbl_unlhsh_iface *iface)
592 netlbl_af4list_foreach_rcu(iter4, &iface->addr4_list)
595 netlbl_af6list_foreach_rcu(iter6, &iface->addr6_list)
598 iface->valid = 0;
599 if (iface->ifindex > 0)
600 list_del_rcu(&iface->list);
605 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface);
635 struct netlbl_unlhsh_iface *iface;
648 iface = netlbl_unlhsh_search_iface(dev->ifindex);
650 iface = rcu_dereference(netlbl_unlhsh_def);
651 if (iface == NULL) {
658 iface, addr, mask,
664 iface, addr, mask,
672 netlbl_unlhsh_condremove_iface(iface);
701 struct netlbl_unlhsh_iface *iface = NULL;
709 iface = netlbl_unlhsh_search_iface(dev->ifindex);
710 if (iface != NULL && iface->valid) {
711 iface->valid = 0;
712 list_del_rcu(&iface->list);
714 iface = NULL;
718 if (iface != NULL)
719 call_rcu(&iface->rcu, netlbl_unlhsh_free_iface);
1050 * @iface: the interface entry
1064 const struct netlbl_unlhsh_iface *iface,
1083 if (iface->ifindex > 0) {
1084 dev = dev_get_by_index(&init_net, iface->ifindex);
1169 struct netlbl_unlhsh_iface *iface;
1186 list_for_each_entry_rcu(iface, iter_list, list) {
1187 if (!iface->valid ||
1191 &iface->addr4_list) {
1196 iface,
1209 &iface->addr6_list) {
1214 iface,
1255 struct netlbl_unlhsh_iface *iface;
1267 iface = rcu_dereference(netlbl_unlhsh_def);
1268 if (iface == NULL || !iface->valid)
1271 netlbl_af4list_foreach_rcu(addr4, &iface->addr4_list) {
1275 iface,
1284 netlbl_af6list_foreach_rcu(addr6, &iface->addr6_list) {
1288 iface,
1462 struct netlbl_unlhsh_iface *iface;
1465 iface = netlbl_unlhsh_search_iface(skb->skb_iif);
1466 if (iface == NULL)
1467 iface = rcu_dereference(netlbl_unlhsh_def);
1468 if (iface == NULL || !iface->valid)
1487 &iface->addr4_list);
1500 &iface->addr6_list);