[dpdk-dev] officially support building driver plugins externally

Tyler Retzlaff roretzla at linux.microsoft.com
Wed Mar 10 22:24:59 CET 2021


On Wed, Mar 10, 2021 at 09:52:58PM +0100, Thomas Monjalon wrote:
> 12/02/2021 20:09, Tyler Retzlaff:
> > Recently installation of driver headers and export of functions was                                       pulled back from being public to private                                                                  (commit df96fd0d73955bdc7ca3909e772ff2ad903249c6). From a discussion                                      with Thomas Monjalon we understand that it was not the design intent                                      to ever have these headers exposed publicly, but it was allowing us to                                    maintain the drivers we do implement outside of the normal dpdk tree.
> > 
> > We would like to propose that building driver plugins external to the                                     dpdk source tree be officially supported / restored and it is is our                                      understanding there there are asks from other DPDK consumers for the                                      same.  We understand the main concern is that it might incorrectly convey                                 that the API/ABI of the driver interface is stable or promised to be                                      compatible when no such promise exists.

sorry for previous mail format i didn't intend for things to be hard to
read.

> 
> Yes we must have a clean API export for application.
> The driver interface should not be exported by default.

agreed for both points. i think introducing another name to the set of
__rte_internal, __rte_experimental, __rte_<to_be_named> is probably the
mechanism to use?

> 
> > Can the broader community help us with an acceptable solution to building                                 the drivers out of the tree? Aside from installing the needed headers                                     what other mechanical things can we do to achieve this?  We are happy to                                  do the work/submit the required patches as necessary.
> 
> What about a meson option to export the driver interface files?

i would propose driver interface files installation defaults to off and
a meson option -D<to_be_named>=true has to be passed to enable
installation.

> Should it be exported in the same include directory as API files?

that is a good question, i'm not sure there is substantial value if we
are defaulting to not installing the driver interface files. but i have
no objection if someone sees value in a deeper include path.

> Should it be accessible with a pkg-config file?

i haven't worked with pkg-config in some time, is the suggestion that we
include a .pc file or something so a dependent/external driver can
detect that the driver interface files are available?

my first thought is no because it is an unstable api i would not want to
encourage automatically finding and depending on the driver interface
and instead opt for external drivers to have to jump through a few hoops.
but perhaps you have other ideas in mind?



More information about the dev mailing list