mbox series

[v8,0/7] add encap and decap actions to Direct Verbs flow in MLX5 PMD

Message ID 1541065053-28436-1-git-send-email-dekelp@mellanox.com (mailing list archive)
Headers
Series add encap and decap actions to Direct Verbs flow in MLX5 PMD |

Message

Dekel Peled Nov. 1, 2018, 9:37 a.m. UTC
  This series adds support of encap and decap actions in DV format.
L2 tunnel support for VXLAN and NVGRE, and L2/L3 tunnel support using raw data buffer.
It is using the generic encapsulation framework from [1].

[1] "ethdev: add generic L2/L3 tunnel encapsulation actions"
    http://mails.dpdk.org/archives/dev/2018-October/114654.html
    
---
v8:
* Apply code review comments.
v7:
* Apply code review comments.
* Add caching of encap decap actions.
v6:
* Adapt L2 tunnel to VXLAN and NVGRE.
* Add encap/decap using raw data.
v5:
* Move DV actions code under common DV flag.
v4:
* Update in glue functions.
v3:
* Apply additional code review comments.
v2:
* Rebase on tip.
* Apply code review comments.
---

Dekel Peled (7):
  net/mlx5: add flow action functions to glue
  net/mlx5: add VXLAN encap action to Direct Verbs
  net/mlx5: add VXLAN decap action to Direct Verbs
  net/mlx5: add NVGRE encap action to Direct Verbs
  net/mlx5: add NVGRE decap action to Direct Verbs
  net/mlx5: add raw data encap decap to Direct Verbs
  net/mlx5: add caching of encap decap actions

 drivers/net/mlx5/Makefile       |   2 +-
 drivers/net/mlx5/meson.build    |   2 +-
 drivers/net/mlx5/mlx5.h         |   1 +
 drivers/net/mlx5/mlx5_flow.h    |  30 ++
 drivers/net/mlx5/mlx5_flow_dv.c | 783 +++++++++++++++++++++++++++++++++++++++-
 drivers/net/mlx5/mlx5_glue.c    |  38 ++
 drivers/net/mlx5/mlx5_glue.h    |  10 +
 7 files changed, 858 insertions(+), 8 deletions(-)
  

Comments

Shahaf Shuler Nov. 1, 2018, 12:51 p.m. UTC | #1
Thursday, November 1, 2018 11:37 AM, Dekel Peled:
> Subject: [dpdk-dev] [PATCH v8 0/7] add encap and decap actions to Direct
> Verbs flow in MLX5 PMD
> 
> This series adds support of encap and decap actions in DV format.
> L2 tunnel support for VXLAN and NVGRE, and L2/L3 tunnel support using raw
> data buffer.
> It is using the generic encapsulation framework from [1].
> 
> [1] "ethdev: add generic L2/L3 tunnel encapsulation actions"
> 
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail
> s.dpdk.org%2Farchives%2Fdev%2F2018-
> October%2F114654.html&data=02%7C01%7Cshahafs%40mellanox.com
> %7Cfcb2ee95be4d41ce3c6508d63fddcf5d%7Ca652971c7d2e4d9ba6a4d149256
> f461b%7C0%7C0%7C636766619229826892&sdata=Lgp9Dl3jVsrSAbvrWIe
> 6QNfUvdBJir7opduWpcnBvN0%3D&reserved=0

There were few compilation issues. Fixed locally, please have a look on the diff and confirm.

Ferruh - please note this patchset depends on the following patch to fix compilation issues:
https://patches.dpdk.org/patch/47676/

Series applied to next-net-mlx, thanks. 

