path: root/config/rte_config.h
AgeCommit message (Collapse)Author
2018-10-27vfio: disable in FreeBSD build with mesonAgalya Babu RadhaKrishnan
FreeBSD compilation was failing through meson build. RTE_EAL_VFIO is not supported in FreeBSD. But RTE_EAL_VFIO was enabled for both linux and freebsd. So RTE_EAL_VFIO is removed from config/rte_config.h and based on the platform RTE_EAL_VFIO flag is enabled/disabled appropriately. Fixes: 844514c735 ("eal: build with meson") Cc: Signed-off-by: Agalya Babu RadhaKrishnan <> Acked-by: Bruce Richardson <>
2018-10-27compress/qat: enable dynamic huffman encodingFiona Trahe
Enable dynamic huffman encoding in the QAT comp PMD. Signed-off-by: Tomasz Jozwiak <> Signed-off-by: Fiona Trahe <> Acked-by: Arek Kusztal <>
2018-10-11malloc: index heaps using heap ID rather than NUMA nodeAnatoly Burakov
Switch over all parts of EAL to use heap ID instead of NUMA node ID to identify heaps. Heap ID for DPDK-internal heaps is NUMA node's index within the detected NUMA node list. Heap ID for external heaps will be order of their creation. This breaks the ABI, so document the changes. Signed-off-by: Anatoly Burakov <>
2018-10-01eventdev: add eth Tx adapter implementationNikhil Rao
This patch implements the Tx adapter APIs by invoking the corresponding eventdev PMD callbacks and also provides the common rte_service function based implementation when the eventdev PMD support is absent. Signed-off-by: Nikhil Rao <>
2018-09-19config: remove unused parameterQi Zhang
RTE_LIBRTE_I40E_ITR_INTERVAL is not used. So it should also be removed in config/rte_config.h for meson+ninja build. Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler") Cc: Signed-off-by: Qi Zhang <> Acked-by: Bruce Richardson <>
2018-09-18net/qede: add in meson buildLuca Boccassi
Signed-off-by: Luca Boccassi <> Acked-by: Shahed Shaikh <>
2018-09-17compat: fix symbol version support with mesonBruce Richardson
For meson builds, the define to enable the symbol version macros in rte_compat.h was missing. This led to symbols being omitted from shared objects. For example, checking with objdump and comparing make and meson built versions: $ objdump -T make-build/lib/ | grep _flush 0000000000001b60 g DF .text 00000000000000a7 (DPDK_2.0) rte_distributor_flush 0000000000003f10 g DF .text 0000000000000434 DPDK_17.05 rte_distributor_flush $ objdump -T meson-build/lib/ | grep _flush 0000000000001d50 g DF .text 00000000000000fb DPDK_2.0 rte_distributor_flush Adding in the missing define fixes this. Fixes: 5b9656b157d3 ("lib: build with meson") Cc: Reported-by: Luca Boccassi <> Signed-off-by: Bruce Richardson <> Tested-by: Luca Boccassi <>
2018-07-25compress/qat: support scatter-gather buffersFiona Trahe
This patch adds Scatter-Gather List (SGL) feature to QAT compression PMD. Signed-off-by: Tomasz Jozwiak <> Signed-off-by: Fiona Trahe <>
2018-07-06eventdev: add interrupt driven queues to Rx adapterNikhil Rao
Add support for interrupt driven queues when eth device is configured for rxq interrupts and servicing weight for the queue is configured to be zero. A interrupt driven packet received counter has been added to rte_event_eth_rx_adapter_stats. Signed-off-by: Nikhil Rao <>
2018-07-11cryptodev: remove max number of sessions parameterPablo de Lara
Most crypto PMDs do not have a limitation of the number of the sessions that can be handled internally. The value that was set before was not actually used at all, since the sessions are created at the application level. Therefore, this value is not parsed from the initial crypto parameters anymore and it is set to 0, meaning that there is no actual limit. Signed-off-by: Pablo de Lara <> Acked-by: Akhil Goyal <>
2018-06-28crypto/qat: remove configurable max number of sessionsTomasz Jozwiak
This patch removes CONFIG_RTE_QAT_PMD_MAX_NB_SESSIONS from common_base, config/rte_config.h files and defines QAT_SYM_PMD_MAX_NB_SESSIONS inside qat_sym_pmd.h file instead. Signed-off-by: Tomasz Jozwiak <> Acked-by: Fiona Trahe <>
2018-06-28crypto/qat: add max PCI devices to config fileFiona Trahe
Added CONFIG_RTE_PMD_QAT_MAX_PCI_DEVICES to build config files. Signed-off-by: Tomasz Jozwiak <>
2018-05-10compressdev: add basic device managementFiona Trahe
Add basic functions to manage compress devices, including driver and device allocation, and the basic interface with compressdev PMDs. Signed-off-by: Fiona Trahe <> Signed-off-by: Pablo de Lara <> Signed-off-by: Shally Verma <> Signed-off-by: Ashish Gupta <>
2018-05-10eventdev: add crypto adapter implementationAbhinandan Gujjar
This patch adds common code for the crypto adapter to support SW and HW based transfer mechanisms. The adapter uses an EAL service core function for SW based packet transfer and uses the eventdev PMD functions to configure HW based packet transfer between the crypto device and the event device. This patch also adds adapter to the meson build system & updates the necessary makefile & map file. Signed-off-by: Abhinandan Gujjar <> Signed-off-by: Nikhil Rao <> Signed-off-by: Gage Eads <> Acked-by: Akhil Goyal <>
2018-04-27vfio: extend data structure for multi containerXiao Wang
Currently eal vfio framework binds vfio group fd to the default container fd during rte_vfio_setup_device, while in some cases, e.g. vDPA (vhost data path acceleration), we want to put vfio group to a separate container and program IOMMU via this container. This patch extends the vfio_config structure to contain per-container user_mem_maps and defines an array of vfio_config. The next patch will base on this to add container API. Signed-off-by: Junjie Chen <> Signed-off-by: Xiao Wang <> Reviewed-by: Maxime Coquelin <> Reviewed-by: Ferruh Yigit <> Acked-by: Anatoly Burakov <>
2018-04-23crypto/virtio: add virtio crypto PMDJay Zhou
The virtio crypto device is a virtual cryptography device as well as a kind of virtual hardware accelerator for virtual machines. The linux kernel virtio-crypto driver has been merged, and this patch introduces virtio crypto PMD to achieve better performance. Signed-off-by: Jay Zhou <> Reviewed-by: Fan Zhang <>
2018-04-17rawdev: add to meson buildBruce Richardson
Add librte_rawdev to the meson build of DPDK. Signed-off-by: Bruce Richardson <> Tested-by: Shreyansh Jain <>
2018-04-16eventdev: add timer adapter common codeErik Gabriel Carrillo
This commit adds the logic that is shared by all event timer adapter drivers; the common code handles instance allocation and some initialization. Signed-off-by: Erik Gabriel Carrillo <> Acked-by: Pavan Nikhilesh <>
2018-04-11mem: replace memseg with memseg listsAnatoly Burakov
Before, we were aggregating multiple pages into one memseg, so the number of memsegs was small. Now, each page gets its own memseg, so the list of memsegs is huge. To accommodate the new memseg list size and to keep the under-the-hood workings sane, the memseg list is now not just a single list, but multiple lists. To be precise, each hugepage size available on the system gets one or more memseg lists, per socket. In order to support dynamic memory allocation, we reserve all memory in advance (unless we're in 32-bit legacy mode, in which case we do not preallocate memory). As in, we do an anonymous mmap() of the entire maximum size of memory per hugepage size, per socket (which is limited to either RTE_MAX_MEMSEG_PER_TYPE pages or RTE_MAX_MEM_MB_PER_TYPE megabytes worth of memory, whichever is the smaller one), split over multiple lists (which are limited to either RTE_MAX_MEMSEG_PER_LIST memsegs or RTE_MAX_MEM_MB_PER_LIST megabytes per list, whichever is the smaller one). There is also a global limit of CONFIG_RTE_MAX_MEM_MB megabytes, which is mainly used for 32-bit targets to limit amounts of preallocated memory, but can be used to place an upper limit on total amount of VA memory that can be allocated by DPDK application. So, for each hugepage size, we get (by default) up to 128G worth of memory, per socket, split into chunks of up to 32G in size. The address space is claimed at the start, in eal_common_memory.c. The actual page allocation code is in eal_memalloc.c (Linux-only), and largely consists of copied EAL memory init code. Pages in the list are also indexed by address. That is, in order to figure out where the page belongs, one can simply look at base address for a memseg list. Similarly, figuring out IOVA address of a memzone is a matter of finding the right memseg list, getting offset and dividing by page size to get the appropriate memseg. This commit also removes rte_eal_dump_physmem_layout() call, according to deprecation notice [1], and removes that deprecation notice as well. On 32-bit targets due to limited VA space, DPDK will no longer spread memory to different sockets like before. Instead, it will (by default) allocate all of the memory on socket where master lcore is. To override this behavior, --socket-mem must be used. The rest of the changes are really ripple effects from the memseg change - heap changes, compile fixes, and rewrites to support fbarray-backed memseg lists. Due to earlier switch to _walk() functions, most of the changes are simple fixes, however some of the _walk() calls were switched to memseg list walk, where it made sense to do so. Additionally, we are also switching locks from flock() to fcntl(). Down the line, we will be introducing single-file segments option, and we cannot use flock() locks to lock parts of the file. Therefore, we will use fcntl() locks for legacy mem as well, in case someone is unfortunate enough to accidentally start legacy mem primary process alongside an already working non-legacy mem-based primary process. [1] Signed-off-by: Anatoly Burakov <> Tested-by: Santosh Shukla <> Tested-by: Hemant Agrawal <> Tested-by: Gowrishankar Muthukrishnan <>
2018-04-04config: remove old log level optionStephen Hemminger
The old RTE_LOG_LEVEL has been replaced by RTE_DP_LOG_LEVEL and is not used anywhere in the current source tree. It is a merge leftover. Fixes: 43e9f17ce7b8 ("log: remove log level config option") Cc: Signed-off-by: Stephen Hemminger <>
2018-03-15build: add meson support for dpaaX platformsHemant Agrawal
Signed-off-by: Akhil Goyal <> Signed-off-by: Hemant Agrawal <>
2018-01-30build: replace license text with SPDX tagBruce Richardson
Signed-off-by: Bruce Richardson <> Reviewed-by: Luca Boccassi <>
2018-01-30eal/bsd: build modules with mesonBruce Richardson
Support compiling the FreeBSD kernel modules using meson and ninja. Signed-off-by: Bruce Richardson <> Tested-by: Harry van Haaren <>
2018-01-30drivers/net: build Intel NIC PMDs with mesonBruce Richardson
Add the e1000, fm10k, i40e and ixgbe drivers to the meson & ninja build. Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>
2018-01-30drivers/net: build some vdev PMDs with mesonBruce Richardson
Add the af_packet, null, pcap and ring PMDs to the meson build. Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>
2018-01-30crypto/qat: build with mesonBruce Richardson
Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>
2018-01-30lib: build with mesonBruce Richardson
Add non-EAL libraries to DPDK build. The compat lib is a special case, along with the previously-added EAL, but all other libs can be build using the same set of commands, where the individual files only need to specify their dependencies, source files, header files and ABI versions. Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>
2018-01-30eal: build with mesonBruce Richardson
Support building the EAL with meson and ninja. This involves a number of different files for iterating through all the different subdirectories in the EAL. The library itself will be compiled on build but the header files are only copied from their initial location once "ninja install" is run. Instead, we use meson dependency tracking to ensure that other libraries which use the EAL headers can find them in their original locations. Note: this does not include building kernel modules on either BSD or Linux Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>
2018-01-30build: add infrastructure for meson and ninja buildsBruce Richardson
To build with meson and ninja, we need some initial infrastructure in place. The build files for meson always need to be called "", and options get placed in meson_options.txt This commit adds a top-level file, which sets up the global variables for tracking drivers, libraries, etc., and then includes other build files, before finishing by writing the global build configuration header file and a DPDK pkgconfig file at the end, using some of those same globals. From the top level build file, the only include file thus far is for the config folder, which does some other setup of global configuration parameters, including pulling in architecture specific parameters from an architectural subdirectory. A number of configuration build options are provided for the project to tune a number of global variables which will be used later e.g. max numa nodes, max cores, etc. These settings all make their way to the global build config header "rte_build_config.h". There is also a file "rte_config.h", which includes "rte_build_config.h", and this file is meant to hold other build-time values which are present in our current static build configuration but are not normally meant for user-configuration. Ideally, over time, the values placed here should be moved to the individual libraries or drivers which want those values. Signed-off-by: Bruce Richardson <> Reviewed-by: Harry van Haaren <> Acked-by: Keith Wiles <> Acked-by: Luca Boccassi <>