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()
150 struct net_bridge_vlan_group *vg; in br_vlan_get_master() local
153 vg = br_vlan_group(br); in br_vlan_get_master()
154 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
161 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
185 struct net_bridge_vlan_group *vg; in br_vlan_put_master() local
190 vg = br_vlan_group(masterv->br); in br_vlan_put_master()
192 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()
297 vg->num_vlans++; in __vlan_add()
303 err = rhashtable_lookup_insert_fast(&vg->vlan_hash, &v->vnode, in __vlan_add()
319 vg->num_vlans--; in __vlan_add()
343 struct net_bridge_vlan_group *vg; in __vlan_del() local
348 vg = br_vlan_group(v->br); in __vlan_del()
351 vg = nbp_vlan_group(v->port); in __vlan_del()
355 __vlan_delete_pvid(vg, v->vid); in __vlan_del()
369 vg->num_vlans--; in __vlan_del()
373 vlan_tunnel_info_del(vg, v); in __vlan_del()
374 rhashtable_remove_fast(&vg->vlan_hash, &v->vnode, in __vlan_del()
386 static void __vlan_group_free(struct net_bridge_vlan_group *vg) in __vlan_group_free() argument
388 WARN_ON(!list_empty(&vg->vlan_list)); in __vlan_group_free()
389 rhashtable_destroy(&vg->vlan_hash); in __vlan_group_free()
390 vlan_tunnel_deinit(vg); in __vlan_group_free()
391 kfree(vg); in __vlan_group_free()
396 struct net_bridge_vlan_group *vg) in __vlan_flush() argument
401 __vlan_delete_pvid(vg, vg->pvid); in __vlan_flush()
402 list_for_each_entry_safe(vlan, tmp, &vg->vlan_list, vlist) { in __vlan_flush()
423 struct net_bridge_vlan_group *vg, in br_handle_vlan() argument
439 v = br_vlan_find(vg, vid); in br_handle_vlan()
475 struct net_bridge_vlan_group *vg, in __allowed_ingress() argument
518 u16 pvid = br_get_pvid(vg); in __allowed_ingress()
545 *state = br_vlan_get_pvid_state(vg); in __allowed_ingress()
552 v = br_vlan_find(vg, *vid); in __allowed_ingress()
578 struct net_bridge_vlan_group *vg, struct sk_buff *skb, in br_allowed_ingress() argument
589 return __allowed_ingress(br, vg, skb, vid, state); in br_allowed_ingress()
593 bool br_allowed_egress(struct net_bridge_vlan_group *vg, in br_allowed_egress() argument
604 v = br_vlan_find(vg, vid); in br_allowed_egress()
615 struct net_bridge_vlan_group *vg; in br_should_learn() local
623 vg = nbp_vlan_group_rcu(p); in br_should_learn()
624 if (!vg || !vg->num_vlans) in br_should_learn()
631 *vid = br_get_pvid(vg); in br_should_learn()
633 !br_vlan_state_allowed(br_vlan_get_pvid_state(vg), true)) in br_should_learn()
639 v = br_vlan_find(vg, *vid); in br_should_learn()
647 struct net_bridge_vlan_group *vg, in br_vlan_add_existing() argument
674 vg->num_vlans++; in br_vlan_add_existing()
696 struct net_bridge_vlan_group *vg; in br_vlan_add() local
703 vg = br_vlan_group(br); in br_vlan_add()
704 vlan = br_vlan_find(vg, vid); in br_vlan_add()
706 return br_vlan_add_existing(br, vg, vlan, flags, changed, in br_vlan_add()
740 struct net_bridge_vlan_group *vg; in br_vlan_delete() local
745 vg = br_vlan_group(br); in br_vlan_delete()
746 v = br_vlan_find(vg, vid); in br_vlan_delete()
753 vlan_tunnel_info_del(vg, v); in br_vlan_delete()
760 struct net_bridge_vlan_group *vg; in br_vlan_flush() local
764 vg = br_vlan_group(br); in br_vlan_flush()
765 __vlan_flush(br, NULL, vg); in br_vlan_flush()
768 __vlan_group_free(vg); in br_vlan_flush()
771 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid) in br_vlan_find() argument
773 if (!vg) in br_vlan_find()
776 return br_vlan_lookup(&vg->vlan_hash, vid); in br_vlan_find()
867 struct net_bridge_vlan_group *vg; in __br_vlan_set_proto() local
879 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
880 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
896 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
897 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
910 list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
917 vg = nbp_vlan_group(p); in __br_vlan_set_proto()
918 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in __br_vlan_set_proto()
956 struct net_bridge_vlan_group *vg = nbp_vlan_group(p); in br_vlan_set_stats_per_port() local
958 if (vg->num_vlans) in br_vlan_set_stats_per_port()
974 static bool vlan_default_pvid(struct net_bridge_vlan_group *vg, u16 vid) in vlan_default_pvid() argument
978 if (vid != vg->pvid) in vlan_default_pvid()
981 v = br_vlan_lookup(&vg->vlan_hash, vid); in vlan_default_pvid()
1015 struct net_bridge_vlan_group *vg; in __br_vlan_set_default_pvid() local
1036 vg = br_vlan_group(br); in __br_vlan_set_default_pvid()
1037 pvent = br_vlan_find(vg, pvid); in __br_vlan_set_default_pvid()
1038 if ((!old_pvid || vlan_default_pvid(vg, old_pvid)) && in __br_vlan_set_default_pvid()
1058 vg = nbp_vlan_group(p); in __br_vlan_set_default_pvid()
1060 !vlan_default_pvid(vg, old_pvid)) || in __br_vlan_set_default_pvid()
1061 br_vlan_find(vg, pvid)) in __br_vlan_set_default_pvid()
1137 struct net_bridge_vlan_group *vg; in br_vlan_init() local
1140 vg = kzalloc(sizeof(*vg), GFP_KERNEL); in br_vlan_init()
1141 if (!vg) in br_vlan_init()
1143 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in br_vlan_init()
1146 ret = vlan_tunnel_init(vg); in br_vlan_init()
1149 INIT_LIST_HEAD(&vg->vlan_list); in br_vlan_init()
1152 rcu_assign_pointer(br->vlgrp, vg); in br_vlan_init()
1158 rhashtable_destroy(&vg->vlan_hash); in br_vlan_init()
1160 kfree(vg); in br_vlan_init()
1173 struct net_bridge_vlan_group *vg; in nbp_vlan_init() local
1176 vg = kzalloc(sizeof(struct net_bridge_vlan_group), GFP_KERNEL); in nbp_vlan_init()
1177 if (!vg) in nbp_vlan_init()
1184 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params); in nbp_vlan_init()
1187 ret = vlan_tunnel_init(vg); in nbp_vlan_init()
1190 INIT_LIST_HEAD(&vg->vlan_list); in nbp_vlan_init()
1191 rcu_assign_pointer(p->vlgrp, vg); in nbp_vlan_init()
1209 vlan_tunnel_deinit(vg); in nbp_vlan_init()
1211 rhashtable_destroy(&vg->vlan_hash); in nbp_vlan_init()
1214 kfree(vg); in nbp_vlan_init()
1278 struct net_bridge_vlan_group *vg; in nbp_vlan_flush() local
1282 vg = nbp_vlan_group(port); in nbp_vlan_flush()
1283 __vlan_flush(port->br, port, vg); in nbp_vlan_flush()
1286 __vlan_group_free(vg); in nbp_vlan_flush()
1318 struct net_bridge_vlan_group *vg; in br_vlan_get_pvid() local
1324 vg = nbp_vlan_group(p); in br_vlan_get_pvid()
1326 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_pvid()
1330 *p_pvid = br_get_pvid(vg); in br_vlan_get_pvid()
1337 struct net_bridge_vlan_group *vg; in br_vlan_get_pvid_rcu() local
1342 vg = nbp_vlan_group_rcu(p); in br_vlan_get_pvid_rcu()
1344 vg = br_vlan_group_rcu(netdev_priv(dev)); in br_vlan_get_pvid_rcu()
1348 *p_pvid = br_get_pvid(vg); in br_vlan_get_pvid_rcu()
1356 struct net_bridge_vlan_group *vg; in br_vlan_get_info() local
1363 vg = nbp_vlan_group(p); in br_vlan_get_info()
1365 vg = br_vlan_group(netdev_priv(dev)); in br_vlan_get_info()
1369 v = br_vlan_find(vg, vid); in br_vlan_get_info()
1375 if (vid == br_get_pvid(vg)) in br_vlan_get_info()
1452 struct net_bridge_vlan_group *vg; in br_vlan_set_vlan_dev_state() local
1462 vg = nbp_vlan_group(p); in br_vlan_set_vlan_dev_state()
1463 if (br_vlan_find(vg, vid) && br_vlan_is_dev_up(p->dev)) { in br_vlan_set_vlan_dev_state()
1477 struct net_bridge_vlan_group *vg = nbp_vlan_group(p); in br_vlan_set_all_vlan_dev_state() local
1481 list_for_each_entry(vlan, &vg->vlan_list, vlist) { in br_vlan_set_all_vlan_dev_state()
1699 struct net_bridge_vlan_group *vg; in br_vlan_notify() local
1714 vg = nbp_vlan_group(p); in br_vlan_notify()
1718 vg = br_vlan_group(br); in br_vlan_notify()
1738 v = br_vlan_find(vg, vid); in br_vlan_notify()
1743 if (br_get_pvid(vg) == v->vid) in br_vlan_notify()
1781 struct net_bridge_vlan_group *vg; in br_vlan_dump_dev() local
1795 vg = br_vlan_group_rcu(br); in br_vlan_dump_dev()
1801 vg = nbp_vlan_group_rcu(p); in br_vlan_dump_dev()
1805 if (!vg) in br_vlan_dump_dev()
1816 pvid = br_get_pvid(vg); in br_vlan_dump_dev()
1819 list_for_each_entry_rcu(v, &vg->vlan_list, vlist) { in br_vlan_dump_dev()
1940 struct net_bridge_vlan_group *vg; in br_vlan_rtm_process_one() local
1947 vg = br_vlan_group(br); in br_vlan_rtm_process_one()
1953 vg = nbp_vlan_group(p); in br_vlan_rtm_process_one()
1956 if (WARN_ON(!vg)) in br_vlan_rtm_process_one()
2024 range_start = br_vlan_find(vg, vinfo_last->vid); in br_vlan_rtm_process_one()
2025 range_end = br_vlan_find(vg, vinfo->vid); in br_vlan_rtm_process_one()
2027 range_start = br_vlan_find(vg, vinfo->vid); in br_vlan_rtm_process_one()