Files
buildroot/package/dpdk/Config.in
Maxime Leroy 49e7a554f2 package/dpdk: make apps selectable
Add BR2_PACKAGE_DPDK_APPS_LIST to control which DPDK applications are
built:
  - empty : use DPDK defaults
  - none  : disable all apps (-Ddisable_apps='*')
  - list  : pass to -Denable_apps= (comma-separated)

Signed-off-by: Maxime Leroy <maxime@leroys.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-02-03 22:12:51 +01:00

118 lines
3.8 KiB
Plaintext

config BR2_PACKAGE_DPDK_ARCH_SUPPORTS
bool
# DPDK can be used for the following little endian architecture
default y if BR2_aarch64
# DPDK requires SSE4.2 for x86_64 since v17.08
default y if BR2_x86_64 && BR2_X86_CPU_HAS_SSE42
config BR2_PACKAGE_DPDK
bool "dpdk"
depends on BR2_PACKAGE_DPDK_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS # DPDK design
depends on BR2_USE_MMU # pthread() memory mappings
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11/stdatomic.h
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19
depends on BR2_TOOLCHAIN_USES_GLIBC
select BR2_PACKAGE_HOST_PYTHON3 # host-python-pyelftools
help
DPDK (Data Plane Development Kit) is a set of libraries
and drivers for fast packet processing.
http://dpdk.org/
Optional but recommended kernel configurations:
- CONFIG_VFIO_IOMMU_TYPE1
- CONFIG_VFIO_VIRQFD
- CONFIG_VFIO
- CONFIG_VFIO_NOIOMMU
- CONFIG_VFIO_PCI
- CONFIG_VFIO_PCI_MMAP
- CONFIG_HUGETLBFS
- CONFIG_HUGETLB_PAGE
- CONFIG_PROC_PAGE_MONITOR
For x86 only, the following can also be useful:
- CONFIG_HPET
- CONFIG_HPET_MMAP
if BR2_PACKAGE_DPDK
config BR2_PACKAGE_DPDK_EXAMPLES
bool "Install examples"
config BR2_PACKAGE_DPDK_TESTS
bool "Install tests"
config BR2_PACKAGE_DPDK_DRIVERS_LIST
string "List of enabled drivers"
help
Controls which DPDK drivers are built.
Values:
(empty): use DPDK defaults
none : build no drivers
list : e.g. "net/virtio,net/intel/ixgbe"
To list possible drivers found in the DPDK source tree:
find drivers -mindepth 2 -maxdepth 3 -type d \
! -printf '%P\n' | sort
Note: providing manually a list of dpdk drivers to enable
does not automatically enable its dependencies (internal or
external). It is the user responsiblity to add internal dpdk
dependencies in this list, and/or select the relevant
Buildroot packages for external dependencies. DPDK
configuration will fail in case of missing dependencies.
config BR2_PACKAGE_DPDK_LIBS_LIST
string "List of enabled libraries"
help
Controls which DPDK libraries are built.
Values:
(empty): use DPDK defaults
none : build no libraries
list : e.g. "hash,fib,rib"
To list all libraries found in the DPDK source tree:
find lib -mindepth 2 -maxdepth 2 -type f -name meson.build \
-printf '%h\n' | xargs -n1 basename | sort -u
Note: providing manually a list of dpdk libraries to enable
does not automatically enable its dependencies (internal or
external). It is the user responsiblity to add internal dpdk
dependencies in this list, and/or select the relevant
Buildroot packages for external dependencies. DPDK
configuration will fail in case of missing dependencies.
config BR2_PACKAGE_DPDK_APPS_LIST
string "List of enabled applications"
help
Controls which DPDK applications are built.
Values:
(empty): use DPDK defaults
none : build no apps
list : e.g. "test-cmdline,test-pmd"
To list all applications found in the DPDK source tree:
find app -mindepth 2 -maxdepth 2 -type f -name meson.build \
-printf '%h\n' | xargs -n1 basename | sort -u
Note: providing manually a list of dpdk libraries to enable
does not automatically enable its dependencies (internal or
external). It is the user responsiblity to add internal dpdk
dependencies in this list, and/or select the relevant
Buildroot packages for external dependencies. DPDK
configuration will fail in case of missing dependencies.
endif
comment "dpdk needs a glibc toolchain w/ threads, gcc >= 4.9, headers >= 4.19"
depends on BR2_USE_MMU # pthread() memory mappings
depends on BR2_PACKAGE_DPDK_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_USES_GLIBC || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19