mbox series

[v2,00/20] net/sfc: support flow API COUNT action

Message ID 20210604142414.283611-1-andrew.rybchenko@oktetlabs.ru (mailing list archive)
Headers
Series net/sfc: support flow API COUNT action |

Message

Andrew Rybchenko June 4, 2021, 2:23 p.m. UTC
  Update base driver and support COUNT action in transfer flow rules.

v2:
 - add release notes
 - add missing documentaion
 - fix spelling
 - handle query in stopped gracefully

Andrew Rybchenko (6):
  net/sfc: do not enable interrupts on internal Rx queues
  common/sfc_efx/base: separate target EvQ and IRQ config
  common/sfc_efx/base: support custom EvQ to IRQ mapping
  net/sfc: explicitly control IRQ used for Rx queues
  net/sfc: add NUMA-aware registry of service logical cores
  common/sfc_efx/base: add packetiser packet format definition

Igor Romanov (14):
  net/sfc: introduce ethdev Rx queue ID
  net/sfc: introduce ethdev Tx queue ID
  common/sfc_efx/base: add ingress m-port RxQ flag
  common/sfc_efx/base: add user mark RxQ flag
  net/sfc: add abstractions for the management EVQ identity
  net/sfc: add support for initialising different RxQ types
  net/sfc: reserve RxQ for counters
  common/sfc_efx/base: add counter creation MCDI wrappers
  common/sfc_efx/base: add counter stream MCDI wrappers
  common/sfc_efx/base: support counter in action set
  net/sfc: add Rx datapath method to get pushed buffers count
  common/sfc_efx/base: add max MAE counters to limits
  net/sfc: support flow action COUNT in transfer rules
  net/sfc: support flow API query for count actions

 doc/guides/nics/sfc_efx.rst                   |   2 +
 doc/guides/rel_notes/release_21_08.rst        |   6 +
 drivers/common/sfc_efx/base/ef10_ev.c         |  14 +-
 drivers/common/sfc_efx/base/ef10_impl.h       |   1 +
 drivers/common/sfc_efx/base/ef10_rx.c         |  57 +-
 drivers/common/sfc_efx/base/efx.h             | 113 +++
 drivers/common/sfc_efx/base/efx_ev.c          |  39 +-
 drivers/common/sfc_efx/base/efx_impl.h        |   8 +-
 drivers/common/sfc_efx/base/efx_mae.c         | 430 ++++++++-
 drivers/common/sfc_efx/base/efx_mcdi.c        |   7 +-
 drivers/common/sfc_efx/base/efx_mcdi.h        |   7 +
 .../base/efx_regs_counters_pkt_format.h       |  87 ++
 drivers/common/sfc_efx/base/efx_rx.c          |  14 +-
 drivers/common/sfc_efx/base/rhead_ev.c        |  14 +-
 drivers/common/sfc_efx/base/rhead_impl.h      |   1 +
 drivers/common/sfc_efx/base/rhead_rx.c        |   6 +
 drivers/common/sfc_efx/version.map            |   9 +
 drivers/net/sfc/meson.build                   |  12 +
 drivers/net/sfc/sfc.c                         |  68 +-
 drivers/net/sfc/sfc.h                         |  22 +
 drivers/net/sfc/sfc_dp.h                      |   6 +
 drivers/net/sfc/sfc_dp_rx.h                   |   4 +
 drivers/net/sfc/sfc_ef100_rx.c                |  15 +
 drivers/net/sfc/sfc_ethdev.c                  | 115 ++-
 drivers/net/sfc/sfc_ev.c                      |  36 +-
 drivers/net/sfc/sfc_ev.h                      | 107 ++-
 drivers/net/sfc/sfc_flow.c                    |  77 +-
 drivers/net/sfc/sfc_flow.h                    |   6 +
 drivers/net/sfc/sfc_mae.c                     | 296 ++++++-
 drivers/net/sfc/sfc_mae.h                     |  61 ++
 drivers/net/sfc/sfc_mae_counter.c             | 827 ++++++++++++++++++
 drivers/net/sfc/sfc_mae_counter.h             |  58 ++
 drivers/net/sfc/sfc_rx.c                      | 231 +++--
 drivers/net/sfc/sfc_rx.h                      |  15 +-
 drivers/net/sfc/sfc_service.c                 |  99 +++
 drivers/net/sfc/sfc_service.h                 |  20 +
 drivers/net/sfc/sfc_stats.h                   |  80 ++
 drivers/net/sfc/sfc_tweak.h                   |   9 +
 drivers/net/sfc/sfc_tx.c                      | 164 ++--
 drivers/net/sfc/sfc_tx.h                      |  11 +-
 40 files changed, 2904 insertions(+), 250 deletions(-)
 create mode 100644 drivers/common/sfc_efx/base/efx_regs_counters_pkt_format.h
 create mode 100644 drivers/net/sfc/sfc_mae_counter.c
 create mode 100644 drivers/net/sfc/sfc_mae_counter.h
 create mode 100644 drivers/net/sfc/sfc_service.c
 create mode 100644 drivers/net/sfc/sfc_service.h
 create mode 100644 drivers/net/sfc/sfc_stats.h
  

Comments

