Lines Matching defs:vid

11 static void nbp_vlan_set_vlan_dev_state(struct net_bridge_port *p, u16 vid);
17 u16 vid = *(u16 *)arg->key;
19 return vle->vid != vid;
24 .key_offset = offsetof(struct net_bridge_vlan, vid),
32 static struct net_bridge_vlan *br_vlan_lookup(struct rhashtable *tbl, u16 vid)
34 return rhashtable_lookup_fast(tbl, &vid, br_vlan_rht_params);
40 if (vg->pvid == v->vid)
45 vg->pvid = v->vid;
48 static void __vlan_delete_pvid(struct net_bridge_vlan_group *vg, u16 vid)
50 if (vg->pvid != vid)
73 change = !!(flags & BRIDGE_VLAN_INFO_PVID) == !!(vg->pvid != v->vid) ||
82 __vlan_delete_pvid(vg, v->vid);
112 err = br_switchdev_port_vlan_add(dev, v->vid, flags, false, extack);
114 return vlan_vid_add(dev, br->vlan_proto, v->vid);
133 if (v->vid >= vent->vid)
152 err = br_switchdev_port_vlan_del(dev, v->vid);
154 vlan_vid_del(dev, br->vlan_proto, v->vid);
162 br_vlan_get_master(struct net_bridge *br, u16 vid,
169 masterv = br_vlan_find(vg, vid);
174 if (br_vlan_add(br, vid, 0, &changed, extack))
176 masterv = br_vlan_find(vg, vid);
292 err = br_vlan_add(br, v->vid,
299 br_vlan_notify(br, NULL, v->vid, 0,
303 masterv = br_vlan_get_master(br, v->vid, extack);
323 err = br_switchdev_port_vlan_add(dev, v->vid, flags,
334 err = br_fdb_add_local(br, p, dev->dev_addr, v->vid);
355 nbp_vlan_set_vlan_dev_state(p, v->vid);
361 br_fdb_find_delete_local(br, p, dev->dev_addr, v->vid);
377 br_switchdev_port_vlan_del(dev, v->vid);
398 __vlan_delete_pvid(vg, v->vid);
404 err = br_switchdev_port_vlan_del(v->br->dev, v->vid);
420 nbp_vlan_set_vlan_dev_state(p, v->vid);
451 v_start = vlan->vid;
452 } else if (vlan->vid - v_end != 1) {
455 v_start = vlan->vid;
457 v_end = vlan->vid;
464 vlan->vid, ERR_PTR(err));
480 u16 vid;
490 br_vlan_get_tag(skb, &vid);
491 v = br_vlan_find(vg, vid);
536 struct sk_buff *skb, u16 *vid,
556 if (!br_vlan_get_tag(skb, vid)) {
568 *vid = 0;
578 if (!*vid) {
591 *vid = pvid;
614 v = br_vlan_find(vg, *vid);
643 u16 *vid, u8 *state,
655 return __allowed_ingress(br, vg, skb, vid, state, vlan);
663 u16 vid;
669 br_vlan_get_tag(skb, &vid);
670 v = br_vlan_find(vg, vid);
679 bool br_should_learn(struct net_bridge_port *p, struct sk_buff *skb, u16 *vid)
693 if (!br_vlan_get_tag(skb, vid) && skb->vlan_proto != br->vlan_proto)
694 *vid = 0;
696 if (!*vid) {
697 *vid = br_get_pvid(vg);
698 if (!*vid ||
705 v = br_vlan_find(vg, *vid);
734 err = br_switchdev_port_vlan_add(br->dev, vlan->vid, flags,
742 err = br_fdb_add_local(br, NULL, br->dev->dev_addr, vlan->vid);
762 br_switchdev_port_vlan_del(br->dev, vlan->vid);
767 * Must be called with vid in range from 1 to 4094 inclusive.
770 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags, bool *changed,
781 vlan = br_vlan_find(vg, vid);
795 vlan->vid = vid;
813 * Must be called with vid in range from 1 to 4094 inclusive.
815 int br_vlan_delete(struct net_bridge *br, u16 vid)
823 v = br_vlan_find(vg, vid);
827 br_fdb_find_delete_local(br, NULL, br->dev->dev_addr, vid);
828 br_fdb_delete_by_port(br, NULL, vid, 0);
848 struct net_bridge_vlan *br_vlan_find(struct net_bridge_vlan_group *vg, u16 vid)
853 return br_vlan_lookup(&vg->vlan_hash, vid);
964 err = vlan_vid_add(p->dev, proto, vlan->vid);
981 vlan_vid_del(p->dev, oldproto, vlan->vid);
994 vlan_vid_del(p->dev, proto, vlan->vid);
1002 vlan_vid_del(p->dev, proto, vlan->vid);
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);
1303 * Must be called with vid in range from 1 to 4094 inclusive.
1306 int nbp_vlan_add(struct net_bridge_port *port, u16 vid, u16 flags,
1315 vlan = br_vlan_find(nbp_vlan_group(port), vid);
1321 ret = br_switchdev_port_vlan_add(port->dev, vid, flags,
1337 vlan->vid = vid;
1349 * Must be called with vid in range from 1 to 4094 inclusive.
1351 int nbp_vlan_delete(struct net_bridge_port *port, u16 vid)
1357 v = br_vlan_find(nbp_vlan_group(port), vid);
1360 br_fdb_find_delete_local(port->br, port, port->dev->dev_addr, vid);
1361 br_fdb_delete_by_port(port->br, port, vid, 0);
1449 u16 vid;
1460 vid = ctx->vlan[idx].id;
1463 vid = br_get_pvid(vg);
1466 path->bridge.vlan_id = vid;
1498 int br_vlan_get_info(const struct net_device *dev, u16 vid,
1514 v = br_vlan_find(vg, vid);
1518 p_vinfo->vid = vid;
1520 if (vid == br_get_pvid(vg))
1526 int br_vlan_get_info_rcu(const struct net_device *dev, u16 vid,
1541 v = br_vlan_find(vg, vid);
1545 p_vinfo->vid = vid;
1547 if (vid == br_get_pvid(vg))
1578 u16 vid;
1589 vlan_dev_priv(dev)->vlan_id == data->vid) {
1598 br_vlan_get_upper_bind_vlan_dev(struct net_device *dev, u16 vid)
1601 .vid = vid,
1623 u16 vid = vlan_dev_priv(vlan_dev)->vlan_id;
1635 if (br_vlan_find(vg, vid) && br_vlan_is_dev_up(p->dev)) {
1655 vlan->vid);
1725 static void nbp_vlan_set_vlan_dev_state(struct net_bridge_port *p, u16 vid)
1732 vlan_dev = br_vlan_get_upper_bind_vlan_dev(p->br->dev, vid);
1849 static bool br_vlan_fill_vids(struct sk_buff *skb, u16 vid, u16 vid_range,
1863 info.vid = vid;
1872 if (vid_range && vid < vid_range &&
1905 u16 vid, u16 vid_range,
1947 v = br_vlan_find(vg, vid);
1952 if (br_get_pvid(vg) == v->vid)
1961 if (!br_vlan_fill_vids(skb, vid, vid_range, v, p, flags, false))
1978 return v_curr->vid - range_end->vid == 1 &&
2050 if (!br_vlan_global_opts_fill(skb, range_start->vid,
2051 range_end->vid,
2057 idx += range_end->vid - range_start->vid + 1;
2060 } else if (dump_stats || v->vid == pvid ||
2064 if (!br_vlan_fill_vids(skb, range_start->vid,
2065 range_end->vid, range_start,
2071 idx += range_end->vid - range_start->vid + 1;
2086 !br_vlan_global_opts_fill(skb, range_start->vid,
2087 range_end->vid, range_start))
2090 !br_vlan_fill_vids(skb, range_start->vid,
2091 range_end->vid, range_start,
2215 if (!br_vlan_valid_id(vinfo->vid, extack))
2219 vrange_end.vid = nla_get_u16(tb[BRIDGE_VLANDB_ENTRY_RANGE]);
2228 if (!br_vlan_valid_id(vinfo->vid, extack) ||
2263 range_start = br_vlan_find(vg, vinfo_last->vid);
2264 range_end = br_vlan_find(vg, vinfo->vid);
2266 range_start = br_vlan_find(vg, vinfo->vid);