Message ID | 20210604142414.283611-1-andrew.rybchenko@oktetlabs.ru (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C9410A0A0F; Fri, 4 Jun 2021 16:24:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9E30E410E8; Fri, 4 Jun 2021 16:24:32 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id AC79B4068F for <dev@dpdk.org>; Fri, 4 Jun 2021 16:24:30 +0200 (CEST) Received: by shelob.oktetlabs.ru (Postfix, from userid 122) id 5C4727F697; Fri, 4 Jun 2021 17:24:30 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_DISCARD, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17]) by shelob.oktetlabs.ru (Postfix) with ESMTP id 6027C7F4E2 for <dev@dpdk.org>; Fri, 4 Jun 2021 17:24:24 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 6027C7F4E2 Authentication-Results: shelob.oktetlabs.ru/6027C7F4E2; dkim=none; dkim-atps=neutral From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> To: dev@dpdk.org Date: Fri, 4 Jun 2021 17:23:54 +0300 Message-Id: <20210604142414.283611-1-andrew.rybchenko@oktetlabs.ru> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru> References: <20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v2 00/20] net/sfc: support flow API COUNT action X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
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
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) {
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.