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
next prev 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).