Lines Matching refs:br

34 	struct net_bridge *br;  in br_device_event()  local
59 br = p->br; in br_device_event()
63 br_mtu_auto_adjust(br); in br_device_event()
67 if (br->dev->addr_assign_type == NET_ADDR_SET) in br_device_event()
70 err = dev_pre_changeaddr_notify(br->dev, in br_device_event()
78 spin_lock_bh(&br->lock); in br_device_event()
80 changed_addr = br_stp_recalculate_bridge_id(br); in br_device_event()
81 spin_unlock_bh(&br->lock); in br_device_event()
84 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); in br_device_event()
93 netdev_update_features(br->dev); in br_device_event()
97 spin_lock_bh(&br->lock); in br_device_event()
98 if (br->dev->flags & IFF_UP) { in br_device_event()
102 spin_unlock_bh(&br->lock); in br_device_event()
106 if (netif_running(br->dev) && netif_oper_up(dev)) { in br_device_event()
107 spin_lock_bh(&br->lock); in br_device_event()
110 spin_unlock_bh(&br->lock); in br_device_event()
115 br_del_if(br, dev); in br_device_event()
130 call_netdevice_notifiers(event, br->dev); in br_device_event()
155 struct net_bridge *br; in br_switchdev_event() local
163 br = p->br; in br_switchdev_event()
168 err = br_fdb_external_learn_add(br, p, fdb_info->addr, in br_switchdev_event()
175 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
180 err = br_fdb_external_learn_del(br, p, fdb_info->addr, in br_switchdev_event()
187 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
193 br_fdb_delete_by_port(br, p, fdb_info->vid, 0); in br_switchdev_event()
257 int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, in br_boolopt_toggle() argument
264 br_opt_toggle(br, BROPT_NO_LL_LEARN, on); in br_boolopt_toggle()
267 err = br_multicast_toggle_vlan_snooping(br, on, extack); in br_boolopt_toggle()
270 err = br_mst_set_enabled(br, on, extack); in br_boolopt_toggle()
281 int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) in br_boolopt_get() argument
285 return br_opt_get(br, BROPT_NO_LL_LEARN); in br_boolopt_get()
287 return br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED); in br_boolopt_get()
289 return br_opt_get(br, BROPT_MST_ENABLED); in br_boolopt_get()
299 int br_boolopt_multi_toggle(struct net_bridge *br, in br_boolopt_multi_toggle() argument
310 err = br_boolopt_toggle(br, opt_id, on, extack); in br_boolopt_multi_toggle()
312 br_debug(br, "boolopt multi-toggle error: option: %d current: %d new: %d error: %d\n", in br_boolopt_multi_toggle()
313 opt_id, br_boolopt_get(br, opt_id), on, err); in br_boolopt_multi_toggle()
321 void br_boolopt_multi_get(const struct net_bridge *br, in br_boolopt_multi_get() argument
328 optval |= (br_boolopt_get(br, opt_id) << opt_id); in br_boolopt_multi_get()
335 void br_opt_toggle(struct net_bridge *br, enum net_bridge_opts opt, bool on) in br_opt_toggle() argument
337 bool cur = !!br_opt_get(br, opt); in br_opt_toggle()
339 br_debug(br, "toggle option: %d state: %d -> %d\n", in br_opt_toggle()
346 set_bit(opt, &br->options); in br_opt_toggle()
348 clear_bit(opt, &br->options); in br_opt_toggle()