David Marchand June 17, 2021, 8:37 a.m. UTC | #1
Hello Andrew,

On Fri, Jun 4, 2021 at 4:24 PM Andrew Rybchenko
<andrew.rybchenko@oktetlabs.ru> wrote:
>
> Update base driver and support COUNT action in transfer flow rules.
>
> v2:
>  - add release notes
>  - add missing documentaion
>  - fix spelling
>  - handle query in stopped gracefully

I see build issues in the CI.
Can you have a look?

gcc -Idrivers/libtmp_rte_net_sfc.a.p -Idrivers -I../drivers
-Idrivers/net/sfc -I../drivers/net/sfc -Ilib/ethdev -I../lib/ethdev
-I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include
-Ilib/eal/linux/include -I../lib/eal/linux/include
-Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common
-I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs
-I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry
-I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf
-Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/meter
-I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci
-I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev
-I../drivers/bus/vdev -Idrivers/common/sfc_efx
-I../drivers/common/sfc_efx -Idrivers/common/sfc_efx/base
-I../drivers/common/sfc_efx/base -fdiagnostics-color=always -pipe
-D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O3 -include
rte_config.h -Wextra -Wcast-qual -Wdeprecated -Wformat
-Wformat-nonliteral -Wformat-security -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wold-style-definition
-Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef
-Wwrite-strings -Wno-packed-not-aligned
-Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native
-DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation
-Wno-strict-aliasing -Wdisabled-optimization -Waggregate-return
-Wbad-function-cast -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.sfc -MD -MQ
drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o -MF
drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o.d -o
drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o -c
../drivers/net/sfc/sfc_flow.c
../drivers/net/sfc/sfc_flow.c: In function ‘sfc_flow_query’:
../drivers/net/sfc/sfc_flow.c:2815:19: error: ‘SFC_ETHDEV_STARTED’
undeclared (first use in this function); did you mean
‘SFC_ADAPTER_STARTED’?
  if (sa->state != SFC_ETHDEV_STARTED) {
                   ^~~~~~~~~~~~~~~~~~
                   SFC_ADAPTER_STARTED
../drivers/net/sfc/sfc_flow.c:2815:19: note: each undeclared
identifier is reported only once for each function it appears in

$ git grep SFC_ETHDEV_STARTED
drivers/net/sfc/sfc_flow.c:     if (sa->state != SFC_ETHDEV_STARTED) {
  
Andrew Rybchenko June 18, 2021, 1:40 p.m. UTC | #2
On 6/17/21 11:37 AM, David Marchand wrote:
> Hello Andrew,
> 
> On Fri, Jun 4, 2021 at 4:24 PM Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru> wrote:
>>
>> Update base driver and support COUNT action in transfer flow rules.
>>
>> v2:
>>  - add release notes
>>  - add missing documentaion
>>  - fix spelling
>>  - handle query in stopped gracefully
> 
> I see build issues in the CI.
> Can you have a look?
> 
> gcc -Idrivers/libtmp_rte_net_sfc.a.p -Idrivers -I../drivers
> -Idrivers/net/sfc -I../drivers/net/sfc -Ilib/ethdev -I../lib/ethdev
> -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include
> -Ilib/eal/linux/include -I../lib/eal/linux/include
> -Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common
> -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs
> -I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry
> -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf
> -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/meter
> -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci
> -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev
> -I../drivers/bus/vdev -Idrivers/common/sfc_efx
> -I../drivers/common/sfc_efx -Idrivers/common/sfc_efx/base
> -I../drivers/common/sfc_efx/base -fdiagnostics-color=always -pipe
> -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O3 -include
> rte_config.h -Wextra -Wcast-qual -Wdeprecated -Wformat
> -Wformat-nonliteral -Wformat-security -Wmissing-declarations
> -Wmissing-prototypes -Wnested-externs -Wold-style-definition
> -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef
> -Wwrite-strings -Wno-packed-not-aligned
> -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native
> -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation
> -Wno-strict-aliasing -Wdisabled-optimization -Waggregate-return
> -Wbad-function-cast -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.sfc -MD -MQ
> drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o -MF
> drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o.d -o
> drivers/libtmp_rte_net_sfc.a.p/net_sfc_sfc_flow.c.o -c
> ../drivers/net/sfc/sfc_flow.c
> ../drivers/net/sfc/sfc_flow.c: In function ‘sfc_flow_query’:
> ../drivers/net/sfc/sfc_flow.c:2815:19: error: ‘SFC_ETHDEV_STARTED’
> undeclared (first use in this function); did you mean
> ‘SFC_ADAPTER_STARTED’?
>   if (sa->state != SFC_ETHDEV_STARTED) {
>                    ^~~~~~~~~~~~~~~~~~
>                    SFC_ADAPTER_STARTED
> ../drivers/net/sfc/sfc_flow.c:2815:19: note: each undeclared
> identifier is reported only once for each function it appears in
> 
> $ git grep SFC_ETHDEV_STARTED
> drivers/net/sfc/sfc_flow.c:     if (sa->state != SFC_ETHDEV_STARTED) {

Thanks David, my bad. Quick fixup without build check before
sending. I'll fix it in v3 and send it shortly.