Lines Matching refs:vg

37 static bool __vlan_add_pvid(struct net_bridge_vlan_group *vg,  in __vlan_add_pvid()  argument
40 if (vg->pvid == v->vid) in __vlan_add_pvid()
44 br_vlan_set_pvid_state(vg, v->state); in __vlan_add_pvid()
45 vg->pvid = v->vid; in __vlan_add_pvid()
50 static bool __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid) in __vlan_delete_pvid() argument
52 if (vg->pvid != vid) in __vlan_delete_pvid()
56 vg->pvid = 0; in __vlan_delete_pvid()
64 struct net_bridge_vlan_group *vg; in __vlan_add_flags() local
69 vg = br_vlan_group(v->br); in __vlan_add_flags()
71 vg = nbp_vlan_group(v->port); in __vlan_add_flags()
74 ret = __vlan_add_pvid(vg, v); in __vlan_add_flags()
76 ret = __vlan_delete_pvid(vg, v->vid); in __vlan_add_flags()
104 struct net_bridge_vlan_group *vg; in __vlan_add_list() local
109 vg = br_vlan_group(v->br); in __vlan_add_list()
111 vg = nbp_vlan_group(v->port); in __vlan_add_list()
113 headp = &vg->vlan_list; in __vlan_add_list()
148 struct net_bridge_vlan_group *vg; in br_vlan_get_master() local
151 vg = br_vlan_group(br); in br_vlan_get_master()
152 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
159 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
183 struct net_bridge_vlan_group *vg; in br_vlan_put_master() local
188 vg = br_vlan_group(masterv->br); in br_vlan_put_master()
190 rhashtable_remove_fast(&vg->vlan_hash, in br_vlan_put_master()
228 struct net_bridge_vlan_group *vg; in __vlan_add() local
236 vg = br_vlan_group(br); in __vlan_add()
241 vg = nbp_vlan_group(p); in __vlan_add()
301 vg->num_vlans++; in __vlan_add()
307 err = rhashtable_lookup_insert_fast(&vg->vlan_hash, &v->vnode, in __vlan_add()
324 vg->num_vlans--; in __vlan_add()
348 struct net_bridge_vlan_group *vg; in __vlan_del() local
353 vg = br_vlan_group(v->br); in __vlan_del()
356 vg = nbp_vlan_group(v->port); in __vlan_del()
360 __vlan_delete_pvid(vg, v->vid); in __vlan_del()
374 vg->num_vlans--; in __vlan_del()
378 vlan_tunnel_info_del(vg, v); in __vlan_del()
379 rhashtable_remove_fast(&vg->vlan_hash, &v->vnode, in __vlan_del()
393 static void __vlan_group_free(struct net_bridge_vlan_group *vg) in __vlan_group_free() argument
395 WARN_ON(!list_empty(&vg->vlan_list)); in __vlan_group_free()
396 rhashtable_destroy(&vg->vlan_hash); in __vlan_group_free()
397 vlan_tunnel_deinit(vg); in __vlan_group_free()
398 kfree(vg); in __vlan_group_free()
403 struct net_bridge_vlan_group *vg) in __vlan_flush() argument
408 __vlan_delete_pvid(vg, vg->pvid); in __vlan_flush()
409 list_for_each_entry_safe(vlan, tmp, &vg->vlan_list, vlist) { in __vlan_flush()
430 struct net_bridge_vlan_group *vg, in br_handle_vlan() argument
446 v = br_vlan_find(vg, vid); in br_handle_vlan()
490 struct net_bridge_vlan_group *vg, in __allowed_ingress() argument
534 u16 pvid = br_get_pvid(vg); in __allowed_ingress()
562 *state = br_vlan_get_pvid_state(vg); in __allowed_ingress()
569 v = br_vlan_find(vg, *vid); in __allowed_ingress()
597 struct net_bridge_vlan_group *vg, struct sk_buff *skb, in br_allowed_ingress() argument
610 return __allowed_ingress(br, vg, skb, vid, state, vlan); in br_allowed_ingress()
614 bool br_allowed_egress(struct net_bridge_vlan_group *vg, in br_allowed_egress() argument
625 v = br_vlan_find(vg, vid); in br_allowed_egress()
636 struct net_bridge_vlan_group *vg; in br_should_learn() local
644 vg = nbp_vlan_group_rcu(p); in br_should_learn()
645 if (!vg || !vg->num_vlans) in br_should_learn()
652 *vid = br_get_pvid(vg); in br_should_learn()
654 !br_vlan_state_allowed(br_vlan_get_pvid_state(vg), true)) in br_should_learn()
660 v = br_vlan_find(vg, *vid); in br_should_learn()
668 struct net_bridge_vlan_group *vg, in br_vlan_add_existing() argument
695 vg->num_vlans++; in br_vlan_add_existing()
718 struct net_bridge_vlan_group *vg; in br_vlan_add() local
725 vg = br_vlan_group(br); in br_vlan_add()
726 vlan = br_vlan_find(vg, vid); in br_vlan_add()
728 return br_vlan_add_existing(br, vg, vlan, flags, changed, in br_vlan_add()
762 struct net_bridge_vlan_group *vg; in br_vlan_delete() local
767 vg = br_vlan_group(br); in br_vlan_delete()
768 v = br_vlan_find(vg, vid); in br_vlan_delete()
775 vlan_tunnel_info_del(vg, v); in br_vlan_delete()
782 struct net_bridge_vlan_group *vg; in br_vlan_flush() local
786 vg = br_vlan_group(br); in br_vlan_flush()
787 __vlan_flush(br, NULL, vg); in br_vlan_flush()
790 __vlan_group_free(vg); in br_vlan_flush()
793 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid) in br_vlan_find() argument
795 if (!vg) in br_vlan_find()
798 return br_vlan_lookup(&vg->vlan_hash, vid); in br_vlan_find()
893 struct net_bridge_vlan_group *vg; in __br_vlan_set_proto() local
905 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
906 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
920 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
921 list_for_each_entry(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
931 list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
935 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
936 list_for_each_entry(vlan, &vg->vlan_list, vlist) in __br_vlan_set_proto()
972 struct net_bridge_vlan_group *vg = nbp_vlan_group(p); in br_vlan_set_stats_per_port() local
974 if (vg->num_vlans) in br_vlan_set_stats_per_port()
990 static bool vlan_default_pvid(struct net_bridge_vlan_group *vg, u16 vid) in vlan_default_pvid() argument
994 if (vid != vg->pvid) in vlan_default_pvid()
997 v = br_vlan_lookup(&vg->vlan_hash, vid); in vlan_default_pvid()
1031 struct net_bridge_vlan_group *vg; in __br_vlan_set_default_pvid() local
1052 vg = br_vlan_group(br); in __br_vlan_set_default_pvid()
1053 pvent = br_vlan_find(vg, pvid); in __br_vlan_set_default_pvid()
1054 if ((!old_pvid || vlan_default_pvid(vg, old_pvid)) && in __br_vlan_set_default_pvid()
1074 vg = nbp_vlan_group(p); in __br_vlan_set_default_pvid()
1076 !vlan_default_pvid(vg, old_pvid)) || in __br_vlan_set_default_pvid()
1077 br_vlan_find(vg, pvid)) in __br_vlan_set_default_pvid()
1154 struct net_bridge_vlan_group *vg; in br_vlan_init() local
1157 vg = kzalloc(sizeof(*vg), GFP_KERNEL); in br_vlan_init()
1158 if (!vg) in br_vlan_init()
1160 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in br_vlan_init()
1163 ret = vlan_tunnel_init(vg); in br_vlan_init()
1166 INIT_LIST_HEAD(&vg->vlan_list); in br_vlan_init()
1169 rcu_assign_pointer(br->vlgrp, vg); in br_vlan_init()
1175 rhashtable_destroy(&vg->vlan_hash); in br_vlan_init()
1177 kfree(vg); in br_vlan_init()
1190 struct net_bridge_vlan_group *vg; in nbp_vlan_init() local
1193 vg = kzalloc(sizeof(struct net_bridge_vlan_group), GFP_KERNEL); in nbp_vlan_init()
1194 if (!vg) in nbp_vlan_init()
1201 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in nbp_vlan_init()
1204 ret = vlan_tunnel_init(vg); in nbp_vlan_init()
1207 INIT_LIST_HEAD(&vg->vlan_list); in nbp_vlan_init()
1208 rcu_assign_pointer(p->vlgrp, vg); in nbp_vlan_init()
1226 vlan_tunnel_deinit(vg); in nbp_vlan_init()
1228 rhashtable_destroy(&vg->vlan_hash); in nbp_vlan_init()
1231 kfree(vg); in nbp_vlan_init()
1295 struct net_bridge_vlan_group *vg; in nbp_vlan_flush() local
1299 vg = nbp_vlan_group(port); in nbp_vlan_flush()
1300 __vlan_flush(port->br, port, vg); in nbp_vlan_flush()
1303 __vlan_group_free(vg); in nbp_vlan_flush()
1335 struct net_bridge_vlan_group *vg; in br_vlan_get_pvid() local
1341 vg = nbp_vlan_group(p); in br_vlan_get_pvid()
1343 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_pvid()
1347 *p_pvid = br_get_pvid(vg); in br_vlan_get_pvid()
1354 struct net_bridge_vlan_group *vg; in br_vlan_get_pvid_rcu() local
1359 vg = nbp_vlan_group_rcu(p); in br_vlan_get_pvid_rcu()
1361 vg = br_vlan_group_rcu(netdev_priv(dev)); in br_vlan_get_pvid_rcu()
1365 *p_pvid = br_get_pvid(vg); in br_vlan_get_pvid_rcu()
1374 struct net_bridge_vlan_group *vg; in br_vlan_fill_forward_path_pvid() local
1383 vg = br_vlan_group(br); in br_vlan_fill_forward_path_pvid()
1390 vid = br_get_pvid(vg); in br_vlan_fill_forward_path_pvid()
1401 struct net_bridge_vlan_group *vg; in br_vlan_fill_forward_path_mode() local
1407 vg = nbp_vlan_group_rcu(dst); in br_vlan_fill_forward_path_mode()
1408 v = br_vlan_find(vg, path->bridge.vlan_id); in br_vlan_fill_forward_path_mode()
1428 struct net_bridge_vlan_group *vg; in br_vlan_get_info() local
1435 vg = nbp_vlan_group(p); in br_vlan_get_info()
1437 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_info()
1441 v = br_vlan_find(vg, vid); in br_vlan_get_info()
1447 if (vid == br_get_pvid(vg)) in br_vlan_get_info()
1456 struct net_bridge_vlan_group *vg; in br_vlan_get_info_rcu() local
1462 vg = nbp_vlan_group_rcu(p); in br_vlan_get_info_rcu()
1464 vg = br_vlan_group_rcu(netdev_priv(dev)); in br_vlan_get_info_rcu()
1468 v = br_vlan_find(vg, vid); in br_vlan_get_info_rcu()
1474 if (vid == br_get_pvid(vg)) in br_vlan_get_info_rcu()
1551 struct net_bridge_vlan_group *vg; in br_vlan_set_vlan_dev_state() local
1561 vg = nbp_vlan_group(p); in br_vlan_set_vlan_dev_state()
1562 if (br_vlan_find(vg, vid) && br_vlan_is_dev_up(p->dev)) { in br_vlan_set_vlan_dev_state()
1576 struct net_bridge_vlan_group *vg = nbp_vlan_group(p); in br_vlan_set_all_vlan_dev_state() local
1580 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in br_vlan_set_all_vlan_dev_state()
1798 struct net_bridge_vlan_group *vg; in br_vlan_notify() local
1813 vg = nbp_vlan_group(p); in br_vlan_notify()
1817 vg = br_vlan_group(br); in br_vlan_notify()
1837 v = br_vlan_find(vg, vid); in br_vlan_notify()
1842 if (br_get_pvid(vg) == v->vid) in br_vlan_notify()
1888 struct net_bridge_vlan_group *vg; in br_vlan_replay() local
1909 vg = br_vlan_group(br); in br_vlan_replay()
1915 vg = nbp_vlan_group(p); in br_vlan_replay()
1919 if (!vg) in br_vlan_replay()
1927 pvid = br_get_pvid(vg); in br_vlan_replay()
1929 list_for_each_entry(v, &vg->vlan_list, vlist) { in br_vlan_replay()
1965 struct net_bridge_vlan_group *vg; in br_vlan_dump_dev() local
1979 vg = br_vlan_group_rcu(br); in br_vlan_dump_dev()
1989 vg = nbp_vlan_group_rcu(p); in br_vlan_dump_dev()
1993 if (!vg) in br_vlan_dump_dev()
2004 pvid = br_get_pvid(vg); in br_vlan_dump_dev()
2007 list_for_each_entry_rcu(v, &vg->vlan_list, vlist) { in br_vlan_dump_dev()
2149 struct net_bridge_vlan_group *vg; in br_vlan_rtm_process_one() local
2156 vg = br_vlan_group(br); in br_vlan_rtm_process_one()
2162 vg = nbp_vlan_group(p); in br_vlan_rtm_process_one()
2165 if (WARN_ON(!vg)) in br_vlan_rtm_process_one()
2233 range_start = br_vlan_find(vg, vinfo_last->vid); in br_vlan_rtm_process_one()
2234 range_end = br_vlan_find(vg, vinfo->vid); in br_vlan_rtm_process_one()
2236 range_start = br_vlan_find(vg, vinfo->vid); in br_vlan_rtm_process_one()