[dpdk-dev] [PATCH] doc: deprecate using MAX values as array size

Thomas Monjalon thomas at monjalon.net
Tue Feb 25 12:03:25 CET 2020


> > > Adding the deprecation notice as reminder for next ABI breakage release
> > > (20.11).
> > > This one time breakage is required to be able to extend enum/define
> > > without breaking ABI.
> > >
> > > Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> > > ---
> > > +* lib: will fix extending some enum/define breaking the ABI. There are
> > multiple
> > > +  samples in DPDK that enum/define terminated with a ``.*MAX.*`` value
> > which is
> > > +  used by iterators, and arrays holding these values are sized with this
> > > +  ``.*MAX.*`` value. So extending this enum/define increases the ``.*MAX.*``
> > > +  value which increases the size of the array and depending on how/where the
> > > +  array is used this may break the ABI.
> > > +  ``RTE_ETH_FLOW_MAX`` is one sample of the mentioned case, adding a
> > new flow
> > > +  type will break the ABI because of ``flex_mask[RTE_ETH_FLOW_MAX]``
> > array
> > > +  usage in following public struct hierarchy:
> > > +  ``rte_eth_fdir_flex_conf -> rte_fdir_conf -> rte_eth_conf (in the middle)``.
> > > +  Need to identify this kind of usages and fix in 20.11, otherwise this blocks
> > > +  us extending existing enum/define.
> > > +  One solution can be using a fixed size array instead of ``.*MAX.*`` value.
> > 
> We admit that the issue is there and we can discuss the possible solutions for this issue.
> 
> For the deprecation notice.
> Acked-by: Akhil Goyal <akhil.goyal at nxp.com>

I think we'll need a new coding style guideline to avoid shuch issue in future.
Anyway, about fixing the issue in 20.11,
Acked-by: Thomas Monjalon <thomas at monjalon.net>




More information about the dev mailing list