Add support for tnl_pop action for gre vport.
Signed-off-by: Nir Anteby <[email protected]>
---
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 c831471..d15302a 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -845,6 +845,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));
@@ -2099,6 +2105,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) {
@@ -2131,6 +2140,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
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev