Lines Matching defs:br

68 		vg = br_vlan_group(v->br);
103 static int __vlan_vid_add(struct net_device *dev, struct net_bridge *br,
114 return vlan_vid_add(dev, br->vlan_proto, v->vid);
126 vg = br_vlan_group(v->br);
144 static int __vlan_vid_del(struct net_device *dev, struct net_bridge *br,
154 vlan_vid_del(dev, br->vlan_proto, v->vid);
162 br_vlan_get_master(struct net_bridge *br, u16 vid,
168 vg = br_vlan_group(br);
174 if (br_vlan_add(br, vid, 0, &changed, extack))
205 vg = br_vlan_group(masterv->br);
231 struct net_bridge *br;
234 br = v->br;
236 br = v->port->br;
238 if (br_opt_get(br, BROPT_MST_ENABLED)) {
265 struct net_bridge *br;
269 br = v->br;
270 dev = br->dev;
271 vg = br_vlan_group(br);
274 br = p->br;
284 err = __vlan_vid_add(dev, br, v, flags, extack);
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);
309 if (br_opt_get(br, BROPT_VLAN_STATS_PER_PORT)) {
328 br_multicast_ctx_init(br, v, &v->br_mcast_ctx);
334 err = br_fdb_add_local(br, p, dev->dev_addr, v->vid);
336 br_err(br, "failed insert local address into bridge forwarding table\n");
361 br_fdb_find_delete_local(br, p, dev->dev_addr, v->vid);
367 __vlan_vid_del(dev, br, v);
391 vg = br_vlan_group(v->br);
400 err = __vlan_vid_del(p->dev, p->br, v);
404 err = br_switchdev_port_vlan_del(v->br->dev, v->vid);
439 static void __vlan_flush(const struct net_bridge *br,
454 br_vlan_notify(br, p, v_start, v_end, RTM_DELVLAN);
461 br_err(br,
470 br_vlan_notify(br, p, v_start, v_end, RTM_DELVLAN);
473 struct sk_buff *br_handle_vlan(struct net_bridge *br,
498 if ((br->dev->flags & IFF_PROMISC) && skb->dev == br->dev) {
505 if (br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) {
534 static bool __allowed_ingress(const struct net_bridge *br,
550 skb->protocol == br->vlan_proto)) {
558 if (skb->vlan_proto != br->vlan_proto) {
594 __vlan_hwaccel_put_tag(skb, br->vlan_proto, pvid);
604 if (!br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED) &&
605 !br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) {
624 if (br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) {
641 bool br_allowed_ingress(const struct net_bridge *br,
650 if (!br_opt_get(br, BROPT_VLAN_ENABLED)) {
655 return __allowed_ingress(br, vg, skb, vid, state, vlan);
682 struct net_bridge *br = p->br;
686 if (!br_opt_get(br, BROPT_VLAN_ENABLED))
693 if (!br_vlan_get_tag(skb, vid) && skb->vlan_proto != br->vlan_proto)
712 static int br_vlan_add_existing(struct net_bridge *br,
736 err = br_switchdev_port_vlan_add(br->dev, vlan->vid, flags,
744 err = br_fdb_add_local(br, NULL, br->dev->dev_addr, vlan->vid);
746 br_err(br, "failed to insert local address into bridge forwarding table\n");
764 br_switchdev_port_vlan_del(br->dev, vlan->vid);
772 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags, bool *changed,
782 vg = br_vlan_group(br);
785 return br_vlan_add_existing(br, vg, vlan, flags, changed,
800 vlan->br = br;
817 int br_vlan_delete(struct net_bridge *br, u16 vid)
824 vg = br_vlan_group(br);
829 br_fdb_find_delete_local(br, NULL, br->dev->dev_addr, vid);
830 br_fdb_delete_by_port(br, NULL, vid, 0);
837 void br_vlan_flush(struct net_bridge *br)
843 vg = br_vlan_group(br);
844 __vlan_flush(br, NULL, vg);
845 RCU_INIT_POINTER(br->vlgrp, NULL);
859 static void recalculate_group_addr(struct net_bridge *br)
861 if (br_opt_get(br, BROPT_GROUP_ADDR_SET))
864 spin_lock_bh(&br->lock);
865 if (!br_opt_get(br, BROPT_VLAN_ENABLED) ||
866 br->vlan_proto == htons(ETH_P_8021Q)) {
868 br->group_addr[5] = 0x00;
871 br->group_addr[5] = 0x08;
873 spin_unlock_bh(&br->lock);
877 void br_recalculate_fwd_mask(struct net_bridge *br)
879 if (!br_opt_get(br, BROPT_VLAN_ENABLED) ||
880 br->vlan_proto == htons(ETH_P_8021Q))
881 br->group_fwd_mask_required = BR_GROUPFWD_DEFAULT;
883 br->group_fwd_mask_required = BR_GROUPFWD_8021AD &
884 ~(1u << br->group_addr[5]);
887 int br_vlan_filter_toggle(struct net_bridge *br, unsigned long val,
891 .orig_dev = br->dev,
898 if (br_opt_get(br, BROPT_VLAN_ENABLED) == !!val)
901 br_opt_toggle(br, BROPT_VLAN_ENABLED, !!val);
903 err = switchdev_port_attr_set(br->dev, &attr, extack);
905 br_opt_toggle(br, BROPT_VLAN_ENABLED, !val);
909 br_manage_promisc(br);
910 recalculate_group_addr(br);
911 br_recalculate_fwd_mask(br);
912 if (!val && br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED)) {
913 br_info(br, "vlan filtering disabled, automatically disabling multicast vlan snooping\n");
914 br_multicast_toggle_vlan_snooping(br, false, NULL);
922 struct net_bridge *br = netdev_priv(dev);
924 return br_opt_get(br, BROPT_VLAN_ENABLED);
930 struct net_bridge *br = netdev_priv(dev);
932 *p_proto = ntohs(br->vlan_proto);
938 int __br_vlan_set_proto(struct net_bridge *br, __be16 proto,
942 .orig_dev = br->dev,
951 __be16 oldproto = br->vlan_proto;
953 if (br->vlan_proto == proto)
956 err = switchdev_port_attr_set(br->dev, &attr, extack);
961 list_for_each_entry(p, &br->port_list, list) {
972 br->vlan_proto = proto;
974 recalculate_group_addr(br);
975 br_recalculate_fwd_mask(br);
978 list_for_each_entry(p, &br->port_list, list) {
991 switchdev_port_attr_set(br->dev, &attr, NULL);
999 list_for_each_entry_continue_reverse(p, &br->port_list, list) {
1011 int br_vlan_set_proto(struct net_bridge *br, unsigned long val,
1017 return __br_vlan_set_proto(br, htons(val), extack);
1020 int br_vlan_set_stats(struct net_bridge *br, unsigned long val)
1025 br_opt_toggle(br, BROPT_VLAN_STATS_ENABLED, !!val);
1034 int br_vlan_set_stats_per_port(struct net_bridge *br, unsigned long val)
1039 list_for_each_entry(p, &br->port_list, list) {
1049 br_opt_toggle(br, BROPT_VLAN_STATS_PER_PORT, !!val);
1073 static void br_vlan_disable_default_pvid(struct net_bridge *br)
1076 u16 pvid = br->default_pvid;
1081 if (vlan_default_pvid(br_vlan_group(br), pvid)) {
1082 if (!br_vlan_delete(br, pvid))
1083 br_vlan_notify(br, NULL, pvid, 0, RTM_DELVLAN);
1086 list_for_each_entry(p, &br->port_list, list) {
1089 br_vlan_notify(br, p, pvid, 0, RTM_DELVLAN);
1092 br->default_pvid = 0;
1095 int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid,
1107 br_vlan_disable_default_pvid(br);
1115 old_pvid = br->default_pvid;
1120 vg = br_vlan_group(br);
1124 err = br_vlan_add(br, pvid,
1132 if (br_vlan_delete(br, old_pvid))
1133 br_vlan_notify(br, NULL, old_pvid, 0, RTM_DELVLAN);
1134 br_vlan_notify(br, NULL, pvid, 0, RTM_NEWVLAN);
1138 list_for_each_entry(p, &br->port_list, list) {
1155 br_vlan_notify(br, p, old_pvid, 0, RTM_DELVLAN);
1156 br_vlan_notify(p->br, p, pvid, 0, RTM_NEWVLAN);
1160 br->default_pvid = pvid;
1167 list_for_each_entry_continue_reverse(p, &br->port_list, list) {
1176 br_vlan_notify(p->br, p, old_pvid, 0, RTM_NEWVLAN);
1179 br_vlan_notify(br, p, pvid, 0, RTM_DELVLAN);
1184 br_vlan_add(br, old_pvid,
1189 br_vlan_notify(br, NULL, old_pvid, 0, RTM_NEWVLAN);
1191 br_vlan_delete(br, pvid);
1192 br_vlan_notify(br, NULL, pvid, 0, RTM_DELVLAN);
1197 int br_vlan_set_default_pvid(struct net_bridge *br, unsigned long val,
1206 if (pvid == br->default_pvid)
1210 if (br_opt_get(br, BROPT_VLAN_ENABLED)) {
1215 err = __br_vlan_set_default_pvid(br, pvid, extack);
1220 int br_vlan_init(struct net_bridge *br)
1235 br->vlan_proto = htons(ETH_P_8021Q);
1236 br->default_pvid = 1;
1237 rcu_assign_pointer(br->vlgrp, vg);
1253 .orig_dev = p->br->dev,
1256 .u.vlan_filtering = br_opt_get(p->br, BROPT_VLAN_ENABLED),
1277 if (p->br->default_pvid) {
1280 ret = nbp_vlan_add(p, p->br->default_pvid,
1286 br_vlan_notify(p->br, p, p->br->default_pvid, 0, RTM_NEWVLAN);
1362 br_fdb_find_delete_local(port->br, port, port->dev->dev_addr, vid);
1363 br_fdb_delete_by_port(port->br, port, vid, 0);
1375 __vlan_flush(port->br, port, vg);
1445 void br_vlan_fill_forward_path_pvid(struct net_bridge *br,
1455 if (!br_opt_get(br, BROPT_VLAN_ENABLED))
1458 vg = br_vlan_group(br);
1461 ctx->vlan[idx].proto == br->vlan_proto) {
1469 path->bridge.vlan_proto = br->vlan_proto;
1472 int br_vlan_fill_forward_path_mode(struct net_bridge *br,
1479 if (!br_opt_get(br, BROPT_VLAN_ENABLED))
1622 static void br_vlan_set_vlan_dev_state(const struct net_bridge *br,
1630 if (!netif_carrier_ok(br->dev)) {
1635 list_for_each_entry(p, &br->port_list, list) {
1656 vlan_dev = br_vlan_get_upper_bind_vlan_dev(p->br->dev,
1660 if (netif_carrier_ok(p->br->dev))
1663 br_vlan_set_vlan_dev_state(p->br, vlan_dev);
1672 struct net_bridge *br = netdev_priv(br_dev);
1675 br_opt_toggle(br, BROPT_VLAN_BRIDGE_BINDING, true);
1677 br_opt_toggle(br, BROPT_VLAN_BRIDGE_BINDING,
1685 struct net_bridge *br = netdev_priv(dev);
1692 br_vlan_set_vlan_dev_state(br, upper_dev);
1696 struct net_bridge *br;
1705 br_vlan_set_vlan_dev_state(data->br, vlan_dev);
1711 struct net_bridge *br)
1714 .br = br
1731 if (!br_opt_get(p->br, BROPT_VLAN_BRIDGE_BINDING))
1734 vlan_dev = br_vlan_get_upper_bind_vlan_dev(p->br->dev, vid);
1736 br_vlan_set_vlan_dev_state(p->br, vlan_dev);
1743 struct net_bridge *br = netdev_priv(dev);
1749 ret = br_vlan_add(br, br->default_pvid,
1756 changed = !br_vlan_delete(br, br->default_pvid);
1766 if (!br_opt_get(br, BROPT_VLAN_BRIDGE_BINDING))
1768 br_vlan_link_state_change(dev, br);
1772 br_vlan_notify(br, NULL, br->default_pvid, 0, vlcmd);
1782 struct net_bridge *br = netdev_priv(br_dev);
1796 br_vlan_set_vlan_dev_state(br, vlan_dev);
1804 if (!br_opt_get(p->br, BROPT_VLAN_BRIDGE_BINDING))
1905 void br_vlan_notify(const struct net_bridge *br,
1928 ifindex = br->dev->ifindex;
1929 vg = br_vlan_group(br);
1930 net = dev_net(br->dev);
1998 struct net_bridge *br;
2006 br = netdev_priv(dev);
2007 vg = br_vlan_group_rcu(br);
2018 br = p->br;
2184 struct net_bridge *br;
2187 br = netdev_priv(dev);
2188 vg = br_vlan_group(br);
2193 br = p->br;
2249 err = br_process_vlan_info(br, p, cmdmap, vinfo, &tmp_last,
2254 br_ifinfo_notify(cmdmap, br, p);
2272 err = br_vlan_process_options(br, p, range_start, range_end,