/linux-5.19.10/drivers/net/ethernet/microchip/lan966x/ |
D | lan966x_fdb.c | 9 struct switchdev_notifier_fdb_info fdb_info; member 24 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_find_entry() argument 29 if (fdb_entry->vid == fdb_info->vid && in lan966x_fdb_find_entry() 30 ether_addr_equal(fdb_entry->mac, fdb_info->addr)) in lan966x_fdb_find_entry() 38 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_add_entry() argument 42 fdb_entry = lan966x_fdb_find_entry(lan966x, fdb_info); in lan966x_fdb_add_entry() 52 ether_addr_copy(fdb_entry->mac, fdb_info->addr); in lan966x_fdb_add_entry() 53 fdb_entry->vid = fdb_info->vid; in lan966x_fdb_add_entry() 59 struct switchdev_notifier_fdb_info *fdb_info) in lan966x_fdb_del_entry() argument 65 if (fdb_entry->vid == fdb_info->vid && in lan966x_fdb_del_entry() [all …]
|
D | lan966x_main.h | 375 const struct switchdev_notifier_fdb_info *fdb_info);
|
/linux-5.19.10/net/bridge/ |
D | br.c | 156 struct switchdev_notifier_fdb_info *fdb_info; in br_switchdev_event() local 167 fdb_info = ptr; in br_switchdev_event() 168 err = br_fdb_external_learn_add(br, p, fdb_info->addr, 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() 179 err = br_fdb_external_learn_del(br, p, fdb_info->addr, in br_switchdev_event() 180 fdb_info->vid, false); in br_switchdev_event() 185 fdb_info = ptr; in br_switchdev_event() [all …]
|
/linux-5.19.10/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
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() 317 struct switchdev_notifier_fdb_info *fdb_info = in mlx5_esw_bridge_switchdev_fdb_event_work() local 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() 344 struct switchdev_notifier_fdb_info *fdb_info, in mlx5_esw_bridge_init_switchdev_fdb_work() argument 355 memcpy(&work->fdb_info, fdb_info, sizeof(work->fdb_info)); in mlx5_esw_bridge_init_switchdev_fdb_work() 362 ether_addr_copy(addr, fdb_info->addr); in mlx5_esw_bridge_init_switchdev_fdb_work() 363 work->fdb_info.addr = addr; in mlx5_esw_bridge_init_switchdev_fdb_work() [all …]
|
/linux-5.19.10/drivers/net/ethernet/microchip/sparx5/ |
D | sparx5_switchdev.c | 17 struct switchdev_notifier_fdb_info fdb_info; member 259 struct switchdev_notifier_fdb_info *fdb_info; in sparx5_switchdev_bridge_fdb_event_work() local 275 fdb_info = &switchdev_work->fdb_info; in sparx5_switchdev_bridge_fdb_event_work() 280 if (fdb_info->vid == 0) in sparx5_switchdev_bridge_fdb_event_work() 283 vid = fdb_info->vid; in sparx5_switchdev_bridge_fdb_event_work() 289 fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 292 fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 295 sparx5_del_mact_entry(sparx5, fdb_info->addr, vid); in sparx5_switchdev_bridge_fdb_event_work() 300 kfree(switchdev_work->fdb_info.addr); in sparx5_switchdev_bridge_fdb_event_work() 315 struct switchdev_notifier_fdb_info *fdb_info; in sparx5_switchdev_event() local [all …]
|
/linux-5.19.10/drivers/net/ethernet/marvell/prestera/ |
D | prestera_switchdev.c | 24 struct switchdev_notifier_fdb_info fdb_info; member 770 struct switchdev_notifier_fdb_info *fdb_info, in prestera_port_fdb_set() argument 786 vid = fdb_info->vid; in prestera_port_fdb_set() 791 err = prestera_fdb_add(port, fdb_info->addr, vid, false); in prestera_port_fdb_set() 793 err = prestera_fdb_del(port, fdb_info->addr, vid); in prestera_port_fdb_set() 800 struct switchdev_notifier_fdb_info *fdb_info; in prestera_fdb_event_work() local 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() 821 err = prestera_port_fdb_set(port, fdb_info, true); in prestera_fdb_event_work() 825 prestera_fdb_offload_notify(port, fdb_info); in prestera_fdb_event_work() [all …]
|
/linux-5.19.10/drivers/net/ethernet/ti/ |
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 …]
|
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 …]
|
/linux-5.19.10/drivers/net/ethernet/mellanox/mlx5/core/esw/ |
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);
|
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-5.19.10/include/net/ |
D | switchdev.h | 281 switchdev_fdb_is_dynamically_learned(const struct switchdev_notifier_fdb_info *fdb_info) in switchdev_fdb_is_dynamically_learned() argument 283 return !fdb_info->added_by_user && !fdb_info->is_local; in switchdev_fdb_is_dynamically_learned() 326 const struct switchdev_notifier_fdb_info *fdb_info, 332 const struct switchdev_notifier_fdb_info *fdb_info)); 453 const struct switchdev_notifier_fdb_info *fdb_info, in switchdev_handle_fdb_event_to_device() argument 459 const struct switchdev_notifier_fdb_info *fdb_info)) in switchdev_handle_fdb_event_to_device()
|
D | vxlan.h | 487 struct switchdev_notifier_vxlan_fdb_info *fdb_info); 496 struct switchdev_notifier_vxlan_fdb_info *fdb_info) in vxlan_fdb_find_uc() argument
|
/linux-5.19.10/drivers/net/vxlan/ |
D | vxlan_core.c | 335 struct switchdev_notifier_vxlan_fdb_info *fdb_info) in vxlan_fdb_switchdev_notifier_info() argument 337 fdb_info->info.dev = vxlan->dev; in vxlan_fdb_switchdev_notifier_info() 338 fdb_info->info.extack = extack; in vxlan_fdb_switchdev_notifier_info() 339 fdb_info->remote_ip = rd->remote_ip; in vxlan_fdb_switchdev_notifier_info() 340 fdb_info->remote_port = rd->remote_port; in vxlan_fdb_switchdev_notifier_info() 341 fdb_info->remote_vni = rd->remote_vni; in vxlan_fdb_switchdev_notifier_info() 342 fdb_info->remote_ifindex = rd->remote_ifindex; in vxlan_fdb_switchdev_notifier_info() 343 memcpy(fdb_info->eth_addr, fdb->eth_addr, ETH_ALEN); in vxlan_fdb_switchdev_notifier_info() 344 fdb_info->vni = fdb->vni; in vxlan_fdb_switchdev_notifier_info() 345 fdb_info->offloaded = rd->offloaded; in vxlan_fdb_switchdev_notifier_info() [all …]
|
/linux-5.19.10/net/switchdev/ |
D | switchdev.c | 455 const struct switchdev_notifier_fdb_info *fdb_info, in __switchdev_handle_fdb_event_to_device() argument 461 const struct switchdev_notifier_fdb_info *fdb_info)) in __switchdev_handle_fdb_event_to_device() 463 const struct switchdev_notifier_info *info = &fdb_info->info; in __switchdev_handle_fdb_event_to_device() 469 return mod_cb(dev, orig_dev, event, info->ctx, fdb_info); in __switchdev_handle_fdb_event_to_device() 488 event, fdb_info, check_cb, in __switchdev_handle_fdb_event_to_device() 509 return __switchdev_handle_fdb_event_to_device(br, orig_dev, event, fdb_info, in __switchdev_handle_fdb_event_to_device() 515 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() 525 err = __switchdev_handle_fdb_event_to_device(dev, dev, event, fdb_info, in switchdev_handle_fdb_event_to_device()
|
/linux-5.19.10/drivers/net/ethernet/mellanox/mlxsw/ |
D | spectrum_switchdev.c | 1514 struct switchdev_notifier_fdb_info *fdb_info, bool adding) in mlxsw_sp_port_fdb_set() argument 1517 struct net_device *orig_dev = fdb_info->info.dev; in mlxsw_sp_port_fdb_set() 1530 fdb_info->vid); in mlxsw_sp_port_fdb_set() 1540 fdb_info->addr, fid_index, in mlxsw_sp_port_fdb_set() 1545 fdb_info->addr, fid_index, in mlxsw_sp_port_fdb_set() 2954 struct switchdev_notifier_fdb_info fdb_info; member 2968 struct switchdev_notifier_fdb_info *fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() local 2974 fdb_info = &switchdev_work->fdb_info; in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 2975 err = vxlan_fdb_find_uc(dev, fdb_info->addr, vni, &vxlan_fdb_info); in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() 2995 fdb_info->vid, dev, true); in mlxsw_sp_switchdev_bridge_vxlan_fdb_event() [all …]
|
/linux-5.19.10/drivers/net/ethernet/freescale/dpaa2/ |
D | dpaa2-switch.c | 2211 struct switchdev_notifier_fdb_info fdb_info; member 2221 struct switchdev_notifier_fdb_info *fdb_info; in dpaa2_switch_event_work() local 2225 fdb_info = &switchdev_work->fdb_info; in dpaa2_switch_event_work() 2229 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() 2231 if (is_unicast_ether_addr(fdb_info->addr)) in dpaa2_switch_event_work() 2233 fdb_info->addr); in dpaa2_switch_event_work() 2236 fdb_info->addr); in dpaa2_switch_event_work() 2239 fdb_info->offloaded = true; in dpaa2_switch_event_work() 2241 &fdb_info->info, NULL); in dpaa2_switch_event_work() 2244 if (!fdb_info->added_by_user || fdb_info->is_local) in dpaa2_switch_event_work() [all …]
|
/linux-5.19.10/drivers/net/ethernet/rocker/ |
D | rocker_main.c | 2699 struct switchdev_notifier_fdb_info fdb_info; member 2722 struct switchdev_notifier_fdb_info *fdb_info; in rocker_switchdev_event_work() local 2728 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2729 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2731 err = rocker_world_port_fdb_add(rocker_port, fdb_info); in rocker_switchdev_event_work() 2736 rocker_fdb_offload_notify(rocker_port, fdb_info); in rocker_switchdev_event_work() 2739 fdb_info = &switchdev_work->fdb_info; in rocker_switchdev_event_work() 2740 if (!fdb_info->added_by_user || fdb_info->is_local) in rocker_switchdev_event_work() 2742 err = rocker_world_port_fdb_del(rocker_port, fdb_info); in rocker_switchdev_event_work() 2749 kfree(switchdev_work->fdb_info.addr); in rocker_switchdev_event_work() [all …]
|
/linux-5.19.10/net/dsa/ |
D | slave.c | 2850 const struct switchdev_notifier_fdb_info *fdb_info) in dsa_slave_fdb_event() argument 2854 bool host_addr = fdb_info->is_local; in dsa_slave_fdb_event() 2863 if (switchdev_fdb_is_dynamically_learned(fdb_info)) { in dsa_slave_fdb_event() 2899 orig_dev->name, fdb_info->addr, fdb_info->vid, in dsa_slave_fdb_event() 2907 ether_addr_copy(switchdev_work->addr, fdb_info->addr); in dsa_slave_fdb_event() 2908 switchdev_work->vid = fdb_info->vid; in dsa_slave_fdb_event()
|
/linux-5.19.10/drivers/s390/net/ |
D | qeth_l2_main.c | 853 struct switchdev_notifier_fdb_info *fdb_info; in qeth_l2_switchdev_event() local 867 fdb_info = container_of(info, in qeth_l2_switchdev_event() 878 fdb_info->addr); in qeth_l2_switchdev_event()
|