Lines Matching refs:vg

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