From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 12F9E42C4D; Wed, 7 Jun 2023 14:20:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 968CB40A84; Wed, 7 Jun 2023 14:20:02 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 5089240698 for ; Wed, 7 Jun 2023 14:20:01 +0200 (CEST) Received: from [192.168.1.126] (unknown [188.242.181.57]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 4061E59; Wed, 7 Jun 2023 15:20:00 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 4061E59 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1686140400; bh=MHng2gT0lRluhh5ehCFHmx7Llw96k1TTszyAIP0XUyU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=OaIDlkexwABol9X1YeqZRHNLMvbQ8WVrucoiifQarnCVmJCpKoopHyVIjY7OtADI0 jyih+E6AYnWbldHksKRG6g+9TIwlLOp7wPqk0yaKjhYBB2Yxj1p4agTQcQncfOEmQa pXcr9KZ1YNrqAIS9CRfCWzKE7rwe5AnXkJDymcJc= Message-ID: Date: Wed, 7 Jun 2023 15:19:59 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v3 00/34] net/sfc: support HW conntrack assistance Content-Language: en-US To: Ivan Malov , dev@dpdk.org Cc: Ferruh Yigit References: <20230601195538.8265-1-ivan.malov@arknetworks.am> <20230604232523.6746-1-ivan.malov@arknetworks.am> From: Andrew Rybchenko In-Reply-To: <20230604232523.6746-1-ivan.malov@arknetworks.am> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 6/5/23 02:24, Ivan Malov wrote: > On EF100 hardware, match-action engine (MAE) can be equipped > with an assistance table for connection tracking (CT). In it, > an entry key is a set of exact match fields: an EtherType, a > pair of IP addresses, a L4 protocol ID and a pair of L4 port > numbers. An entry response can provide matching packets with > a mark value and additional data to be plumbed to NAT action. > In addition, an update to mark-and-sweep counter can be done. > > This table was designed with larger capacity in mind, > so moving the above match criteria out of an action > rule (AR) specification to a CT entry increases the > likelihood of reusing AR entries and improves the > total flow engine capacity. Make use of that. > > Changes in v2: > * Found and fixed my own mistake in [15/34] > * Fixed [16/34] as per 0-day robot report > * Added missing release notes to [27/34] > * Added missing release notes to [30/34] > > Changes in v3: > * Fixed release notes in [27/34] > * Rebased on dpdk to fix CI > > Denis Pryazhennikov (11): > common/sfc_efx/base: update MCDI headers > common/sfc_efx/base: detect MCDI Table Access API support > common/sfc_efx/base: add API to list HW tables > common/sfc_efx/base: add macro to get indexed QWORD field > common/sfc_efx/base: add API to get HW table desc > common/sfc_efx/base: add API to insert data to HW table > common/sfc_efx/base: add API to delete entry from HW table > net/sfc: add MCDI wrappers for BCAM tables > net/sfc: add functions to manipulate MCDI table fields > net/sfc: attach to HW table API > net/sfc: add API to manage HW Conntrack table > > Ivan Malov (23): > net/sfc: make entry pointer optional in MAE resource helpers > net/sfc: turn flow create/destroy methods into lock wrappers > net/sfc: let driver-internal flows use VF representor action > net/sfc: extend generic flow API to allow for internal flows > net/sfc: switch driver-internal flows to use generic methods > net/sfc: move MAE flow parsing method to MAE-specific source > net/sfc: move MAE counter stream start to action set handler > net/sfc: prepare MAE outer rules for action rule indirection > net/sfc: turn MAE flow action rules into shareable resources > common/sfc_efx/base: provide an API to clone MAE match specs > common/sfc_efx/base: add API to read back MAE match criteria > common/sfc_efx/base: match on conntrack mark in action rules > common/sfc_efx/base: add API to request MAE conntrack lookup > net/sfc: make use of conntrack assistance for transfer flows > common/sfc_efx/base: support NAT edits in MAE > net/sfc: add support for IPv4 NAT offload to MAE backend > net/sfc: rename SW structures used by transfer flow counters > net/sfc: rework MAE action rule counter representation in SW > net/sfc: support indirect count action in transfer flows > common/sfc_efx/base: rework MAE counter provisioning helpers > net/sfc: indicate MAE counter type in use for transfer flows > common/sfc_efx/base: support conntrack assistance counters > net/sfc: use conntrack assistance counters in transfer flows > > doc/guides/nics/features/sfc.ini | 4 + > doc/guides/nics/sfc_efx.rst | 10 + > doc/guides/rel_notes/release_23_07.rst | 18 + > drivers/common/sfc_efx/base/efx.h | 198 +- > drivers/common/sfc_efx/base/efx_impl.h | 5 +- > drivers/common/sfc_efx/base/efx_mae.c | 383 ++- > drivers/common/sfc_efx/base/efx_mcdi.h | 4 + > drivers/common/sfc_efx/base/efx_regs_mcdi.h | 2557 ++++++++++++++++++- > drivers/common/sfc_efx/base/efx_table.c | 506 ++++ > drivers/common/sfc_efx/base/hunt_nic.c | 2 + > drivers/common/sfc_efx/base/medford2_nic.c | 2 + > drivers/common/sfc_efx/base/medford_nic.c | 2 + > drivers/common/sfc_efx/base/meson.build | 1 + > drivers/common/sfc_efx/base/rhead_nic.c | 9 + > drivers/common/sfc_efx/base/siena_nic.c | 2 + > drivers/common/sfc_efx/version.map | 14 + > drivers/net/sfc/meson.build | 6 +- > drivers/net/sfc/sfc.c | 27 +- > drivers/net/sfc/sfc.h | 3 + > drivers/net/sfc/sfc_flow.c | 246 +- > drivers/net/sfc/sfc_flow.h | 45 +- > drivers/net/sfc/sfc_mae.c | 1899 ++++++++++---- > drivers/net/sfc/sfc_mae.h | 131 +- > drivers/net/sfc/sfc_mae_counter.c | 146 +- > drivers/net/sfc/sfc_mae_counter.h | 16 +- > drivers/net/sfc/sfc_mae_ct.c | 201 ++ > drivers/net/sfc/sfc_mae_ct.h | 68 + > drivers/net/sfc/sfc_repr.c | 20 +- > drivers/net/sfc/sfc_repr_proxy.c | 53 +- > drivers/net/sfc/sfc_repr_proxy.h | 2 +- > drivers/net/sfc/sfc_repr_proxy_api.h | 3 + > drivers/net/sfc/sfc_switch.c | 7 +- > drivers/net/sfc/sfc_switch.h | 10 + > drivers/net/sfc/sfc_tbl_meta.c | 71 + > drivers/net/sfc/sfc_tbl_meta.h | 37 + > drivers/net/sfc/sfc_tbl_meta_cache.c | 253 ++ > drivers/net/sfc/sfc_tbl_meta_cache.h | 25 + > drivers/net/sfc/sfc_tbls.c | 200 ++ > drivers/net/sfc/sfc_tbls.h | 285 +++ > 39 files changed, 6601 insertions(+), 870 deletions(-) > create mode 100644 drivers/common/sfc_efx/base/efx_table.c > create mode 100644 drivers/net/sfc/sfc_mae_ct.c > create mode 100644 drivers/net/sfc/sfc_mae_ct.h > create mode 100644 drivers/net/sfc/sfc_tbl_meta.c > create mode 100644 drivers/net/sfc/sfc_tbl_meta.h > create mode 100644 drivers/net/sfc/sfc_tbl_meta_cache.c > create mode 100644 drivers/net/sfc/sfc_tbl_meta_cache.h > create mode 100644 drivers/net/sfc/sfc_tbls.c > create mode 100644 drivers/net/sfc/sfc_tbls.h > With minor notes on some patches fixed Series-acked-by: Andrew Rybchenko