nh_grp 2680 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp; /* pointer back to the group nh_grp 2789 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = nh->nh_grp; nh_grp 2793 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh->offloaded || !nh_grp->adj_index_valid) nh_grp 2796 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c *p_adj_index = nh_grp->adj_index; nh_grp 2797 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c *p_adj_size = nh_grp->ecmp_size; nh_grp 2799 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 2800 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh_iter = &nh_grp->nexthops[i]; nh_grp 2819 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = nh->nh_grp; nh_grp 2822 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 2823 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh_iter = &nh_grp->nexthops[i]; nh_grp 2832 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop4_group_fi(const struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 2834 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return nh_grp->priv; nh_grp 2846 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop6_group_has_nexthop(const struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 2852 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 2855 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 2865 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop6_group_cmp(const struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 2870 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (nh_grp->count != fib6_entry->nrt6) nh_grp 2881 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!mlxsw_sp_nexthop6_group_has_nexthop(nh_grp, gw, ifindex, nh_grp 2893 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c const struct mlxsw_sp_nexthop_group *nh_grp = ptr; nh_grp 2897 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return cmp_arg->fi != mlxsw_sp_nexthop4_group_fi(nh_grp); nh_grp 2899 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return !mlxsw_sp_nexthop6_group_cmp(nh_grp, nh_grp 2908 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_type(const struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 2910 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return nh_grp->neigh_tbl->family; nh_grp 2915 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c const struct mlxsw_sp_nexthop_group *nh_grp = data; nh_grp 2921 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c switch (mlxsw_sp_nexthop_group_type(nh_grp)) { nh_grp 2923 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fi = mlxsw_sp_nexthop4_group_fi(nh_grp); nh_grp 2926 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c val = nh_grp->count; nh_grp 2927 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 2928 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 2977 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 2979 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (mlxsw_sp_nexthop_group_type(nh_grp) == AF_INET6 && nh_grp 2980 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c !nh_grp->gateway) nh_grp 2984 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c &nh_grp->ht_node, nh_grp 2989 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 2991 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (mlxsw_sp_nexthop_group_type(nh_grp) == AF_INET6 && nh_grp 2992 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c !nh_grp->gateway) nh_grp 2996 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c &nh_grp->ht_node, nh_grp 3070 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 3077 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) { nh_grp 3084 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->adj_index, nh_grp 3085 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->ecmp_size); nh_grp 3156 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 3159 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c u32 adj_index = nh_grp->adj_index; /* base */ nh_grp 3164 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3165 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3199 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3204 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) { nh_grp 3220 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_fib_entries_refresh(struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3225 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) { nh_grp 3288 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_normalize(struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3293 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3294 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3304 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3305 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3313 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->sum_norm_weight = sum_norm_weight; nh_grp 3317 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_rebalance(struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3319 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c int total = nh_grp->sum_norm_weight; nh_grp 3320 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c u16 ecmp_size = nh_grp->ecmp_size; nh_grp 3323 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3324 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh = &nh_grp->nexthops[i]; nh_grp 3338 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3349 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp->gateway) { nh_grp 3350 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp); nh_grp 3354 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3355 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3367 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nh_grp, false); nh_grp 3374 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_normalize(nh_grp); nh_grp 3375 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp->sum_norm_weight) nh_grp 3381 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c ecmp_size = nh_grp->sum_norm_weight; nh_grp 3396 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c old_adj_index_valid = nh_grp->adj_index_valid; nh_grp 3397 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c old_adj_index = nh_grp->adj_index; nh_grp 3398 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c old_ecmp_size = nh_grp->ecmp_size; nh_grp 3399 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->adj_index_valid = 1; nh_grp 3400 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->adj_index = adj_index; nh_grp 3401 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->ecmp_size = ecmp_size; nh_grp 3402 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_rebalance(nh_grp); nh_grp 3403 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nh_grp, true); nh_grp 3413 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp); nh_grp 3421 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_adj_index_mass_update(mlxsw_sp, nh_grp, nh_grp 3431 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_fib_entries_refresh(nh_grp); nh_grp 3436 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c old_adj_index_valid = nh_grp->adj_index_valid; nh_grp 3437 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->adj_index_valid = 0; nh_grp 3438 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3439 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3442 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp); nh_grp 3447 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->ecmp_size, nh_grp->adj_index); nh_grp 3473 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c n = neigh_lookup(nh->nh_grp->neigh_tbl, &nh->gw_addr, nh->rif->dev); nh_grp 3475 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c n = neigh_create(nh->nh_grp->neigh_tbl, &nh->gw_addr, nh_grp 3499 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh->nh_grp); nh_grp 3536 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh->nh_grp); nh_grp 3567 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh->nh_grp->gateway || nh->neigh_entry) nh_grp 3575 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c n = neigh_lookup(nh->nh_grp->neigh_tbl, &nh->gw_addr, nh->rif->dev); nh_grp 3577 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c n = neigh_create(nh->nh_grp->neigh_tbl, &nh->gw_addr, nh_grp 3653 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh->nh_grp->gateway || nh->ipip_entry) nh_grp 3745 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 3753 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh->nh_grp = nh_grp; nh_grp 3819 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh->nh_grp); nh_grp 3842 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh->nh_grp); nh_grp 3865 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh->nh_grp); nh_grp 3882 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp; nh_grp 3888 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = kzalloc(struct_size(nh_grp, nexthops, nhs), GFP_KERNEL); nh_grp 3889 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp) nh_grp 3891 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->priv = fi; nh_grp 3892 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c INIT_LIST_HEAD(&nh_grp->fib_list); nh_grp 3893 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->neigh_tbl = &arp_tbl; nh_grp 3895 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->gateway = mlxsw_sp_fi_is_gateway(mlxsw_sp, fi); nh_grp 3896 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->count = nhs; nh_grp 3898 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3899 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3901 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop4_init(mlxsw_sp, nh_grp, nh, fib_nh); nh_grp 3905 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_group_insert(mlxsw_sp, nh_grp); nh_grp 3908 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh_grp); nh_grp 3909 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return nh_grp; nh_grp 3914 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3918 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c kfree(nh_grp); nh_grp 3924 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 3929 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_remove(mlxsw_sp, nh_grp); nh_grp 3930 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 3931 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 3934 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh_grp); nh_grp 3935 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c WARN_ON_ONCE(nh_grp->adj_index_valid); nh_grp 3936 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fib_info_put(mlxsw_sp_nexthop4_group_fi(nh_grp)); nh_grp 3937 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c kfree(nh_grp); nh_grp 3944 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp; nh_grp 3946 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = mlxsw_sp_nexthop4_group_lookup(mlxsw_sp, fi); nh_grp 3947 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp) { nh_grp 3948 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = mlxsw_sp_nexthop4_group_create(mlxsw_sp, fi); nh_grp 3949 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (IS_ERR(nh_grp)) nh_grp 3950 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return PTR_ERR(nh_grp); nh_grp 3952 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c list_add_tail(&fib_entry->nexthop_group_node, &nh_grp->fib_list); nh_grp 3953 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fib_entry->nh_group = nh_grp; nh_grp 3960 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group; nh_grp 3963 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!list_empty(&nh_grp->fib_list)) nh_grp 3965 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop4_group_destroy(mlxsw_sp, nh_grp); nh_grp 4007 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_rt6_nexthop(struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 4012 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 4013 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh = &nh_grp->nexthops[i]; nh_grp 4029 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group; nh_grp 4036 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->nexthops->key.fib_nh->fib_nh_flags |= RTNH_F_OFFLOAD; nh_grp 4040 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 4041 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh = &nh_grp->nexthops[i]; nh_grp 4053 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group; nh_grp 4056 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!list_is_singular(&nh_grp->fib_list)) nh_grp 4059 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 4060 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop *nh = &nh_grp->nexthops[i]; nh_grp 4083 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group; nh_grp 4087 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = mlxsw_sp_rt6_nexthop(nh_grp, mlxsw_sp_rt6); nh_grp 5049 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 5094 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp, nh_grp 5100 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh->nh_grp = nh_grp; nh_grp 5111 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return mlxsw_sp_nexthop6_type_init(mlxsw_sp, nh_grp, nh, rt); nh_grp 5133 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp; nh_grp 5139 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = kzalloc(struct_size(nh_grp, nexthops, fib6_entry->nrt6), nh_grp 5141 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp) nh_grp 5143 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c INIT_LIST_HEAD(&nh_grp->fib_list); nh_grp 5145 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->neigh_tbl = &nd_tbl; nh_grp 5149 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->gateway = mlxsw_sp_rt6_is_gateway(mlxsw_sp, mlxsw_sp_rt6->rt); nh_grp 5150 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp->count = fib6_entry->nrt6; nh_grp 5151 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c for (i = 0; i < nh_grp->count; i++) { nh_grp 5154 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 5155 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop6_init(mlxsw_sp, nh_grp, nh, rt); nh_grp 5161 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c err = mlxsw_sp_nexthop_group_insert(mlxsw_sp, nh_grp); nh_grp 5165 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh_grp); nh_grp 5166 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return nh_grp; nh_grp 5171 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 5174 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c kfree(nh_grp); nh_grp 5180 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp) nh_grp 5183 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c int i = nh_grp->count; nh_grp 5185 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_remove(mlxsw_sp, nh_grp); nh_grp 5187 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh = &nh_grp->nexthops[i]; nh_grp 5190 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop_group_refresh(mlxsw_sp, nh_grp); nh_grp 5191 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c WARN_ON(nh_grp->adj_index_valid); nh_grp 5192 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c kfree(nh_grp); nh_grp 5198 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp; nh_grp 5200 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = mlxsw_sp_nexthop6_group_lookup(mlxsw_sp, fib6_entry); nh_grp 5201 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!nh_grp) { nh_grp 5202 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c nh_grp = mlxsw_sp_nexthop6_group_create(mlxsw_sp, fib6_entry); nh_grp 5203 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (IS_ERR(nh_grp)) nh_grp 5204 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c return PTR_ERR(nh_grp); nh_grp 5208 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c &nh_grp->fib_list); nh_grp 5209 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c fib6_entry->common.nh_group = nh_grp; nh_grp 5217 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c struct mlxsw_sp_nexthop_group *nh_grp = fib_entry->nh_group; nh_grp 5220 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c if (!list_empty(&nh_grp->fib_list)) nh_grp 5222 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c mlxsw_sp_nexthop6_group_destroy(mlxsw_sp, nh_grp); nh_grp 39 include/net/nexthop.h struct nlattr *nh_grp; nh_grp 98 include/net/nexthop.h struct nh_group __rcu *nh_grp; nh_grp 126 include/net/nexthop.h struct nh_group *nh_grp; nh_grp 128 include/net/nexthop.h nh_grp = rcu_dereference_rtnl(nh->nh_grp); nh_grp 129 include/net/nexthop.h return nh_grp->mpath; nh_grp 141 include/net/nexthop.h struct nh_group *nh_grp; nh_grp 143 include/net/nexthop.h nh_grp = rcu_dereference_rtnl(nh->nh_grp); nh_grp 144 include/net/nexthop.h if (nh_grp->mpath) nh_grp 145 include/net/nexthop.h rc = nh_grp->num_nh; nh_grp 167 include/net/nexthop.h struct nh_group *nhg = rtnl_dereference(nh->nh_grp); nh_grp 189 include/net/nexthop.h struct nh_group *nh_grp; nh_grp 191 include/net/nexthop.h nh_grp = rcu_dereference_rtnl(nh->nh_grp); nh_grp 192 include/net/nexthop.h if (nh_grp->num_nh > 1) nh_grp 195 include/net/nexthop.h nh = nh_grp->nh_entries[0].nh; nh_grp 222 include/net/nexthop.h struct nh_group *nh_grp; nh_grp 224 include/net/nexthop.h nh_grp = rcu_dereference_rtnl(nh->nh_grp); nh_grp 225 include/net/nexthop.h if (nh_grp->mpath) { nh_grp 226 include/net/nexthop.h nh = nexthop_mpath_select(nh_grp, nhsel); nh_grp 242 include/net/nexthop.h struct nh_group *nhg = rcu_dereference(nh->nh_grp); nh_grp 299 include/net/nexthop.h struct nh_group *nh_grp; nh_grp 301 include/net/nexthop.h nh_grp = rcu_dereference_rtnl(nh->nh_grp); nh_grp 302 include/net/nexthop.h nh = nexthop_mpath_select(nh_grp, 0); nh_grp 66 net/ipv4/nexthop.c nhg = rcu_dereference_raw(nh->nh_grp); nh_grp 124 net/ipv4/nexthop.c size_t sz = offsetof(struct nexthop, nh_grp) nh_grp 239 net/ipv4/nexthop.c struct nh_group *nhg = rtnl_dereference(nh->nh_grp); nh_grp 293 net/ipv4/nexthop.c struct nh_group *nhg = rtnl_dereference(nh->nh_grp); nh_grp 376 net/ipv4/nexthop.c struct nh_group *nhg = rtnl_dereference(nh->nh_grp); nh_grp 499 net/ipv4/nexthop.c nhg = rcu_dereference(nh->nh_grp); nh_grp 541 net/ipv4/nexthop.c nhg = rcu_dereference_rtnl(nh->nh_grp); nh_grp 588 net/ipv4/nexthop.c nhg = rtnl_dereference(nh->nh_grp); nh_grp 661 net/ipv4/nexthop.c nhg = rtnl_dereference(nh->nh_grp); nh_grp 716 net/ipv4/nexthop.c nhg = rtnl_dereference(nhp->nh_grp); nh_grp 748 net/ipv4/nexthop.c rcu_assign_pointer(nhp->nh_grp, newg); nh_grp 771 net/ipv4/nexthop.c struct nh_group *nhg = rcu_dereference_rtnl(nh->nh_grp); nh_grp 865 net/ipv4/nexthop.c oldg = rtnl_dereference(old->nh_grp); nh_grp 866 net/ipv4/nexthop.c newg = rtnl_dereference(new->nh_grp); nh_grp 872 net/ipv4/nexthop.c rcu_assign_pointer(old->nh_grp, newg); nh_grp 877 net/ipv4/nexthop.c rcu_assign_pointer(new->nh_grp, oldg); nh_grp 1101 net/ipv4/nexthop.c struct nlattr *grps_attr = cfg->nh_grp; nh_grp 1152 net/ipv4/nexthop.c rcu_assign_pointer(nh->nh_grp, nhg); nh_grp 1303 net/ipv4/nexthop.c if (cfg->nh_grp) nh_grp 1385 net/ipv4/nexthop.c cfg->nh_grp = tb[NHA_GROUP];