Lines Matching defs:mlxsw_sp
62 struct mlxsw_sp *mlxsw_sp; member
170 static int mlxsw_sp_rif_counter_edit(struct mlxsw_sp *mlxsw_sp, u16 rif_index, in mlxsw_sp_rif_counter_edit()
190 int mlxsw_sp_rif_counter_value_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_counter_value_get()
215 static int mlxsw_sp_rif_counter_clear(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_counter_clear()
225 int mlxsw_sp_rif_counter_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_counter_alloc()
258 void mlxsw_sp_rif_counter_free(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_counter_free()
279 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_counters_alloc() local
291 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_counters_free() local
427 static struct mlxsw_sp_fib *mlxsw_sp_fib_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_create()
459 static void mlxsw_sp_fib_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_destroy()
470 mlxsw_sp_lpm_tree_find_unused(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_lpm_tree_find_unused()
483 static int mlxsw_sp_lpm_tree_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_alloc()
494 static void mlxsw_sp_lpm_tree_free(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_free()
506 mlxsw_sp_lpm_tree_left_struct_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_left_struct_set()
530 mlxsw_sp_lpm_tree_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_create()
561 static void mlxsw_sp_lpm_tree_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_destroy()
568 mlxsw_sp_lpm_tree_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_get()
593 static void mlxsw_sp_lpm_tree_put(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_lpm_tree_put()
602 static int mlxsw_sp_lpm_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_lpm_init()
651 static void mlxsw_sp_lpm_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_lpm_fini()
671 static struct mlxsw_sp_vr *mlxsw_sp_vr_find_unused(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_vr_find_unused()
684 static int mlxsw_sp_vr_lpm_tree_bind(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_lpm_tree_bind()
695 static int mlxsw_sp_vr_lpm_tree_unbind(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_lpm_tree_unbind()
714 static struct mlxsw_sp_vr *mlxsw_sp_vr_find(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_find()
730 int mlxsw_sp_router_tb_id_vr_id(struct mlxsw_sp *mlxsw_sp, u32 tb_id, in mlxsw_sp_router_tb_id_vr_id()
760 static struct mlxsw_sp_vr *mlxsw_sp_vr_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_create()
812 static void mlxsw_sp_vr_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_destroy()
825 static struct mlxsw_sp_vr *mlxsw_sp_vr_get(struct mlxsw_sp *mlxsw_sp, u32 tb_id, in mlxsw_sp_vr_get()
837 static void mlxsw_sp_vr_put(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_vr *vr) in mlxsw_sp_vr_put()
859 static int mlxsw_sp_vr_lpm_tree_replace(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_lpm_tree_replace()
880 static int mlxsw_sp_vrs_lpm_tree_replace(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vrs_lpm_tree_replace()
922 static int mlxsw_sp_vrs_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_vrs_init()
947 static void mlxsw_sp_vrs_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_vrs_fini()
992 mlxsw_sp_ipip_ol_ipip_lb_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_ol_ipip_lb_create()
1015 mlxsw_sp_ipip_entry_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_alloc()
1062 mlxsw_sp_ipip_entry_saddr_matches(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_saddr_matches()
1081 mlxsw_sp_fib_entry_decap_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_decap_init()
1099 static void mlxsw_sp_fib_entry_decap_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_decap_fini()
1116 mlxsw_sp_ipip_entry_demote_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_demote_decap()
1128 mlxsw_sp_ipip_entry_promote_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_promote_decap()
1142 mlxsw_sp_router_ip2me_fib_entry_find(struct mlxsw_sp *mlxsw_sp, u32 tb_id, in mlxsw_sp_router_ip2me_fib_entry_find()
1183 mlxsw_sp_ipip_entry_find_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_find_decap()
1230 mlxsw_sp_ipip_entry_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_create()
1247 mlxsw_sp_ipip_entry_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_destroy()
1255 mlxsw_sp_ipip_entry_matches_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_matches_decap()
1273 mlxsw_sp_ipip_entry_find_by_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_find_by_decap()
1290 static bool mlxsw_sp_netdev_ipip_type(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdev_ipip_type()
1309 bool mlxsw_sp_netdev_is_ipip_ol(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdev_is_ipip_ol()
1316 mlxsw_sp_ipip_entry_find_by_ol_dev(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_find_by_ol_dev()
1330 mlxsw_sp_ipip_entry_find_by_ul_dev(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_find_by_ul_dev()
1354 bool mlxsw_sp_netdev_is_ipip_ul(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdev_is_ipip_ul()
1366 static bool mlxsw_sp_netdevice_ipip_can_offload(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_can_offload()
1380 static int mlxsw_sp_netdevice_ipip_ol_reg_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_reg_event()
1407 static void mlxsw_sp_netdevice_ipip_ol_unreg_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_unreg_event()
1418 mlxsw_sp_ipip_entry_ol_up_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_ol_up_event()
1435 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_ipip_lb_op() local
1456 static int mlxsw_sp_netdevice_ipip_ol_update_mtu(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_update_mtu()
1477 static void mlxsw_sp_netdevice_ipip_ol_up_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_up_event()
1488 mlxsw_sp_ipip_entry_ol_down_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_ol_down_event()
1495 static void mlxsw_sp_netdevice_ipip_ol_down_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_down_event()
1509 mlxsw_sp_ipip_entry_ol_lb_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_ol_lb_update()
1550 int __mlxsw_sp_ipip_entry_update_tunnel(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_ipip_entry_update_tunnel()
1584 static int mlxsw_sp_netdevice_ipip_ol_vrf_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_vrf_event()
1599 mlxsw_sp_netdevice_ipip_ul_vrf_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ul_vrf_event()
1626 mlxsw_sp_netdevice_ipip_ul_up_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ul_up_event()
1635 mlxsw_sp_netdevice_ipip_ul_down_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ul_down_event()
1648 mlxsw_sp_netdevice_ipip_ol_change_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_change_event()
1676 void mlxsw_sp_ipip_entry_demote_tunnel(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_entry_demote_tunnel()
1693 mlxsw_sp_ipip_demote_tunnel_by_saddr(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_demote_tunnel_by_saddr()
1714 static void mlxsw_sp_ipip_demote_tunnel_by_ul_netdev(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_ipip_demote_tunnel_by_ul_netdev()
1732 int mlxsw_sp_netdevice_ipip_ol_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ol_event()
1777 __mlxsw_sp_netdevice_ipip_ul_event(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_netdevice_ipip_ul_event()
1811 mlxsw_sp_netdevice_ipip_ul_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_netdevice_ipip_ul_event()
1854 int mlxsw_sp_router_nve_promote_decap(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, in mlxsw_sp_router_nve_promote_decap()
1903 void mlxsw_sp_router_nve_demote_decap(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, in mlxsw_sp_router_nve_demote_decap()
1930 static bool mlxsw_sp_router_nve_is_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_nve_is_decap()
2014 int mlxsw_sp_neigh_counter_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_counter_get()
2026 mlxsw_sp_neigh_entry_alloc(struct mlxsw_sp *mlxsw_sp, struct neighbour *n, in mlxsw_sp_neigh_entry_alloc()
2048 mlxsw_sp_neigh_entry_insert(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_entry_insert()
2057 mlxsw_sp_neigh_entry_remove(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_entry_remove()
2066 mlxsw_sp_neigh_counter_should_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_counter_should_alloc()
2089 mlxsw_sp_neigh_counter_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_counter_alloc()
2102 mlxsw_sp_neigh_counter_free(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_counter_free()
2113 mlxsw_sp_neigh_entry_create(struct mlxsw_sp *mlxsw_sp, struct neighbour *n) in mlxsw_sp_neigh_entry_create()
2142 mlxsw_sp_neigh_entry_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_entry_destroy()
2152 mlxsw_sp_neigh_entry_lookup(struct mlxsw_sp *mlxsw_sp, struct neighbour *n) in mlxsw_sp_neigh_entry_lookup()
2162 mlxsw_sp_router_neighs_update_interval_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_neighs_update_interval_init()
2176 static void mlxsw_sp_router_neigh_ent_ipv4_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_ent_ipv4_process()
2205 static void mlxsw_sp_router_neigh_ent_ipv6_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_ent_ipv6_process()
2232 static void mlxsw_sp_router_neigh_ent_ipv6_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_ent_ipv6_process()
2239 static void mlxsw_sp_router_neigh_rec_ipv4_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_rec_ipv4_process()
2262 static void mlxsw_sp_router_neigh_rec_ipv6_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_rec_ipv6_process()
2271 static void mlxsw_sp_router_neigh_rec_process(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_rec_process()
2307 __mlxsw_sp_router_neighs_update_rauhtd(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_router_neighs_update_rauhtd()
2334 static int mlxsw_sp_router_neighs_update_rauhtd(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_neighs_update_rauhtd()
2356 static void mlxsw_sp_router_neighs_update_nh(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_neighs_update_nh()
2371 mlxsw_sp_router_neighs_update_work_schedule(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_neighs_update_work_schedule()
2431 mlxsw_sp_router_neigh_entry_op4(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_entry_op4()
2448 mlxsw_sp_router_neigh_entry_op6(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_neigh_entry_op6()
2479 mlxsw_sp_neigh_entry_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_entry_update()
2513 mlxsw_sp_neigh_entry_counter_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_entry_counter_update()
2526 struct mlxsw_sp *mlxsw_sp; member
2534 struct mlxsw_sp *mlxsw_sp = net_work->mlxsw_sp; in mlxsw_sp_router_neigh_event_work() local
2584 struct mlxsw_sp *mlxsw_sp = net_work->mlxsw_sp; in mlxsw_sp_router_mp_hash_event_work() local
2596 struct mlxsw_sp *mlxsw_sp = net_work->mlxsw_sp; in mlxsw_sp_router_update_priority_work() local
2628 struct mlxsw_sp *mlxsw_sp; in mlxsw_sp_router_netevent_event() local
2696 static int mlxsw_sp_neigh_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_neigh_init()
2720 static void mlxsw_sp_neigh_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_neigh_fini()
2727 static void mlxsw_sp_neigh_rif_gone_sync(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_neigh_rif_gone_sync()
2796 void mlxsw_sp_nexthop_counter_alloc(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_counter_alloc()
2812 void mlxsw_sp_nexthop_counter_free(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_counter_free()
2821 int mlxsw_sp_nexthop_counter_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_counter_get()
3052 static int mlxsw_sp_nexthop_group_insert(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_group_insert()
3064 static void mlxsw_sp_nexthop_group_remove(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_group_remove()
3077 mlxsw_sp_nexthop4_group_lookup(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_group_lookup()
3090 mlxsw_sp_nexthop6_group_lookup(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_lookup()
3108 static int mlxsw_sp_nexthop_insert(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_insert()
3115 static void mlxsw_sp_nexthop_remove(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_remove()
3123 mlxsw_sp_nexthop_lookup(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_lookup()
3130 static int mlxsw_sp_adj_index_mass_update_vr(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_adj_index_mass_update_vr()
3145 static int mlxsw_sp_adj_index_mass_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_adj_index_mass_update()
3168 static int __mlxsw_sp_nexthop_update(struct mlxsw_sp *mlxsw_sp, u32 adj_index, in __mlxsw_sp_nexthop_update()
3186 int mlxsw_sp_nexthop_update(struct mlxsw_sp *mlxsw_sp, u32 adj_index, in mlxsw_sp_nexthop_update()
3202 static int __mlxsw_sp_nexthop_ipip_update(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_nexthop_ipip_update()
3212 static int mlxsw_sp_nexthop_ipip_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_ipip_update()
3231 mlxsw_sp_nexthop_group_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_group_update()
3271 mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_fib_entries_update()
3315 static int mlxsw_sp_fix_adj_grp_size(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fix_adj_grp_size()
3393 mlxsw_sp_nexthop4_group_offload_refresh(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_group_offload_refresh()
3427 mlxsw_sp_nexthop6_group_offload_refresh(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_offload_refresh()
3442 mlxsw_sp_nexthop_group_offload_refresh(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_group_offload_refresh()
3456 mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_group_refresh()
3580 mlxsw_sp_nexthop_dead_neigh_replace(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_dead_neigh_replace()
3633 mlxsw_sp_nexthop_neigh_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_neigh_update()
3678 static int mlxsw_sp_nexthop_neigh_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_neigh_init()
3733 static void mlxsw_sp_nexthop_neigh_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_neigh_fini()
3772 static void mlxsw_sp_nexthop_ipip_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_ipip_init()
3787 static void mlxsw_sp_nexthop_ipip_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_ipip_fini()
3799 static bool mlxsw_sp_nexthop4_ipip_type(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_ipip_type()
3810 static void mlxsw_sp_nexthop_type_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_type_fini()
3825 static int mlxsw_sp_nexthop4_type_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_type_init()
3863 static void mlxsw_sp_nexthop4_type_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_type_fini()
3869 static int mlxsw_sp_nexthop4_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_init()
3916 static void mlxsw_sp_nexthop4_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_fini()
3925 static void mlxsw_sp_nexthop4_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_event()
3951 static void mlxsw_sp_nexthop_rif_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_rif_update()
3975 static void mlxsw_sp_nexthop_rif_migrate(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_rif_migrate()
3987 static void mlxsw_sp_nexthop_rif_gone_sync(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop_rif_gone_sync()
3998 static bool mlxsw_sp_fi_is_gateway(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fi_is_gateway()
4008 mlxsw_sp_nexthop4_group_create(struct mlxsw_sp *mlxsw_sp, struct fib_info *fi) in mlxsw_sp_nexthop4_group_create()
4052 mlxsw_sp_nexthop4_group_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_group_destroy()
4069 static int mlxsw_sp_nexthop4_group_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_group_get()
4086 static void mlxsw_sp_nexthop4_group_put(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop4_group_put()
4156 mlxsw_sp_fib4_entry_hw_flags_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_hw_flags_set()
4181 mlxsw_sp_fib4_entry_hw_flags_clear(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_hw_flags_clear()
4204 mlxsw_sp_fib6_entry_hw_flags_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_hw_flags_set()
4224 mlxsw_sp_fib6_entry_hw_flags_clear(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_hw_flags_clear()
4237 mlxsw_sp_fib_entry_hw_flags_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_hw_flags_set()
4251 mlxsw_sp_fib_entry_hw_flags_clear(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_hw_flags_clear()
4265 mlxsw_sp_fib_entry_hw_flags_refresh(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_hw_flags_refresh()
4307 static int mlxsw_sp_adj_discard_write(struct mlxsw_sp *mlxsw_sp, u16 rif_index) in mlxsw_sp_adj_discard_write()
4340 static int mlxsw_sp_fib_entry_op_remote(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_remote()
4380 static int mlxsw_sp_fib_entry_op_local(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_local()
4404 static int mlxsw_sp_fib_entry_op_trap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_trap()
4415 static int mlxsw_sp_fib_entry_op_blackhole(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_blackhole()
4429 mlxsw_sp_fib_entry_op_unreachable(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_unreachable()
4446 mlxsw_sp_fib_entry_op_ipip_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_ipip_decap()
4461 static int mlxsw_sp_fib_entry_op_nve_decap(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op_nve_decap()
4473 static int __mlxsw_sp_fib_entry_op(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_fib_entry_op()
4498 static int mlxsw_sp_fib_entry_op(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_op()
4512 static int mlxsw_sp_fib_entry_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_update()
4519 static int mlxsw_sp_fib_entry_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_entry_del()
4527 mlxsw_sp_fib4_entry_type_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_type_set()
4585 mlxsw_sp_fib4_entry_type_unset(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_type_unset()
4598 mlxsw_sp_fib4_entry_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_create()
4635 static void mlxsw_sp_fib4_entry_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_destroy()
4644 mlxsw_sp_fib4_entry_lookup(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_entry_lookup()
4731 static int mlxsw_sp_fib_lpm_tree_link(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_lpm_tree_link()
4763 static void mlxsw_sp_fib_lpm_tree_unlink(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_lpm_tree_unlink()
4794 static int mlxsw_sp_fib_node_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_init()
4817 static void mlxsw_sp_fib_node_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_fini()
4828 mlxsw_sp_fib_node_get(struct mlxsw_sp *mlxsw_sp, u32 tb_id, const void *addr, in mlxsw_sp_fib_node_get()
4865 static void mlxsw_sp_fib_node_put(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_put()
4877 static int mlxsw_sp_fib_node_entry_link(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_entry_link()
4897 mlxsw_sp_fib_node_entry_unlink(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_entry_unlink()
4924 mlxsw_sp_router_fib4_replace(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fib4_replace()
4983 static void mlxsw_sp_router_fib4_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fib4_del()
5076 static bool mlxsw_sp_nexthop6_ipip_type(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_ipip_type()
5084 static int mlxsw_sp_nexthop6_type_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_type_init()
5123 static void mlxsw_sp_nexthop6_type_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_type_fini()
5129 static int mlxsw_sp_nexthop6_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_init()
5150 static void mlxsw_sp_nexthop6_fini(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_fini()
5158 static bool mlxsw_sp_rt6_is_gateway(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rt6_is_gateway()
5166 mlxsw_sp_nexthop6_group_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_create()
5215 mlxsw_sp_nexthop6_group_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_destroy()
5231 static int mlxsw_sp_nexthop6_group_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_get()
5255 static void mlxsw_sp_nexthop6_group_put(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_put()
5267 mlxsw_sp_nexthop6_group_update(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_nexthop6_group_update()
5303 mlxsw_sp_fib6_entry_nexthop_add(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_nexthop_add()
5341 mlxsw_sp_fib6_entry_nexthop_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_nexthop_del()
5362 static void mlxsw_sp_fib6_entry_type_set(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_type_set()
5398 mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_create()
5448 static void mlxsw_sp_fib6_entry_destroy(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_destroy()
5458 mlxsw_sp_fib6_entry_lookup(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_entry_lookup()
5510 static int mlxsw_sp_router_fib6_replace(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fib6_replace()
5574 static int mlxsw_sp_router_fib6_append(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fib6_append()
5619 static void mlxsw_sp_router_fib6_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fib6_del()
5658 static int __mlxsw_sp_router_set_abort_trap(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_router_set_abort_trap()
5708 static int mlxsw_sp_router_fibmr_add(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fibmr_add()
5726 static void mlxsw_sp_router_fibmr_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fibmr_del()
5745 mlxsw_sp_router_fibmr_vif_add(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fibmr_vif_add()
5767 mlxsw_sp_router_fibmr_vif_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_fibmr_vif_del()
5785 static int mlxsw_sp_router_set_abort_trap(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_set_abort_trap()
5804 static void mlxsw_sp_fib4_node_flush(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib4_node_flush()
5816 static void mlxsw_sp_fib6_node_flush(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib6_node_flush()
5828 static void mlxsw_sp_fib_node_flush(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_fib_node_flush()
5841 static void mlxsw_sp_vr_fib_flush(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_vr_fib_flush()
5857 static void mlxsw_sp_router_fib_flush(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_fib_flush()
5890 static void mlxsw_sp_router_fib_abort(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_fib_abort()
5919 struct mlxsw_sp *mlxsw_sp; member
5975 struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp; in mlxsw_sp_router_fib4_event_work() local
6008 struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp; in mlxsw_sp_router_fib6_event_work() local
6046 struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp; in mlxsw_sp_router_fibmr_event_work() local
6155 struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_fib_rule_event()
6290 mlxsw_sp_rif_find_by_dev(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_find_by_dev()
6303 bool mlxsw_sp_rif_exists(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_exists()
6315 u16 mlxsw_sp_rif_vid(struct mlxsw_sp *mlxsw_sp, const struct net_device *dev) in mlxsw_sp_rif_vid()
6338 static int mlxsw_sp_router_rif_disable(struct mlxsw_sp *mlxsw_sp, u16 rif) in mlxsw_sp_router_rif_disable()
6352 static void mlxsw_sp_router_rif_gone_sync(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_rif_gone_sync()
6403 mlxsw_sp_dev_rif_type(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_dev_rif_type()
6424 static int mlxsw_sp_rif_index_alloc(struct mlxsw_sp *mlxsw_sp, u16 *p_rif_index) in mlxsw_sp_rif_index_alloc()
6461 struct mlxsw_sp_rif *mlxsw_sp_rif_by_index(const struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_by_index()
6505 mlxsw_sp_rif_create(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_create()
6589 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_destroy() local
6611 void mlxsw_sp_rif_destroy_by_dev(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_destroy_by_dev()
6646 mlxsw_sp_rif_subport_get(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_subport_get()
6679 struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; in mlxsw_sp_port_vlan_router_join() local
6744 struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port_vlan->mlxsw_sp_port->mlxsw_sp; in mlxsw_sp_port_vlan_router_leave() local
6822 static int mlxsw_sp_inetaddr_bridge_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_inetaddr_bridge_event()
6847 static int mlxsw_sp_inetaddr_vlan_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_inetaddr_vlan_event()
6887 static int mlxsw_sp_rif_vrrp_op(struct mlxsw_sp *mlxsw_sp, u16 rif_index, in mlxsw_sp_rif_vrrp_op()
6911 static int mlxsw_sp_rif_macvlan_add(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_macvlan_add()
6949 static void __mlxsw_sp_rif_macvlan_del(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_rif_macvlan_del()
6967 void mlxsw_sp_rif_macvlan_del(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_rif_macvlan_del()
6975 static int mlxsw_sp_inetaddr_macvlan_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_inetaddr_macvlan_event()
6991 static int mlxsw_sp_router_port_check_rif_addr(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_port_check_rif_addr()
7021 static int __mlxsw_sp_inetaddr_event(struct mlxsw_sp *mlxsw_sp, in __mlxsw_sp_inetaddr_event()
7073 struct mlxsw_sp *mlxsw_sp; in mlxsw_sp_inetaddr_valid_event() local
7099 struct mlxsw_sp *mlxsw_sp; member
7108 struct mlxsw_sp *mlxsw_sp = inet6addr_work->mlxsw_sp; in mlxsw_sp_inet6addr_event_work() local
7161 struct mlxsw_sp *mlxsw_sp; in mlxsw_sp_inet6addr_valid_event() local
7185 static int mlxsw_sp_rif_edit(struct mlxsw_sp *mlxsw_sp, u16 rif_index, in mlxsw_sp_rif_edit()
7203 mlxsw_sp_router_port_change_event(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_port_change_event()
7266 struct mlxsw_sp *mlxsw_sp; in mlxsw_sp_netdevice_router_port_event() local
7294 static int mlxsw_sp_port_vrf_join(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_port_vrf_join()
7311 static void mlxsw_sp_port_vrf_leave(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_port_vrf_leave()
7325 struct mlxsw_sp *mlxsw_sp = mlxsw_sp_lower_get(l3_dev); in mlxsw_sp_netdevice_vrf_event() local
7397 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_subport_op() local
7465 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_vlan_fid_op() local
7476 u8 mlxsw_sp_router_port(const struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_port()
7483 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_fid_configure() local
7524 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp_rif_fid_deconfigure() local
7644 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp1_rif_ipip_lb_configure() local
7669 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp1_rif_ipip_lb_deconfigure() local
7697 struct mlxsw_sp *mlxsw_sp = ul_rif->mlxsw_sp; in mlxsw_sp_rif_ipip_lb_ul_rif_op() local
7709 mlxsw_sp_ul_rif_create(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_vr *vr, in mlxsw_sp_ul_rif_create()
7742 struct mlxsw_sp *mlxsw_sp = ul_rif->mlxsw_sp; in mlxsw_sp_ul_rif_destroy() local
7750 mlxsw_sp_ul_rif_get(struct mlxsw_sp *mlxsw_sp, u32 tb_id, in mlxsw_sp_ul_rif_get()
7781 struct mlxsw_sp *mlxsw_sp = ul_rif->mlxsw_sp; in mlxsw_sp_ul_rif_put() local
7794 int mlxsw_sp_router_ul_rif_get(struct mlxsw_sp *mlxsw_sp, u32 ul_tb_id, in mlxsw_sp_router_ul_rif_get()
7812 void mlxsw_sp_router_ul_rif_put(struct mlxsw_sp *mlxsw_sp, u16 ul_rif_index) in mlxsw_sp_router_ul_rif_put()
7831 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp2_rif_ipip_lb_configure() local
7856 struct mlxsw_sp *mlxsw_sp = rif->mlxsw_sp; in mlxsw_sp2_rif_ipip_lb_deconfigure() local
7879 static int mlxsw_sp_rifs_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_rifs_init()
7892 static void mlxsw_sp_rifs_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_rifs_fini()
7903 mlxsw_sp_ipip_config_tigcr(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_ipip_config_tigcr()
7911 static int mlxsw_sp_ipips_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_ipips_init()
7928 static void mlxsw_sp_ipips_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_ipips_fini()
7957 static void mlxsw_sp_mp4_hash_init(struct mlxsw_sp *mlxsw_sp, char *recr2_pl) in mlxsw_sp_mp4_hash_init()
7975 static void mlxsw_sp_mp6_hash_init(struct mlxsw_sp *mlxsw_sp, char *recr2_pl) in mlxsw_sp_mp6_hash_init()
7998 static int mlxsw_sp_mp_hash_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_mp_hash_init()
8011 static int mlxsw_sp_mp_hash_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_mp_hash_init()
8017 static int mlxsw_sp_dscp_init(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_dscp_init()
8035 static int __mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp) in __mlxsw_sp_router_init()
8052 static void __mlxsw_sp_router_fini(struct mlxsw_sp *mlxsw_sp) in __mlxsw_sp_router_fini()
8060 int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp, in mlxsw_sp_router_init()
8179 void mlxsw_sp_router_fini(struct mlxsw_sp *mlxsw_sp) in mlxsw_sp_router_fini()