[dpdk-dev] difficulty w/ RTE_NEXT_ABI

Thomas Monjalon thomas.monjalon at 6wind.com
Mon Nov 23 01:13:32 CET 2015


2015-11-22 18:25, Matthew Hall:
> On Sun, Nov 22, 2015 at 09:59:30PM +0100, Thomas Monjalon wrote:
> > > So again I am confused what advantage we got from RTE_NEXT_ABI here, and how 
> > > you have multiple copies of RTE_NEXT_ABI on a single symbol when it is a 
> > > binary variable.
> > 
> > I don't understand what is not clear here.
> 
> OK. Let me restate it.
> 
> I was starting from an assumption that the purpose of RTE_NEXT_ABI was to 
> allow ABI changes.

Yes it is a preview. The next release will have only the new ABI without #ifdef.

> In most projects I worked on, a renaming of a variable when the data type is 
> unchanged does not count as an ABI change. So it seems like this is different 
> from the usual definition.

No, it is not an ABI change.
As I said previously, the change is in the mbuf ABI.
So in the example app, the 2 ABIs are used with #ifdef.

> Secondly, if one is making an ABI change, like I was, to some code which was 
> already changed once using RTE_NEXT_ABI, which part of the code do you change?

If your change is sent upstream, you must rely on the new ABI because the old one
will be removed when your change will be integrated.
If it is a local change, it depends on which ABI you want to use.

> Do you make a third copy different from the first two copies? If you make a 
> third copy, but RTE_NEXT_ABI is binary (i.e. it has two values, on and off) 
> then what labeling do you apply to the third copy?
> 
> If you don't make a third copy, I am assuming you edit the copy marked with 
> RTE_NEXT_ABI. But then what happens to a downstream user who wants to have 
> RTE_NEXT_ABI with the first ABI change, and not your second ABI change?

In each release, there is only 2 ABIs: current and next.
In 2.2, there is only 1 ABI.

> Can you see what I am trying to ask now?

Yes. Hope my detailed answer is enough.


More information about the dev mailing list