Lines Matching refs:v
52 static void __vlan_add_flags(struct net_bridge_vlan *v, u16 flags) in __vlan_add_flags() argument
56 if (br_vlan_is_master(v)) in __vlan_add_flags()
57 vg = br_vlan_group(v->br); in __vlan_add_flags()
59 vg = nbp_vlan_group(v->port); in __vlan_add_flags()
62 __vlan_add_pvid(vg, v->vid); in __vlan_add_flags()
64 __vlan_delete_pvid(vg, v->vid); in __vlan_add_flags()
67 v->flags |= BRIDGE_VLAN_INFO_UNTAGGED; in __vlan_add_flags()
69 v->flags &= ~BRIDGE_VLAN_INFO_UNTAGGED; in __vlan_add_flags()
75 struct switchdev_obj_port_vlan v = { in __vlan_vid_add() local
86 err = switchdev_port_obj_add(dev, &v.obj); in __vlan_vid_add()
92 static void __vlan_add_list(struct net_bridge_vlan *v) in __vlan_add_list() argument
98 if (br_vlan_is_master(v)) in __vlan_add_list()
99 vg = br_vlan_group(v->br); in __vlan_add_list()
101 vg = nbp_vlan_group(v->port); in __vlan_add_list()
106 if (v->vid < vent->vid) in __vlan_add_list()
111 list_add_rcu(&v->vlist, hpos); in __vlan_add_list()
114 static void __vlan_del_list(struct net_bridge_vlan *v) in __vlan_del_list() argument
116 list_del_rcu(&v->vlist); in __vlan_del_list()
122 struct switchdev_obj_port_vlan v = { in __vlan_vid_del() local
132 err = switchdev_port_obj_del(dev, &v.obj); in __vlan_vid_del()
190 static int __vlan_add(struct net_bridge_vlan *v, u16 flags) in __vlan_add() argument
199 if (br_vlan_is_master(v)) { in __vlan_add()
200 br = v->br; in __vlan_add()
204 p = v->port; in __vlan_add()
215 err = __vlan_vid_add(dev, br, v->vid, flags); in __vlan_add()
221 err = br_vlan_add(br, v->vid, flags | in __vlan_add()
227 masterv = br_vlan_get_master(br, v->vid); in __vlan_add()
230 v->brvlan = masterv; in __vlan_add()
234 if (br_vlan_should_use(v)) { in __vlan_add()
235 err = br_fdb_insert(br, p, dev->dev_addr, v->vid); in __vlan_add()
243 err = rhashtable_lookup_insert_fast(&vg->vlan_hash, &v->vnode, in __vlan_add()
248 __vlan_add_list(v); in __vlan_add()
249 __vlan_add_flags(v, flags); in __vlan_add()
254 if (br_vlan_should_use(v)) { in __vlan_add()
255 br_fdb_find_delete_local(br, p, dev->dev_addr, v->vid); in __vlan_add()
261 __vlan_vid_del(dev, br, v->vid); in __vlan_add()
264 v->brvlan = NULL; in __vlan_add()
271 static int __vlan_del(struct net_bridge_vlan *v) in __vlan_del() argument
273 struct net_bridge_vlan *masterv = v; in __vlan_del()
278 if (br_vlan_is_master(v)) { in __vlan_del()
279 vg = br_vlan_group(v->br); in __vlan_del()
281 p = v->port; in __vlan_del()
282 vg = nbp_vlan_group(v->port); in __vlan_del()
283 masterv = v->brvlan; in __vlan_del()
286 __vlan_delete_pvid(vg, v->vid); in __vlan_del()
288 err = __vlan_vid_del(p->dev, p->br, v->vid); in __vlan_del()
293 if (br_vlan_should_use(v)) { in __vlan_del()
294 v->flags &= ~BRIDGE_VLAN_INFO_BRENTRY; in __vlan_del()
298 if (masterv != v) { in __vlan_del()
299 rhashtable_remove_fast(&vg->vlan_hash, &v->vnode, in __vlan_del()
301 __vlan_del_list(v); in __vlan_del()
302 kfree_rcu(v, rcu); in __vlan_del()
330 struct net_bridge_vlan *v; in br_handle_vlan() local
342 v = br_vlan_find(vg, vid); in br_handle_vlan()
348 if (!v || !br_vlan_should_use(v)) { in br_handle_vlan()
356 if (v->flags & BRIDGE_VLAN_INFO_UNTAGGED) in br_handle_vlan()
367 const struct net_bridge_vlan *v; in __allowed_ingress() local
433 v = br_vlan_find(vg, *vid); in __allowed_ingress()
434 if (v && br_vlan_should_use(v)) in __allowed_ingress()
460 const struct net_bridge_vlan *v; in br_allowed_egress() local
468 v = br_vlan_find(vg, vid); in br_allowed_egress()
469 if (v && br_vlan_should_use(v)) in br_allowed_egress()
562 struct net_bridge_vlan *v; in br_vlan_delete() local
567 v = br_vlan_find(vg, vid); in br_vlan_delete()
568 if (!v || !br_vlan_is_brentry(v)) in br_vlan_delete()
574 return __vlan_del(v); in br_vlan_delete()
716 struct net_bridge_vlan *v; in vlan_default_pvid() local
721 v = br_vlan_lookup(&vg->vlan_hash, vid); in vlan_default_pvid()
722 if (v && br_vlan_should_use(v) && in vlan_default_pvid()
723 (v->flags & BRIDGE_VLAN_INFO_UNTAGGED)) in vlan_default_pvid()
960 struct net_bridge_vlan *v; in nbp_vlan_delete() local
964 v = br_vlan_find(nbp_vlan_group(port), vid); in nbp_vlan_delete()
965 if (!v) in nbp_vlan_delete()
970 return __vlan_del(v); in nbp_vlan_delete()