Lines Matching refs:br
34 struct net_bridge *br; in br_device_event() local
66 br = p->br; in br_device_event()
70 br_mtu_auto_adjust(br); in br_device_event()
74 if (br->dev->addr_assign_type == NET_ADDR_SET) in br_device_event()
77 err = netif_pre_changeaddr_notify(br->dev, in br_device_event()
85 spin_lock_bh(&br->lock); in br_device_event()
87 changed_addr = br_stp_recalculate_bridge_id(br); in br_device_event()
88 spin_unlock_bh(&br->lock); in br_device_event()
91 call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev); in br_device_event()
100 netdev_update_features(br->dev); in br_device_event()
104 spin_lock_bh(&br->lock); in br_device_event()
105 if (br->dev->flags & IFF_UP) { in br_device_event()
109 spin_unlock_bh(&br->lock); in br_device_event()
113 if (netif_running(br->dev) && netif_oper_up(dev)) { in br_device_event()
114 spin_lock_bh(&br->lock); in br_device_event()
117 spin_unlock_bh(&br->lock); in br_device_event()
122 br_del_if(br, dev); in br_device_event()
137 call_netdevice_notifiers(event, br->dev); in br_device_event()
162 struct net_bridge *br; in br_switchdev_event() local
170 br = p->br; in br_switchdev_event()
175 err = br_fdb_external_learn_add(br, p, fdb_info->addr, in br_switchdev_event()
182 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
187 err = br_fdb_external_learn_del(br, p, fdb_info->addr, in br_switchdev_event()
194 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event()
200 br_fdb_delete_by_port(br, p, fdb_info->vid, 0); in br_switchdev_event()
272 int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, in br_boolopt_toggle() argument
279 br_opt_toggle(br, BROPT_NO_LL_LEARN, on); in br_boolopt_toggle()
282 err = br_multicast_toggle_vlan_snooping(br, on, extack); in br_boolopt_toggle()
285 err = br_mst_set_enabled(br, on, extack); in br_boolopt_toggle()
288 br_opt_toggle(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, on); in br_boolopt_toggle()
299 int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) in br_boolopt_get() argument
303 return br_opt_get(br, BROPT_NO_LL_LEARN); in br_boolopt_get()
305 return br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED); in br_boolopt_get()
307 return br_opt_get(br, BROPT_MST_ENABLED); in br_boolopt_get()
309 return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION); in br_boolopt_get()
319 int br_boolopt_multi_toggle(struct net_bridge *br, in br_boolopt_multi_toggle() argument
330 err = br_boolopt_toggle(br, opt_id, on, extack); in br_boolopt_multi_toggle()
332 br_debug(br, "boolopt multi-toggle error: option: %d current: %d new: %d error: %d\n", in br_boolopt_multi_toggle()
333 opt_id, br_boolopt_get(br, opt_id), on, err); in br_boolopt_multi_toggle()
341 void br_boolopt_multi_get(const struct net_bridge *br, in br_boolopt_multi_get() argument
348 optval |= (br_boolopt_get(br, opt_id) << opt_id); in br_boolopt_multi_get()
355 void br_opt_toggle(struct net_bridge *br, enum net_bridge_opts opt, bool on) in br_opt_toggle() argument
357 bool cur = !!br_opt_get(br, opt); in br_opt_toggle()
359 br_debug(br, "toggle option: %d state: %d -> %d\n", in br_opt_toggle()
366 set_bit(opt, &br->options); in br_opt_toggle()
368 clear_bit(opt, &br->options); in br_opt_toggle()