Part 2: Development Environment
50. Source Organization
This section describes the organization of sources in the DPDK framework.
50.1. Makefiles and Config
Note
In the following descriptions,
RTE_SDK
is the environment variable that points to the base directory into which the tarball was extracted.
See
Useful Variables Provided by the Build System
for descriptions of other variables.
Makefiles that are provided by the DPDK libraries and applications are located in $(RTE_SDK)/mk
.
Config templates are located in $(RTE_SDK)/config
. The templates describe the options that are enabled for each target.
The config file also contains items that can be enabled and disabled for many of the DPDK libraries,
including debug options.
The user should look at the config file and become familiar with these options.
The config file is also used to create a header file, which will be located in the new build directory.
50.2. Libraries
Libraries are located in subdirectories of $(RTE_SDK)/lib
.
By convention a library refers to any code that provides an API to an application.
Typically, it generates an archive file (.a
), but a kernel module would also go in the same directory.
50.3. Drivers
Drivers are special libraries which provide poll-mode driver implementations for
devices: either hardware devices or pseudo/virtual devices. They are contained
in the drivers subdirectory, classified by type, and each compiles to a
library with the format librte_pmd_X.a
where X
is the driver name.
Note
Several of the driver/net
directories contain a base
sub-directory. The base
directory generally contains code the shouldn’t
be modified directly by the user. Any enhancements should be done via the
X_osdep.c
and/or X_osdep.h
files in that directory. Refer to the
local README in the base directories for driver specific instructions.
50.4. Applications
Applications are source files that contain a main()
function.
They are located in the $(RTE_SDK)/app
and $(RTE_SDK)/examples
directories.
The app directory contains sample applications that are used to test DPDK (such as autotests) or the Poll Mode Drivers (test-pmd).
The examples directory contains Sample applications that show how libraries can be used.