Message ID | 1633604707-55478-4-git-send-email-nanteby@nvidia.com |
---|---|
State | Superseded |
Headers | show |
Series | netdev datapath hardware offload support for GRE flows | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | success | apply and check: success |
ovsrobot/github-robot-_Build_and_Test | success | github build: passed |
On 10/7/21 13:05, Nir Anteby via dev wrote: > Add support for tnl_pop action for gre vport. > > Signed-off-by: Nir Anteby <nanteby@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")) { Shouldn't you also set aux->vport here? If you don't, get_vport_netdev() will always return NULL. > + 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); > >
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);
Add support for tnl_pop action for gre vport. Signed-off-by: Nir Anteby <nanteby@nvidia.com> --- lib/netdev-offload-dpdk.c | 11 +++++++++++ 1 file changed, 11 insertions(+)