[ovs-dev] [PATCH v3 3/4] netdev-offload-dpdk: Support tnl_pop for gre tunnel

Nir Anteby nanteby at nvidia.com
Thu Oct 7 11:05:06 UTC 2021


Add support for tnl_pop action for gre vport.

Signed-off-by: Nir Anteby <nanteby at nvidia.com>
---
 lib/netdev-offload-dpdk.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 10924de..5c721fe 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -908,6 +908,12 @@ vport_to_rte_tunnel(struct netdev *vport,
             ds_put_format(s_tnl, "flow tunnel create %d type vxlan; ",
                           netdev_dpdk_get_port_id(netdev));
         }
+    } else if (!strcmp(netdev_get_type(vport), "gre")) {
+        tunnel->type = RTE_FLOW_ITEM_TYPE_GRE;
+        if (!VLOG_DROP_DBG(&rl)) {
+            ds_put_format(s_tnl, "flow tunnel create %d type gre; ",
+                          netdev_dpdk_get_port_id(netdev));
+        }
     } else {
         VLOG_DBG_RL(&rl, "vport type '%s' is not supported",
                     netdev_get_type(vport));
@@ -2236,6 +2242,9 @@ get_vport_netdev_cb(struct netdev *netdev,
     if (!aux->type || strcmp(netdev_get_type(netdev), aux->type)) {
         return false;
     }
+    if (!strcmp(netdev_get_type(netdev), "gre")) {
+        return true;
+    }
 
     tnl_cfg = netdev_get_tunnel_config(netdev);
     if (!tnl_cfg) {
@@ -2268,6 +2277,8 @@ get_vport_netdev(const char *dpif_type,
 
     if (tunnel->type == RTE_FLOW_ITEM_TYPE_VXLAN) {
         aux.type = "vxlan";
+    } else if (tunnel->type == RTE_FLOW_ITEM_TYPE_GRE) {
+        aux.type = "gre";
     }
     netdev_ports_traverse(dpif_type, get_vport_netdev_cb, &aux);
 
-- 
1.8.3.1



More information about the dev mailing list