diff options
author | Roi Dayan <roid@nvidia.com> | 2022-07-21 11:04:51 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2022-07-28 13:55:27 -0700 |
commit | 7d1a5ce46e475378761432263e9b1a385968a9af (patch) | |
tree | da790849abc30fc7e01c67072f58ae92bc7b307b /drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c | |
parent | f8e9d413a28a36f7451ca3b53306a6a8daa7b997 (diff) | |
download | linux-7d1a5ce46e475378761432263e9b1a385968a9af.tar.bz2 |
net/mlx5e: TC, Support tc action api for police
Add support for tc action api for police.
Offloading standalone police action without
a tc rule and reporting stats.
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Jianbo Liu <jianbol@nvidia.com>
Reviewed-by: Oz Shlomo <ozsh@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c index 17529cc07ff4..a53e205f4a89 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c @@ -561,3 +561,19 @@ mlx5e_flow_meters_cleanup(struct mlx5e_flow_meters *flow_meters) mlx5_core_dealloc_pd(flow_meters->mdev, flow_meters->pdn); kfree(flow_meters); } + +void +mlx5e_tc_meter_get_stats(struct mlx5e_flow_meter_handle *meter, + u64 *bytes, u64 *packets, u64 *drops, u64 *lastuse) +{ + u64 bytes1, packets1, lastuse1; + u64 bytes2, packets2, lastuse2; + + mlx5_fc_query_cached(meter->green_counter, &bytes1, &packets1, &lastuse1); + mlx5_fc_query_cached(meter->red_counter, &bytes2, &packets2, &lastuse2); + + *bytes = bytes1 + bytes2; + *packets = packets1 + packets2; + *drops = packets2; + *lastuse = max_t(u64, lastuse1, lastuse2); +} |