[v2 0/4] Add support for GRE optional fields matching

Ferruh Yigit ferruh.yigit at intel.com
Fri Feb 11 11:38:22 CET 2022


On 2/11/2022 10:33 AM, Sean Zhang (Networking SW) wrote:
> 
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit at intel.com>
>> Sent: Friday, February 11, 2022 5:37 PM
>> To: Sean Zhang (Networking SW) <xiazhang at nvidia.com>; NBU-Contact-
>> Thomas Monjalon (EXTERNAL) <thomas at monjalon.net>
>> Cc: dev at dpdk.org; Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>;
>> Ori Kam <orika at nvidia.com>; Qi Zhang <qi.z.zhang at intel.com>
>> Subject: Re: [v2 0/4] Add support for GRE optional fields matching
>>
>> External email: Use caution opening links or attachments
>>
>>
>> On 2/11/2022 1:45 AM, Sean Zhang wrote:
>>> This patch set adds support for matching optional fields of GRE header.
>>> The optional fields are checksum, key and sequence number. Currently,
>>> key field is supported with pattern gre_key item '.. / gre / gre_key
>>> value is xx / ..' with field gre_key in misc, but misc does not
>>> support matching of checksum and sequence number of GRE.
>>> To support matching of checksum and sequence number fields in GRE,
>>> rdma-core needs the capbility of misc5 and support tunnel_header 0-3.
>>> Since
>>> tunnel_header1 is used to match checksum, tunnel_header2 for key and
>>
>> Hi Sean,
>>
>> The GRE optional fields support in flow API should be generic for any vendor,
>> above description concerns me flow API implementation is done with to
>> match a specific vendor implementation.
>>
>> Will it work to get ethdev part as previous version of this patch (v1), and get
>> the mlx driver patch when rdma-core is ready?
> 
> Hi Ferruh,
> 
> Sorry about the confuse of the cover letter, and both flow API patches of v1 and v2 are common, not for specific vendor.
> 

OK, thanks for clarification, we don't want any PMD specific implementation.

> Thanks,
> Sean
>>
>>> tunnel_header3 for sequence by hardware. If checksum and sequence
>>> number not present in the pattern, use misc as before for the matching.
>>> Application can still use gre_key item 'gre_key value is xx' for key
>>> matching, the effect is the same if use 'gre_option key is xx'.
>>> If using gre_option item, the flags in gre item should be
>>> correspondingly set. For example, if using gre_option to match
>>> checksum, the c_bit should be set '1' (.. / gre c_bit is 1 / gre_option
>> checksum is xx / ..).
>>>
>>> change in v2:
>>> -changed the struct defined in rte_flow for gre_option item.
>>> -fixed raw encap issue.
>>>
>>> Sean Zhang (4):
>>>     lib: add optional fields in GRE header
>>>     ethdev: support GRE optional fields
>>>     app/testpmd: add gre_option item command
>>>     net/mlx5: support matching optional fields of GRE
>>>
>>>    app/test-pmd/cmdline_flow.c                 |  72 +++++++++++++++
>>>    doc/guides/nics/mlx5.rst                    |   8 ++
>>>    doc/guides/prog_guide/rte_flow.rst          |  17 ++++
>>>    doc/guides/rel_notes/release_22_03.rst      |   5 ++
>>>    doc/guides/testpmd_app_ug/testpmd_funcs.rst |   6 ++
>>>    drivers/common/mlx5/mlx5_devx_cmds.c        |   3 +
>>>    drivers/net/mlx5/linux/mlx5_os.c            |   2 +
>>>    drivers/net/mlx5/mlx5.h                     |   1 +
>>>    drivers/net/mlx5/mlx5_flow.c                | 108 +++++++++++++++++++++++
>>>    drivers/net/mlx5/mlx5_flow.h                |   6 ++
>>>    drivers/net/mlx5/mlx5_flow_dv.c             | 130
>> ++++++++++++++++++++++++++++
>>>    lib/ethdev/rte_flow.c                       |   1 +
>>>    lib/ethdev/rte_flow.h                       |  19 ++++
>>>    lib/net/rte_gre.h                           |  22 +++++
>>>    14 files changed, 400 insertions(+)
>>>
> 



More information about the dev mailing list