diff options
author | Chaoyong He <chaoyong.he@corigine.com> | 2022-07-20 16:42:00 +0800 |
---|---|---|
committer | Simon Horman <simon.horman@corigine.com> | 2022-11-10 07:49:56 -0500 |
commit | bb9fedb79af8df5f14922ae588866314a0e31bf5 (patch) | |
tree | e2057fe9018de452c099252575b79b6071a8f570 | |
parent | c230c7579c14cbe5119df627f550a3db26391a39 (diff) | |
download | openvswitch-bb9fedb79af8df5f14922ae588866314a0e31bf5.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.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 80a64a6cc..38f00fd30 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -1099,12 +1099,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; ", |