> 
> ---
> v8:
> * Apply code review comments.
> v7:
> * Apply code review comments.
> * Add caching of encap decap actions.
> v6:
> * Adapt L2 tunnel to VXLAN and NVGRE.
> * Add encap/decap using raw data.
> v5:
> * Move DV actions code under common DV flag.
> v4:
> * Update in glue functions.
> v3:
> * Apply additional code review comments.
> v2:
> * Rebase on tip.
> * Apply code review comments.
> ---
> 
> Dekel Peled (7):
>   net/mlx5: add flow action functions to glue
>   net/mlx5: add VXLAN encap action to Direct Verbs
>   net/mlx5: add VXLAN decap action to Direct Verbs
>   net/mlx5: add NVGRE encap action to Direct Verbs
>   net/mlx5: add NVGRE decap action to Direct Verbs
>   net/mlx5: add raw data encap decap to Direct Verbs
>   net/mlx5: add caching of encap decap actions
> 
>  drivers/net/mlx5/Makefile       |   2 +-
>  drivers/net/mlx5/meson.build    |   2 +-
>  drivers/net/mlx5/mlx5.h         |   1 +
>  drivers/net/mlx5/mlx5_flow.h    |  30 ++
>  drivers/net/mlx5/mlx5_flow_dv.c | 783
> +++++++++++++++++++++++++++++++++++++++-
>  drivers/net/mlx5/mlx5_glue.c    |  38 ++
>  drivers/net/mlx5/mlx5_glue.h    |  10 +
>  7 files changed, 858 insertions(+), 8 deletions(-)
> 
> --
> 1.8.3.1
  
Ferruh Yigit Nov. 1, 2018, 5:17 p.m. UTC | #2
On 11/1/2018 12:51 PM, Shahaf Shuler wrote:
> Thursday, November 1, 2018 11:37 AM, Dekel Peled:
>> Subject: [dpdk-dev] [PATCH v8 0/7] add encap and decap actions to Direct
>> Verbs flow in MLX5 PMD
>>
>> This series adds support of encap and decap actions in DV format.
>> L2 tunnel support for VXLAN and NVGRE, and L2/L3 tunnel support using raw
>> data buffer.
>> It is using the generic encapsulation framework from [1].
>>
>> [1] "ethdev: add generic L2/L3 tunnel encapsulation actions"
>>
>> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail
>> s.dpdk.org%2Farchives%2Fdev%2F2018-
>> October%2F114654.html&data=02%7C01%7Cshahafs%40mellanox.com
>> %7Cfcb2ee95be4d41ce3c6508d63fddcf5d%7Ca652971c7d2e4d9ba6a4d149256
>> f461b%7C0%7C0%7C636766619229826892&sdata=Lgp9Dl3jVsrSAbvrWIe
>> 6QNfUvdBJir7opduWpcnBvN0%3D&reserved=0
> 
> There were few compilation issues. Fixed locally, please have a look on the diff and confirm.
> 
> Ferruh - please note this patchset depends on the following patch to fix compilation issues:
> https://patches.dpdk.org/patch/47676/

The dependent patch looks OK, but I wonder why I don't see the build error.

mlx5_flow_dv.c has a big `#ifdef HAVE_IBV_FLOW_DV_SUPPORT` block

And `HAVE_IBV_FLOW_DV_SUPPORT` set:
if `infiniband/mlx5dv.h` has `mlx5dv_create_flow_action_packet_reformat()`

In the rdma-core I have this function is not set, so I guess I don't compile
this file at all.

What is the dependency to have `mlx5dv_create_flow_action_packet_reformat()`?
All the rdma-core versions I checked doesn't have this function, am I doing
something wrong? Or is direct verbs feature something not released yet?
  
Shahaf Shuler Nov. 4, 2018, 7:12 a.m. UTC | #3
Thursday, November 1, 2018 7:18 PM, Ferruh Yigit:
> 
> The dependent patch looks OK, but I wonder why I don't see the build error.
> 
> mlx5_flow_dv.c has a big `#ifdef HAVE_IBV_FLOW_DV_SUPPORT` block
> 
> And `HAVE_IBV_FLOW_DV_SUPPORT` set:
> if `infiniband/mlx5dv.h` has `mlx5dv_create_flow_action_packet_reformat()`
> 
> In the rdma-core I have this function is not set, so I guess I don't compile this
> file at all.
> 

That is probably why.

> What is the dependency to have
> `mlx5dv_create_flow_action_packet_reformat()`?
> All the rdma-core versions I checked doesn't have this function, am I doing
> something wrong? Or is direct verbs feature something not released yet?

This feature will be in rdma-core v21. It is introduced by commit:
a59af12 mlx5: Add packet reformat flow action

you can take the latest master from https://github.com/linux-rdma/rdma-core.git