net/mlx5: fix committed bucket size
Committed Bucket Size calculation tries to fit into 8-bit wide
mantissa field by setting 256 as a maximum value for it.
To compensate for this increase in the mantissa value the exponent
value has to be reduced by 8. But it gives a negative exponent
value for CBS less than 128. And negative exponent value is not
supported by the NIC. Adjust CSB calculation only for values
bigger than 128 to allow both small and big bucket sizes.
Fixes: 3bd26b23ce
("net/mlx5: support meter profile operations")
Cc: stable@dpdk.org
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
This commit is contained in:
parent
793f5f4a34
commit
21fdeab422
@ -295,8 +295,10 @@ mlx5_flow_meter_xbs_man_exp_calc(uint64_t xbs, uint8_t *man, uint8_t *exp)
|
||||
}
|
||||
/* xbs = xbs_mantissa * 2^xbs_exponent */
|
||||
_man = frexp(xbs, &_exp);
|
||||
_man = _man * pow(2, MLX5_MAN_WIDTH);
|
||||
_exp = _exp - MLX5_MAN_WIDTH;
|
||||
if (_exp >= MLX5_MAN_WIDTH) {
|
||||
_man = _man * pow(2, MLX5_MAN_WIDTH);
|
||||
_exp = _exp - MLX5_MAN_WIDTH;
|
||||
}
|
||||
*man = (uint8_t)ceil(_man);
|
||||
*exp = _exp;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user