[PATCH iwl-next 0/9] igc: Add support for Frame Preemption feature in IGC

From: Faizal Rahim
Date: Mon Dec 16 2024 - 01:49:03 EST


Introduces support for the FPE feature in the IGC driver.

The patches aligns with the upstream FPE API:
https://patchwork.kernel.org/project/netdevbpf/cover/20230220122343.1156614-1-vladimir.oltean@xxxxxxx/
https://patchwork.kernel.org/project/netdevbpf/cover/20230119122705.73054-1-vladimir.oltean@xxxxxxx/

It builds upon earlier work:
https://patchwork.kernel.org/project/netdevbpf/cover/20220520011538.1098888-1-vinicius.gomes@xxxxxxxxx/

The first four patches in this series are preparation work for the subsequent patches.

The patch series adds the following functionalities to the IGC driver:
a) Configure FPE using `ethtool --set-mm`.
b) Display FPE settings via `ethtool --show-mm`.
c) View FPE statistics using `ethtool --include-statistics --show-mm'.
e) Enable preemptible/express queue with `fp`:
tc qdisc add ... root taprio \
fp E E P P

Note:
1. preemption can occur with or without the verification handshake,
depending on the value of the verify_enabled field, which can be
configured using ethtool --set-mm.
2. Enabling FPE with mqprio offload is not covered in this series, but
existing code prevents user from configuring FPE alongside mqprio offload.

Faizal Rahim (6):
igc: Rename xdp_get_tx_ring() for non-xdp usage
igc: Add support to set MAC Merge data via ethtool
igc: Add support for frame preemption verification
igc: Add support for preemptible traffic class in taprio
igc: Add support to get MAC Merge data via ethtool
igc: Add support to get frame preemption statistics via ethtool

Vinicius Costa Gomes (3):
igc: Optimize the TX packet buffer utilization
igc: Set the RX packet buffer size for TSN mode
igc: Add support for receiving frames with all zeroes address

drivers/net/ethernet/intel/igc/igc.h | 45 ++-
drivers/net/ethernet/intel/igc/igc_defines.h | 15 +-
drivers/net/ethernet/intel/igc/igc_ethtool.c | 96 ++++++
drivers/net/ethernet/intel/igc/igc_main.c | 80 ++++-
drivers/net/ethernet/intel/igc/igc_regs.h | 19 ++
drivers/net/ethernet/intel/igc/igc_tsn.c | 330 ++++++++++++++++++-
drivers/net/ethernet/intel/igc/igc_tsn.h | 15 +
7 files changed, 586 insertions(+), 14 deletions(-)

--
2.25.1