DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ivan Malov <ivan.malov@arknetworks.am>
To: dev@dpdk.org
Cc: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Ferruh Yigit <ferruh.yigit@amd.com>,
	Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>,
	Andy Moreton <amoreton@xilinx.com>
Subject: [PATCH v4 11/34] net/sfc: add API to manage HW Conntrack table
Date: Wed,  7 Jun 2023 17:02:22 +0400	[thread overview]
Message-ID: <20230607130245.8048-12-ivan.malov@arknetworks.am> (raw)
In-Reply-To: <20230607130245.8048-1-ivan.malov@arknetworks.am>

From: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>

The new API allows to manipulate entries in
the HW Conntrack table.
It uses a new Table Access API as a backend.

Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/meson.build  |   1 +
 drivers/net/sfc/sfc_mae_ct.c | 201 +++++++++++++++++++++++++++++++++++
 drivers/net/sfc/sfc_mae_ct.h |  68 ++++++++++++
 3 files changed, 270 insertions(+)
 create mode 100644 drivers/net/sfc/sfc_mae_ct.c
 create mode 100644 drivers/net/sfc/sfc_mae_ct.h

diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index c9d4264674..5adde68517 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -92,6 +92,7 @@ sources = files(
         'sfc_tbl_meta_cache.c',
         'sfc_mae.c',
         'sfc_mae_counter.c',
+        'sfc_mae_ct.c',
         'sfc_flow.c',
         'sfc_flow_rss.c',
         'sfc_flow_tunnel.c',
diff --git a/drivers/net/sfc/sfc_mae_ct.c b/drivers/net/sfc/sfc_mae_ct.c
new file mode 100644
index 0000000000..fd6819c8a5
--- /dev/null
+++ b/drivers/net/sfc/sfc_mae_ct.c
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2023 Advanced Micro Devices, Inc.
+ */
+
+#include "sfc.h"
+#include "sfc_mae_ct.h"
+
+/* SF-123102-TC-1A § 10.6.3: Conntrack_Table key */
+static void
+sfc_mae_ct_key_to_mcdi_key(const sfc_mae_conntrack_key_t *key,
+			   const efx_table_field_descriptor_t *fields,
+			   unsigned int n_fields, uint32_t *mcdi_key,
+			   unsigned int key_size)
+{
+	unsigned int i;
+
+	for (i = 0; i < n_fields; i++) {
+		const efx_table_field_descriptor_t *desc = &fields[i];
+
+		if (desc->mask_type == EFX_TABLE_FIELD_MASK_NEVER)
+			continue;
+
+		switch (desc->field_id) {
+		case EFX_TABLE_FIELD_ID_IP_PROTO:
+			sfc_tbls_field_set_u8(mcdi_key, key_size, desc->lbn,
+					      desc->width, key->ip_proto);
+			break;
+		case EFX_TABLE_FIELD_ID_ETHER_TYPE:
+			sfc_tbls_field_set_u16(mcdi_key, key_size, desc->lbn,
+					       desc->width, key->ether_type_le);
+			break;
+		case EFX_TABLE_FIELD_ID_SRC_PORT:
+			sfc_tbls_field_set_u16(mcdi_key, key_size, desc->lbn,
+					       desc->width, key->src_port_le);
+			break;
+		case EFX_TABLE_FIELD_ID_DST_PORT:
+			sfc_tbls_field_set_u16(mcdi_key, key_size, desc->lbn,
+					       desc->width, key->dst_port_le);
+			break;
+		case EFX_TABLE_FIELD_ID_SRC_IP:
+			sfc_tbls_field_set_ip(mcdi_key, key_size, desc->lbn,
+					      desc->width,
+					      (const uint32_t *)key->src_addr_le);
+			break;
+		case EFX_TABLE_FIELD_ID_DST_IP:
+			sfc_tbls_field_set_ip(mcdi_key, key_size, desc->lbn,
+					      desc->width,
+					      (const uint32_t *)key->dst_addr_le);
+			break;
+
+		default:
+			break;
+		}
+	}
+}
+
+/* SF-123102-TC-1A § 10.6.4: Conntrack_Table response */
+static void
+sfc_mae_ct_response_to_mcdi_response(const sfc_mae_conntrack_response_t *response,
+				     const efx_table_field_descriptor_t *fields,
+				     unsigned int n_fields, uint32_t *mcdi_resp,
+				     unsigned int resp_size)
+{
+	unsigned int i;
+
+	for (i = 0; i < n_fields; i++) {
+		const efx_table_field_descriptor_t *desc = &fields[i];
+
+		if (desc->mask_type == EFX_TABLE_FIELD_MASK_NEVER)
+			continue;
+
+		/* Fields of responses are always reported with the EXACT type. */
+		SFC_ASSERT(desc->mask_type == EFX_TABLE_FIELD_MASK_EXACT);
+
+		switch (desc->field_id) {
+		case EFX_TABLE_FIELD_ID_CT_MARK:
+			sfc_tbls_field_set_u32(mcdi_resp, resp_size, desc->lbn,
+					       desc->width, response->ct_mark);
+			break;
+		case EFX_TABLE_FIELD_ID_COUNTER_ID:
+			sfc_tbls_field_set_u32(mcdi_resp, resp_size, desc->lbn,
+					       desc->width, response->counter_id);
+			break;
+		case EFX_TABLE_FIELD_ID_NAT_DIR:
+			sfc_tbls_field_set_u8(mcdi_resp, resp_size, desc->lbn,
+					      desc->width, response->nat.dir_is_dst);
+			break;
+		case EFX_TABLE_FIELD_ID_NAT_IP:
+			sfc_tbls_field_set_u32(mcdi_resp, resp_size, desc->lbn,
+					       desc->width, response->nat.ip_le);
+			break;
+		case EFX_TABLE_FIELD_ID_NAT_PORT:
+			sfc_tbls_field_set_u16(mcdi_resp, resp_size, desc->lbn,
+					       desc->width, response->nat.port_le);
+			break;
+
+		default:
+			break;
+		}
+	}
+}
+
+int
+sfc_mae_conntrack_insert(struct sfc_adapter *sa,
+			 const sfc_mae_conntrack_key_t *key,
+			 const sfc_mae_conntrack_response_t *response)
+{
+	const struct sfc_tbls *tables = &sa->hw_tables;
+	uint8_t data[EFX_TABLE_ENTRY_LENGTH_MAX] = {0};
+	const struct sfc_tbl_meta *meta = NULL;
+	unsigned int response_size;
+	uint32_t *response_data;
+	unsigned int data_size;
+	unsigned int key_size;
+	uint32_t *start_data;
+	uint16_t resp_width;
+	uint16_t key_width;
+	uint32_t *key_data;
+	uint32_t *end_data;
+	int rc = 0;
+
+	if (tables->status != SFC_TBLS_STATUS_SUPPORTED)
+		return -ENOTSUP;
+
+	if (!sfc_mae_conntrack_is_supported(sa))
+		return -ENOTSUP;
+
+	meta = sfc_mae_conntrack_meta_lookup(sa);
+	if (meta == NULL)
+		return -ENOENT;
+
+	key_width = meta->descriptor.key_width;
+	resp_width = meta->descriptor.resp_width;
+
+	start_data = (uint32_t *)data;
+	key_data = start_data;
+	response_data = sfc_tbls_next_req_fields(key_data, key_width);
+	end_data = sfc_tbls_next_req_fields(response_data, resp_width);
+
+	key_size = RTE_PTR_DIFF(response_data, key_data);
+	response_size = RTE_PTR_DIFF(end_data, response_data);
+	data_size = RTE_PTR_DIFF(end_data, start_data);
+	SFC_ASSERT(data_size <= sizeof(data));
+
+	sfc_mae_ct_key_to_mcdi_key(key, meta->keys,
+				   meta->descriptor.n_key_fields, key_data,
+				   key_size);
+	sfc_mae_ct_response_to_mcdi_response(response, meta->responses,
+					     meta->descriptor.n_resp_fields,
+					     response_data, response_size);
+
+	rc = sfc_tbls_bcam_entry_insert(sa->nic, EFX_TABLE_ID_CONNTRACK,
+					key_width, resp_width, data,
+					data_size);
+
+	return rc;
+}
+
+int
+sfc_mae_conntrack_delete(struct sfc_adapter *sa,
+			 const sfc_mae_conntrack_key_t *key)
+{
+	const struct sfc_tbls *tables = &sa->hw_tables;
+	uint8_t data[EFX_TABLE_ENTRY_LENGTH_MAX] = {0};
+	const struct sfc_tbl_meta *meta = NULL;
+	unsigned int data_size;
+	uint32_t *start_data;
+	uint16_t key_width;
+	uint32_t *key_data;
+	uint32_t *end_data;
+	int rc = 0;
+
+	if (tables->status != SFC_TBLS_STATUS_SUPPORTED)
+		return -ENOTSUP;
+
+	if (!sfc_mae_conntrack_is_supported(sa))
+		return -ENOTSUP;
+
+	meta = sfc_mae_conntrack_meta_lookup(sa);
+	if (meta == NULL)
+		return -ENOENT;
+
+	key_width = meta->descriptor.key_width;
+
+	start_data = (uint32_t *)data;
+	key_data = start_data;
+	end_data = sfc_tbls_next_req_fields(key_data, key_width);
+
+	data_size = RTE_PTR_DIFF(end_data, start_data);
+	SFC_ASSERT(data_size <= sizeof(data));
+
+	sfc_mae_ct_key_to_mcdi_key(key, meta->keys,
+				   meta->descriptor.n_key_fields,
+				   key_data, data_size);
+
+	rc = sfc_tbls_bcam_entry_delete(sa->nic, EFX_TABLE_ID_CONNTRACK,
+					key_width, data, data_size);
+
+	return rc;
+}
diff --git a/drivers/net/sfc/sfc_mae_ct.h b/drivers/net/sfc/sfc_mae_ct.h
new file mode 100644
index 0000000000..b5a3181cd3
--- /dev/null
+++ b/drivers/net/sfc/sfc_mae_ct.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2023 Advanced Micro Devices, Inc.
+ */
+
+#ifndef _SFC_MAE_CONNTRACK_H
+#define _SFC_MAE_CONNTRACK_H
+
+#include <stdbool.h>
+
+#include <rte_ip.h>
+
+#include "efx.h"
+
+#include "sfc_tbls.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct sfc_mae_conntrack_key_s {
+	uint8_t		ip_proto;
+	uint16_t	ether_type_le;
+
+	uint16_t	src_port_le;
+	uint16_t	dst_port_le;
+
+	uint8_t		src_addr_le[RTE_SIZEOF_FIELD(struct rte_ipv6_hdr, src_addr)];
+	uint8_t		dst_addr_le[RTE_SIZEOF_FIELD(struct rte_ipv6_hdr, dst_addr)];
+} sfc_mae_conntrack_key_t;
+
+typedef struct sfc_mae_conntrack_nat_s {
+	uint32_t	ip_le;
+	uint16_t	port_le;
+	bool		dir_is_dst;
+} sfc_mae_conntrack_nat_t;
+
+typedef struct sfc_mae_conntrack_response_s {
+	uint32_t		ct_mark;
+	sfc_mae_conntrack_nat_t	nat;
+	uint32_t		counter_id;
+} sfc_mae_conntrack_response_t;
+
+struct sfc_adapter;
+
+static inline bool
+sfc_mae_conntrack_is_supported(struct sfc_adapter *sa)
+{
+	return sfc_tbls_id_is_supported(sa, EFX_TABLE_ID_CONNTRACK);
+}
+
+static inline const struct sfc_tbl_meta *
+sfc_mae_conntrack_meta_lookup(struct sfc_adapter *sa)
+{
+	return sfc_tbl_meta_lookup(sa, EFX_TABLE_ID_CONNTRACK);
+}
+
+int sfc_mae_conntrack_insert(struct sfc_adapter *sa,
+			     const sfc_mae_conntrack_key_t *key,
+			     const sfc_mae_conntrack_response_t *response);
+
+int sfc_mae_conntrack_delete(struct sfc_adapter *sa,
+			     const sfc_mae_conntrack_key_t *key);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SFC_MAE_CONNTRACK_H */
-- 
2.30.2


  parent reply	other threads:[~2023-06-07 13:04 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-01 19:55 [PATCH 00/34] net/sfc: support HW conntrack assistance Ivan Malov
2023-06-01 19:55 ` [PATCH 01/34] common/sfc_efx/base: update MCDI headers Ivan Malov
2023-06-01 19:55 ` [PATCH 02/34] common/sfc_efx/base: detect MCDI Table Access API support Ivan Malov
2023-06-01 19:55 ` [PATCH 03/34] common/sfc_efx/base: add API to list HW tables Ivan Malov
2023-06-01 19:55 ` [PATCH 04/34] common/sfc_efx/base: add macro to get indexed QWORD field Ivan Malov
2023-06-01 19:55 ` [PATCH 05/34] common/sfc_efx/base: add API to get HW table desc Ivan Malov
2023-06-01 19:55 ` [PATCH 06/34] common/sfc_efx/base: add API to insert data to HW table Ivan Malov
2023-06-01 19:55 ` [PATCH 07/34] common/sfc_efx/base: add API to delete entry from " Ivan Malov
2023-06-01 19:55 ` [PATCH 08/34] net/sfc: add MCDI wrappers for BCAM tables Ivan Malov
2023-06-01 19:55 ` [PATCH 09/34] net/sfc: add functions to manipulate MCDI table fields Ivan Malov
2023-06-01 19:55 ` [PATCH 10/34] net/sfc: attach to HW table API Ivan Malov
2023-06-01 19:55 ` [PATCH 11/34] net/sfc: add API to manage HW Conntrack table Ivan Malov
2023-06-01 19:55 ` [PATCH 12/34] net/sfc: make entry pointer optional in MAE resource helpers Ivan Malov
2023-06-01 19:55 ` [PATCH 13/34] net/sfc: turn flow create/destroy methods into lock wrappers Ivan Malov
2023-06-01 19:55 ` [PATCH 14/34] net/sfc: let driver-internal flows use VF representor action Ivan Malov
2023-06-01 19:55 ` [PATCH 15/34] net/sfc: extend generic flow API to allow for internal flows Ivan Malov
2023-06-01 19:55 ` [PATCH 16/34] net/sfc: switch driver-internal flows to use generic methods Ivan Malov
2023-06-01 19:55 ` [PATCH 17/34] net/sfc: move MAE flow parsing method to MAE-specific source Ivan Malov
2023-06-01 19:55 ` [PATCH 18/34] net/sfc: move MAE counter stream start to action set handler Ivan Malov
2023-06-01 19:55 ` [PATCH 19/34] net/sfc: prepare MAE outer rules for action rule indirection Ivan Malov
2023-06-01 19:55 ` [PATCH 20/34] net/sfc: turn MAE flow action rules into shareable resources Ivan Malov
2023-06-01 19:55 ` [PATCH 21/34] common/sfc_efx/base: provide an API to clone MAE match specs Ivan Malov
2023-06-01 19:55 ` [PATCH 22/34] common/sfc_efx/base: add API to read back MAE match criteria Ivan Malov
2023-06-01 19:55 ` [PATCH 23/34] common/sfc_efx/base: match on conntrack mark in action rules Ivan Malov
2023-06-01 19:55 ` [PATCH 24/34] common/sfc_efx/base: add API to request MAE conntrack lookup Ivan Malov
2023-06-01 19:55 ` [PATCH 25/34] net/sfc: make use of conntrack assistance for transfer flows Ivan Malov
2023-06-01 19:55 ` [PATCH 26/34] common/sfc_efx/base: support NAT edits in MAE Ivan Malov
2023-06-01 19:55 ` [PATCH 27/34] net/sfc: add support for IPv4 NAT offload to MAE backend Ivan Malov
2023-06-01 19:55 ` [PATCH 28/34] net/sfc: rename SW structures used by transfer flow counters Ivan Malov
2023-06-01 19:55 ` [PATCH 29/34] net/sfc: rework MAE action rule counter representation in SW Ivan Malov
2023-06-01 19:55 ` [PATCH 30/34] net/sfc: support indirect count action in transfer flows Ivan Malov
2023-06-01 19:55 ` [PATCH 31/34] common/sfc_efx/base: rework MAE counter provisioning helpers Ivan Malov
2023-06-01 19:55 ` [PATCH 32/34] net/sfc: indicate MAE counter type in use for transfer flows Ivan Malov
2023-06-01 19:55 ` [PATCH 33/34] common/sfc_efx/base: support conntrack assistance counters Ivan Malov
2023-06-01 19:55 ` [PATCH 34/34] net/sfc: use conntrack assistance counters in transfer flows Ivan Malov
2023-06-04  0:00 ` [PATCH v2 00/34] net/sfc: support HW conntrack assistance Ivan Malov
2023-06-04  0:00   ` [PATCH v2 01/34] common/sfc_efx/base: update MCDI headers Ivan Malov
2023-06-04  0:00   ` [PATCH v2 02/34] common/sfc_efx/base: detect MCDI Table Access API support Ivan Malov
2023-06-04  0:00   ` [PATCH v2 03/34] common/sfc_efx/base: add API to list HW tables Ivan Malov
2023-06-04  0:00   ` [PATCH v2 04/34] common/sfc_efx/base: add macro to get indexed QWORD field Ivan Malov
2023-06-04  0:00   ` [PATCH v2 05/34] common/sfc_efx/base: add API to get HW table desc Ivan Malov
2023-06-04  0:00   ` [PATCH v2 06/34] common/sfc_efx/base: add API to insert data to HW table Ivan Malov
2023-06-04  0:00   ` [PATCH v2 07/34] common/sfc_efx/base: add API to delete entry from " Ivan Malov
2023-06-04  0:00   ` [PATCH v2 08/34] net/sfc: add MCDI wrappers for BCAM tables Ivan Malov
2023-06-04  0:00   ` [PATCH v2 09/34] net/sfc: add functions to manipulate MCDI table fields Ivan Malov
2023-06-04  0:00   ` [PATCH v2 10/34] net/sfc: attach to HW table API Ivan Malov
2023-06-04  0:00   ` [PATCH v2 11/34] net/sfc: add API to manage HW Conntrack table Ivan Malov
2023-06-04  0:00   ` [PATCH v2 12/34] net/sfc: make entry pointer optional in MAE resource helpers Ivan Malov
2023-06-04  0:00   ` [PATCH v2 13/34] net/sfc: turn flow create/destroy methods into lock wrappers Ivan Malov
2023-06-04  0:00   ` [PATCH v2 14/34] net/sfc: let driver-internal flows use VF representor action Ivan Malov
2023-06-04  0:00   ` [PATCH v2 15/34] net/sfc: extend generic flow API to allow for internal flows Ivan Malov
2023-06-04  0:00   ` [PATCH v2 16/34] net/sfc: switch driver-internal flows to use generic methods Ivan Malov
2023-06-04  0:00   ` [PATCH v2 17/34] net/sfc: move MAE flow parsing method to MAE-specific source Ivan Malov
2023-06-04  0:00   ` [PATCH v2 18/34] net/sfc: move MAE counter stream start to action set handler Ivan Malov
2023-06-04  0:00   ` [PATCH v2 19/34] net/sfc: prepare MAE outer rules for action rule indirection Ivan Malov
2023-06-04  0:00   ` [PATCH v2 20/34] net/sfc: turn MAE flow action rules into shareable resources Ivan Malov
2023-06-04  0:00   ` [PATCH v2 21/34] common/sfc_efx/base: provide an API to clone MAE match specs Ivan Malov
2023-06-04  0:00   ` [PATCH v2 22/34] common/sfc_efx/base: add API to read back MAE match criteria Ivan Malov
2023-06-04  0:00   ` [PATCH v2 23/34] common/sfc_efx/base: match on conntrack mark in action rules Ivan Malov
2023-06-04  0:00   ` [PATCH v2 24/34] common/sfc_efx/base: add API to request MAE conntrack lookup Ivan Malov
2023-06-04  0:00   ` [PATCH v2 25/34] net/sfc: make use of conntrack assistance for transfer flows Ivan Malov
2023-06-04  0:00   ` [PATCH v2 26/34] common/sfc_efx/base: support NAT edits in MAE Ivan Malov
2023-06-04  0:00   ` [PATCH v2 27/34] net/sfc: add support for IPv4 NAT offload to MAE backend Ivan Malov
2023-06-04  0:00   ` [PATCH v2 28/34] net/sfc: rename SW structures used by transfer flow counters Ivan Malov
2023-06-04  0:00   ` [PATCH v2 29/34] net/sfc: rework MAE action rule counter representation in SW Ivan Malov
2023-06-04  0:00   ` [PATCH v2 30/34] net/sfc: support indirect count action in transfer flows Ivan Malov
2023-06-04  0:00   ` [PATCH v2 31/34] common/sfc_efx/base: rework MAE counter provisioning helpers Ivan Malov
2023-06-04  0:00   ` [PATCH v2 32/34] net/sfc: indicate MAE counter type in use for transfer flows Ivan Malov
2023-06-04  0:00   ` [PATCH v2 33/34] common/sfc_efx/base: support conntrack assistance counters Ivan Malov
2023-06-04  0:00   ` [PATCH v2 34/34] net/sfc: use conntrack assistance counters in transfer flows Ivan Malov
2023-06-04 23:24 ` [PATCH v3 00/34] net/sfc: support HW conntrack assistance Ivan Malov
2023-06-04 23:24   ` [PATCH v3 01/34] common/sfc_efx/base: update MCDI headers Ivan Malov
2023-06-04 23:24   ` [PATCH v3 02/34] common/sfc_efx/base: detect MCDI Table Access API support Ivan Malov
2023-06-04 23:24   ` [PATCH v3 03/34] common/sfc_efx/base: add API to list HW tables Ivan Malov
2023-06-04 23:24   ` [PATCH v3 04/34] common/sfc_efx/base: add macro to get indexed QWORD field Ivan Malov
2023-06-04 23:24   ` [PATCH v3 05/34] common/sfc_efx/base: add API to get HW table desc Ivan Malov
2023-06-07 11:47     ` Andrew Rybchenko
2023-06-07 12:06     ` Andrew Rybchenko
2023-06-04 23:24   ` [PATCH v3 06/34] common/sfc_efx/base: add API to insert data to HW table Ivan Malov
2023-06-04 23:24   ` [PATCH v3 07/34] common/sfc_efx/base: add API to delete entry from " Ivan Malov
2023-06-04 23:24   ` [PATCH v3 08/34] net/sfc: add MCDI wrappers for BCAM tables Ivan Malov
2023-06-07 11:53     ` Andrew Rybchenko
2023-06-04 23:24   ` [PATCH v3 09/34] net/sfc: add functions to manipulate MCDI table fields Ivan Malov
2023-06-07 12:00     ` Andrew Rybchenko
2023-06-04 23:24   ` [PATCH v3 10/34] net/sfc: attach to HW table API Ivan Malov
2023-06-07 12:08     ` Andrew Rybchenko
2023-06-04 23:25   ` [PATCH v3 11/34] net/sfc: add API to manage HW Conntrack table Ivan Malov
2023-06-04 23:25   ` [PATCH v3 12/34] net/sfc: make entry pointer optional in MAE resource helpers Ivan Malov
2023-06-04 23:25   ` [PATCH v3 13/34] net/sfc: turn flow create/destroy methods into lock wrappers Ivan Malov
2023-06-04 23:25   ` [PATCH v3 14/34] net/sfc: let driver-internal flows use VF representor action Ivan Malov
2023-06-04 23:25   ` [PATCH v3 15/34] net/sfc: extend generic flow API to allow for internal flows Ivan Malov
2023-06-04 23:25   ` [PATCH v3 16/34] net/sfc: switch driver-internal flows to use generic methods Ivan Malov
2023-06-04 23:25   ` [PATCH v3 17/34] net/sfc: move MAE flow parsing method to MAE-specific source Ivan Malov
2023-06-04 23:25   ` [PATCH v3 18/34] net/sfc: move MAE counter stream start to action set handler Ivan Malov
2023-06-04 23:25   ` [PATCH v3 19/34] net/sfc: prepare MAE outer rules for action rule indirection Ivan Malov
2023-06-04 23:25   ` [PATCH v3 20/34] net/sfc: turn MAE flow action rules into shareable resources Ivan Malov
2023-06-04 23:25   ` [PATCH v3 21/34] common/sfc_efx/base: provide an API to clone MAE match specs Ivan Malov
2023-06-04 23:25   ` [PATCH v3 22/34] common/sfc_efx/base: add API to read back MAE match criteria Ivan Malov
2023-06-04 23:25   ` [PATCH v3 23/34] common/sfc_efx/base: match on conntrack mark in action rules Ivan Malov
2023-06-04 23:25   ` [PATCH v3 24/34] common/sfc_efx/base: add API to request MAE conntrack lookup Ivan Malov
2023-06-04 23:25   ` [PATCH v3 25/34] net/sfc: make use of conntrack assistance for transfer flows Ivan Malov
2023-06-04 23:25   ` [PATCH v3 26/34] common/sfc_efx/base: support NAT edits in MAE Ivan Malov
2023-06-04 23:25   ` [PATCH v3 27/34] net/sfc: add support for IPv4 NAT offload to MAE backend Ivan Malov
2023-06-04 23:25   ` [PATCH v3 28/34] net/sfc: rename SW structures used by transfer flow counters Ivan Malov
2023-06-04 23:25   ` [PATCH v3 29/34] net/sfc: rework MAE action rule counter representation in SW Ivan Malov
2023-06-04 23:25   ` [PATCH v3 30/34] net/sfc: support indirect count action in transfer flows Ivan Malov
2023-06-04 23:25   ` [PATCH v3 31/34] common/sfc_efx/base: rework MAE counter provisioning helpers Ivan Malov
2023-06-04 23:25   ` [PATCH v3 32/34] net/sfc: indicate MAE counter type in use for transfer flows Ivan Malov
2023-06-04 23:25   ` [PATCH v3 33/34] common/sfc_efx/base: support conntrack assistance counters Ivan Malov
2023-06-04 23:25   ` [PATCH v3 34/34] net/sfc: use conntrack assistance counters in transfer flows Ivan Malov
2023-06-07 12:19   ` [PATCH v3 00/34] net/sfc: support HW conntrack assistance Andrew Rybchenko
2023-06-07 13:02 ` [PATCH v4 " Ivan Malov
2023-06-07 13:02   ` [PATCH v4 01/34] common/sfc_efx/base: update MCDI headers Ivan Malov
2023-06-21 16:52     ` Ferruh Yigit
2023-06-07 13:02   ` [PATCH v4 02/34] common/sfc_efx/base: detect MCDI Table Access API support Ivan Malov
2023-06-07 13:02   ` [PATCH v4 03/34] common/sfc_efx/base: add API to list HW tables Ivan Malov
2023-06-19 15:58     ` Ferruh Yigit
2023-06-21 11:09       ` Ivan Malov
2023-06-21 14:30         ` Ferruh Yigit
2023-06-07 13:02   ` [PATCH v4 04/34] common/sfc_efx/base: add macro to get indexed QWORD field Ivan Malov
2023-06-07 13:02   ` [PATCH v4 05/34] common/sfc_efx/base: add API to get HW table desc Ivan Malov
2023-06-07 13:02   ` [PATCH v4 06/34] common/sfc_efx/base: add API to insert data to HW table Ivan Malov
2023-06-07 13:02   ` [PATCH v4 07/34] common/sfc_efx/base: add API to delete entry from " Ivan Malov
2023-06-07 13:02   ` [PATCH v4 08/34] net/sfc: add MCDI wrappers for BCAM tables Ivan Malov
2023-06-07 13:02   ` [PATCH v4 09/34] net/sfc: add functions to manipulate MCDI table fields Ivan Malov
2023-06-07 13:02   ` [PATCH v4 10/34] net/sfc: attach to HW table API Ivan Malov
2023-06-07 13:02   ` Ivan Malov [this message]
2023-06-07 13:02   ` [PATCH v4 12/34] net/sfc: make entry pointer optional in MAE resource helpers Ivan Malov
2023-06-07 13:02   ` [PATCH v4 13/34] net/sfc: turn flow create/destroy methods into lock wrappers Ivan Malov
2023-06-07 13:02   ` [PATCH v4 14/34] net/sfc: let driver-internal flows use VF representor action Ivan Malov
2023-06-07 13:02   ` [PATCH v4 15/34] net/sfc: extend generic flow API to allow for internal flows Ivan Malov
2023-06-07 13:02   ` [PATCH v4 16/34] net/sfc: switch driver-internal flows to use generic methods Ivan Malov
2023-06-07 13:02   ` [PATCH v4 17/34] net/sfc: move MAE flow parsing method to MAE-specific source Ivan Malov
2023-06-07 13:02   ` [PATCH v4 18/34] net/sfc: move MAE counter stream start to action set handler Ivan Malov
2023-06-07 13:02   ` [PATCH v4 19/34] net/sfc: prepare MAE outer rules for action rule indirection Ivan Malov
2023-06-07 13:02   ` [PATCH v4 20/34] net/sfc: turn MAE flow action rules into shareable resources Ivan Malov
2023-06-07 13:02   ` [PATCH v4 21/34] common/sfc_efx/base: provide an API to clone MAE match specs Ivan Malov
2023-06-07 13:02   ` [PATCH v4 22/34] common/sfc_efx/base: add API to read back MAE match criteria Ivan Malov
2023-06-07 13:02   ` [PATCH v4 23/34] common/sfc_efx/base: match on conntrack mark in action rules Ivan Malov
2023-06-26 13:07     ` Thomas Monjalon
2023-06-07 13:02   ` [PATCH v4 24/34] common/sfc_efx/base: add API to request MAE conntrack lookup Ivan Malov
2023-06-07 13:02   ` [PATCH v4 25/34] net/sfc: make use of conntrack assistance for transfer flows Ivan Malov
2023-06-07 13:02   ` [PATCH v4 26/34] common/sfc_efx/base: support NAT edits in MAE Ivan Malov
2023-06-07 13:02   ` [PATCH v4 27/34] net/sfc: add support for IPv4 NAT offload to MAE backend Ivan Malov
2023-06-21 16:50     ` Ferruh Yigit
2023-06-07 13:02   ` [PATCH v4 28/34] net/sfc: rename SW structures used by transfer flow counters Ivan Malov
2023-06-07 13:02   ` [PATCH v4 29/34] net/sfc: rework MAE action rule counter representation in SW Ivan Malov
2023-06-07 13:02   ` [PATCH v4 30/34] net/sfc: support indirect count action in transfer flows Ivan Malov
2023-06-07 13:02   ` [PATCH v4 31/34] common/sfc_efx/base: rework MAE counter provisioning helpers Ivan Malov
2023-06-07 13:02   ` [PATCH v4 32/34] net/sfc: indicate MAE counter type in use for transfer flows Ivan Malov
2023-06-07 13:02   ` [PATCH v4 33/34] common/sfc_efx/base: support conntrack assistance counters Ivan Malov
2023-06-07 13:02   ` [PATCH v4 34/34] net/sfc: use conntrack assistance counters in transfer flows Ivan Malov
2023-06-08 12:33   ` [PATCH v4 00/34] net/sfc: support HW conntrack assistance Andrew Rybchenko
2023-06-19 15:58     ` Ferruh Yigit
2023-06-19 15:45   ` Ferruh Yigit
2023-06-21 16:53   ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230607130245.8048-12-ivan.malov@arknetworks.am \
    --to=ivan.malov@arknetworks.am \
    --cc=amoreton@xilinx.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=denis.pryazhennikov@arknetworks.am \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).