Merge branch 'mlxsw-Two-small-updates'
Ido Schimmel says: ==================== mlxsw: Two small updates Patch #1, from Amit, exposes the size of the key-value database (KVD) where different entries (e.g., routes, neighbours) are stored in the device. This allows users to understand how many entries can be offloaded and is also useful for writing scale tests. Patch #2 increases the number of IPv6 nexthop groups mlxsw can offload. The problem and solution are explained in detail in the commit message. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
f2ad83af32
|
@ -5026,6 +5026,26 @@ static int mlxsw_sp1_resources_kvd_register(struct mlxsw_core *mlxsw_core)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int mlxsw_sp2_resources_kvd_register(struct mlxsw_core *mlxsw_core)
|
||||
{
|
||||
struct devlink *devlink = priv_to_devlink(mlxsw_core);
|
||||
struct devlink_resource_size_params kvd_size_params;
|
||||
u32 kvd_size;
|
||||
|
||||
if (!MLXSW_CORE_RES_VALID(mlxsw_core, KVD_SIZE))
|
||||
return -EIO;
|
||||
|
||||
kvd_size = MLXSW_CORE_RES_GET(mlxsw_core, KVD_SIZE);
|
||||
devlink_resource_size_params_init(&kvd_size_params, kvd_size, kvd_size,
|
||||
MLXSW_SP_KVD_GRANULARITY,
|
||||
DEVLINK_RESOURCE_UNIT_ENTRY);
|
||||
|
||||
return devlink_resource_register(devlink, MLXSW_SP_RESOURCE_NAME_KVD,
|
||||
kvd_size, MLXSW_SP_RESOURCE_KVD,
|
||||
DEVLINK_RESOURCE_ID_PARENT_TOP,
|
||||
&kvd_size_params);
|
||||
}
|
||||
|
||||
static int mlxsw_sp1_resources_register(struct mlxsw_core *mlxsw_core)
|
||||
{
|
||||
return mlxsw_sp1_resources_kvd_register(mlxsw_core);
|
||||
|
@ -5033,7 +5053,7 @@ static int mlxsw_sp1_resources_register(struct mlxsw_core *mlxsw_core)
|
|||
|
||||
static int mlxsw_sp2_resources_register(struct mlxsw_core *mlxsw_core)
|
||||
{
|
||||
return 0;
|
||||
return mlxsw_sp2_resources_kvd_register(mlxsw_core);
|
||||
}
|
||||
|
||||
static int mlxsw_sp_kvd_sizes_get(struct mlxsw_core *mlxsw_core,
|
||||
|
|
|
@ -2943,7 +2943,7 @@ static u32 mlxsw_sp_nexthop_group_hash_obj(const void *data, u32 len, u32 seed)
|
|||
val = nh_grp->count;
|
||||
for (i = 0; i < nh_grp->count; i++) {
|
||||
nh = &nh_grp->nexthops[i];
|
||||
val ^= nh->ifindex;
|
||||
val ^= jhash(&nh->ifindex, sizeof(nh->ifindex), seed);
|
||||
}
|
||||
return jhash(&val, sizeof(val), seed);
|
||||
default:
|
||||
|
@ -2961,7 +2961,7 @@ mlxsw_sp_nexthop6_group_hash(struct mlxsw_sp_fib6_entry *fib6_entry, u32 seed)
|
|||
|
||||
list_for_each_entry(mlxsw_sp_rt6, &fib6_entry->rt6_list, list) {
|
||||
dev = mlxsw_sp_rt6->rt->fib6_nh->fib_nh_dev;
|
||||
val ^= dev->ifindex;
|
||||
val ^= jhash(&dev->ifindex, sizeof(dev->ifindex), seed);
|
||||
}
|
||||
|
||||
return jhash(&val, sizeof(val), seed);
|
||||
|
|
Loading…
Reference in New Issue