summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChaoyong He <chaoyong.he@corigine.com>2022-07-20 16:42:00 +0800
committerSimon Horman <simon.horman@corigine.com>2022-11-10 07:52:23 -0500
commit5488747abb71e8970955a6074c62e11a5b73d495 (patch)
tree5077030102ac53b8186189b8039e8278019f9cfe
parenta77c5f584af66a01bc161e60f0fe81718267fd17 (diff)
downloadopenvswitch-5488747abb71e8970955a6074c62e11a5b73d495.tar.gz
netdev-offload-dpdk: Enhance the support of tunnel pop action
Populate the 'is_ipv6' field of 'struct rte_flow_tunnel', which can be used in the implementation of tunnel pop action for DPDK PMD. Fixes: be56e063d028 ("netdev-offload-dpdk: Support tunnel pop action.") Signed-off-by: Chaoyong He <chaoyong.he@corigine.com> Reviewed-by: Louis Peens <louis.peens@corigine.com> Acked-by: Eli Britstein <elibr@nvidia.com> Signed-off-by: Simon Horman <simon.horman@corigine.com>
-rw-r--r--lib/netdev-offload-dpdk.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index b87a50b40..77e3f4b57 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -834,12 +834,18 @@ vport_to_rte_tunnel(struct netdev *vport,
const struct netdev_tunnel_config *tnl_cfg;
memset(tunnel, 0, sizeof *tunnel);
+
+ tnl_cfg = netdev_get_tunnel_config(vport);
+ if (!tnl_cfg) {
+ return -1;
+ }
+
+ if (!IN6_IS_ADDR_V4MAPPED(&tnl_cfg->ipv6_dst)) {
+ tunnel->is_ipv6 = true;
+ }
+
if (!strcmp(netdev_get_type(vport), "vxlan")) {
tunnel->type = RTE_FLOW_ITEM_TYPE_VXLAN;
- tnl_cfg = netdev_get_tunnel_config(vport);
- if (!tnl_cfg) {
- return -1;
- }
tunnel->tp_dst = tnl_cfg->dst_port;
if (!VLOG_DROP_DBG(&rl)) {
ds_put_format(s_tnl, "flow tunnel create %d type vxlan; ",