Subject: [PATCH v2 net-next 00/12] sfc: TC offload counters

From: <[email-masked]>
Date: Mon, 14 Nov 2022 13:15:49 +0000

From: Edward Cree <[email-masked]>

EF100 hardware supports attaching counters to action-sets in the MAE.
Use these counters to implement stats for TC flower offload.

The counters are delivered to the host over a special hardware RX queue
 which should only ever receive counter update messages, not 'real'
 network packets.

Changed in v2:
* added new patch #1 to fix shift UB on 32 bit (kernel test robot)

Edward Cree (12):
  sfc: fix ef100 RX prefix macro
  sfc: add ability for an RXQ to grant credits on refill
  sfc: add start and stop methods to channels
  sfc: add ability for extra channels to receive raw RX buffers
  sfc: add ef100 MAE counter support functions
  sfc: add extra RX channel to receive MAE counter updates on ef100
  sfc: add hashtables for MAE counters and counter ID mappings
  sfc: add functions to allocate/free MAE counters
  sfc: accumulate MAE counter values from update packets
  sfc: attach an MAE counter to TC actions that need it
  sfc: validate MAE action order
  sfc: implement counters readout to TC stats

 drivers/net/ethernet/sfc/Makefile             |   2 +-
 drivers/net/ethernet/sfc/ef100_rx.c           |  23 +-
 drivers/net/ethernet/sfc/efx_channels.c       |   9 +-
 drivers/net/ethernet/sfc/mae.c                | 170 +++++-
 drivers/net/ethernet/sfc/mae.h                |   7 +
 drivers/net/ethernet/sfc/mae_counter_format.h |  73 +++
 drivers/net/ethernet/sfc/mcdi.h               |   5 +
 drivers/net/ethernet/sfc/net_driver.h         |  17 +-
 drivers/net/ethernet/sfc/rx_common.c          |   3 +
 drivers/net/ethernet/sfc/tc.c                 | 122 +++++
 drivers/net/ethernet/sfc/tc.h                 |  16 +
 drivers/net/ethernet/sfc/tc_counters.c        | 501 ++++++++++++++++++
 drivers/net/ethernet/sfc/tc_counters.h        |  59 +++
 13 files changed, 998 insertions(+), 9 deletions(-)
 create mode 100644 drivers/net/ethernet/sfc/mae_counter_format.h
 create mode 100644 drivers/net/ethernet/sfc/tc_counters.c
 create mode 100644 drivers/net/ethernet/sfc/tc_counters.h