qfi field is 8 bits which represent single bit for PPP (paging Policy Presence) single bit for RQI (Reflective QoS Indicator) and 6 bits for qfi (QoS Flow Identifier) This update the doxygen format and the mask for qfi to properly identify the full 8 bits of the field. note: changing the default mask would cause different patterns generated by testpmd. Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") Cc: ying.a.wang@intel.com Cc: stable@dpdk.org Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> --- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- lib/librte_ethdev/rte_flow.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index f59eb8a27d..dd39c4c3c2 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -3742,7 +3742,8 @@ This section lists supported pattern items and their attributes, if any. - ``gtp_psc``: match GTP PDU extension header with type 0x85. - ``pdu_type {unsigned}``: PDU type. - - ``qfi {unsigned}``: QoS flow identifier. + + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. - ``pppoes``, ``pppoed``: match PPPoE header. diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h index 669e677e91..79106e0246 100644 --- a/lib/librte_ethdev/rte_flow.h +++ b/lib/librte_ethdev/rte_flow.h @@ -1392,14 +1392,14 @@ static const struct rte_flow_item_meta rte_flow_item_meta_mask = { */ struct rte_flow_item_gtp_psc { uint8_t pdu_type; /**< PDU type. */ - uint8_t qfi; /**< QoS flow identifier. */ + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ }; /** Default mask for RTE_FLOW_ITEM_TYPE_GTP_PSC. */ #ifndef __cplusplus static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask = { - .qfi = 0x3f, + .qfi = 0xff, }; #endif -- 2.17.1
On 3/23/2021 12:11 PM, Raslan Darawsheh wrote: > qfi field is 8 bits which represent single bit for > PPP (paging Policy Presence) single bit for RQI > (Reflective QoS Indicator) and 6 bits for qfi > (QoS Flow Identifier) Can you please put a reference for above information? > > This update the doxygen format and the mask for qfi > to properly identify the full 8 bits of the field. > > note: changing the default mask would cause different > patterns generated by testpmd. > > Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") > Cc: ying.a.wang@intel.com > Cc: stable@dpdk.org > > Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> > --- > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- > lib/librte_ethdev/rte_flow.h | 4 ++-- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > index f59eb8a27d..dd39c4c3c2 100644 > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > @@ -3742,7 +3742,8 @@ This section lists supported pattern items and their attributes, if any. > - ``gtp_psc``: match GTP PDU extension header with type 0x85. > > - ``pdu_type {unsigned}``: PDU type. > - - ``qfi {unsigned}``: QoS flow identifier. > + > + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. > > - ``pppoes``, ``pppoed``: match PPPoE header. > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > index 669e677e91..79106e0246 100644 > --- a/lib/librte_ethdev/rte_flow.h > +++ b/lib/librte_ethdev/rte_flow.h > @@ -1392,14 +1392,14 @@ static const struct rte_flow_item_meta rte_flow_item_meta_mask = { > */ > struct rte_flow_item_gtp_psc { > uint8_t pdu_type; /**< PDU type. */ > - uint8_t qfi; /**< QoS flow identifier. */ > + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ > }; By design requirement, rte_flow_item_* should start with the relevant protocol header. There is already a deprecation notice for using protocol header directly in the rte_flow_item* [1] and Adrew/Ivan already fixed a few of them [2]. Your patch is not directly related on this, but since you are touching to the flow_item, would you mind create a protocol struct for it first, and use it in the "struct rte_flow_item_gtp_psc"? So the protocol related update can be done in the protocol header, instead of rte_flow struct. [1] https://git.dpdk.org/dpdk/tree/doc/guides/rel_notes/deprecation.rst?h=v21.02#n99 [2] https://git.dpdk.org/next/dpdk-next-net/commit/?id=4a061a7bd70bfa023de23e8e654e
Hi > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit > Subject: Re: [dpdk-dev] [PATCH] ethdev: update qfi definition > > On 3/23/2021 12:11 PM, Raslan Darawsheh wrote: > > qfi field is 8 bits which represent single bit for > > PPP (paging Policy Presence) single bit for RQI > > (Reflective QoS Indicator) and 6 bits for qfi > > (QoS Flow Identifier) > > Can you please put a reference for above information? > > > > This update the doxygen format and the mask for qfi > > to properly identify the full 8 bits of the field. > > > > note: changing the default mask would cause different > > patterns generated by testpmd. > > > > Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") > > Cc: ying.a.wang@intel.com > > Cc: stable@dpdk.org > > > > Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> > > --- > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- > > lib/librte_ethdev/rte_flow.h | 4 ++-- > > 2 files changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > index f59eb8a27d..dd39c4c3c2 100644 > > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > @@ -3742,7 +3742,8 @@ This section lists supported pattern items and their > attributes, if any. > > - ``gtp_psc``: match GTP PDU extension header with type 0x85. > > > > - ``pdu_type {unsigned}``: PDU type. > > - - ``qfi {unsigned}``: QoS flow identifier. > > + > > + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. > > > > - ``pppoes``, ``pppoed``: match PPPoE header. > > > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > > index 669e677e91..79106e0246 100644 > > --- a/lib/librte_ethdev/rte_flow.h > > +++ b/lib/librte_ethdev/rte_flow.h > > @@ -1392,14 +1392,14 @@ static const struct rte_flow_item_meta > rte_flow_item_meta_mask = { > > */ > > struct rte_flow_item_gtp_psc { > > uint8_t pdu_type; /**< PDU type. */ > > - uint8_t qfi; /**< QoS flow identifier. */ > > + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ > > }; > > By design requirement, rte_flow_item_* should start with the relevant protocol > header. > > There is already a deprecation notice for using protocol header directly in the > rte_flow_item* [1] and Adrew/Ivan already fixed a few of them [2]. > > Your patch is not directly related on this, but since you are touching to the > flow_item, would you mind create a protocol struct for it first, and use it in > the "struct rte_flow_item_gtp_psc"? > So the protocol related update can be done in the protocol header, instead of > rte_flow struct. > +1 > > [1] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.dpdk. > org%2Fdpdk%2Ftree%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.rst%3Fh%3 > Dv21.02%23n99&data=04%7C01%7Corika%40nvidia.com%7C6391a4c0640 > f4592b70b08d8f058e322%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0 > %7C637523611870497932%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdat > a=vU%2F5oO47zb9erTnZL1pl9j0nHCKzea3NJgOeo1FTW0Q%3D&reserved= > 0 > > [2] > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.dpdk. > org%2Fnext%2Fdpdk-next- > net%2Fcommit%2F%3Fid%3D4a061a7bd70bfa023de23e8e654e&data=04% > 7C01%7Corika%40nvidia.com%7C6391a4c0640f4592b70b08d8f058e322%7C43 > 083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637523611870497932%7CU > nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik > 1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WurlQ5VSLqFGVthfRj363xZsC > No3xJuvxNQCFVcxdkk%3D&reserved=0
Hi, > -----Original Message----- > From: Ori Kam <orika@nvidia.com> > Sent: Monday, March 29, 2021 11:53 AM > To: Ferruh Yigit <ferruh.yigit@intel.com>; Raslan Darawsheh > <rasland@nvidia.com>; dev@dpdk.org; Andrew Rybchenko > <andrew.rybchenko@oktetlabs.ru>; Ivan Malov <ivan.malov@oktetlabs.ru> > Cc: Slava Ovsiienko <viacheslavo@nvidia.com>; Shiri Kuzin > <shirik@nvidia.com>; ying.a.wang@intel.com; stable@dpdk.org; NBU- > Contact-Thomas Monjalon <thomas@monjalon.net>; Olivier Matz > <olivier.matz@6wind.com> > Subject: RE: [dpdk-dev] [PATCH] ethdev: update qfi definition > > Hi > > > -----Original Message----- > > From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit > > Subject: Re: [dpdk-dev] [PATCH] ethdev: update qfi definition > > > > On 3/23/2021 12:11 PM, Raslan Darawsheh wrote: > > > qfi field is 8 bits which represent single bit for > > > PPP (paging Policy Presence) single bit for RQI > > > (Reflective QoS Indicator) and 6 bits for qfi > > > (QoS Flow Identifier) > > > > Can you please put a reference for above information? > > > Sure, will send in V2, > > > This update the doxygen format and the mask for qfi > > > to properly identify the full 8 bits of the field. > > > > > > note: changing the default mask would cause different > > > patterns generated by testpmd. > > > > > > Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") > > > Cc: ying.a.wang@intel.com > > > Cc: stable@dpdk.org > > > > > > Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> > > > --- > > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- > > > lib/librte_ethdev/rte_flow.h | 4 ++-- > > > 2 files changed, 4 insertions(+), 3 deletions(-) > > > > > > diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > > index f59eb8a27d..dd39c4c3c2 100644 > > > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > > @@ -3742,7 +3742,8 @@ This section lists supported pattern items and > their > > attributes, if any. > > > - ``gtp_psc``: match GTP PDU extension header with type 0x85. > > > > > > - ``pdu_type {unsigned}``: PDU type. > > > - - ``qfi {unsigned}``: QoS flow identifier. > > > + > > > + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. > > > > > > - ``pppoes``, ``pppoed``: match PPPoE header. > > > > > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > > > index 669e677e91..79106e0246 100644 > > > --- a/lib/librte_ethdev/rte_flow.h > > > +++ b/lib/librte_ethdev/rte_flow.h > > > @@ -1392,14 +1392,14 @@ static const struct rte_flow_item_meta > > rte_flow_item_meta_mask = { > > > */ > > > struct rte_flow_item_gtp_psc { > > > uint8_t pdu_type; /**< PDU type. */ > > > - uint8_t qfi; /**< QoS flow identifier. */ > > > + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ > > > }; > > > > By design requirement, rte_flow_item_* should start with the relevant > protocol > > header. > > > > There is already a deprecation notice for using protocol header directly in > the > > rte_flow_item* [1] and Adrew/Ivan already fixed a few of them [2]. > > > > Your patch is not directly related on this, but since you are touching to the > > flow_item, would you mind create a protocol struct for it first, and use it in > > the "struct rte_flow_item_gtp_psc"? > > So the protocol related update can be done in the protocol header, instead > of > > rte_flow struct. > > > +1 Sure, I can create the new protocol and use it , and will send in V2. But, wouldn't it cause any ABI breakage ? > > > > > [1] > > > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.d > pdk. > > > org%2Fdpdk%2Ftree%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.rst%3F > h%3 > > > Dv21.02%23n99&data=04%7C01%7Corika%40nvidia.com%7C6391a4c064 > 0 > > > f4592b70b08d8f058e322%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0 > > > %7C637523611870497932%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA > w > > > MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sda > t > > > a=vU%2F5oO47zb9erTnZL1pl9j0nHCKzea3NJgOeo1FTW0Q%3D&reserve > d= > > 0 > > > > [2] > > > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.d > pdk. > > org%2Fnext%2Fdpdk-next- > > > net%2Fcommit%2F%3Fid%3D4a061a7bd70bfa023de23e8e654e&data=0 > 4% > > > 7C01%7Corika%40nvidia.com%7C6391a4c0640f4592b70b08d8f058e322%7C43 > > > 083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637523611870497932%7CU > > > nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI > 6Ik > > > 1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WurlQ5VSLqFGVthfRj363xZs > C > > No3xJuvxNQCFVcxdkk%3D&reserved=0
On 3/29/2021 10:06 AM, Raslan Darawsheh wrote: > Hi, > >> -----Original Message----- >> From: Ori Kam <orika@nvidia.com> >> Sent: Monday, March 29, 2021 11:53 AM >> To: Ferruh Yigit <ferruh.yigit@intel.com>; Raslan Darawsheh >> <rasland@nvidia.com>; dev@dpdk.org; Andrew Rybchenko >> <andrew.rybchenko@oktetlabs.ru>; Ivan Malov <ivan.malov@oktetlabs.ru> >> Cc: Slava Ovsiienko <viacheslavo@nvidia.com>; Shiri Kuzin >> <shirik@nvidia.com>; ying.a.wang@intel.com; stable@dpdk.org; NBU- >> Contact-Thomas Monjalon <thomas@monjalon.net>; Olivier Matz >> <olivier.matz@6wind.com> >> Subject: RE: [dpdk-dev] [PATCH] ethdev: update qfi definition >> >> Hi >> >>> -----Original Message----- >>> From: dev <dev-bounces@dpdk.org> On Behalf Of Ferruh Yigit >>> Subject: Re: [dpdk-dev] [PATCH] ethdev: update qfi definition >>> >>> On 3/23/2021 12:11 PM, Raslan Darawsheh wrote: >>>> qfi field is 8 bits which represent single bit for >>>> PPP (paging Policy Presence) single bit for RQI >>>> (Reflective QoS Indicator) and 6 bits for qfi >>>> (QoS Flow Identifier) >>> >>> Can you please put a reference for above information? >>>> > Sure, will send in V2, > >>>> This update the doxygen format and the mask for qfi >>>> to properly identify the full 8 bits of the field. >>>> >>>> note: changing the default mask would cause different >>>> patterns generated by testpmd. >>>> >>>> Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") >>>> Cc: ying.a.wang@intel.com >>>> Cc: stable@dpdk.org >>>> >>>> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> >>>> --- >>>> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- >>>> lib/librte_ethdev/rte_flow.h | 4 ++-- >>>> 2 files changed, 4 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst >>> b/doc/guides/testpmd_app_ug/testpmd_funcs.rst >>>> index f59eb8a27d..dd39c4c3c2 100644 >>>> --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst >>>> +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst >>>> @@ -3742,7 +3742,8 @@ This section lists supported pattern items and >> their >>> attributes, if any. >>>> - ``gtp_psc``: match GTP PDU extension header with type 0x85. >>>> >>>> - ``pdu_type {unsigned}``: PDU type. >>>> - - ``qfi {unsigned}``: QoS flow identifier. >>>> + >>>> + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. >>>> >>>> - ``pppoes``, ``pppoed``: match PPPoE header. >>>> >>>> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h >>>> index 669e677e91..79106e0246 100644 >>>> --- a/lib/librte_ethdev/rte_flow.h >>>> +++ b/lib/librte_ethdev/rte_flow.h >>>> @@ -1392,14 +1392,14 @@ static const struct rte_flow_item_meta >>> rte_flow_item_meta_mask = { >>>> */ >>>> struct rte_flow_item_gtp_psc { >>>> uint8_t pdu_type; /**< PDU type. */ >>>> - uint8_t qfi; /**< QoS flow identifier. */ >>>> + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ >>>> }; >>> >>> By design requirement, rte_flow_item_* should start with the relevant >> protocol >>> header. >>> >>> There is already a deprecation notice for using protocol header directly in >> the >>> rte_flow_item* [1] and Adrew/Ivan already fixed a few of them [2]. >>> >>> Your patch is not directly related on this, but since you are touching to the >>> flow_item, would you mind create a protocol struct for it first, and use it in >>> the "struct rte_flow_item_gtp_psc"? >>> So the protocol related update can be done in the protocol header, instead >> of >>> rte_flow struct. >>> >> +1 > Sure, I can create the new protocol and use it , and will send in V2. But, wouldn't it cause any ABI breakage ? For the protocol header, it won't be problem since it is a new struct. For the flow item struct, it may be, that is why need to use a union for now, please check what Adrew/Ivan did. >> >>> >>> [1] >>> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.d >> pdk. >>> >> org%2Fdpdk%2Ftree%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.rst%3F >> h%3 >>> >> Dv21.02%23n99&data=04%7C01%7Corika%40nvidia.com%7C6391a4c064 >> 0 >>> >> f4592b70b08d8f058e322%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0 >>> >> %7C637523611870497932%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA >> w >>> >> MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sda >> t >>> >> a=vU%2F5oO47zb9erTnZL1pl9j0nHCKzea3NJgOeo1FTW0Q%3D&reserve >> d= >>> 0 >>> >>> [2] >>> >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.d >> pdk. >>> org%2Fnext%2Fdpdk-next- >>> >> net%2Fcommit%2F%3Fid%3D4a061a7bd70bfa023de23e8e654e&data=0 >> 4% >>> >> 7C01%7Corika%40nvidia.com%7C6391a4c0640f4592b70b08d8f058e322%7C43 >>> >> 083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637523611870497932%7CU >>> >> nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI >> 6Ik >>> >> 1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WurlQ5VSLqFGVthfRj363xZs >> C >>> No3xJuvxNQCFVcxdkk%3D&reserved=0 >
qfi field is 8 bits which represent single bit for PPP (paging Policy Presence) single bit for RQI (Reflective QoS Indicator) and 6 bits for qfi (QoS Flow Identifier) based on RFC 38415-g30 This update the doxygen format and the mask for qfi to properly identify the full 8 bits of the field. note: changing the default mask would cause different patterns generated by testpmd. Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API") Cc: ying.a.wang@intel.com Cc: stable@dpdk.org Signed-off-by: Raslan Darawsheh <rasland@nvidia.com> --- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 3 ++- lib/librte_ethdev/rte_flow.h | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index f59eb8a27d..dd39c4c3c2 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -3742,7 +3742,8 @@ This section lists supported pattern items and their attributes, if any. - ``gtp_psc``: match GTP PDU extension header with type 0x85. - ``pdu_type {unsigned}``: PDU type. - - ``qfi {unsigned}``: QoS flow identifier. + + - ``qfi {unsigned}``: PPP, RQI and QoS flow identifier. - ``pppoes``, ``pppoed``: match PPPoE header. diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h index 6cc57136ac..1eb9711707 100644 --- a/lib/librte_ethdev/rte_flow.h +++ b/lib/librte_ethdev/rte_flow.h @@ -20,6 +20,7 @@ #include <rte_arp.h> #include <rte_common.h> #include <rte_ether.h> +#include <rte_gtp.h> #include <rte_icmp.h> #include <rte_ip.h> #include <rte_sctp.h> @@ -1421,16 +1422,27 @@ static const struct rte_flow_item_meta rte_flow_item_meta_mask = { * * Matches a GTP PDU extension header with type 0x85. */ +RTE_STD_C11 struct rte_flow_item_gtp_psc { - uint8_t pdu_type; /**< PDU type. */ - uint8_t qfi; /**< QoS flow identifier. */ + union { + struct { + /* + * These fields are retained for compatibility. + * Please switch to the new header field below. + */ + uint8_t pdu_type; /**< PDU type. */ + uint8_t qfi; /**< PPP, RQI, QoS flow identifier. */ + + }; + struct rte_gtp_psc gtp_psc; + }; }; /** Default mask for RTE_FLOW_ITEM_TYPE_GTP_PSC. */ #ifndef __cplusplus static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask = { - .qfi = 0x3f, + .qfi = 0xff, }; #endif -- 2.29.0
On 3/23/2021 12:11 PM, Raslan Darawsheh wrote:
> qfi field is 8 bits which represent single bit for
> PPP (paging Policy Presence) single bit for RQI
> (Reflective QoS Indicator) and 6 bits for qfi
> (QoS Flow Identifier)
>
> This update the doxygen format and the mask for qfi
> to properly identify the full 8 bits of the field.
>
> note: changing the default mask would cause different
> patterns generated by testpmd.
>
> Fixes: 346553db5bd1 ("ethdev: add GTP extension header to flow API")
> Cc: ying.a.wang@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk-next-net/main, thanks.
Sorry for going through multiple versions, hopefully proper solution can be
merged after deprecation notice on v21.11.