Lines Matching refs:vg
37 static void __vlan_add_pvid(struct net_bridge_vlan_group *vg,
40 if (vg->pvid == v->vid)
44 br_vlan_set_pvid_state(vg, v->state);
45 vg->pvid = v->vid;
48 static void __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid)
50 if (vg->pvid != vid)
54 vg->pvid = 0;
64 struct net_bridge_vlan_group *vg;
68 vg = br_vlan_group(v->br);
70 vg = nbp_vlan_group(v->port);
73 change = !!(flags & BRIDGE_VLAN_INFO_PVID) == !!(vg->pvid != v->vid) ||
80 __vlan_add_pvid(vg, v);
82 __vlan_delete_pvid(vg, v->vid);
121 struct net_bridge_vlan_group *vg;
126 vg = br_vlan_group(v->br);
128 vg = nbp_vlan_group(v->port);
130 headp = &vg->vlan_list;
165 struct net_bridge_vlan_group *vg;
168 vg = br_vlan_group(br);
169 masterv = br_vlan_find(vg, vid);
176 masterv = br_vlan_find(vg, vid);
200 struct net_bridge_vlan_group *vg;
205 vg = br_vlan_group(masterv->br);
207 rhashtable_remove_fast(&vg->vlan_hash,
263 struct net_bridge_vlan_group *vg;
271 vg = br_vlan_group(br);
276 vg = nbp_vlan_group(p);
339 vg->num_vlans++;
345 err = rhashtable_lookup_insert_fast(&vg->vlan_hash, &v->vnode,
362 vg->num_vlans--;
386 struct net_bridge_vlan_group *vg;
391 vg = br_vlan_group(v->br);
394 vg = nbp_vlan_group(v->port);
398 __vlan_delete_pvid(vg, v->vid);
412 vg->num_vlans--;
416 vlan_tunnel_info_del(vg, v);
417 rhashtable_remove_fast(&vg->vlan_hash, &v->vnode,
431 static void __vlan_group_free(struct net_bridge_vlan_group *vg)
433 WARN_ON(!list_empty(&vg->vlan_list));
434 rhashtable_destroy(&vg->vlan_hash);
435 vlan_tunnel_deinit(vg);
436 kfree(vg);
441 struct net_bridge_vlan_group *vg)
447 __vlan_delete_pvid(vg, vg->pvid);
448 list_for_each_entry_safe(vlan, tmp, &vg->vlan_list, vlist) {
475 struct net_bridge_vlan_group *vg,
491 v = br_vlan_find(vg, vid);
535 struct net_bridge_vlan_group *vg,
579 u16 pvid = br_get_pvid(vg);
607 *state = br_vlan_get_pvid_state(vg);
614 v = br_vlan_find(vg, *vid);
642 struct net_bridge_vlan_group *vg, struct sk_buff *skb,
655 return __allowed_ingress(br, vg, skb, vid, state, vlan);
659 bool br_allowed_egress(struct net_bridge_vlan_group *vg,
670 v = br_vlan_find(vg, vid);
681 struct net_bridge_vlan_group *vg;
689 vg = nbp_vlan_group_rcu(p);
690 if (!vg || !vg->num_vlans)
697 *vid = br_get_pvid(vg);
699 !br_vlan_state_allowed(br_vlan_get_pvid_state(vg), true))
705 v = br_vlan_find(vg, *vid);
713 struct net_bridge_vlan_group *vg,
750 vg->num_vlans++;
773 struct net_bridge_vlan_group *vg;
780 vg = br_vlan_group(br);
781 vlan = br_vlan_find(vg, vid);
783 return br_vlan_add_existing(br, vg, vlan, flags, changed,
817 struct net_bridge_vlan_group *vg;
822 vg = br_vlan_group(br);
823 v = br_vlan_find(vg, vid);
830 vlan_tunnel_info_del(vg, v);
837 struct net_bridge_vlan_group *vg;
841 vg = br_vlan_group(br);
842 __vlan_flush(br, NULL, vg);
845 __vlan_group_free(vg);
848 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid)
850 if (!vg)
853 return br_vlan_lookup(&vg->vlan_hash, vid);
948 struct net_bridge_vlan_group *vg;
960 vg = nbp_vlan_group(p);
961 list_for_each_entry(vlan, &vg->vlan_list, vlist) {
977 vg = nbp_vlan_group(p);
978 list_for_each_entry(vlan, &vg->vlan_list, vlist) {
991 list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) {
998 vg = nbp_vlan_group(p);
999 list_for_each_entry(vlan, &vg->vlan_list, vlist) {
1038 struct net_bridge_vlan_group *vg = nbp_vlan_group(p);
1040 if (vg->num_vlans)
1056 static bool vlan_default_pvid(struct net_bridge_vlan_group *vg, u16 vid)
1060 if (vid != vg->pvid)
1063 v = br_vlan_lookup(&vg->vlan_hash, vid);
1097 struct net_bridge_vlan_group *vg;
1118 vg = br_vlan_group(br);
1119 pvent = br_vlan_find(vg, pvid);
1120 if ((!old_pvid || vlan_default_pvid(vg, old_pvid)) &&
1140 vg = nbp_vlan_group(p);
1142 !vlan_default_pvid(vg, old_pvid)) ||
1143 br_vlan_find(vg, pvid))
1220 struct net_bridge_vlan_group *vg;
1223 vg = kzalloc(sizeof(*vg), GFP_KERNEL);
1224 if (!vg)
1226 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params);
1229 ret = vlan_tunnel_init(vg);
1232 INIT_LIST_HEAD(&vg->vlan_list);
1235 rcu_assign_pointer(br->vlgrp, vg);
1241 rhashtable_destroy(&vg->vlan_hash);
1243 kfree(vg);
1256 struct net_bridge_vlan_group *vg;
1259 vg = kzalloc(sizeof(struct net_bridge_vlan_group), GFP_KERNEL);
1260 if (!vg)
1267 ret = rhashtable_init(&vg->vlan_hash, &br_vlan_rht_params);
1270 ret = vlan_tunnel_init(vg);
1273 INIT_LIST_HEAD(&vg->vlan_list);
1274 rcu_assign_pointer(p->vlgrp, vg);
1292 vlan_tunnel_deinit(vg);
1294 rhashtable_destroy(&vg->vlan_hash);
1297 kfree(vg);
1368 struct net_bridge_vlan_group *vg;
1372 vg = nbp_vlan_group(port);
1373 __vlan_flush(port->br, port, vg);
1376 __vlan_group_free(vg);
1408 struct net_bridge_vlan_group *vg;
1414 vg = nbp_vlan_group(p);
1416 vg = br_vlan_group(netdev_priv(dev));
1420 *p_pvid = br_get_pvid(vg);
1427 struct net_bridge_vlan_group *vg;
1432 vg = nbp_vlan_group_rcu(p);
1434 vg = br_vlan_group_rcu(netdev_priv(dev));
1438 *p_pvid = br_get_pvid(vg);
1447 struct net_bridge_vlan_group *vg;
1456 vg = br_vlan_group(br);
1463 vid = br_get_pvid(vg);
1474 struct net_bridge_vlan_group *vg;
1480 vg = nbp_vlan_group_rcu(dst);
1481 v = br_vlan_find(vg, path->bridge.vlan_id);
1501 struct net_bridge_vlan_group *vg;
1508 vg = nbp_vlan_group(p);
1510 vg = br_vlan_group(netdev_priv(dev));
1514 v = br_vlan_find(vg, vid);
1520 if (vid == br_get_pvid(vg))
1529 struct net_bridge_vlan_group *vg;
1535 vg = nbp_vlan_group_rcu(p);
1537 vg = br_vlan_group_rcu(netdev_priv(dev));
1541 v = br_vlan_find(vg, vid);
1547 if (vid == br_get_pvid(vg))
1624 struct net_bridge_vlan_group *vg;
1634 vg = nbp_vlan_group(p);
1635 if (br_vlan_find(vg, vid) && br_vlan_is_dev_up(p->dev)) {
1649 struct net_bridge_vlan_group *vg = nbp_vlan_group(p);
1653 list_for_each_entry(vlan, &vg->vlan_list, vlist) {
1876 struct net_bridge_vlan_group *vg;
1891 vg = nbp_vlan_group(p);
1895 vg = br_vlan_group(br);
1915 v = br_vlan_find(vg, vid);
1920 if (br_get_pvid(vg) == v->vid)
1959 struct net_bridge_vlan_group *vg;
1973 vg = br_vlan_group_rcu(br);
1983 vg = nbp_vlan_group_rcu(p);
1987 if (!vg)
1998 pvid = br_get_pvid(vg);
2001 list_for_each_entry_rcu(v, &vg->vlan_list, vlist) {
2147 struct net_bridge_vlan_group *vg;
2154 vg = br_vlan_group(br);
2160 vg = nbp_vlan_group(p);
2163 if (WARN_ON(!vg))
2231 range_start = br_vlan_find(vg, vinfo_last->vid);
2232 range_end = br_vlan_find(vg, vinfo->vid);
2234 range_start = br_vlan_find(vg, vinfo->vid);