[ovs-dev] [PATCH v3 3/4] netdev-offload-dpdk: Support tnl_pop for gre tunnel
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Oct 13 15:42:40 UTC 2021
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 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")) {
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);
>
>
More information about the dev
mailing list