aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h
diff options
context:
space:
mode:
authorIdo Schimmel <idosch@mellanox.com>2020-03-30 22:38:28 +0300
committerDavid S. Miller <davem@davemloft.net>2020-03-30 17:54:59 -0700
commit13f2e64b94eaf9131472a1102e1ee25b32e86fed (patch)
tree1291c43bad0f46b2a9a066bdea96096e96fa8a0f /drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h
parentmlxsw: spectrum_trap: Prepare policers for registration with devlink (diff)
downloadlinux-dev-13f2e64b94eaf9131472a1102e1ee25b32e86fed.tar.xz
linux-dev-13f2e64b94eaf9131472a1102e1ee25b32e86fed.zip
mlxsw: spectrum_trap: Add devlink-trap policer support
Register supported packet trap policers with devlink and implement callbacks to change their parameters and read their counters. Prevent user space from passing invalid policer parameters down to the device by checking their validity and communicating the failure via an appropriate extack message. v2: * Remove the max/min validity checks from __mlxsw_sp_trap_policer_set() Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h
index 05bb652b1a76..8c54897ba173 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.h
@@ -4,13 +4,21 @@
#ifndef _MLXSW_SPECTRUM_TRAP_H
#define _MLXSW_SPECTRUM_TRAP_H
+#include <linux/list.h>
#include <net/devlink.h>
struct mlxsw_sp_trap {
struct devlink_trap_policer *policers_arr; /* Registered policers */
u64 policers_count; /* Number of registered policers */
+ struct list_head policer_item_list;
u64 max_policers;
unsigned long policers_usage[]; /* Usage bitmap */
};
+struct mlxsw_sp_trap_policer_item {
+ u16 hw_id;
+ u32 id;
+ struct list_head list; /* Member of policer_item_list */
+};
+
#endif