diff mbox series

[ovs-dev,V2,2/3] netdev-offload-dpdk: Support tnl_pop for geneve tunnel

Message ID 20220207172426.813734-3-elibr@nvidia.com
State Deferred
Headers show
Series Support geneve offloads | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test fail github build: failed

Commit Message

Eli Britstein Feb. 7, 2022, 5:24 p.m. UTC
Signed-off-by: Eli Britstein <elibr@nvidia.com>
Reviewed-by: Nir Anteby <nanteby@nvidia.com>
Acked-by: Michael Santana <msantana@redhat.com>
---
 lib/netdev-offload-dpdk.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
diff mbox series

Patch

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 94dc6a9b7..edd4e009d 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -1109,6 +1109,17 @@  vport_to_rte_tunnel(struct netdev *vport,
             ds_put_format(s_tnl, "flow tunnel create %d type gre; ",
                           netdev_dpdk_get_port_id(netdev));
         }
+    } else if (!strcmp(netdev_get_type(vport), "geneve")) {
+        tunnel->type = RTE_FLOW_ITEM_TYPE_GENEVE;
+        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 geneve; ",
+                          netdev_dpdk_get_port_id(netdev));
+        }
     } else {
         VLOG_DBG_RL(&rl, "vport type '%s' is not supported",
                     netdev_get_type(vport));
@@ -2582,6 +2593,8 @@  get_vport_netdev(const char *dpif_type,
         aux.type = "vxlan";
     } else if (tunnel->type == RTE_FLOW_ITEM_TYPE_GRE) {
         aux.type = "gre";
+    } else if (tunnel->type == RTE_FLOW_ITEM_TYPE_GENEVE) {
+        aux.type = "geneve";
     }
     netdev_ports_traverse(dpif_type, get_vport_netdev_cb, &aux);