• Home
  • Raw
  • Download

Lines Matching refs:br

69 		vg = br_vlan_group(v->br);  in __vlan_add_flags()
86 static int __vlan_vid_add(struct net_device *dev, struct net_bridge *br, in __vlan_vid_add() argument
97 return vlan_vid_add(dev, br->vlan_proto, v->vid); in __vlan_vid_add()
109 vg = br_vlan_group(v->br); in __vlan_add_list()
127 static int __vlan_vid_del(struct net_device *dev, struct net_bridge *br, in __vlan_vid_del() argument
137 vlan_vid_del(dev, br->vlan_proto, v->vid); in __vlan_vid_del()
145 br_vlan_get_master(struct net_bridge *br, u16 vid, in br_vlan_get_master() argument
151 vg = br_vlan_group(br); in br_vlan_get_master()
157 if (br_vlan_add(br, vid, 0, &changed, extack)) in br_vlan_get_master()
188 vg = br_vlan_group(masterv->br); in br_vlan_put_master()
230 struct net_bridge *br; in __vlan_add() local
234 br = v->br; in __vlan_add()
235 dev = br->dev; in __vlan_add()
236 vg = br_vlan_group(br); in __vlan_add()
239 br = p->br; in __vlan_add()
249 err = __vlan_vid_add(dev, br, v, flags, extack); in __vlan_add()
257 err = br_vlan_add(br, v->vid, in __vlan_add()
264 br_vlan_notify(br, NULL, v->vid, 0, in __vlan_add()
268 masterv = br_vlan_get_master(br, v->vid, extack); in __vlan_add()
274 if (br_opt_get(br, BROPT_VLAN_STATS_PER_PORT)) { in __vlan_add()
290 br_multicast_ctx_init(br, v, &v->br_mcast_ctx); in __vlan_add()
296 err = br_fdb_insert(br, p, dev->dev_addr, v->vid); in __vlan_add()
298 br_err(br, "failed insert local address into bridge forwarding table\n"); in __vlan_add()
323 br_fdb_find_delete_local(br, p, dev->dev_addr, v->vid); in __vlan_add()
329 __vlan_vid_del(dev, br, v); in __vlan_add()
353 vg = br_vlan_group(v->br); in __vlan_del()
362 err = __vlan_vid_del(p->dev, p->br, v); in __vlan_del()
366 err = br_switchdev_port_vlan_del(v->br->dev, v->vid); in __vlan_del()
401 static void __vlan_flush(const struct net_bridge *br, in __vlan_flush() argument
415 br_vlan_notify(br, p, v_start, v_end, RTM_DELVLAN); in __vlan_flush()
425 br_vlan_notify(br, p, v_start, v_end, RTM_DELVLAN); in __vlan_flush()
428 struct sk_buff *br_handle_vlan(struct net_bridge *br, in br_handle_vlan() argument
453 if ((br->dev->flags & IFF_PROMISC) && skb->dev == br->dev) { in br_handle_vlan()
460 if (br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) { in br_handle_vlan()
489 static bool __allowed_ingress(const struct net_bridge *br, in __allowed_ingress() argument
505 skb->protocol == br->vlan_proto)) { in __allowed_ingress()
513 if (skb->vlan_proto != br->vlan_proto) { in __allowed_ingress()
549 __vlan_hwaccel_put_tag(skb, br->vlan_proto, pvid); in __allowed_ingress()
559 if (!br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED) && in __allowed_ingress()
560 !br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) { in __allowed_ingress()
579 if (br_opt_get(br, BROPT_VLAN_STATS_ENABLED)) { in __allowed_ingress()
596 bool br_allowed_ingress(const struct net_bridge *br, in br_allowed_ingress() argument
605 if (!br_opt_get(br, BROPT_VLAN_ENABLED)) { in br_allowed_ingress()
610 return __allowed_ingress(br, vg, skb, vid, state, vlan); in br_allowed_ingress()
637 struct net_bridge *br = p->br; in br_should_learn() local
641 if (!br_opt_get(br, BROPT_VLAN_ENABLED)) in br_should_learn()
648 if (!br_vlan_get_tag(skb, vid) && skb->vlan_proto != br->vlan_proto) in br_should_learn()
667 static int br_vlan_add_existing(struct net_bridge *br, in br_vlan_add_existing() argument
675 err = br_switchdev_port_vlan_add(br->dev, vlan->vid, flags, extack); in br_vlan_add_existing()
686 err = br_fdb_insert(br, NULL, br->dev->dev_addr, in br_vlan_add_existing()
689 br_err(br, "failed to insert local address into bridge forwarding table\n"); in br_vlan_add_existing()
707 br_switchdev_port_vlan_del(br->dev, vlan->vid); in br_vlan_add_existing()
715 int br_vlan_add(struct net_bridge *br, u16 vid, u16 flags, bool *changed, in br_vlan_add() argument
725 vg = br_vlan_group(br); in br_vlan_add()
728 return br_vlan_add_existing(br, vg, vlan, flags, changed, in br_vlan_add()
743 vlan->br = br; in br_vlan_add()
760 int br_vlan_delete(struct net_bridge *br, u16 vid) in br_vlan_delete() argument
767 vg = br_vlan_group(br); in br_vlan_delete()
772 br_fdb_find_delete_local(br, NULL, br->dev->dev_addr, vid); in br_vlan_delete()
773 br_fdb_delete_by_port(br, NULL, vid, 0); in br_vlan_delete()
780 void br_vlan_flush(struct net_bridge *br) in br_vlan_flush() argument
786 vg = br_vlan_group(br); in br_vlan_flush()
787 __vlan_flush(br, NULL, vg); in br_vlan_flush()
788 RCU_INIT_POINTER(br->vlgrp, NULL); in br_vlan_flush()
802 static void recalculate_group_addr(struct net_bridge *br) in recalculate_group_addr() argument
804 if (br_opt_get(br, BROPT_GROUP_ADDR_SET)) in recalculate_group_addr()
807 spin_lock_bh(&br->lock); in recalculate_group_addr()
808 if (!br_opt_get(br, BROPT_VLAN_ENABLED) || in recalculate_group_addr()
809 br->vlan_proto == htons(ETH_P_8021Q)) { in recalculate_group_addr()
811 br->group_addr[5] = 0x00; in recalculate_group_addr()
814 br->group_addr[5] = 0x08; in recalculate_group_addr()
816 spin_unlock_bh(&br->lock); in recalculate_group_addr()
820 void br_recalculate_fwd_mask(struct net_bridge *br) in br_recalculate_fwd_mask() argument
822 if (!br_opt_get(br, BROPT_VLAN_ENABLED) || in br_recalculate_fwd_mask()
823 br->vlan_proto == htons(ETH_P_8021Q)) in br_recalculate_fwd_mask()
824 br->group_fwd_mask_required = BR_GROUPFWD_DEFAULT; in br_recalculate_fwd_mask()
826 br->group_fwd_mask_required = BR_GROUPFWD_8021AD & in br_recalculate_fwd_mask()
827 ~(1u << br->group_addr[5]); in br_recalculate_fwd_mask()
830 int br_vlan_filter_toggle(struct net_bridge *br, unsigned long val, in br_vlan_filter_toggle() argument
834 .orig_dev = br->dev, in br_vlan_filter_toggle()
841 if (br_opt_get(br, BROPT_VLAN_ENABLED) == !!val) in br_vlan_filter_toggle()
844 br_opt_toggle(br, BROPT_VLAN_ENABLED, !!val); in br_vlan_filter_toggle()
846 err = switchdev_port_attr_set(br->dev, &attr, extack); in br_vlan_filter_toggle()
848 br_opt_toggle(br, BROPT_VLAN_ENABLED, !val); in br_vlan_filter_toggle()
852 br_manage_promisc(br); in br_vlan_filter_toggle()
853 recalculate_group_addr(br); in br_vlan_filter_toggle()
854 br_recalculate_fwd_mask(br); in br_vlan_filter_toggle()
855 if (!val && br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED)) { in br_vlan_filter_toggle()
856 br_info(br, "vlan filtering disabled, automatically disabling multicast vlan snooping\n"); in br_vlan_filter_toggle()
857 br_multicast_toggle_vlan_snooping(br, false, NULL); in br_vlan_filter_toggle()
865 struct net_bridge *br = netdev_priv(dev); in br_vlan_enabled() local
867 return br_opt_get(br, BROPT_VLAN_ENABLED); in br_vlan_enabled()
873 struct net_bridge *br = netdev_priv(dev); in br_vlan_get_proto() local
875 *p_proto = ntohs(br->vlan_proto); in br_vlan_get_proto()
881 int __br_vlan_set_proto(struct net_bridge *br, __be16 proto, in __br_vlan_set_proto() argument
885 .orig_dev = br->dev, in __br_vlan_set_proto()
894 __be16 oldproto = br->vlan_proto; in __br_vlan_set_proto()
896 if (br->vlan_proto == proto) in __br_vlan_set_proto()
899 err = switchdev_port_attr_set(br->dev, &attr, extack); in __br_vlan_set_proto()
904 list_for_each_entry(p, &br->port_list, list) { in __br_vlan_set_proto()
915 br->vlan_proto = proto; in __br_vlan_set_proto()
917 recalculate_group_addr(br); in __br_vlan_set_proto()
918 br_recalculate_fwd_mask(br); in __br_vlan_set_proto()
921 list_for_each_entry(p, &br->port_list, list) { in __br_vlan_set_proto()
934 switchdev_port_attr_set(br->dev, &attr, NULL); in __br_vlan_set_proto()
942 list_for_each_entry_continue_reverse(p, &br->port_list, list) { in __br_vlan_set_proto()
954 int br_vlan_set_proto(struct net_bridge *br, unsigned long val, in br_vlan_set_proto() argument
960 return __br_vlan_set_proto(br, htons(val), extack); in br_vlan_set_proto()
963 int br_vlan_set_stats(struct net_bridge *br, unsigned long val) in br_vlan_set_stats() argument
968 br_opt_toggle(br, BROPT_VLAN_STATS_ENABLED, !!val); in br_vlan_set_stats()
977 int br_vlan_set_stats_per_port(struct net_bridge *br, unsigned long val) in br_vlan_set_stats_per_port() argument
982 list_for_each_entry(p, &br->port_list, list) { in br_vlan_set_stats_per_port()
992 br_opt_toggle(br, BROPT_VLAN_STATS_PER_PORT, !!val); in br_vlan_set_stats_per_port()
1016 static void br_vlan_disable_default_pvid(struct net_bridge *br) in br_vlan_disable_default_pvid() argument
1019 u16 pvid = br->default_pvid; in br_vlan_disable_default_pvid()
1024 if (vlan_default_pvid(br_vlan_group(br), pvid)) { in br_vlan_disable_default_pvid()
1025 if (!br_vlan_delete(br, pvid)) in br_vlan_disable_default_pvid()
1026 br_vlan_notify(br, NULL, pvid, 0, RTM_DELVLAN); in br_vlan_disable_default_pvid()
1029 list_for_each_entry(p, &br->port_list, list) { in br_vlan_disable_default_pvid()
1032 br_vlan_notify(br, p, pvid, 0, RTM_DELVLAN); in br_vlan_disable_default_pvid()
1035 br->default_pvid = 0; in br_vlan_disable_default_pvid()
1038 int __br_vlan_set_default_pvid(struct net_bridge *br, u16 pvid, in __br_vlan_set_default_pvid() argument
1050 br_vlan_disable_default_pvid(br); in __br_vlan_set_default_pvid()
1058 old_pvid = br->default_pvid; in __br_vlan_set_default_pvid()
1063 vg = br_vlan_group(br); in __br_vlan_set_default_pvid()
1067 err = br_vlan_add(br, pvid, in __br_vlan_set_default_pvid()
1075 if (br_vlan_delete(br, old_pvid)) in __br_vlan_set_default_pvid()
1076 br_vlan_notify(br, NULL, old_pvid, 0, RTM_DELVLAN); in __br_vlan_set_default_pvid()
1077 br_vlan_notify(br, NULL, pvid, 0, RTM_NEWVLAN); in __br_vlan_set_default_pvid()
1081 list_for_each_entry(p, &br->port_list, list) { in __br_vlan_set_default_pvid()
1098 br_vlan_notify(br, p, old_pvid, 0, RTM_DELVLAN); in __br_vlan_set_default_pvid()
1099 br_vlan_notify(p->br, p, pvid, 0, RTM_NEWVLAN); in __br_vlan_set_default_pvid()
1103 br->default_pvid = pvid; in __br_vlan_set_default_pvid()
1110 list_for_each_entry_continue_reverse(p, &br->port_list, list) { in __br_vlan_set_default_pvid()
1119 br_vlan_notify(p->br, p, old_pvid, 0, RTM_NEWVLAN); in __br_vlan_set_default_pvid()
1122 br_vlan_notify(br, p, pvid, 0, RTM_DELVLAN); in __br_vlan_set_default_pvid()
1127 br_vlan_add(br, old_pvid, in __br_vlan_set_default_pvid()
1132 br_vlan_notify(br, NULL, old_pvid, 0, RTM_NEWVLAN); in __br_vlan_set_default_pvid()
1134 br_vlan_delete(br, pvid); in __br_vlan_set_default_pvid()
1135 br_vlan_notify(br, NULL, pvid, 0, RTM_DELVLAN); in __br_vlan_set_default_pvid()
1140 int br_vlan_set_default_pvid(struct net_bridge *br, unsigned long val, in br_vlan_set_default_pvid() argument
1149 if (pvid == br->default_pvid) in br_vlan_set_default_pvid()
1153 if (br_opt_get(br, BROPT_VLAN_ENABLED)) { in br_vlan_set_default_pvid()
1158 err = __br_vlan_set_default_pvid(br, pvid, extack); in br_vlan_set_default_pvid()
1163 int br_vlan_init(struct net_bridge *br) in br_vlan_init() argument
1178 br->vlan_proto = htons(ETH_P_8021Q); in br_vlan_init()
1179 br->default_pvid = 1; in br_vlan_init()
1180 rcu_assign_pointer(br->vlgrp, vg); in br_vlan_init()
1196 .orig_dev = p->br->dev, in nbp_vlan_init()
1199 .u.vlan_filtering = br_opt_get(p->br, BROPT_VLAN_ENABLED), in nbp_vlan_init()
1220 if (p->br->default_pvid) { in nbp_vlan_init()
1223 ret = nbp_vlan_add(p, p->br->default_pvid, in nbp_vlan_init()
1229 br_vlan_notify(p->br, p, p->br->default_pvid, 0, RTM_NEWVLAN); in nbp_vlan_init()
1298 br_fdb_find_delete_local(port->br, port, port->dev->dev_addr, vid); in nbp_vlan_delete()
1299 br_fdb_delete_by_port(port->br, port, vid, 0); in nbp_vlan_delete()
1311 __vlan_flush(port->br, port, vg); in nbp_vlan_flush()
1381 void br_vlan_fill_forward_path_pvid(struct net_bridge *br, in br_vlan_fill_forward_path_pvid() argument
1391 if (!br_opt_get(br, BROPT_VLAN_ENABLED)) in br_vlan_fill_forward_path_pvid()
1394 vg = br_vlan_group(br); in br_vlan_fill_forward_path_pvid()
1397 ctx->vlan[idx].proto == br->vlan_proto) { in br_vlan_fill_forward_path_pvid()
1405 path->bridge.vlan_proto = br->vlan_proto; in br_vlan_fill_forward_path_pvid()
1408 int br_vlan_fill_forward_path_mode(struct net_bridge *br, in br_vlan_fill_forward_path_mode() argument
1415 if (!br_opt_get(br, BROPT_VLAN_ENABLED)) in br_vlan_fill_forward_path_mode()
1558 static void br_vlan_set_vlan_dev_state(const struct net_bridge *br, in br_vlan_set_vlan_dev_state() argument
1566 if (!netif_carrier_ok(br->dev)) { in br_vlan_set_vlan_dev_state()
1571 list_for_each_entry(p, &br->port_list, list) { in br_vlan_set_vlan_dev_state()
1592 vlan_dev = br_vlan_get_upper_bind_vlan_dev(p->br->dev, in br_vlan_set_all_vlan_dev_state()
1596 if (netif_carrier_ok(p->br->dev)) in br_vlan_set_all_vlan_dev_state()
1599 br_vlan_set_vlan_dev_state(p->br, vlan_dev); in br_vlan_set_all_vlan_dev_state()
1609 struct net_bridge *br = netdev_priv(dev); in br_vlan_upper_change() local
1615 br_vlan_set_vlan_dev_state(br, upper_dev); in br_vlan_upper_change()
1616 br_opt_toggle(br, BROPT_VLAN_BRIDGE_BINDING, true); in br_vlan_upper_change()
1618 br_opt_toggle(br, BROPT_VLAN_BRIDGE_BINDING, in br_vlan_upper_change()
1624 struct net_bridge *br; member
1633 br_vlan_set_vlan_dev_state(data->br, vlan_dev); in br_vlan_link_state_change_fn()
1639 struct net_bridge *br) in br_vlan_link_state_change() argument
1642 .br = br in br_vlan_link_state_change()
1659 if (!br_opt_get(p->br, BROPT_VLAN_BRIDGE_BINDING)) in nbp_vlan_set_vlan_dev_state()
1662 vlan_dev = br_vlan_get_upper_bind_vlan_dev(p->br->dev, vid); in nbp_vlan_set_vlan_dev_state()
1664 br_vlan_set_vlan_dev_state(p->br, vlan_dev); in nbp_vlan_set_vlan_dev_state()
1671 struct net_bridge *br = netdev_priv(dev); in br_vlan_bridge_event() local
1677 ret = br_vlan_add(br, br->default_pvid, in br_vlan_bridge_event()
1684 changed = !br_vlan_delete(br, br->default_pvid); in br_vlan_bridge_event()
1694 if (!br_opt_get(br, BROPT_VLAN_BRIDGE_BINDING)) in br_vlan_bridge_event()
1696 br_vlan_link_state_change(dev, br); in br_vlan_bridge_event()
1700 br_vlan_notify(br, NULL, br->default_pvid, 0, vlcmd); in br_vlan_bridge_event()
1708 if (!br_opt_get(p->br, BROPT_VLAN_BRIDGE_BINDING)) in br_vlan_port_event()
1804 void br_vlan_notify(const struct net_bridge *br, in br_vlan_notify() argument
1827 ifindex = br->dev->ifindex; in br_vlan_notify()
1828 vg = br_vlan_group(br); in br_vlan_notify()
1829 net = dev_net(br->dev); in br_vlan_notify()
1902 struct net_bridge *br; in br_vlan_replay() local
1919 br = netdev_priv(dev); in br_vlan_replay()
1920 vg = br_vlan_group(br); in br_vlan_replay()
1927 br = p->br; in br_vlan_replay()
1981 struct net_bridge *br; in br_vlan_dump_dev() local
1989 br = netdev_priv(dev); in br_vlan_dump_dev()
1990 vg = br_vlan_group_rcu(br); in br_vlan_dump_dev()
2001 br = p->br; in br_vlan_dump_dev()
2164 struct net_bridge *br; in br_vlan_rtm_process_one() local
2167 br = netdev_priv(dev); in br_vlan_rtm_process_one()
2168 vg = br_vlan_group(br); in br_vlan_rtm_process_one()
2173 br = p->br; in br_vlan_rtm_process_one()
2229 err = br_process_vlan_info(br, p, cmdmap, vinfo, &tmp_last, in br_vlan_rtm_process_one()
2234 br_ifinfo_notify(cmdmap, br, p); in br_vlan_rtm_process_one()
2252 err = br_vlan_process_options(br, p, range_start, range_end, in br_vlan_rtm_process_one()