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