On Tue, Nov 24, 2020 at 5:15 AM Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > Proposing to replace protocol header fields in the ``rte_flow_item_*`` > structures with the protocol structs. > > This is both for documenting the intention and to be sure > ``rte_flow_item_*`` always starts with complete protocol header. > > Change will be done in two steps, at first step in v21.02 release, > protocol header struct will be added as union, for example: > > Current ``struct rte_flow_item_eth``, > > struct rte_flow_item_eth { > struct rte_ether_addr dst; > struct rte_ether_addr src; > rte_be16_t type; > uint32_t has_vlan:1; > uint32_t reserved:31; > } > > will become in v21.02: > > __extension__ > struct rte_flow_item_eth { > union { > struct { > struct rte_ether_addr dst; > struct rte_ether_addr src; > rte_be16_t type; > }; > struct rte_ether_hdr hdr; > }; > uint32_t has_vlan:1; > uint32_t reserved:31; > } > > After this point usage should switch to 'hdr' struct. > > And in the second step, in the v21.11 LTS release the protocol fields > will be removed, and the struct will become: > > struct rte_flow_item_eth { > struct rte_ether_hdr hdr; > uint32_t has_vlan:1; > uint32_t reserved:31; > } > > Already many ``rte_flow_item_*`` structures implemented to have protocol > struct, target is convert all to this usage. > > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > Acked-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khapa...@broadcom.com>
> --- > Cc: Thomas Monjalon <tho...@monjalon.net> > Cc: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> > Cc: Ori Kam <or...@nvidia.com> > > v2: > * Defer actual cleanup to the v21.11 LTS release > --- > doc/guides/rel_notes/deprecation.rst | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/doc/guides/rel_notes/deprecation.rst > b/doc/guides/rel_notes/deprecation.rst > index 96986fabd598..90b6fbc9548c 100644 > --- a/doc/guides/rel_notes/deprecation.rst > +++ b/doc/guides/rel_notes/deprecation.rst > @@ -88,6 +88,16 @@ Deprecation Notices > will be limited to maximum 256 queues. > Also compile time flag ``RTE_ETHDEV_QUEUE_STAT_CNTRS`` will be removed. > > +* ethdev: The flow API matching pattern structures, ``struct > rte_flow_item_*``, > + should start with relevant protocol header. > + Some matching pattern structures implements this by duplicating protocol > header > + fields in the struct. To clarify the intention and to be sure protocol > header > + is intact, will replace those fields with relevant protocol header struct. > + In v21.02 both individual protocol header fields and the protocol header > struct > + will be added as union, target is switch usage to the protocol header by > time. > + In v21.11 LTS, protocol header fields will be cleaned and only protocol > header > + struct will remain. > + > * sched: To allow more traffic classes, flexible mapping of pipe queues to > traffic classes, and subport level configuration of pipes and queues > changes will be made to macros, data structures and API functions defined > -- > 2.26.2 >