[v2 1/4] lib: add optional fields in GRE header

Ferruh Yigit ferruh.yigit at intel.com
Fri Feb 11 11:37:27 CET 2022


On 2/11/2022 10:23 AM, Sean Zhang (Networking SW) wrote:
> Hi Ferruh,
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit at intel.com>
>> Sent: Friday, February 11, 2022 5:38 PM
>> To: Sean Zhang (Networking SW) <xiazhang at nvidia.com>; NBU-Contact-
>> Thomas Monjalon (EXTERNAL) <thomas at monjalon.net>; Olivier Matz
>> <olivier.matz at 6wind.com>
>> Cc: dev at dpdk.org; Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>;
>> Ori Kam <orika at nvidia.com>
>> Subject: Re: [v2 1/4] lib: add optional fields in GRE header
>>
>> External email: Use caution opening links or attachments
>>
>>
>> On 2/11/2022 1:45 AM, Sean Zhang wrote:
>>> There are optional fields in GRE header(checksum/key/sequence), this
>>> patch adds definition of structures of the optional fields.
>>>
>>> Signed-off-by: Sean Zhang <xiazhang at nvidia.com>
>>> ---
>>>    lib/net/rte_gre.h | 22 ++++++++++++++++++++++
>>>    1 file changed, 22 insertions(+)
>>>
>>> diff --git a/lib/net/rte_gre.h b/lib/net/rte_gre.h index
>>> 5897756..6c6aef6 100644
>>> --- a/lib/net/rte_gre.h
>>> +++ b/lib/net/rte_gre.h
>>> @@ -48,6 +48,28 @@ struct rte_gre_hdr {
>>>        uint16_t proto;  /**< Protocol Type */
>>>    } __rte_packed;
>>>
>>> +/**
>>> + * Optional field checksum in GRE header  */ struct
>>> +rte_gre_hdr_opt_checksum_rsvd {
>>> +     rte_be16_t checksum;
>>> +     rte_be16_t reserved1;
>>
>> Can you please explain why this reserved field is added, I guess it i not part of
>> the GRE spec, but added for mlx driver?
>>
> 
> Yes, the reserverd1 field is part of GRE spec, and the field go together with checksum field, so I add the reserverd1 field here.
> 
> You can refer to section 2.6 of https://datatracker.ietf.org/doc/rfc2784/
> 

ack, thanks.

>> Since these struts will be public, we can't update them later easily, so we
>> should be careful on them.
>>
>>> +} __rte_packed;
>>> +
>>> +/**
>>> + * Optional field key in GRE header
>>> + */
>>> +struct rte_gre_hdr_opt_key {
>>> +     rte_be32_t key;
>>> +} __rte_packed;
>>> +
>>> +/**
>>> + * Optional field sequence in GRE header  */ struct
>>> +rte_gre_hdr_opt_sequence {
>>> +     rte_be32_t sequence;
>>> +} __rte_packed;
>>> +
>>>    #ifdef __cplusplus
>>>    }
>>>    #endif
> 



More information about the dev mailing list