[PATCH net-next RFC v2 0/3] Add devlink traps in devlink port context

From: Aya Levin
Date: Thu Sep 17 2020 - 06:47:41 EST

Implement support for devlink traps on per-port basis. Dropped
packets in the RX flow are related to the Ethernet port and thus
should be in port context. Traps per device should trap global
configuration which may cause drops. Devlink traps is regard as a
debug mode. Using traps per port enable debug which doesn't effect
other ports on a device.

Patch 1: Refactors devlink trap for easier code re-use in the coming
Patch 2: Adds devlink traps under devlink port context
ports context. In a nutshell it allows enable/disable of a trap on
all related ports which registered this trap.
Patch 3: Display a use in devlink traps in port context in mlx5
ethernet driver.

Minor changes in cover letter
Patch 1:
-Gather only the traps lists for future code reuse. Don't
try to reuse the traps ops.
Ptach 2:
-Add traps lock in devlink_port
-Add devlink_port ops and in it, add the trap ops
-Add support onlty for traps and exclude groups and policy
-Add separate netlink commands for port trap get and set
-Allow trap registration without a corresponding group
Patch 3: removed
Ptach 4:
-Is now patch 3
-Minor changes in trap's definition
-Adjustments to trap API and ops

Aya Levin (3):
devlink: Wrap trap related lists a trap_lists struct
devlink: Add devlink traps under devlink_ports context
net/mlx5e: Add devlink trap to catch oversize packets

drivers/net/ethernet/mellanox/mlx5/core/Makefile | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +
drivers/net/ethernet/mellanox/mlx5/core/en/traps.c | 38 ++
drivers/net/ethernet/mellanox/mlx5/core/en/traps.h | 14 +
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 48 +++
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 11 +-
include/net/devlink.h | 54 ++-
include/uapi/linux/devlink.h | 5 +
net/core/devlink.c | 453 ++++++++++++++++++---
9 files changed, 556 insertions(+), 71 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/traps.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/traps.h