Lines Matching refs:vid
13 u16 vid = *(u16 *)arg->key; in br_vlan_cmp() local
15 return vle->vid != vid; in br_vlan_cmp()
20 .key_offset = offsetof(struct net_bridge_vlan, vid),
29 static struct net_bridge_vlan *br_vlan_lookup(struct rhashtable *tbl, u16 vid) in br_vlan_lookup() argument
31 return rhashtable_lookup_fast(tbl, &vid, br_vlan_rht_params); in br_vlan_lookup()
34 static void __vlan_add_pvid(struct net_bridge_vlan_group *vg, u16 vid) in __vlan_add_pvid() argument
36 if (vg->pvid == vid) in __vlan_add_pvid()
40 vg->pvid = vid; in __vlan_add_pvid()
43 static void __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid) in __vlan_delete_pvid() argument
45 if (vg->pvid != vid) in __vlan_delete_pvid()
62 __vlan_add_pvid(vg, v->vid); in __vlan_add_flags()
64 __vlan_delete_pvid(vg, v->vid); in __vlan_add_flags()
73 u16 vid, u16 flags) in __vlan_vid_add() argument
78 .vid_begin = vid, in __vlan_vid_add()
79 .vid_end = vid, in __vlan_vid_add()
88 return vlan_vid_add(dev, br->vlan_proto, vid); in __vlan_vid_add()
106 if (v->vid < vent->vid) in __vlan_add_list()
120 u16 vid) in __vlan_vid_del() argument
124 .vid_begin = vid, in __vlan_vid_del()
125 .vid_end = vid, in __vlan_vid_del()
134 vlan_vid_del(dev, br->vlan_proto, vid); in __vlan_vid_del()
143 static struct net_bridge_vlan *br_vlan_get_master(struct net_bridge *br, u16 vid) in br_vlan_get_master() argument
149 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
152 if (br_vlan_add(br, vid, 0)) in br_vlan_get_master()
154 masterv = br_vlan_find(vg, vid); in br_vlan_get_master()
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()
235 err = br_fdb_insert(br, p, dev->dev_addr, v->vid); 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()
286 __vlan_delete_pvid(vg, v->vid); in __vlan_del()
288 err = __vlan_vid_del(p->dev, p->br, v->vid); in __vlan_del()
331 u16 vid; in br_handle_vlan() local
341 br_vlan_get_tag(skb, &vid); in br_handle_vlan()
342 v = br_vlan_find(vg, vid); in br_handle_vlan()
365 struct sk_buff *skb, u16 *vid) in __allowed_ingress() argument
382 if (!br_vlan_get_tag(skb, vid)) { in __allowed_ingress()
394 *vid = 0; in __allowed_ingress()
404 if (!*vid) { in __allowed_ingress()
417 *vid = pvid; in __allowed_ingress()
433 v = br_vlan_find(vg, *vid); in __allowed_ingress()
443 u16 *vid) in br_allowed_ingress() argument
453 return __allowed_ingress(vg, br->vlan_proto, skb, vid); in br_allowed_ingress()
461 u16 vid; in br_allowed_egress() local
467 br_vlan_get_tag(skb, &vid); in br_allowed_egress()
468 v = br_vlan_find(vg, vid); in br_allowed_egress()
476 bool br_should_learn(struct net_bridge_port *p, struct sk_buff *skb, u16 *vid) in br_should_learn() argument
489 if (!br_vlan_get_tag(skb, vid) && skb->vlan_proto != br->vlan_proto) in br_should_learn()
490 *vid = 0; in br_should_learn()
492 if (!*vid) { in br_should_learn()
493 *vid = br_get_pvid(vg); in br_should_learn()
494 if (!*vid) in br_should_learn()
500 if (br_vlan_find(vg, *vid)) in br_should_learn()
509 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags) in br_vlan_add() argument
518 vlan = br_vlan_find(vg, vid); in br_vlan_add()
526 vlan->vid); in br_vlan_add()
543 vlan->vid = vid; in br_vlan_add()
559 int br_vlan_delete(struct net_bridge *br, u16 vid) in br_vlan_delete() argument
567 v = br_vlan_find(vg, vid); in br_vlan_delete()
571 br_fdb_find_delete_local(br, NULL, br->dev->dev_addr, vid); in br_vlan_delete()
572 br_fdb_delete_by_port(br, NULL, vid, 0); in br_vlan_delete()
590 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid) in br_vlan_find() argument
595 return br_vlan_lookup(&vg->vlan_hash, vid); in br_vlan_find()
664 err = vlan_vid_add(p->dev, proto, vlan->vid); in __br_vlan_set_proto()
680 vlan_vid_del(p->dev, oldproto, vlan->vid); in __br_vlan_set_proto()
687 vlan_vid_del(p->dev, proto, vlan->vid); in __br_vlan_set_proto()
692 vlan_vid_del(p->dev, proto, vlan->vid); in __br_vlan_set_proto()
714 static bool vlan_default_pvid(struct net_bridge_vlan_group *vg, u16 vid) in vlan_default_pvid() argument
718 if (vid != vg->pvid) in vlan_default_pvid()
721 v = br_vlan_lookup(&vg->vlan_hash, vid); in vlan_default_pvid()
929 int nbp_vlan_add(struct net_bridge_port *port, u16 vid, u16 flags) in nbp_vlan_add() argument
936 vlan = br_vlan_find(nbp_vlan_group(port), vid); in nbp_vlan_add()
946 vlan->vid = vid; in nbp_vlan_add()
958 int nbp_vlan_delete(struct net_bridge_port *port, u16 vid) in nbp_vlan_delete() argument
964 v = br_vlan_find(nbp_vlan_group(port), vid); in nbp_vlan_delete()
967 br_fdb_find_delete_local(port->br, port, port->dev->dev_addr, vid); in nbp_vlan_delete()
968 br_fdb_delete_by_port(port->br, port, vid, 0); in nbp_vlan_delete()