[v6] ethdev: add new ext hdr for gtp psc
Checks
Commit Message
Define new rte header for gtp PDU session container
based on RFC 38415-g30
Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
---
v6 : fixed typos
fixed indentation of comments for fields
---
lib/net/rte_gtp.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
Comments
Hi Raslan,
Can you please provide link to this RFC 38415-g30
I just had some doubt on byte-order conversion as per RFC 1700
<https://tools.ietf.org/html/rfc1700>
Regards
Aman
Hi Raslan,
could you reply, please.
Andrew.
On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
> Hi Raslan,
>
> Can you please provide link to this RFC 38415-g30
> I just had some doubt on byte-order conversion as per RFC 1700
> <https://tools.ietf.org/html/rfc1700>
>
> Regards
> Aman
Hi Guys,
Sorry for missing this mail, for some reason it was missed in my inbox,
This is the link to this rfc:
https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip
Kindest regards,
Raslan Darawsheh
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew Rybchenko
> Sent: Thursday, July 1, 2021 5:06 PM
> To: Singh, Aman Deep <aman.deep.singh@intel.com>; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
>
> Hi Raslan,
>
> could you reply, please.
>
> Andrew.
>
> On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
> > Hi Raslan,
> >
> > Can you please provide link to this RFC 38415-g30 I just had some
> > doubt on byte-order conversion as per RFC 1700
> > <https://tools.ietf.org/html/rfc1700>
> >
> > Regards
> > Aman
Hi Raslan,
On 7/6/21 5:24 PM, Raslan Darawsheh wrote:
> Hi Guys,
>
> Sorry for missing this mail, for some reason it was missed in my inbox,
> This is the link to this rfc:
> https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip
Thanks for the link. The patch LGTM, but I have only one question left.
Where is it used? Are you going to upstream corresponding code in
the release cycle?
Andrew.
> Kindest regards,
> Raslan Darawsheh
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew Rybchenko
>> Sent: Thursday, July 1, 2021 5:06 PM
>> To: Singh, Aman Deep <aman.deep.singh@intel.com>; dev@dpdk.org
>> Subject: Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
>>
>> Hi Raslan,
>>
>> could you reply, please.
>>
>> Andrew.
>>
>> On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
>>> Hi Raslan,
>>>
>>> Can you please provide link to this RFC 38415-g30 I just had some
>>> doubt on byte-order conversion as per RFC 1700
>>> <https://tools.ietf.org/html/rfc1700>
>>>
>>> Regards
>>> Aman
On 6/17/21 12:17 PM, Raslan Darawsheh wrote:
> Define new rte header for gtp PDU session container
> based on RFC 38415-g30
>
> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
As I understand prefix should be "net: ", not "ethdev: ".
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> ---
> v6 : fixed typos
> fixed indentation of comments for fields
> ---
> lib/net/rte_gtp.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 78 insertions(+)
[snip]
Thank you for the review,
Basically it's not used yet since it will break the abi
The main usage was in rte_flow item of gtp_psc
To replace the current structure with the header definition. And since this will break the abi I'm adding the header definition now but will be used later in rte_flow.
Kindest regards,
Raslan Darawsheh
On 7/8/21 12:27 PM, Raslan Darawsheh wrote:
> Thank you for the review,
>
> Basically it's not used yet since it will break the abi
> The main usage was in rte_flow item of gtp_psc
> To replace the current structure with the header definition. And since
> this will break the abi I'm adding the header definition now but will be
> used later in rte_flow.
@Thomas If so, should we accept it in the current release cycle
or should it simply wait for the code which uses it?
> Kindest regards,
> Raslan Darawsheh
>
> ------------------------------------------------------------------------
> *From:* Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> *Sent:* Thursday, July 8, 2021, 12:23 PM
> *To:* Raslan Darawsheh; Singh, Aman Deep; dev@dpdk.org
> *Subject:* Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
>
> Hi Raslan,
>
> On 7/6/21 5:24 PM, Raslan Darawsheh wrote:
>> Hi Guys,
>>
>> Sorry for missing this mail, for some reason it was missed in my inbox,
>> This is the link to this rfc:
>> https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip
> <https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip>
>
> Thanks for the link. The patch LGTM, but I have only one question left.
> Where is it used? Are you going to upstream corresponding code in
> the release cycle?
>
> Andrew.
>
>> Kindest regards,
>> Raslan Darawsheh
>>
>>> -----Original Message-----
>>> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew Rybchenko
>>> Sent: Thursday, July 1, 2021 5:06 PM
>>> To: Singh, Aman Deep <aman.deep.singh@intel.com>; dev@dpdk.org
>>> Subject: Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
>>>
>>> Hi Raslan,
>>>
>>> could you reply, please.
>>>
>>> Andrew.
>>>
>>> On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
>>>> Hi Raslan,
>>>>
>>>> Can you please provide link to this RFC 38415-g30 I just had some
>>>> doubt on byte-order conversion as per RFC 1700
>>>> <https://tools.ietf.org/html/rfc1700 <https://tools.ietf.org/html/rfc1700>>
>>>>
>>>> Regards
>>>> Aman
>
>
Thanks Raslan for the rfc link.The structure order for RTE_BIG_ENDIAN seems ok. I doubt for
RTE_LITTLE_ENDIAN case, if there is a need to reverse the order of
fields, as we are using uint8_t only. If you have already tested on x86
then it should be fine ? Regards Aman
On 7/6/2021 7:54 PM, Raslan Darawsheh wrote:
> Hi Guys,
>
> Sorry for missing this mail, for some reason it was missed in my inbox,
> This is the link to this rfc:
> https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip
>
>
> Kindest regards,
> Raslan Darawsheh
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew Rybchenko
>> Sent: Thursday, July 1, 2021 5:06 PM
>> To: Singh, Aman Deep <aman.deep.singh@intel.com>; dev@dpdk.org
>> Subject: Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
>>
>> Hi Raslan,
>>
>> could you reply, please.
>>
>> Andrew.
>>
>> On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
>>> Hi Raslan,
>>>
>>> Can you please provide link to this RFC 38415-g30 I just had some
>>> doubt on byte-order conversion as per RFC 1700
>>> <https://tools.ietf.org/html/rfc1700>
>>>
>>> Regards
>>> Aman
08/07/2021 11:39, Andrew Rybchenko:
> On 7/8/21 12:27 PM, Raslan Darawsheh wrote:
> > Thank you for the review,
> >
> > Basically it's not used yet since it will break the abi
> > The main usage was in rte_flow item of gtp_psc
> > To replace the current structure with the header definition. And since
> > this will break the abi I'm adding the header definition now but will be
> > used later in rte_flow.
>
> @Thomas If so, should we accept it in the current release cycle
> or should it simply wait for the code which uses it?
If no need, we can wait next release.
> > ------------------------------------------------------------------------
> > *From:* Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> > *Sent:* Thursday, July 8, 2021, 12:23 PM
> > *To:* Raslan Darawsheh; Singh, Aman Deep; dev@dpdk.org
> > *Subject:* Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
> >
> > Hi Raslan,
> >
> > On 7/6/21 5:24 PM, Raslan Darawsheh wrote:
> >> Hi Guys,
> >>
> >> Sorry for missing this mail, for some reason it was missed in my inbox,
> >> This is the link to this rfc:
> >> https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip
> > <https://www.3gpp.org/ftp/Specs/archive/38_series/38.415/38415-g30.zip>
> >
> > Thanks for the link. The patch LGTM, but I have only one question left.
> > Where is it used? Are you going to upstream corresponding code in
> > the release cycle?
> >
> > Andrew.
> >
> >> Kindest regards,
> >> Raslan Darawsheh
> >>
> >>> -----Original Message-----
> >>> From: dev <dev-bounces@dpdk.org> On Behalf Of Andrew Rybchenko
> >>> Sent: Thursday, July 1, 2021 5:06 PM
> >>> To: Singh, Aman Deep <aman.deep.singh@intel.com>; dev@dpdk.org
> >>> Subject: Re: [dpdk-dev] [PATCH v6] ethdev: add new ext hdr for gtp psc
> >>>
> >>> Hi Raslan,
> >>>
> >>> could you reply, please.
> >>>
> >>> Andrew.
> >>>
> >>> On 6/22/21 10:27 AM, Singh, Aman Deep wrote:
> >>>> Hi Raslan,
> >>>>
> >>>> Can you please provide link to this RFC 38415-g30 I just had some
> >>>> doubt on byte-order conversion as per RFC 1700
> >>>> <https://tools.ietf.org/html/rfc1700 <https://tools.ietf.org/html/rfc1700>>
> >>>>
> >>>> Regards
> >>>> Aman
@@ -61,6 +61,84 @@ struct rte_gtp_hdr_ext_word {
uint8_t next_ext; /**< Next Extension Header Type. */
} __rte_packed;
+/**
+ * Optional extension for GTP with next_ext set to 0x85
+ * defined based on RFC 38415-g30.
+ */
+__extension__
+struct rte_gtp_psc_generic_hdr {
+ uint8_t ext_hdr_len; /**< PDU ext hdr len in multiples of 4 bytes */
+#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
+ uint8_t type:4; /**< PDU type */
+ uint8_t qmp:1; /**< Qos Monitoring Packet */
+ uint8_t pad:3; /**< type specific pad bits */
+ uint8_t spare:2; /**< type specific spare bits */
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+#else
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+ uint8_t spare:2; /**< type specific spare bits */
+ uint8_t pad:3; /**< type specific pad bits */
+ uint8_t qmp:1; /**< Qos Monitoring Packet */
+ uint8_t type:4; /**< PDU type */
+#endif
+ uint8_t data[0]; /**< variable length data fields */
+} __rte_packed;
+
+/**
+ * Optional extension for GTP with next_ext set to 0x85
+ * type0 defined based on RFC 38415-g30
+ */
+__extension__
+struct rte_gtp_psc_type0_hdr {
+ uint8_t ext_hdr_len; /**< PDU ext hdr len in multiples of 4 bytes */
+#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
+ uint8_t type:4; /**< PDU type */
+ uint8_t qmp:1; /**< Qos Monitoring Packet */
+ uint8_t snp:1; /**< Sequence number presence */
+ uint8_t spare_dl1:2; /**< spare down link bits */
+ uint8_t ppp:1; /**< Paging policy presence */
+ uint8_t rqi:1; /**< Reflective Qos Indicator */
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+#else
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+ uint8_t rqi:1; /**< Reflective Qos Indicator */
+ uint8_t ppp:1; /**< Paging policy presence */
+ uint8_t spare_dl1:2; /**< spare down link bits */
+ uint8_t snp:1; /**< Sequence number presence */
+ uint8_t type:4; /**< PDU type */
+#endif
+ uint8_t data[0]; /**< variable length data fields */
+} __rte_packed;
+
+/**
+ * Optional extension for GTP with next_ext set to 0x85
+ * type1 defined based on RFC 38415-g30
+ */
+__extension__
+struct rte_gtp_psc_type1_hdr {
+ uint8_t ext_hdr_len; /**< PDU ext hdr len in multiples of 4 bytes */
+#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
+ uint8_t type:4; /**< PDU type */
+ uint8_t qmp:1; /**< Qos Monitoring Packet */
+ uint8_t dl_delay_ind:1; /**< dl delay result presence */
+ uint8_t ul_delay_ind:1; /**< ul delay result presence */
+ uint8_t snp:1; /**< Sequence number presence ul */
+ uint8_t n_delay_ind:1; /**< N3/N9 delay result presence */
+ uint8_t spare_ul2:1; /**< spare up link bits */
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+#else
+ uint8_t qfi:6; /**< Qos Flow Identifier */
+ uint8_t spare_ul2:1; /**< spare up link bits */
+ uint8_t n_delay_ind:1; /**< N3/N9 delay result presence */
+ uint8_t snp:1; /**< Sequence number presence ul */
+ uint8_t ul_delay_ind:1; /**< ul delay result presence */
+ uint8_t dl_delay_ind:1; /**< dl delay result presence */
+ uint8_t qmp:1; /**< Qos Monitoring Packet */
+ uint8_t type:4; /**< PDU type */
+#endif
+ uint8_t data[0]; /**< variable length data fields */
+} __rte_packed;
+
/** GTP header length */
#define RTE_ETHER_GTP_HLEN \
(sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))