| /linux/drivers/net/ethernet/microchip/lan966x/ |
| H A D | lan966x_fdb.c | 9 struct switchdev_notifier_fdb_info fdb_info; member 25 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_find_entry() argument 30 if (fdb_entry->vid == fdb_info->vid && in lan966x_fdb_find_entry() 31 ether_addr_equal(fdb_entry->mac, fdb_info->addr)) in lan966x_fdb_find_entry() 39 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_add_entry() argument 43 fdb_entry = lan966x_fdb_find_entry(lan966x, fdb_info); in lan966x_fdb_add_entry() 53 ether_addr_copy(fdb_entry->mac, fdb_info->addr); in lan966x_fdb_add_entry() 54 fdb_entry->vid = fdb_info->vid; in lan966x_fdb_add_entry() 60 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_del_entry() argument 66 if (fdb_entry->vid == fdb_info->vid && in lan966x_fdb_del_entry() [all …]
|
| H A D | lan966x_main.h | 521 const struct switchdev_notifier_fdb_info *fdb_info);
|
| /linux/net/bridge/ |
| H A D | br.c | 168 struct switchdev_notifier_fdb_info *fdb_info; in br_switchdev_event() local 179 fdb_info = ptr; in br_switchdev_event() 180 err = br_fdb_external_learn_add(br, p, fdb_info->addr, in br_switchdev_event() 181 fdb_info->vid, in br_switchdev_event() 182 fdb_info->locked, false); in br_switchdev_event() 187 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event() 188 fdb_info->vid, fdb_info->offloaded); in br_switchdev_event() 191 fdb_info = ptr; in br_switchdev_event() 192 err = br_fdb_external_learn_del(br, p, fdb_info->addr, in br_switchdev_event() 193 fdb_info->vid, false); in br_switchdev_event() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
| H A D | bridge.c | 16 struct switchdev_notifier_fdb_info fdb_info; member 356 kfree(fdb_work->fdb_info.addr); in mlx5_esw_bridge_cleanup_switchdev_fdb_work() 364 struct switchdev_notifier_fdb_info *fdb_info = in mlx5_esw_bridge_switchdev_fdb_event_work() local 365 &fdb_work->fdb_info; in mlx5_esw_bridge_switchdev_fdb_event_work() 379 fdb_info); in mlx5_esw_bridge_switchdev_fdb_event_work() 382 fdb_info); in mlx5_esw_bridge_switchdev_fdb_event_work() 391 struct switchdev_notifier_fdb_info *fdb_info, in mlx5_esw_bridge_init_switchdev_fdb_work() argument 402 memcpy(&work->fdb_info, fdb_info, sizeof(work->fdb_info)); in mlx5_esw_bridge_init_switchdev_fdb_work() 409 ether_addr_copy(addr, fdb_info->addr); in mlx5_esw_bridge_init_switchdev_fdb_work() 410 work->fdb_info.addr = addr; in mlx5_esw_bridge_init_switchdev_fdb_work() [all …]
|
| /linux/drivers/net/ethernet/ti/icssm/ |
| H A D | icssm_switchdev.c | 22 struct switchdev_notifier_fdb_info fdb_info; member 113 fdb = &switchdev_work->fdb_info; in icssm_sw_event_work() 128 fdb = &switchdev_work->fdb_info; in icssm_sw_event_work() 146 kfree(switchdev_work->fdb_info.addr); in icssm_sw_event_work() 155 struct switchdev_notifier_fdb_info *fdb_info = ptr; in icssm_prueth_sw_switchdev_event() local 181 memcpy(&switchdev_work->fdb_info, ptr, in icssm_prueth_sw_switchdev_event() 182 sizeof(switchdev_work->fdb_info)); in icssm_prueth_sw_switchdev_event() 183 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in icssm_prueth_sw_switchdev_event() 184 if (!switchdev_work->fdb_info.addr) in icssm_prueth_sw_switchdev_event() 186 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in icssm_prueth_sw_switchdev_event() [all …]
|
| /linux/drivers/net/ethernet/microchip/sparx5/ |
| H A D | sparx5_switchdev.c | 17 struct switchdev_notifier_fdb_info fdb_info; member 328 struct switchdev_notifier_fdb_info *fdb_info; in sparx5_switchdev_bridge_fdb_event_work() local 344 fdb_info = &switchdev_work->fdb_info; in sparx5_switchdev_bridge_fdb_event_work() 349 if (fdb_info->vid == 0) in sparx5_switchdev_bridge_fdb_event_work() 352 vid = fdb_info->vid; in sparx5_switchdev_bridge_fdb_event_work() 359 fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 362 fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 365 sparx5_del_mact_entry(sparx5, fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 370 kfree(switchdev_work->fdb_info.addr); in sparx5_switchdev_bridge_fdb_event_work() 385 struct switchdev_notifier_fdb_info *fdb_info; in sparx5_switchdev_event() local [all …]
|
| /linux/drivers/net/ethernet/ti/icssg/ |
| H A D | icssg_switchdev.c | 21 struct switchdev_notifier_fdb_info fdb_info; member 137 fdb = &switchdev_work->fdb_info; in prueth_switchdev_event_work() 154 fdb = &switchdev_work->fdb_info; in prueth_switchdev_event_work() 172 kfree(switchdev_work->fdb_info.addr); in prueth_switchdev_event_work() 182 struct switchdev_notifier_fdb_info *fdb_info = ptr; in prueth_switchdev_event() local 207 memcpy(&switchdev_work->fdb_info, ptr, in prueth_switchdev_event() 208 sizeof(switchdev_work->fdb_info)); in prueth_switchdev_event() 209 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in prueth_switchdev_event() 210 if (!switchdev_work->fdb_info.addr) in prueth_switchdev_event() 212 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in prueth_switchdev_event() [all …]
|
| /linux/drivers/net/ethernet/ti/ |
| H A D | cpsw_switchdev.c | 22 struct switchdev_notifier_fdb_info fdb_info; member 388 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work() 404 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work() 423 kfree(switchdev_work->fdb_info.addr); in cpsw_switchdev_event_work() 433 struct switchdev_notifier_fdb_info *fdb_info = ptr; in cpsw_switchdev_event() local 459 memcpy(&switchdev_work->fdb_info, ptr, in cpsw_switchdev_event() 460 sizeof(switchdev_work->fdb_info)); in cpsw_switchdev_event() 461 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in cpsw_switchdev_event() 462 if (!switchdev_work->fdb_info.addr) in cpsw_switchdev_event() 464 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in cpsw_switchdev_event() [all …]
|
| H A D | am65-cpsw-switchdev.c | 20 struct switchdev_notifier_fdb_info fdb_info; member 378 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work() 394 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work() 413 kfree(switchdev_work->fdb_info.addr); in am65_cpsw_switchdev_event_work() 425 struct switchdev_notifier_fdb_info *fdb_info = ptr; in am65_cpsw_switchdev_event() local 449 memcpy(&switchdev_work->fdb_info, ptr, in am65_cpsw_switchdev_event() 450 sizeof(switchdev_work->fdb_info)); in am65_cpsw_switchdev_event() 451 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in am65_cpsw_switchdev_event() 452 if (!switchdev_work->fdb_info.addr) in am65_cpsw_switchdev_event() 454 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in am65_cpsw_switchdev_event() [all …]
|
| /linux/drivers/net/ethernet/marvell/prestera/ |
| H A D | prestera_switchdev.c | 24 struct switchdev_notifier_fdb_info fdb_info; member 1217 struct switchdev_notifier_fdb_info *fdb_info, in prestera_port_fdb_set() argument 1233 vid = fdb_info->vid; in prestera_port_fdb_set() 1238 err = prestera_fdb_add(port, fdb_info->addr, vid, false); in prestera_port_fdb_set() 1240 err = prestera_fdb_del(port, fdb_info->addr, vid); in prestera_port_fdb_set() 1247 struct switchdev_notifier_fdb_info *fdb_info; in prestera_fdb_event_work() local 1264 fdb_info = &swdev_work->fdb_info; in prestera_fdb_event_work() 1265 if (!fdb_info->added_by_user || fdb_info->is_local) in prestera_fdb_event_work() 1268 err = prestera_port_fdb_set(port, fdb_info, true); in prestera_fdb_event_work() 1272 prestera_fdb_offload_notify(port, fdb_info); in prestera_fdb_event_work() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| H A D | bridge.h | 64 struct switchdev_notifier_fdb_info *fdb_info); 67 struct switchdev_notifier_fdb_info *fdb_info); 70 struct switchdev_notifier_fdb_info *fdb_info); 73 struct switchdev_notifier_fdb_info *fdb_info);
|
| H A D | bridge.c | 1734 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_update_used() argument 1743 entry = mlx5_esw_bridge_fdb_lookup(bridge, fdb_info->addr, fdb_info->vid); in mlx5_esw_bridge_fdb_update_used() 1747 fdb_info->addr, fdb_info->vid, vport_num); in mlx5_esw_bridge_fdb_update_used() 1756 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_mark_deleted() argument 1765 entry = mlx5_esw_bridge_fdb_lookup(bridge, fdb_info->addr, fdb_info->vid); in mlx5_esw_bridge_fdb_mark_deleted() 1769 fdb_info->addr, fdb_info->vid, vport_num); in mlx5_esw_bridge_fdb_mark_deleted() 1778 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_create() argument 1789 entry = mlx5_esw_bridge_fdb_entry_init(dev, vport_num, esw_owner_vhca_id, fdb_info->addr, in mlx5_esw_bridge_fdb_create() 1790 fdb_info->vid, fdb_info->added_by_user, in mlx5_esw_bridge_fdb_create() 1807 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_remove() argument [all …]
|
| /linux/include/net/ |
| H A D | switchdev.h | 284 switchdev_fdb_is_dynamically_learned(const struct switchdev_notifier_fdb_info *fdb_info) in switchdev_fdb_is_dynamically_learned() argument 286 return !fdb_info->added_by_user && !fdb_info->is_local; in switchdev_fdb_is_dynamically_learned() 333 const struct switchdev_notifier_fdb_info *fdb_info, 339 const struct switchdev_notifier_fdb_info *fdb_info)); 460 const struct switchdev_notifier_fdb_info *fdb_info, in switchdev_handle_fdb_event_to_device() argument 466 const struct switchdev_notifier_fdb_info *fdb_info)) in switchdev_handle_fdb_event_to_device()
|
| H A D | vxlan.h | 506 struct switchdev_notifier_vxlan_fdb_info *fdb_info); 515 struct switchdev_notifier_vxlan_fdb_info *fdb_info) in vxlan_fdb_find_uc() argument
|
| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_eswitch_br.c | 348 struct switchdev_notifier_fdb_info fdb_info = { in ice_eswitch_br_fdb_offload_notify() local 354 call_switchdev_notifiers(val, dev, &fdb_info.info, NULL); in ice_eswitch_br_fdb_offload_notify() 470 kfree(fdb_work->fdb_info.addr); in ice_eswitch_br_fdb_work_dealloc() 478 bool added_by_user = fdb_work->fdb_info.added_by_user; in ice_eswitch_br_fdb_event_work() 479 const unsigned char *mac = fdb_work->fdb_info.addr; in ice_eswitch_br_fdb_event_work() 480 u16 vid = fdb_work->fdb_info.vid; in ice_eswitch_br_fdb_event_work() 509 ice_eswitch_br_fdb_work_alloc(struct switchdev_notifier_fdb_info *fdb_info, in ice_eswitch_br_fdb_work_alloc() argument 521 memcpy(&work->fdb_info, fdb_info, sizeof(work->fdb_info)); in ice_eswitch_br_fdb_work_alloc() 529 ether_addr_copy(mac, fdb_info->addr); in ice_eswitch_br_fdb_work_alloc() 530 work->fdb_info.addr = mac; in ice_eswitch_br_fdb_work_alloc() [all …]
|
| H A D | ice_eswitch_br.h | 82 struct switchdev_notifier_fdb_info fdb_info; member
|
| /linux/net/switchdev/ |
| H A D | switchdev.c | 630 const struct switchdev_notifier_fdb_info *fdb_info, in __switchdev_handle_fdb_event_to_device() argument 636 const struct switchdev_notifier_fdb_info *fdb_info)) in __switchdev_handle_fdb_event_to_device() 638 const struct switchdev_notifier_info *info = &fdb_info->info; in __switchdev_handle_fdb_event_to_device() 644 return mod_cb(dev, orig_dev, event, info->ctx, fdb_info); in __switchdev_handle_fdb_event_to_device() 663 event, fdb_info, check_cb, in __switchdev_handle_fdb_event_to_device() 684 return __switchdev_handle_fdb_event_to_device(br, orig_dev, event, fdb_info, in __switchdev_handle_fdb_event_to_device() 690 const struct switchdev_notifier_fdb_info *fdb_info, in switchdev_handle_fdb_event_to_device() argument 696 const struct switchdev_notifier_fdb_info *fdb_info)) in switchdev_handle_fdb_event_to_device() 700 err = __switchdev_handle_fdb_event_to_device(dev, dev, event, fdb_info, in switchdev_handle_fdb_event_to_device()
|
| /linux/drivers/net/ethernet/mellanox/mlxsw/ |
| H A D | spectrum_switchdev.c | 1856 struct switchdev_notifier_fdb_info *fdb_info, bool adding) in mlxsw_sp_port_fdb_set() argument 1859 struct net_device *orig_dev = fdb_info->info.dev; in mlxsw_sp_port_fdb_set() 1872 fdb_info->vid); in mlxsw_sp_port_fdb_set() 1882 fdb_info->addr, fid_index, vid, in mlxsw_sp_port_fdb_set() 1887 fdb_info->addr, fid_index, in mlxsw_sp_port_fdb_set() 3405 struct switchdev_notifier_fdb_info fdb_info; member 3419 struct switchdev_notifier_fdb_info *fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() local 3425 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 3426 err = vxlan_fdb_find_uc(dev, fdb_info->addr, vni, &vxlan_fdb_info); in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 3446 fdb_info->vid, dev, true, false); in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() [all …]
|
| /linux/drivers/net/vxlan/ |
| H A D | vxlan_core.c | 293 struct switchdev_notifier_vxlan_fdb_info *fdb_info) in vxlan_fdb_switchdev_notifier_info() argument 295 fdb_info->info.dev = vxlan->dev; in vxlan_fdb_switchdev_notifier_info() 296 fdb_info->info.extack = extack; in vxlan_fdb_switchdev_notifier_info() 297 fdb_info->remote_ip = rd->remote_ip; in vxlan_fdb_switchdev_notifier_info() 298 fdb_info->remote_port = rd->remote_port; in vxlan_fdb_switchdev_notifier_info() 299 fdb_info->remote_vni = rd->remote_vni; in vxlan_fdb_switchdev_notifier_info() 300 fdb_info->remote_ifindex = rd->remote_ifindex; in vxlan_fdb_switchdev_notifier_info() 301 memcpy(fdb_info->eth_addr, fdb->key.eth_addr, ETH_ALEN); in vxlan_fdb_switchdev_notifier_info() 302 fdb_info->vni = fdb->key.vni; in vxlan_fdb_switchdev_notifier_info() 303 fdb_info in vxlan_fdb_switchdev_notifier_info() 445 vxlan_fdb_find_uc(struct net_device * dev,const u8 * mac,__be32 vni,struct switchdev_notifier_vxlan_fdb_info * fdb_info) vxlan_fdb_find_uc() argument 483 struct switchdev_notifier_vxlan_fdb_info fdb_info; vxlan_fdb_notify_one() local 4767 vxlan_fdb_offloaded_set(struct net_device * dev,struct switchdev_notifier_vxlan_fdb_info * fdb_info) vxlan_fdb_offloaded_set() argument 4794 vxlan_fdb_external_learn_add(struct net_device * dev,struct switchdev_notifier_vxlan_fdb_info * fdb_info) vxlan_fdb_external_learn_add() argument 4819 vxlan_fdb_external_learn_del(struct net_device * dev,struct switchdev_notifier_vxlan_fdb_info * fdb_info) vxlan_fdb_external_learn_del() argument 4848 struct switchdev_notifier_vxlan_fdb_info *fdb_info; vxlan_switchdev_event() local [all...] |
| /linux/drivers/net/ethernet/freescale/dpaa2/ |
| H A D | dpaa2-switch.c | 2274 struct switchdev_notifier_fdb_info fdb_info; member 2284 struct switchdev_notifier_fdb_info *fdb_info; in dpaa2_switch_event_work() local 2288 fdb_info = &switchdev_work->fdb_info; in dpaa2_switch_event_work() 2292 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() 2294 if (is_unicast_ether_addr(fdb_info->addr)) in dpaa2_switch_event_work() 2296 fdb_info->addr); in dpaa2_switch_event_work() 2299 fdb_info->addr); in dpaa2_switch_event_work() 2302 fdb_info->offloaded = true; in dpaa2_switch_event_work() 2304 &fdb_info->info, NULL); in dpaa2_switch_event_work() 2307 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() [all …]
|
| /linux/drivers/net/ethernet/rocker/ |
| H A D | rocker_main.c | 2693 struct switchdev_notifier_fdb_info fdb_info; member 2716 struct switchdev_notifier_fdb_info *fdb_info; in rocker_switchdev_event_work() local 2722 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2723 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2725 err = rocker_world_port_fdb_add(rocker_port, fdb_info); in rocker_switchdev_event_work() 2730 rocker_fdb_offload_notify(rocker_port, fdb_info); in rocker_switchdev_event_work() 2733 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2734 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2736 err = rocker_world_port_fdb_del(rocker_port, fdb_info); in rocker_switchdev_event_work() 2743 kfree(switchdev_work->fdb_info.addr); in rocker_switchdev_event_work() [all …]
|
| /linux/drivers/net/ethernet/adi/ |
| H A D | adin1110.c | 168 struct switchdev_notifier_fdb_info fdb_info; member 1464 ret = adin1110_fdb_add(port_priv, &switchdev_work->fdb_info); in adin1110_switchdev_event_work() 1467 &switchdev_work->fdb_info); in adin1110_switchdev_event_work() 1470 adin1110_fdb_del(port_priv, &switchdev_work->fdb_info); in adin1110_switchdev_event_work() 1478 kfree(switchdev_work->fdb_info.addr); in adin1110_switchdev_event_work() 1490 struct switchdev_notifier_fdb_info *fdb_info = ptr; in adin1110_switchdev_event() local 1506 memcpy(&switchdev_work->fdb_info, ptr, in adin1110_switchdev_event() 1507 sizeof(switchdev_work->fdb_info)); in adin1110_switchdev_event() 1508 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in adin1110_switchdev_event() 1510 if (!switchdev_work->fdb_info.addr) in adin1110_switchdev_event() [all …]
|
| /linux/net/dsa/ |
| H A D | user.c | 3698 const struct switchdev_notifier_fdb_info *fdb_info) in dsa_user_fdb_event() argument 3702 bool host_addr = fdb_info->is_local; in dsa_user_fdb_event() 3711 if (switchdev_fdb_is_dynamically_learned(fdb_info)) { in dsa_user_fdb_event() 3747 orig_dev->name, fdb_info->addr, fdb_info->vid, in dsa_user_fdb_event() 3755 ether_addr_copy(switchdev_work->addr, fdb_info->addr); in dsa_user_fdb_event() 3756 switchdev_work->vid = fdb_info->vid; in dsa_user_fdb_event()
|
| /linux/drivers/s390/net/ |
| H A D | qeth_l2_main.c | 854 struct switchdev_notifier_fdb_info *fdb_info; in qeth_l2_switchdev_event() local 868 fdb_info = container_of(info, in qeth_l2_switchdev_event() 879 fdb_info->addr); in qeth_l2_switchdev_event()
|