@@ -4413,6 +4413,71 @@ static void mlxsw_sp_params_unregister(struct mlxsw_core *mlxsw_core)
44134413 ARRAY_SIZE (mlxsw_sp_devlink_params ));
44144414}
44154415
4416+ static int
4417+ mlxsw_sp_params_acl_region_rehash_intrvl_get (struct devlink * devlink , u32 id ,
4418+ struct devlink_param_gset_ctx * ctx )
4419+ {
4420+ struct mlxsw_core * mlxsw_core = devlink_priv (devlink );
4421+ struct mlxsw_sp * mlxsw_sp = mlxsw_core_driver_priv (mlxsw_core );
4422+
4423+ ctx -> val .vu32 = mlxsw_sp_acl_region_rehash_intrvl_get (mlxsw_sp );
4424+ return 0 ;
4425+ }
4426+
4427+ static int
4428+ mlxsw_sp_params_acl_region_rehash_intrvl_set (struct devlink * devlink , u32 id ,
4429+ struct devlink_param_gset_ctx * ctx )
4430+ {
4431+ struct mlxsw_core * mlxsw_core = devlink_priv (devlink );
4432+ struct mlxsw_sp * mlxsw_sp = mlxsw_core_driver_priv (mlxsw_core );
4433+
4434+ return mlxsw_sp_acl_region_rehash_intrvl_set (mlxsw_sp , ctx -> val .vu32 );
4435+ }
4436+
4437+ static const struct devlink_param mlxsw_sp2_devlink_params [] = {
4438+ DEVLINK_PARAM_DRIVER (MLXSW_DEVLINK_PARAM_ID_ACL_REGION_REHASH_INTERVAL ,
4439+ "acl_region_rehash_interval" ,
4440+ DEVLINK_PARAM_TYPE_U32 ,
4441+ BIT (DEVLINK_PARAM_CMODE_RUNTIME ),
4442+ mlxsw_sp_params_acl_region_rehash_intrvl_get ,
4443+ mlxsw_sp_params_acl_region_rehash_intrvl_set ,
4444+ NULL ),
4445+ };
4446+
4447+ static int mlxsw_sp2_params_register (struct mlxsw_core * mlxsw_core )
4448+ {
4449+ struct devlink * devlink = priv_to_devlink (mlxsw_core );
4450+ union devlink_param_value value ;
4451+ int err ;
4452+
4453+ err = mlxsw_sp_params_register (mlxsw_core );
4454+ if (err )
4455+ return err ;
4456+
4457+ err = devlink_params_register (devlink , mlxsw_sp2_devlink_params ,
4458+ ARRAY_SIZE (mlxsw_sp2_devlink_params ));
4459+ if (err )
4460+ goto err_devlink_params_register ;
4461+
4462+ value .vu32 = 0 ;
4463+ devlink_param_driverinit_value_set (devlink ,
4464+ MLXSW_DEVLINK_PARAM_ID_ACL_REGION_REHASH_INTERVAL ,
4465+ value );
4466+ return 0 ;
4467+
4468+ err_devlink_params_register :
4469+ mlxsw_sp_params_unregister (mlxsw_core );
4470+ return err ;
4471+ }
4472+
4473+ static void mlxsw_sp2_params_unregister (struct mlxsw_core * mlxsw_core )
4474+ {
4475+ devlink_params_unregister (priv_to_devlink (mlxsw_core ),
4476+ mlxsw_sp2_devlink_params ,
4477+ ARRAY_SIZE (mlxsw_sp2_devlink_params ));
4478+ mlxsw_sp_params_unregister (mlxsw_core );
4479+ }
4480+
44164481static struct mlxsw_driver mlxsw_sp1_driver = {
44174482 .kind = mlxsw_sp1_driver_name ,
44184483 .priv_size = sizeof (struct mlxsw_sp ),
@@ -4461,8 +4526,8 @@ static struct mlxsw_driver mlxsw_sp2_driver = {
44614526 .sb_occ_tc_port_bind_get = mlxsw_sp_sb_occ_tc_port_bind_get ,
44624527 .txhdr_construct = mlxsw_sp_txhdr_construct ,
44634528 .resources_register = mlxsw_sp2_resources_register ,
4464- .params_register = mlxsw_sp_params_register ,
4465- .params_unregister = mlxsw_sp_params_unregister ,
4529+ .params_register = mlxsw_sp2_params_register ,
4530+ .params_unregister = mlxsw_sp2_params_unregister ,
44664531 .txhdr_len = MLXSW_TXHDR_LEN ,
44674532 .profile = & mlxsw_sp2_config_profile ,
44684533 .res_query_enabled = true,
0 commit comments