From: Suanming Mou <suanmingm@nvidia.com>
To: Matan Azrad <matan@nvidia.com>,
Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Cc: <dev@dpdk.org>, <rasland@nvidia.com>, <orika@nvidia.com>,
Gregory Etelson <getelson@nvidia.com>
Subject: [PATCH v6 15/18] net/mlx5: support flow integrity in HWS group 0
Date: Thu, 20 Oct 2022 18:41:49 +0300 [thread overview]
Message-ID: <20221020154152.28228-16-suanmingm@nvidia.com> (raw)
In-Reply-To: <20221020154152.28228-1-suanmingm@nvidia.com>
From: Gregory Etelson <getelson@nvidia.com>
- Reformat flow integrity item translation for HWS code.
- Support flow integrity bits in HWS group 0.
- Update integrity item translation to match positive semantics only.
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
drivers/net/mlx5/mlx5_flow.h | 1 +
drivers/net/mlx5/mlx5_flow_dv.c | 163 ++++++++++++++++----------------
drivers/net/mlx5/mlx5_flow_hw.c | 8 ++
3 files changed, 90 insertions(+), 82 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index 10d4cdb502..8ba3c2ddb1 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -1473,6 +1473,7 @@ struct mlx5_dv_matcher_workspace {
struct mlx5_flow_rss_desc *rss_desc; /* RSS descriptor. */
const struct rte_flow_item *tunnel_item; /* Flow tunnel item. */
const struct rte_flow_item *gre_item; /* Flow GRE item. */
+ const struct rte_flow_item *integrity_items[2];
};
struct mlx5_flow_split_info {
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 42c4231286..5c6ecc4a1a 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -12695,132 +12695,121 @@ flow_dv_aso_age_params_init(struct rte_eth_dev *dev,
static void
flow_dv_translate_integrity_l4(const struct rte_flow_item_integrity *mask,
- const struct rte_flow_item_integrity *value,
- void *headers_m, void *headers_v)
+ void *headers)
{
+ /*
+ * In HWS mode MLX5_ITEM_UPDATE() macro assigns the same pointer to
+ * both mask and value, therefore ether can be used.
+ * In SWS SW_V mode mask points to item mask and value points to item
+ * spec. Integrity item value is used only if matching mask is set.
+ * Use mask reference here to keep SWS functionality.
+ */
if (mask->l4_ok) {
/* RTE l4_ok filter aggregates hardware l4_ok and
* l4_checksum_ok filters.
* Positive RTE l4_ok match requires hardware match on both L4
* hardware integrity bits.
- * For negative match, check hardware l4_checksum_ok bit only,
- * because hardware sets that bit to 0 for all packets
- * with bad L4.
+ * PMD supports positive integrity item semantics only.
*/
- if (value->l4_ok) {
- MLX5_SET(fte_match_set_lyr_2_4, headers_m, l4_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, l4_ok, 1);
- }
- MLX5_SET(fte_match_set_lyr_2_4, headers_m, l4_checksum_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, l4_checksum_ok,
- !!value->l4_ok);
- }
- if (mask->l4_csum_ok) {
- MLX5_SET(fte_match_set_lyr_2_4, headers_m, l4_checksum_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, l4_checksum_ok,
- value->l4_csum_ok);
+ MLX5_SET(fte_match_set_lyr_2_4, headers, l4_ok, 1);
+ MLX5_SET(fte_match_set_lyr_2_4, headers, l4_checksum_ok, 1);
+ } else if (mask->l4_csum_ok) {
+ MLX5_SET(fte_match_set_lyr_2_4, headers, l4_checksum_ok, 1);
}
}
static void
flow_dv_translate_integrity_l3(const struct rte_flow_item_integrity *mask,
- const struct rte_flow_item_integrity *value,
- void *headers_m, void *headers_v, bool is_ipv4)
+ void *headers, bool is_ipv4)
{
+ /*
+ * In HWS mode MLX5_ITEM_UPDATE() macro assigns the same pointer to
+ * both mask and value, therefore ether can be used.
+ * In SWS SW_V mode mask points to item mask and value points to item
+ * spec. Integrity item value used only if matching mask is set.
+ * Use mask reference here to keep SWS functionality.
+ */
if (mask->l3_ok) {
/* RTE l3_ok filter aggregates for IPv4 hardware l3_ok and
* ipv4_csum_ok filters.
* Positive RTE l3_ok match requires hardware match on both L3
* hardware integrity bits.
- * For negative match, check hardware l3_csum_ok bit only,
- * because hardware sets that bit to 0 for all packets
- * with bad L3.
+ * PMD supports positive integrity item semantics only.
*/
+ MLX5_SET(fte_match_set_lyr_2_4, headers, l3_ok, 1);
if (is_ipv4) {
- if (value->l3_ok) {
- MLX5_SET(fte_match_set_lyr_2_4, headers_m,
- l3_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v,
- l3_ok, 1);
- }
- MLX5_SET(fte_match_set_lyr_2_4, headers_m,
+ MLX5_SET(fte_match_set_lyr_2_4, headers,
ipv4_checksum_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v,
- ipv4_checksum_ok, !!value->l3_ok);
- } else {
- MLX5_SET(fte_match_set_lyr_2_4, headers_m, l3_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, l3_ok,
- value->l3_ok);
}
- }
- if (mask->ipv4_csum_ok) {
- MLX5_SET(fte_match_set_lyr_2_4, headers_m, ipv4_checksum_ok, 1);
- MLX5_SET(fte_match_set_lyr_2_4, headers_v, ipv4_checksum_ok,
- value->ipv4_csum_ok);
+ } else if (is_ipv4 && mask->ipv4_csum_ok) {
+ MLX5_SET(fte_match_set_lyr_2_4, headers, ipv4_checksum_ok, 1);
}
}
static void
-set_integrity_bits(void *headers_m, void *headers_v,
- const struct rte_flow_item *integrity_item, bool is_l3_ip4)
+set_integrity_bits(void *headers, const struct rte_flow_item *integrity_item,
+ bool is_l3_ip4, uint32_t key_type)
{
- const struct rte_flow_item_integrity *spec = integrity_item->spec;
- const struct rte_flow_item_integrity *mask = integrity_item->mask;
+ const struct rte_flow_item_integrity *spec;
+ const struct rte_flow_item_integrity *mask;
/* Integrity bits validation cleared spec pointer */
- MLX5_ASSERT(spec != NULL);
- if (!mask)
- mask = &rte_flow_item_integrity_mask;
- flow_dv_translate_integrity_l3(mask, spec, headers_m, headers_v,
- is_l3_ip4);
- flow_dv_translate_integrity_l4(mask, spec, headers_m, headers_v);
+ if (MLX5_ITEM_VALID(integrity_item, key_type))
+ return;
+ MLX5_ITEM_UPDATE(integrity_item, key_type, spec, mask,
+ &rte_flow_item_integrity_mask);
+ flow_dv_translate_integrity_l3(mask, headers, is_l3_ip4);
+ flow_dv_translate_integrity_l4(mask, headers);
}
static void
-flow_dv_translate_item_integrity_post(void *matcher, void *key,
+flow_dv_translate_item_integrity_post(void *key,
const
struct rte_flow_item *integrity_items[2],
- uint64_t pattern_flags)
+ uint64_t pattern_flags, uint32_t key_type)
{
- void *headers_m, *headers_v;
+ void *headers;
bool is_l3_ip4;
if (pattern_flags & MLX5_FLOW_ITEM_INNER_INTEGRITY) {
- headers_m = MLX5_ADDR_OF(fte_match_param, matcher,
- inner_headers);
- headers_v = MLX5_ADDR_OF(fte_match_param, key, inner_headers);
+ headers = MLX5_ADDR_OF(fte_match_param, key, inner_headers);
is_l3_ip4 = (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV4) !=
0;
- set_integrity_bits(headers_m, headers_v,
- integrity_items[1], is_l3_ip4);
+ set_integrity_bits(headers, integrity_items[1], is_l3_ip4,
+ key_type);
}
if (pattern_flags & MLX5_FLOW_ITEM_OUTER_INTEGRITY) {
- headers_m = MLX5_ADDR_OF(fte_match_param, matcher,
- outer_headers);
- headers_v = MLX5_ADDR_OF(fte_match_param, key, outer_headers);
+ headers = MLX5_ADDR_OF(fte_match_param, key, outer_headers);
is_l3_ip4 = (pattern_flags & MLX5_FLOW_LAYER_OUTER_L3_IPV4) !=
0;
- set_integrity_bits(headers_m, headers_v,
- integrity_items[0], is_l3_ip4);
+ set_integrity_bits(headers, integrity_items[0], is_l3_ip4,
+ key_type);
}
}
-static void
+static uint64_t
flow_dv_translate_item_integrity(const struct rte_flow_item *item,
- const struct rte_flow_item *integrity_items[2],
- uint64_t *last_item)
+ struct mlx5_dv_matcher_workspace *wks,
+ uint64_t key_type)
{
- const struct rte_flow_item_integrity *spec = (typeof(spec))item->spec;
+ if ((key_type & MLX5_SET_MATCHER_SW) != 0) {
+ const struct rte_flow_item_integrity
+ *spec = (typeof(spec))item->spec;
- /* integrity bits validation cleared spec pointer */
- MLX5_ASSERT(spec != NULL);
- if (spec->level > 1) {
- integrity_items[1] = item;
- *last_item |= MLX5_FLOW_ITEM_INNER_INTEGRITY;
+ /* SWS integrity bits validation cleared spec pointer */
+ if (spec->level > 1) {
+ wks->integrity_items[1] = item;
+ wks->last_item |= MLX5_FLOW_ITEM_INNER_INTEGRITY;
+ } else {
+ wks->integrity_items[0] = item;
+ wks->last_item |= MLX5_FLOW_ITEM_OUTER_INTEGRITY;
+ }
} else {
- integrity_items[0] = item;
- *last_item |= MLX5_FLOW_ITEM_OUTER_INTEGRITY;
+ /* HWS supports outer integrity only */
+ wks->integrity_items[0] = item;
+ wks->last_item |= MLX5_FLOW_ITEM_OUTER_INTEGRITY;
}
+ return wks->last_item;
}
/**
@@ -13448,6 +13437,10 @@ flow_dv_translate_items(struct rte_eth_dev *dev,
flow_dv_translate_item_meter_color(dev, key, items, key_type);
last_item = MLX5_FLOW_ITEM_METER_COLOR;
break;
+ case RTE_FLOW_ITEM_TYPE_INTEGRITY:
+ last_item = flow_dv_translate_item_integrity(items,
+ wks, key_type);
+ break;
default:
break;
}
@@ -13511,6 +13504,12 @@ flow_dv_translate_items_hws(const struct rte_flow_item *items,
if (ret)
return ret;
}
+ if (wks.item_flags & MLX5_FLOW_ITEM_INTEGRITY) {
+ flow_dv_translate_item_integrity_post(key,
+ wks.integrity_items,
+ wks.item_flags,
+ key_type);
+ }
if (wks.item_flags & MLX5_FLOW_LAYER_VXLAN_GPE) {
flow_dv_translate_item_vxlan_gpe(key,
wks.tunnel_item,
@@ -13591,7 +13590,6 @@ flow_dv_translate_items_sws(struct rte_eth_dev *dev,
mlx5_flow_get_thread_workspace())->rss_desc,
};
struct mlx5_dv_matcher_workspace wks_m = wks;
- const struct rte_flow_item *integrity_items[2] = {NULL, NULL};
int ret = 0;
int tunnel;
@@ -13602,10 +13600,6 @@ flow_dv_translate_items_sws(struct rte_eth_dev *dev,
NULL, "item not supported");
tunnel = !!(wks.item_flags & MLX5_FLOW_LAYER_TUNNEL);
switch (items->type) {
- case RTE_FLOW_ITEM_TYPE_INTEGRITY:
- flow_dv_translate_item_integrity(items, integrity_items,
- &wks.last_item);
- break;
case RTE_FLOW_ITEM_TYPE_CONNTRACK:
flow_dv_translate_item_aso_ct(dev, match_mask,
match_value, items);
@@ -13648,9 +13642,14 @@ flow_dv_translate_items_sws(struct rte_eth_dev *dev,
return -rte_errno;
}
if (wks.item_flags & MLX5_FLOW_ITEM_INTEGRITY) {
- flow_dv_translate_item_integrity_post(match_mask, match_value,
- integrity_items,
- wks.item_flags);
+ flow_dv_translate_item_integrity_post(match_mask,
+ wks_m.integrity_items,
+ wks_m.item_flags,
+ MLX5_SET_MATCHER_SW_M);
+ flow_dv_translate_item_integrity_post(match_value,
+ wks.integrity_items,
+ wks.item_flags,
+ MLX5_SET_MATCHER_SW_V);
}
if (wks.item_flags & MLX5_FLOW_LAYER_VXLAN_GPE) {
flow_dv_translate_item_vxlan_gpe(match_mask,
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 59c5383553..07b58db044 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -4658,6 +4658,14 @@ flow_hw_pattern_validate(struct rte_eth_dev *dev,
case RTE_FLOW_ITEM_TYPE_ICMP6:
case RTE_FLOW_ITEM_TYPE_CONNTRACK:
break;
+ case RTE_FLOW_ITEM_TYPE_INTEGRITY:
+ /*
+ * Integrity flow item validation require access to
+ * both item mask and spec.
+ * Current HWS model allows item mask in pattern
+ * template and item spec in flow rule.
+ */
+ break;
case RTE_FLOW_ITEM_TYPE_END:
items_end = true;
break;
--
2.25.1
next prev parent reply other threads:[~2022-10-20 15:44 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-23 14:43 [PATCH 00/27] net/mlx5: HW steering PMD update Suanming Mou
2022-09-23 14:43 ` [PATCH 01/27] net/mlx5: fix invalid flow attributes Suanming Mou
2022-09-23 14:43 ` [PATCH 02/27] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-09-23 14:43 ` [PATCH 03/27] net/mlx5: add shared header reformat support Suanming Mou
2022-09-23 14:43 ` [PATCH 04/27] net/mlx5: add modify field hws support Suanming Mou
2022-09-23 14:43 ` [PATCH 05/27] net/mlx5: validate modify field action template Suanming Mou
2022-09-23 14:43 ` [PATCH 06/27] net/mlx5: enable mark flag for all ports in the same domain Suanming Mou
2022-09-23 14:43 ` [PATCH 07/27] net/mlx5: create port actions Suanming Mou
2022-09-23 14:43 ` [PATCH 08/27] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-09-23 14:43 ` [PATCH 09/27] ethdev: add meter profiles/policies config Suanming Mou
2022-09-23 14:43 ` [PATCH 10/27] net/mlx5: add HW steering meter action Suanming Mou
2022-09-23 14:43 ` [PATCH 11/27] net/mlx5: add HW steering counter action Suanming Mou
2022-09-23 14:43 ` [PATCH 12/27] net/mlx5: support caching queue action Suanming Mou
2022-09-23 14:43 ` [PATCH 13/27] net/mlx5: support DR action template API Suanming Mou
2022-09-23 14:43 ` [PATCH 14/27] net/mlx5: fix indirect action validate Suanming Mou
2022-09-23 14:43 ` [PATCH 15/27] net/mlx5: update indirect actions ops to HW variation Suanming Mou
2022-09-23 14:43 ` [PATCH 16/27] net/mlx5: support indirect count action for HW steering Suanming Mou
2022-09-23 14:43 ` [PATCH 17/27] net/mlx5: add pattern and table attribute validation Suanming Mou
2022-09-23 14:43 ` [PATCH 18/27] net/mlx5: add meta item support in egress Suanming Mou
2022-09-23 14:43 ` [PATCH 19/27] net/mlx5: add support for ASO return register Suanming Mou
2022-09-23 14:43 ` [PATCH 20/27] lib/ethdev: add connection tracking configuration Suanming Mou
2022-09-23 14:43 ` [PATCH 21/27] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-09-23 14:43 ` [PATCH 22/27] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-09-23 14:43 ` [PATCH 23/27] net/mlx5: add meter color flow matching in dv Suanming Mou
2022-09-23 14:43 ` [PATCH 24/27] net/mlx5: add meter color flow matching in hws Suanming Mou
2022-09-23 14:43 ` [PATCH 25/27] net/mlx5: implement profile/policy get Suanming Mou
2022-09-23 14:43 ` [PATCH 26/27] net/mlx5: implement METER MARK action for HWS Suanming Mou
2022-09-23 14:43 ` [PATCH 27/27] net/mlx5: implement METER MARK indirect " Suanming Mou
2022-09-28 3:31 ` [PATCH v2 00/17] net/mlx5: HW steering PMD update Suanming Mou
2022-09-28 3:31 ` [PATCH v2 01/17] net/mlx5: fix invalid flow attributes Suanming Mou
2022-09-28 3:31 ` [PATCH v2 02/17] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-09-28 3:31 ` [PATCH v2 03/17] net/mlx5: add shared header reformat support Suanming Mou
2022-09-28 3:31 ` [PATCH v2 04/17] net/mlx5: add modify field hws support Suanming Mou
2022-09-28 3:31 ` [PATCH v2 05/17] net/mlx5: add HW steering port action Suanming Mou
2022-09-28 3:31 ` [PATCH v2 06/17] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-09-28 3:31 ` [PATCH v2 07/17] net/mlx5: add HW steering meter action Suanming Mou
2022-09-28 3:31 ` [PATCH v2 08/17] net/mlx5: add HW steering counter action Suanming Mou
2022-09-28 3:31 ` [PATCH v2 09/17] net/mlx5: support DR action template API Suanming Mou
2022-09-28 3:31 ` [PATCH v2 10/17] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-09-28 3:31 ` [PATCH v2 11/17] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-09-28 3:31 ` [PATCH v2 12/17] net/mlx5: implement METER MARK indirect action for HWS Suanming Mou
2022-09-28 3:31 ` [PATCH v2 13/17] net/mlx5: add HWS AGE action support Suanming Mou
2022-09-28 3:31 ` [PATCH v2 14/17] net/mlx5: add async action push and pull support Suanming Mou
2022-09-28 3:31 ` [PATCH v2 15/17] net/mlx5: support flow integrity in HWS group 0 Suanming Mou
2022-09-28 3:31 ` [PATCH v2 16/17] net/mlx5: support device control for E-Switch default rule Suanming Mou
2022-09-28 3:31 ` [PATCH v2 17/17] net/mlx5: support device control of representor matching Suanming Mou
2022-09-30 12:52 ` [PATCH v3 00/17] net/mlx5: HW steering PMD update Suanming Mou
2022-09-30 12:52 ` [PATCH v3 01/17] net/mlx5: fix invalid flow attributes Suanming Mou
2022-09-30 12:53 ` [PATCH v3 02/17] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-09-30 12:53 ` [PATCH v3 03/17] net/mlx5: add shared header reformat support Suanming Mou
2022-09-30 12:53 ` [PATCH v3 04/17] net/mlx5: add modify field hws support Suanming Mou
2022-09-30 12:53 ` [PATCH v3 05/17] net/mlx5: add HW steering port action Suanming Mou
2022-09-30 12:53 ` [PATCH v3 06/17] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-09-30 12:53 ` [PATCH v3 07/17] net/mlx5: add HW steering meter action Suanming Mou
2022-09-30 12:53 ` [PATCH v3 08/17] net/mlx5: add HW steering counter action Suanming Mou
2022-09-30 12:53 ` [PATCH v3 09/17] net/mlx5: support DR action template API Suanming Mou
2022-09-30 12:53 ` [PATCH v3 10/17] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-09-30 12:53 ` [PATCH v3 11/17] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-09-30 12:53 ` [PATCH v3 12/17] net/mlx5: implement METER MARK indirect action for HWS Suanming Mou
2022-09-30 12:53 ` [PATCH v3 13/17] net/mlx5: add HWS AGE action support Suanming Mou
2022-09-30 12:53 ` [PATCH v3 14/17] net/mlx5: add async action push and pull support Suanming Mou
2022-09-30 12:53 ` [PATCH v3 15/17] net/mlx5: support flow integrity in HWS group 0 Suanming Mou
2022-09-30 12:53 ` [PATCH v3 16/17] net/mlx5: support device control for E-Switch default rule Suanming Mou
2022-09-30 12:53 ` [PATCH v3 17/17] net/mlx5: support device control of representor matching Suanming Mou
2022-10-19 16:25 ` [PATCH v4 00/18] net/mlx5: HW steering PMD update Suanming Mou
2022-10-19 16:25 ` [PATCH v4 01/18] net/mlx5: fix invalid flow attributes Suanming Mou
2022-10-19 16:25 ` [PATCH v4 02/18] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-10-19 16:25 ` [PATCH v4 03/18] net/mlx5: add shared header reformat support Suanming Mou
2022-10-19 16:25 ` [PATCH v4 04/18] net/mlx5: add modify field hws support Suanming Mou
2022-10-19 16:25 ` [PATCH v4 05/18] net/mlx5: add HW steering port action Suanming Mou
2022-10-19 16:25 ` [PATCH v4 06/18] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-10-19 16:25 ` [PATCH v4 07/18] net/mlx5: add HW steering meter action Suanming Mou
2022-10-19 16:25 ` [PATCH v4 08/18] net/mlx5: add HW steering counter action Suanming Mou
2022-10-19 16:25 ` [PATCH v4 09/18] net/mlx5: support DR action template API Suanming Mou
2022-10-19 16:25 ` [PATCH v4 10/18] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-10-19 16:25 ` [PATCH v4 11/18] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-10-19 16:25 ` [PATCH v4 12/18] net/mlx5: implement METER MARK indirect action for HWS Suanming Mou
2022-10-19 16:25 ` [PATCH v4 13/18] net/mlx5: add HWS AGE action support Suanming Mou
2022-10-19 16:25 ` [PATCH v4 14/18] net/mlx5: add async action push and pull support Suanming Mou
2022-10-19 16:25 ` [PATCH v4 15/18] net/mlx5: support flow integrity in HWS group 0 Suanming Mou
2022-10-19 16:25 ` [PATCH v4 16/18] net/mlx5: support device control for E-Switch default rule Suanming Mou
2022-10-19 16:25 ` [PATCH v4 17/18] net/mlx5: support device control of representor matching Suanming Mou
2022-10-19 16:25 ` [PATCH v4 18/18] net/mlx5: create control flow rules with HWS Suanming Mou
2022-10-20 3:21 ` [PATCH v5 00/18] net/mlx5: HW steering PMD update Suanming Mou
2022-10-20 3:21 ` [PATCH v5 01/18] net/mlx5: fix invalid flow attributes Suanming Mou
2022-10-20 3:21 ` [PATCH v5 02/18] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-10-20 3:21 ` [PATCH v5 03/18] net/mlx5: add shared header reformat support Suanming Mou
2022-10-20 3:21 ` [PATCH v5 04/18] net/mlx5: add modify field hws support Suanming Mou
2022-10-20 3:21 ` [PATCH v5 05/18] net/mlx5: add HW steering port action Suanming Mou
2022-10-20 3:21 ` [PATCH v5 06/18] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-10-20 3:21 ` [PATCH v5 07/18] net/mlx5: add HW steering meter action Suanming Mou
2022-10-20 3:22 ` [PATCH v5 08/18] net/mlx5: add HW steering counter action Suanming Mou
2022-10-20 3:22 ` [PATCH v5 09/18] net/mlx5: support DR action template API Suanming Mou
2022-10-20 3:22 ` [PATCH v5 10/18] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-10-20 3:22 ` [PATCH v5 11/18] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-10-20 3:22 ` [PATCH v5 12/18] net/mlx5: implement METER MARK indirect action for HWS Suanming Mou
2022-10-20 3:22 ` [PATCH v5 13/18] net/mlx5: add HWS AGE action support Suanming Mou
2022-10-20 3:22 ` [PATCH v5 14/18] net/mlx5: add async action push and pull support Suanming Mou
2022-10-20 3:22 ` [PATCH v5 15/18] net/mlx5: support flow integrity in HWS group 0 Suanming Mou
2022-10-20 3:22 ` [PATCH v5 16/18] net/mlx5: support device control for E-Switch default rule Suanming Mou
2022-10-20 3:22 ` [PATCH v5 17/18] net/mlx5: support device control of representor matching Suanming Mou
2022-10-20 3:22 ` [PATCH v5 18/18] net/mlx5: create control flow rules with HWS Suanming Mou
2022-10-20 15:41 ` [PATCH v6 00/18] net/mlx5: HW steering PMD update Suanming Mou
2022-10-20 15:41 ` [PATCH v6 01/18] net/mlx5: fix invalid flow attributes Suanming Mou
2022-10-24 9:43 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 02/18] net/mlx5: fix IPv6 and TCP RSS hash fields Suanming Mou
2022-10-24 9:43 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 03/18] net/mlx5: add shared header reformat support Suanming Mou
2022-10-24 9:44 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 04/18] net/mlx5: add modify field hws support Suanming Mou
2022-10-24 9:44 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 05/18] net/mlx5: add HW steering port action Suanming Mou
2022-10-24 9:44 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 06/18] net/mlx5: add extended metadata mode for hardware steering Suanming Mou
2022-10-24 9:45 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 07/18] net/mlx5: add HW steering meter action Suanming Mou
2022-10-24 9:44 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 08/18] net/mlx5: add HW steering counter action Suanming Mou
2022-10-24 9:45 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 09/18] net/mlx5: support DR action template API Suanming Mou
2022-10-24 9:45 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 10/18] net/mlx5: add HW steering connection tracking support Suanming Mou
2022-10-24 9:46 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 11/18] net/mlx5: add HW steering VLAN push, pop and VID modify flow actions Suanming Mou
2022-10-24 9:46 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 12/18] net/mlx5: implement METER MARK indirect action for HWS Suanming Mou
2022-10-24 9:46 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 13/18] net/mlx5: add HWS AGE action support Suanming Mou
2022-10-24 9:46 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 14/18] net/mlx5: add async action push and pull support Suanming Mou
2022-10-24 9:47 ` Slava Ovsiienko
2022-10-20 15:41 ` Suanming Mou [this message]
2022-10-24 9:47 ` [PATCH v6 15/18] net/mlx5: support flow integrity in HWS group 0 Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 16/18] net/mlx5: support device control for E-Switch default rule Suanming Mou
2022-10-24 9:47 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 17/18] net/mlx5: support device control of representor matching Suanming Mou
2022-10-24 9:47 ` Slava Ovsiienko
2022-10-20 15:41 ` [PATCH v6 18/18] net/mlx5: create control flow rules with HWS Suanming Mou
2022-10-24 9:48 ` Slava Ovsiienko
2022-10-24 10:57 ` [PATCH v6 00/18] net/mlx5: HW steering PMD update Raslan Darawsheh
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=20221020154152.28228-16-suanmingm@nvidia.com \
--to=suanmingm@nvidia.com \
--cc=dev@dpdk.org \
--cc=getelson@nvidia.com \
--cc=matan@nvidia.com \
--cc=orika@nvidia.com \
--cc=rasland@nvidia.com \
--cc=viacheslavo@nvidia.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).