Lines Matching full:br
34 struct net_bridge *br; in br_device_event() local
40 struct net_bridge *br = netdev_priv(dev); in br_device_event() local
43 br_fdb_change_mac_address(br, dev->dev_addr); in br_device_event()
71 br = p->br; in br_device_event()
75 br_mtu_auto_adjust(br); in br_device_event()
79 if (br->dev->addr_assign_type == NET_ADDR_SET) in br_device_event()
82 err = netif_pre_changeaddr_notify(br->dev, in br_device_event()
90 spin_lock_bh(&br->lock); in br_device_event()
92 changed_addr = br_stp_recalculate_bridge_id(br); in br_device_event()
93 spin_unlock_bh(&br->lock); in br_device_event()
96 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); in br_device_event()
105 netdev_update_features(br->dev); in br_device_event()
109 spin_lock_bh(&br->lock); in br_device_event()
110 if (br->dev->flags & IFF_UP) { in br_device_event()
114 spin_unlock_bh(&br->lock); in br_device_event()
118 if (netif_running(br->dev) && netif_oper_up(dev)) { in br_device_event()
119 spin_lock_bh(&br->lock); in br_device_event()
122 spin_unlock_bh(&br->lock); in br_device_event()
127 br_del_if(br, dev); in br_device_event()
142 call_netdevice_notifiers(event, br->dev); in br_device_event()
167 struct net_bridge *br; in br_switchdev_event() local
175 br = p->br; in br_switchdev_event()
180 err = br_fdb_external_learn_add(br, p, fdb_info->addr, in br_switchdev_event()
187 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
192 err = br_fdb_external_learn_del(br, p, fdb_info->addr, in br_switchdev_event()
199 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
205 br_fdb_delete_by_port(br, p, fdb_info->vid, 0); in br_switchdev_event()
268 br_toggle_fdb_local_vlan_0(struct net_bridge *br, bool on, in br_toggle_fdb_local_vlan_0() argument
273 if (br_opt_get(br, BROPT_FDB_LOCAL_VLAN_0) == on) in br_toggle_fdb_local_vlan_0()
276 err = br_fdb_toggle_local_vlan_0(br, on, extack); in br_toggle_fdb_local_vlan_0()
280 br_opt_toggle(br, BROPT_FDB_LOCAL_VLAN_0, on); in br_toggle_fdb_local_vlan_0()
286 * @br: bridge device
294 int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, in br_boolopt_toggle() argument
301 br_opt_toggle(br, BROPT_NO_LL_LEARN, on); in br_boolopt_toggle()
304 err = br_multicast_toggle_vlan_snooping(br, on, extack); in br_boolopt_toggle()
307 err = br_mst_set_enabled(br, on, extack); in br_boolopt_toggle()
310 br_opt_toggle(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, on); in br_boolopt_toggle()
313 err = br_toggle_fdb_local_vlan_0(br, on, extack); in br_boolopt_toggle()
324 int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) in br_boolopt_get() argument
328 return br_opt_get(br, BROPT_NO_LL_LEARN); in br_boolopt_get()
330 return br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED); in br_boolopt_get()
332 return br_opt_get(br, BROPT_MST_ENABLED); in br_boolopt_get()
334 return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION); in br_boolopt_get()
336 return br_opt_get(br, BROPT_FDB_LOCAL_VLAN_0); in br_boolopt_get()
346 int br_boolopt_multi_toggle(struct net_bridge *br, in br_boolopt_multi_toggle() argument
364 err = br_boolopt_toggle(br, opt_id, on, extack); in br_boolopt_multi_toggle()
366 br_debug(br, "boolopt multi-toggle error: option: %d current: %d new: %d error: %d\n", in br_boolopt_multi_toggle()
367 opt_id, br_boolopt_get(br, opt_id), on, err); in br_boolopt_multi_toggle()
375 void br_boolopt_multi_get(const struct net_bridge *br, in br_boolopt_multi_get() argument
382 optval |= (br_boolopt_get(br, opt_id) << opt_id); in br_boolopt_multi_get()
389 void br_opt_toggle(struct net_bridge *br, enum net_bridge_opts opt, bool on) in br_opt_toggle() argument
391 bool cur = !!br_opt_get(br, opt); in br_opt_toggle()
393 br_debug(br, "toggle option: %d state: %d -> %d\n", in br_opt_toggle()
400 set_bit(opt, &br->options); in br_opt_toggle()
402 clear_bit(opt, &br->options); in br_opt_toggle()