/linux/net/bridge/ |
A D | br.c | 156 struct switchdev_notifier_fdb_info *fdb_info; in br_switchdev_event() local 167 fdb_info = ptr; in br_switchdev_event() 169 fdb_info->vid, false); in br_switchdev_event() 174 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event() 175 fdb_info->vid, true); in br_switchdev_event() 178 fdb_info = ptr; in br_switchdev_event() 180 fdb_info->vid, false); in br_switchdev_event() 185 fdb_info = ptr; in br_switchdev_event() 186 br_fdb_offloaded_set(br, p, fdb_info->addr, in br_switchdev_event() 187 fdb_info->vid, fdb_info->offloaded); in br_switchdev_event() [all …]
|
/linux/drivers/net/ethernet/microchip/sparx5/ |
A D | sparx5_switchdev.c | 17 struct switchdev_notifier_fdb_info fdb_info; member 239 fdb_info = &switchdev_work->fdb_info; in sparx5_switchdev_bridge_fdb_event_work() 243 if (!fdb_info->added_by_user) in sparx5_switchdev_bridge_fdb_event_work() 246 fdb_info->vid); in sparx5_switchdev_bridge_fdb_event_work() 249 if (!fdb_info->added_by_user) in sparx5_switchdev_bridge_fdb_event_work() 251 sparx5_del_mact_entry(sparx5, fdb_info->addr, fdb_info->vid); in sparx5_switchdev_bridge_fdb_event_work() 257 kfree(switchdev_work->fdb_info.addr); in sparx5_switchdev_bridge_fdb_event_work() 292 fdb_info = container_of(info, in sparx5_switchdev_event() 297 memcpy(&switchdev_work->fdb_info, ptr, in sparx5_switchdev_event() 300 if (!switchdev_work->fdb_info.addr) in sparx5_switchdev_event() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
A D | bridge.c | 16 struct switchdev_notifier_fdb_info fdb_info; member 309 kfree(fdb_work->fdb_info.addr); in mlx5_esw_bridge_cleanup_switchdev_fdb_work() 318 &fdb_work->fdb_info; in mlx5_esw_bridge_switchdev_fdb_event_work() 332 fdb_info); in mlx5_esw_bridge_switchdev_fdb_event_work() 335 fdb_info); in mlx5_esw_bridge_switchdev_fdb_event_work() 355 memcpy(&work->fdb_info, fdb_info, sizeof(work->fdb_info)); in mlx5_esw_bridge_init_switchdev_fdb_work() 363 work->fdb_info.addr = addr; in mlx5_esw_bridge_init_switchdev_fdb_work() 408 fdb_info = container_of(info, in mlx5_esw_bridge_switchdev_event() 412 fdb_info); in mlx5_esw_bridge_switchdev_event() 421 fdb_info = container_of(info, in mlx5_esw_bridge_switchdev_event() [all …]
|
/linux/drivers/net/ethernet/marvell/prestera/ |
A D | prestera_switchdev.c | 24 struct switchdev_notifier_fdb_info fdb_info; member 786 vid = fdb_info->vid; in prestera_port_fdb_set() 817 fdb_info = &swdev_work->fdb_info; in prestera_fdb_event_work() 818 if (!fdb_info->added_by_user || fdb_info->is_local) in prestera_fdb_event_work() 829 fdb_info = &swdev_work->fdb_info; in prestera_fdb_event_work() 837 kfree(swdev_work->fdb_info.addr); in prestera_fdb_event_work() 879 fdb_info = container_of(info, in prestera_switchdev_event() 884 memcpy(&swdev_work->fdb_info, ptr, in prestera_switchdev_event() 885 sizeof(swdev_work->fdb_info)); in prestera_switchdev_event() 888 if (!swdev_work->fdb_info.addr) in prestera_switchdev_event() [all …]
|
/linux/include/net/ |
A D | switchdev.h | 258 switchdev_fdb_is_dynamically_learned(const struct switchdev_notifier_fdb_info *fdb_info) in switchdev_fdb_is_dynamically_learned() argument 260 return !fdb_info->added_by_user && !fdb_info->is_local; in switchdev_fdb_is_dynamically_learned() 303 const struct switchdev_notifier_fdb_info *fdb_info, 309 const struct switchdev_notifier_fdb_info *fdb_info), 312 const struct switchdev_notifier_fdb_info *fdb_info)); 418 const struct switchdev_notifier_fdb_info *fdb_info, in switchdev_handle_fdb_event_to_device() argument 424 const struct switchdev_notifier_fdb_info *fdb_info), in switchdev_handle_fdb_event_to_device() argument 427 const struct switchdev_notifier_fdb_info *fdb_info)) in switchdev_handle_fdb_event_to_device()
|
A D | vxlan.h | 436 struct switchdev_notifier_vxlan_fdb_info *fdb_info); 445 struct switchdev_notifier_vxlan_fdb_info *fdb_info) in vxlan_fdb_find_uc() argument
|
/linux/drivers/net/ethernet/ti/ |
A D | cpsw_switchdev.c | 22 struct switchdev_notifier_fdb_info fdb_info; member 392 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work() 408 fdb = &switchdev_work->fdb_info; in cpsw_switchdev_event_work() 427 kfree(switchdev_work->fdb_info.addr); in cpsw_switchdev_event_work() 437 struct switchdev_notifier_fdb_info *fdb_info = ptr; in cpsw_switchdev_event() local 463 memcpy(&switchdev_work->fdb_info, ptr, in cpsw_switchdev_event() 464 sizeof(switchdev_work->fdb_info)); in cpsw_switchdev_event() 465 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in cpsw_switchdev_event() 466 if (!switchdev_work->fdb_info.addr) in cpsw_switchdev_event() 468 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in cpsw_switchdev_event() [all …]
|
A D | am65-cpsw-switchdev.c | 20 struct switchdev_notifier_fdb_info fdb_info; member 382 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work() 398 fdb = &switchdev_work->fdb_info; in am65_cpsw_switchdev_event_work() 417 kfree(switchdev_work->fdb_info.addr); in am65_cpsw_switchdev_event_work() 429 struct switchdev_notifier_fdb_info *fdb_info = ptr; in am65_cpsw_switchdev_event() local 453 memcpy(&switchdev_work->fdb_info, ptr, in am65_cpsw_switchdev_event() 454 sizeof(switchdev_work->fdb_info)); in am65_cpsw_switchdev_event() 455 switchdev_work->fdb_info.addr = kzalloc(ETH_ALEN, GFP_ATOMIC); in am65_cpsw_switchdev_event() 456 if (!switchdev_work->fdb_info.addr) in am65_cpsw_switchdev_event() 458 ether_addr_copy((u8 *)switchdev_work->fdb_info.addr, in am65_cpsw_switchdev_event() [all …]
|
/linux/net/switchdev/ |
A D | switchdev.c | 433 const struct switchdev_notifier_fdb_info *fdb_info, in __switchdev_handle_fdb_event_to_device() argument 439 const struct switchdev_notifier_fdb_info *fdb_info), in __switchdev_handle_fdb_event_to_device() argument 442 const struct switchdev_notifier_fdb_info *fdb_info)) in __switchdev_handle_fdb_event_to_device() 444 const struct switchdev_notifier_info *info = &fdb_info->info; in __switchdev_handle_fdb_event_to_device() 450 return mod_cb(dev, orig_dev, event, info->ctx, fdb_info); in __switchdev_handle_fdb_event_to_device() 460 return lag_mod_cb(dev, orig_dev, event, info->ctx, fdb_info); in __switchdev_handle_fdb_event_to_device() 485 event, fdb_info, check_cb, in __switchdev_handle_fdb_event_to_device() 512 const struct switchdev_notifier_fdb_info *fdb_info, in switchdev_handle_fdb_event_to_device() argument 518 const struct switchdev_notifier_fdb_info *fdb_info), in switchdev_handle_fdb_event_to_device() argument 521 const struct switchdev_notifier_fdb_info *fdb_info)) in switchdev_handle_fdb_event_to_device() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
A D | bridge.h | 51 struct switchdev_notifier_fdb_info *fdb_info); 54 struct switchdev_notifier_fdb_info *fdb_info); 57 struct switchdev_notifier_fdb_info *fdb_info);
|
A D | bridge.c | 1463 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_update_used() argument 1474 entry = mlx5_esw_bridge_fdb_lookup(bridge, fdb_info->addr, fdb_info->vid); in mlx5_esw_bridge_fdb_update_used() 1478 fdb_info->addr, fdb_info->vid, vport_num); in mlx5_esw_bridge_fdb_update_used() 1487 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_create() argument 1498 entry = mlx5_esw_bridge_fdb_entry_init(dev, vport_num, esw_owner_vhca_id, fdb_info->addr, in mlx5_esw_bridge_fdb_create() 1499 fdb_info->vid, fdb_info->added_by_user, in mlx5_esw_bridge_fdb_create() 1516 struct switchdev_notifier_fdb_info *fdb_info) in mlx5_esw_bridge_fdb_remove() argument 1528 entry = mlx5_esw_bridge_fdb_lookup(bridge, fdb_info->addr, fdb_info->vid); in mlx5_esw_bridge_fdb_remove() 1532 fdb_info->addr, fdb_info->vid, vport_num); in mlx5_esw_bridge_fdb_remove()
|
/linux/drivers/net/ |
A D | vxlan.c | 404 fdb_info->vni = fdb->vni; in vxlan_fdb_switchdev_notifier_info() 612 &fdb_info); in vxlan_fdb_notify_one() 4562 hash_index = fdb_head_index(vxlan, fdb_info->eth_addr, fdb_info->vni); in vxlan_fdb_offloaded_set() 4566 f = vxlan_find_mac(vxlan, fdb_info->eth_addr, fdb_info->vni); in vxlan_fdb_offloaded_set() 4592 hash_index = fdb_head_index(vxlan, fdb_info->eth_addr, fdb_info->vni); in vxlan_fdb_external_learn_add() 4596 err = vxlan_fdb_update(vxlan, fdb_info->eth_addr, &fdb_info->remote_ip, in vxlan_fdb_external_learn_add() 4619 hash_index = fdb_head_index(vxlan, fdb_info->eth_addr, fdb_info->vni); in vxlan_fdb_external_learn_del() 4622 f = vxlan_find_mac(vxlan, fdb_info->eth_addr, fdb_info->vni); in vxlan_fdb_external_learn_del() 4629 fdb_info->vni, in vxlan_fdb_external_learn_del() 4651 fdb_info = ptr; in vxlan_switchdev_event() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlxsw/ |
A D | spectrum_switchdev.c | 1430 fdb_info->vid); in mlxsw_sp_port_fdb_set() 1445 fdb_info->addr, fid_index, in mlxsw_sp_port_fdb_set() 2879 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 2900 fdb_info->vid, dev, true); in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 2987 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work() 2988 if (!fdb_info->added_by_user || fdb_info->is_local) in mlxsw_sp_switchdev_bridge_fdb_event_work() 2994 fdb_info->addr, in mlxsw_sp_switchdev_bridge_fdb_event_work() 2995 fdb_info->vid, dev, true); in mlxsw_sp_switchdev_bridge_fdb_event_work() 2998 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_fdb_event_work() 3251 fdb_info = container_of(info, in mlxsw_sp_switchdev_event() [all …]
|
/linux/drivers/net/ethernet/freescale/dpaa2/ |
A D | dpaa2-switch.c | 2220 fdb_info = &switchdev_work->fdb_info; in dpaa2_switch_event_work() 2224 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() 2228 fdb_info->addr); in dpaa2_switch_event_work() 2231 fdb_info->addr); in dpaa2_switch_event_work() 2234 fdb_info->offloaded = true; in dpaa2_switch_event_work() 2236 &fdb_info->info, NULL); in dpaa2_switch_event_work() 2239 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() 2249 kfree(switchdev_work->fdb_info.addr); in dpaa2_switch_event_work() 2281 memcpy(&switchdev_work->fdb_info, ptr, in dpaa2_switch_port_event() 2284 if (!switchdev_work->fdb_info.addr) in dpaa2_switch_port_event() [all …]
|
/linux/drivers/net/ethernet/rocker/ |
A D | rocker_main.c | 2712 struct switchdev_notifier_fdb_info fdb_info; member 2735 struct switchdev_notifier_fdb_info *fdb_info; in rocker_switchdev_event_work() local 2741 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2742 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2752 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2753 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2762 kfree(switchdev_work->fdb_info.addr); in rocker_switchdev_event_work() 2794 memcpy(&switchdev_work->fdb_info, ptr, in rocker_switchdev_event() 2795 sizeof(switchdev_work->fdb_info)); in rocker_switchdev_event() 2797 if (unlikely(!switchdev_work->fdb_info.addr)) { in rocker_switchdev_event() [all …]
|
/linux/net/dsa/ |
A D | slave.c | 2477 const struct switchdev_notifier_fdb_info *fdb_info) in dsa_slave_fdb_event() argument 2481 bool host_addr = fdb_info->is_local; in dsa_slave_fdb_event() 2491 switchdev_fdb_is_dynamically_learned(fdb_info)) in dsa_slave_fdb_event() 2497 if (switchdev_fdb_is_dynamically_learned(fdb_info) && in dsa_slave_fdb_event() 2513 orig_dev->name, fdb_info->addr, fdb_info->vid, in dsa_slave_fdb_event() 2522 ether_addr_copy(switchdev_work->addr, fdb_info->addr); in dsa_slave_fdb_event() 2523 switchdev_work->vid = fdb_info->vid; in dsa_slave_fdb_event()
|
/linux/drivers/s390/net/ |
A D | qeth_l2_main.c | 859 struct switchdev_notifier_fdb_info *fdb_info; in qeth_l2_switchdev_event() local 873 fdb_info = container_of(info, in qeth_l2_switchdev_event() 884 fdb_info->addr); in qeth_l2_switchdev_event()
|