From: Bing Zhao <bingz@nvidia.com>
To: <orika@nvidia.com>, <aman.deep.singh@intel.com>,
<dsosnowski@nvidia.com>, <viacheslavo@nvidia.com>,
<suanmingm@nvidia.com>, <matan@nvidia.com>, <thomas@monjalon.net>,
<ferruh.yigit@amd.com>, <dev@dpdk.org>, <rasland@nvidia.com>
Cc: <yuying.zhang@intel.com>, <andrew.rybchenko@oktetlabs.ru>
Subject: [PATCH v4 4/5] net/mlx5: add NAT64 action support in rule creation
Date: Wed, 28 Feb 2024 17:09:12 +0200 [thread overview]
Message-ID: <20240228150913.32603-5-bingz@nvidia.com> (raw)
In-Reply-To: <20240228150913.32603-1-bingz@nvidia.com>
The action will handle the IPv4 and IPv6 headers translation. It will
add / remove IPv6 address prefix by default.
To use the user specific address, another rule to modify the
addresses of the IP header is needed.
Signed-off-by: Bing Zhao <bingz@nvidia.com>
---
drivers/net/mlx5/mlx5_flow_hw.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 77f0aff91e..f32bdff98f 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -2499,6 +2499,19 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
}
acts->rule_acts[dr_pos].action = priv->hw_def_miss;
break;
+ case RTE_FLOW_ACTION_TYPE_NAT64:
+ if (masks->conf &&
+ ((const struct rte_flow_action_nat64 *)masks->conf)->type) {
+ const struct rte_flow_action_nat64 *nat64_c =
+ (const struct rte_flow_action_nat64 *)actions->conf;
+
+ acts->rule_acts[dr_pos].action =
+ priv->action_nat64[type][nat64_c->type];
+ } else if (__flow_hw_act_data_general_append(priv, acts,
+ actions->type,
+ src_pos, dr_pos))
+ goto err;
+ break;
case RTE_FLOW_ACTION_TYPE_END:
actions_end = true;
break;
@@ -2941,6 +2954,7 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,
const struct rte_flow_action_ethdev *port_action = NULL;
const struct rte_flow_action_meter *meter = NULL;
const struct rte_flow_action_age *age = NULL;
+ const struct rte_flow_action_nat64 *nat64_c = NULL;
uint8_t *buf = job->encap_data;
uint8_t *push_buf = job->push_data;
struct rte_flow_attr attr = {
@@ -3208,6 +3222,11 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,
if (ret != 0)
return ret;
break;
+ case RTE_FLOW_ACTION_TYPE_NAT64:
+ nat64_c = action->conf;
+ rule_acts[act_data->action_dst].action =
+ priv->action_nat64[table->type][nat64_c->type];
+ break;
default:
break;
}
@@ -6099,6 +6118,7 @@ static enum mlx5dr_action_type mlx5_hw_dr_action_types[] = {
[RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL] = MLX5DR_ACTION_TYP_DEST_ROOT,
[RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH] = MLX5DR_ACTION_TYP_PUSH_IPV6_ROUTE_EXT,
[RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE] = MLX5DR_ACTION_TYP_POP_IPV6_ROUTE_EXT,
+ [RTE_FLOW_ACTION_TYPE_NAT64] = MLX5DR_ACTION_TYP_NAT64,
};
static inline void
--
2.39.3
next prev parent reply other threads:[~2024-02-28 15:11 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-27 9:07 [PATCH 0/8] support NAT64 action Bing Zhao
2023-12-27 9:07 ` [PATCH 1/8] ethdev: introduce " Bing Zhao
2023-12-27 9:07 ` [PATCH 2/8] app/testpmd: add support for NAT64 in the command line Bing Zhao
2023-12-27 9:07 ` [PATCH 3/8] net/mlx5: fetch the available registers for NAT64 Bing Zhao
2023-12-27 9:07 ` [PATCH 4/8] common/mlx5: add new modify field defininations Bing Zhao
2023-12-27 9:07 ` [PATCH 5/8] net/mlx5/hws: support NAT64 action Bing Zhao
2023-12-27 9:07 ` [PATCH 6/8] net/mlx5: create NAT64 actions during configuration Bing Zhao
2023-12-27 9:07 ` [PATCH 7/8] net/mlx5: add NAT64 action support in rule creation Bing Zhao
2023-12-27 9:07 ` [PATCH 8/8] net/mlx5: validate the actions combination with NAT64 Bing Zhao
2024-01-31 9:38 ` [PATCH v2 0/2] support NAT64 action Bing Zhao
2024-01-31 9:38 ` [PATCH v2 1/2] ethdev: introduce " Bing Zhao
2024-02-01 8:38 ` Ori Kam
2024-01-31 9:38 ` [PATCH v2 2/2] app/testpmd: add support for NAT64 in the command line Bing Zhao
2024-02-01 8:38 ` Ori Kam
2024-02-01 16:00 ` [PATCH v2 0/2] support NAT64 action Ferruh Yigit
2024-02-01 16:05 ` Ferruh Yigit
2024-02-20 14:10 ` [PATCH v2 0/5] NAT64 support in mlx5 PMD Bing Zhao
2024-02-20 14:10 ` [PATCH v2 1/5] net/mlx5/hws: support NAT64 action Bing Zhao
2024-02-20 14:10 ` [PATCH v2 2/5] net/mlx5: fetch the available registers for NAT64 Bing Zhao
2024-02-20 14:10 ` [PATCH v2 3/5] net/mlx5: create NAT64 actions during configuration Bing Zhao
2024-02-20 14:10 ` [PATCH v2 4/5] net/mlx5: add NAT64 action support in rule creation Bing Zhao
2024-02-20 14:10 ` [PATCH v2 5/5] net/mlx5: validate the actions combination with NAT64 Bing Zhao
2024-02-20 14:37 ` [PATCH v3 0/5] NAT64 support in mlx5 PMD Bing Zhao
2024-02-20 14:37 ` [PATCH v3 1/5] net/mlx5/hws: support NAT64 action Bing Zhao
2024-02-20 14:37 ` [PATCH v3 2/5] net/mlx5: fetch the available registers for NAT64 Bing Zhao
2024-02-20 14:37 ` [PATCH v3 3/5] net/mlx5: create NAT64 actions during configuration Bing Zhao
2024-02-20 14:37 ` [PATCH v3 4/5] net/mlx5: add NAT64 action support in rule creation Bing Zhao
2024-02-20 14:37 ` [PATCH v3 5/5] net/mlx5: validate the actions combination with NAT64 Bing Zhao
2024-02-21 13:14 ` [PATCH v3 0/5] NAT64 support in mlx5 PMD Ori Kam
2024-02-28 15:09 ` [PATCH v4 " Bing Zhao
2024-02-28 15:09 ` [PATCH v4 1/5] net/mlx5/hws: support NAT64 action Bing Zhao
2024-02-28 15:09 ` [PATCH v4 2/5] net/mlx5: fetch the available registers for NAT64 Bing Zhao
2024-02-28 15:09 ` [PATCH v4 3/5] net/mlx5: create NAT64 actions during configuration Bing Zhao
2024-02-28 15:09 ` Bing Zhao [this message]
2024-02-28 15:09 ` [PATCH v4 5/5] net/mlx5: validate the actions combination with NAT64 Bing Zhao
2024-02-29 10:39 ` [PATCH v4 0/5] NAT64 support in mlx5 PMD 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=20240228150913.32603-5-bingz@nvidia.com \
--to=bingz@nvidia.com \
--cc=aman.deep.singh@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=dsosnowski@nvidia.com \
--cc=ferruh.yigit@amd.com \
--cc=matan@nvidia.com \
--cc=orika@nvidia.com \
--cc=rasland@nvidia.com \
--cc=suanmingm@nvidia.com \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
--cc=yuying.zhang@intel.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).