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];