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.
Patchset: Patch 1: Refactors devlink trap for easier code re-use in the coming patches 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. Changelog: Minor changes in cover letter v1->v2: 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 -- 2.14.1