path: root/config
AgeCommit message (Collapse)Author
2019-03-27build: use version number from config fileBruce Richardson
Since we have the version number in a separate file at the root level, we should not need to duplicate this in rte_version.h too. Best approach here is to move the macros for specifying the year/month/etc. parts from the version header file to the build config file - leaving the other utility macros for e.g. printing the version string, where they are. For "make", this is done by having a little bit of awk parse the version file and pass the results through to the preprocessor for the config generation stage. For "meson", this is done by parsing the version and adding it to the standard dpdk_conf object. In both cases, we need to append a large number - in this case "99", previously 16 in original code - to the version number when we want to do version number comparisons. Without this, the release version e.g. 19.05.0 will compare as less than it's RC's e.g. 19.05.0-rc4. With it, the comparison is correct as " > 19.05.0-rc4.99". Signed-off-by: Bruce Richardson <> Acked-by: Luca Boccassi <> Acked-by: Thomas Monjalon <>
2019-03-27build: move meson version handling to config directoryBruce Richardson
To keep the top-level file as clean and clear as possible, we move the version handling to the config/ file, where the rest of the build configuration is already being set up. Signed-off-by: Bruce Richardson <> Acked-by: Luca Boccassi <>
2019-03-26build: remove meson warning for ArmJerin Jacob
Remove the following warning by comparing string to string. config/arm/ WARNING: Trying to compare values of different types (list, str) using ==. Fixes: c6e536e38437 ("build: add more implementers IDs and PNs for ARM") Cc: Signed-off-by: Jerin Jacob <> Acked-by: Luca Boccassi <>
2019-03-12mk: use linux and freebsd in config namesBruce Richardson
Rather than using linuxapp and bsdapp everywhere, we can change things to use the, more readable, terms "linux" and "freebsd" in our build configs. Rather than renaming the configs we can just duplicate the existing ones with the new names using symlinks, and use the new names exclusively internally. ["make showconfigs" also only shows the new names to keep the list short] The result is that backward compatibility is kept fully but any new builds or development can be done using the newer names, i.e. both "make config T=x86_64-native-linuxapp-gcc" and "T=x86_64-native-linux-gcc" work. Signed-off-by: Bruce Richardson <>
2019-03-12build: rename linuxapp to linux in meson cross filesBruce Richardson
Rename the cross files for meson compilation from having linuxapp in the name to just linux in the name. Signed-off-by: Bruce Richardson <>
2019-03-12build/freebsd: rename macro BSDPAPP to FREEBSDBruce Richardson
Rename the macro and all instances in DPDK code, but keep a copy of the old macro defined for legacy code linking against DPDK Signed-off-by: Bruce Richardson <>
2019-03-12build/linux: rename macro from LINUXAPP to LINUXBruce Richardson
Rename the macro to make things shorter and more comprehensible. For both meson and make builds, keep the old macro around for backward compatibility. Signed-off-by: Bruce Richardson <>
2019-03-01net/iavf: rename remaining avf stringsLeyi Rong
This is the main patch which renames the macros, functions, structs and any remaining strings in the iavf code. Signed-off-by: Leyi Rong <> Reviewed-by: Ferruh Yigit <>
2019-03-01build: support Cortex a55 and a76 platformsPhil Yang
Enable native/cross compiling for Cortex-A55 and Cortex-A76 on meson. Signed-off-by: Phil Yang <> Reviewed-by: Ola Liljedahl <> Reviewed-by: Gavin Hu <>
2019-03-01build: improve pcap dependency handlingLuca Boccassi
pcap has historically shipped a custom pcap-config binary tool which does the job of pkg-config. It was never compatible with cross compilation. Meson uses it when using dependency(), which then means cross compilation fails. Set pcap-config to empty in the meson cross compilation files so that Meson will not use it, and add a fallback in case dependency() fails. libpcap 1.9.0 finally ships a pkg-config file so everything will work out of the box in the future. Signed-off-by: Luca Boccassi <>
2019-02-27build: improve libbsd dependency handlingLuca Boccassi
Use dependency() instead of manual append to ldflags. Move libbsd inclusion to librte_eal, so that all other libraries and PMDs will inherit it. Signed-off-by: Luca Boccassi <> Acked-by: Bruce Richardson <>
2019-02-26build: add option to override max ethdev portsChas Williams
Allow users and packagers to override the default RTE_MAX_ETHPORTS. This adds a new meson option, max_ethports which defaults to the current value. Signed-off-by: Chas Williams <> Acked-by: Bruce Richardson <>
2019-02-26build: set RTE_ARCH_64 based on pointer sizeBruce Richardson
Rather than relying on the target machine architecture, use the size of a pointer from the compiler to determine if we are 64-bits or not. This allows correct behaviour when you pass -m32 as a compile option. It also allows us to use this value repeatedly throughout the repo rather than continually testing for the sizeof(void*). Signed-off-by: Bruce Richardson <> Tested-by: Luca Boccassi <> Acked-by: Luca Boccassi <>
2019-01-17build: fix meson check for binutils 2.30Harry van Haaren
This commit reworks the checks for binutils 2.30 and how the flags to disable AVX512F are passed to the compiler. Previously the #define for including AVX512 code was set, while the -mno-avx512f argument was given to the compiler. This would cause gcc to correctly refuse to emit AVX512 instructions, but the rte_memcpy code that includes AVX512 optimizations was being added to the build. The check for binutils check is now moved to x86 as it is irrelevant for other architectures, and the -mno-avx512f flag is passed to a march_opts array in meson. As the -mno-avx512 flag is added earlier in the build, the code in rte_memcpy is no longer attempted to be compiled. This commit also adds a message print in the meson configure stage to alert the user of the workaround being employed. Fixes: a32ca9a4ebc1 ("mk: fix scope of disabling AVX512F support") Signed-off-by: Harry van Haaren <> Tested-by: Ferruh Yigit <>
2019-01-14config: add static linkage of mlx dependencyThomas Monjalon
The libraries provided by rdma-core may be statically linked if enabling CONFIG_RTE_IBVERBS_LINK_STATIC in the make-based build. If CONFIG_RTE_BUILD_SHARED_LIB is disabled, the applications will embed the mlx PMDs with ibverbs and the mlx libraries. If CONFIG_RTE_BUILD_SHARED_LIB is enabled, the mlx PMDs will embed ibverbs and the mlx libraries. Support with meson may be added later. Signed-off-by: Thomas Monjalon <> Acked-by: Shahaf Shuler <>
2019-01-14config: gather options for dlopen mlx dependencyThomas Monjalon
Rename options CONFIG_RTE_LIBRTE_MLX4_DLOPEN_DEPS and CONFIG_RTE_LIBRTE_MLX5_DLOPEN_DEPS to a single option CONFIG_RTE_IBVERBS_LINK_DLOPEN. Rename meson option enable_driver_mlx_glue to ibverbs_link. There was no good reason for setting a different link option for mlx4 and mlx5. Having a single common option makes it easier to understand and unify make and meson systems. Signed-off-by: Thomas Monjalon <> Acked-by: Shahaf Shuler <>
2019-01-14config: remove NFP PMD from 32-bit buildsAlejandro Lucero
Signed-off-by: Alejandro Lucero <> Signed-off-by: Thomas Monjalon <>
2019-01-14mk: fix scope of disabling AVX512F supportFerruh Yigit
AVX512 was disabled for GCC because of Bugzilla issue 97 [1], the GCC defect submitted for the issue [2] highlighted that this is a known binutils version 2.30 issue. Narrowed the scope of no-avx512 to the this specific binutils version. [1] [2] Fixes: 8d07c82b239f ("mk: disable gcc AVX512F support") Cc: Signed-off-by: Ferruh Yigit <> Acked-by: Thomas Monjalon <>
2019-01-14config: add Mellanox BlueField armv8 SoCYongseok Koh
BlueField is Mellanox's new SoC based on armv8. BlueField integrates Mellanox ConnectX-5 interconnect and Cortex-A72 cores into a single device. Signed-off-by: Yongseok Koh <>
2019-01-10lib: introduce IPsec libraryKonstantin Ananyev
Introduce librte_ipsec library. The library is supposed to utilize existing DPDK crypto-dev and security API to provide application with transparent IPsec processing API. That initial commit provides some base API to manage IPsec Security Association (SA) object. Signed-off-by: Mohammad Abdul Awal <> Signed-off-by: Konstantin Ananyev <> Acked-by: Declan Doherty <> Acked-by: Akhil Goyal <>
2019-01-03net/mlx5: add ConnectX-6 device IDsWisam Jaddo
This commit includes the add of: - ConnectX-6 device ID - ConnectX-6 SRIOV device ID Signed-off-by: Wisam Jaddo <> Acked-by: Shahaf Shuler <>
2018-12-21net/ice: support device and queue opsWenzhuo Lu
Normally when starting/stopping the device the queue should be started and stopped. Support them both in this patch. Below ops are added, dev_configure dev_start dev_stop dev_close dev_reset rx_queue_start rx_queue_stop tx_queue_start tx_queue_stop rx_queue_setup rx_queue_release tx_queue_setup tx_queue_release Signed-off-by: Wenzhuo Lu <> Signed-off-by: Qiming Yang <> Signed-off-by: Xiaoyun Li <> Signed-off-by: Jingjing Wu <> Reviewed-by: Ferruh Yigit <> Reviewed-by: Qi Zhang <>
2018-12-21net/ice: support device initializationWenzhuo Lu
Update the documents too. Signed-off-by: Wenzhuo Lu <> Signed-off-by: Qiming Yang <> Signed-off-by: Xiaoyun Li <> Signed-off-by: Jingjing Wu <> Reviewed-by: Ferruh Yigit <> Reviewed-by: Qi Zhang <>
2018-12-19app/compress-perf: add parserTomasz Jozwiak
Added parser part into compression perf. test. Signed-off-by: Pablo de Lara <> Signed-off-by: Tomasz Jozwiak <> Acked-by: Fiona Trahe <> Acked-by: Lee Daly <> Acked-by: Shally Verma <>
2018-12-19bbdev: enhance offload cost testKamil Chalupnik
Offload cost test was improved in order to collect more accurate results. Signed-off-by: Kamil Chalupnik <> Acked-by: Amr Mokhtar <>
2018-12-19config: enable C11 memory model for armv8 with mesonGavin Hu
This patch makes the configuration based on makefile and the configuration based on meson to be the same. Fixes: c6e536e38437 ("build: add more implementers IDs and PNs for ARM") Cc: Signed-off-by: Gavin Hu <> Reviewed-by: Ruifeng Wang <> Reviewed-by: Honnappa Nagarahalli <> Acked-by: Bruce Richardson <>
2018-11-23config: enable more than 128 cores for arm64Joyce Kong
When running dpdk applications on cores whose ids are bigger than original max_core setting, eal error as below: EAL: Detected 104 lcore(s) EAL: Detected 2 NUMA nodes EAL: invalid core list -l CORELIST core indexes between 0 and 128 The fix is to increase max_core to 256 on arm64 platform. Fixes: b3ce00e5 ("mk: introduce ARMv8 architecture") Cc: Signed-off-by: Joyce Kong <> Reviewed-by: Gavin Hu <> Acked-by: Jerin Jacob <>
2018-11-18build: establish an invariant machine typeChristian Ehrhardt
Add the machine definition 'default' which is special compared to 'native' (most optimized for current system) or any explicit type (external entity has to decide on the type). It defaults to the per arch agreed common minimal baseline needed for DPDK to reasonable work. That might not be the most optimized, but the most portable version while still being able to support the CPU features required for DPDK. Going forward this can be bumped up by the DPDK project, but it can never be an invariant like 'native'. Distributions and other needing portable code are expected to define the machine as 'default'. Signed-off-by: Christian Ehrhardt <> Acked-by: Luca Boccassi <> Acked-by: Bruce Richardson <>
2018-11-18build: avoid non supported -march on ppc with mesonChristian Ehrhardt
So far only if machine was "native" it did use the re-direction to not set -march on ppc64 (where -march is not supported). We have to use mcpu/mtune in any case on ppc for whatever someone using the build system defines as machine. Fixes: 54d609a13876 ("build: add ppc64 meson build") Signed-off-by: Christian Ehrhardt <> Acked-by: Luca Boccassi <>
2018-11-18build: set -mfpu=neon flag for armv7-a with mesonLuca Boccassi
Building on armv7a with meson currenctly fails: /usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:10369:1: error: inlining failed in call to always_inline ‘vld1q_s32’: target specific option mismatch Set -mfpu=neon on that architecture like the legacy makefiles do to fix the issue. Fixes: b1d48c41189a ("build: support ARM with meson") Cc: Signed-off-by: Luca Boccassi <> Acked-by: Christian Ehrhardt <>
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-27build: add dependency on telemetry to apps with mesonKevin Laatz
This patch adds telemetry as a dependecy to all applications. Without these changes, the --telemetry flag will not be recognised and applications will fail to run if they want to enable telemetry. Signed-off-by: Bruce Richardson <> Signed-off-by: Kevin Laatz <> Signed-off-by: Radu Nicolau <> Acked-by: Harry van Haaren <>
2018-10-27telemetry: introduce infrastructureCiara Power
This patch adds the infrastructure and initial code for the telemetry library. The telemetry init is registered with eal_init(). We can then check to see if --telemetry was passed as an eal option. If --telemetry was parsed, then we call telemetry init at the end of eal init. Control threads are used to get CPU cycles for telemetry, which are configured in this patch also. Signed-off-by: Ciara Power <> Signed-off-by: Brian Archbold <> Signed-off-by: Kevin Laatz <> Signed-off-by: Radu Nicolau <> Acked-by: Harry van Haaren <>
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-26config: rename option for C11 memory modelPhil Yang
Keep only single config option RTE_USE_C11_MEM_MODEL for C11 memory model, so all modules can leverage C11 atomic extension by enable this option. Signed-off-by: Phil Yang <> Reviewed-by: Honnappa Nagarahalli <> Reviewed-by: Gavin Hu <> Acked-by: Jerin Jacob <> Reviewed-by: Ferruh Yigit <> Signed-off-by: Thomas Monjalon <>
2018-10-18vhost: add config flag for postcopyMaxime Coquelin
Postcopy live-migration features relies on userfaultfd, which was only introduced in kernel v4.3. This patch introduces a new define to allow building vhost library on kernels not supporting userfaultfd. With legacy build system, user has to explicitly set CONFIG_RTE_LIBRTE_VHOST_POSTCOPY to 'y'. With Meson build system, RTE_LIBRTE_VHOST_POSTCOPY gets automatically defined if userfaultfd kernel header is present. Suggested-by: Ilya Maximets <> Signed-off-by: Maxime Coquelin <> Acked-by: Ilya Maximets <>
2018-10-18net/atlantic: add PMD driver skeletonPavel Belous
Makefile/meson build infrastructure, atl_ethdev minimal skeleton, header with aquantia aQtion NIC device and vendor IDs. Signed-off-by: Igor Russkikh <> Signed-off-by: Pavel Belous <>
2018-10-17crypto/caam_jr: introduce basic driverGagandeep Singh
The caam_jr poll mode crypto driver is supported for NXP SEC 4.x+ (CAAM) hardware accelerator. This driver is by default supported on LE platforms, if it is used on BE platforms like LS104X, config option CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE can be enabled. This patch add skeleton for caam jobring driver with probe and uintialisation functions Signed-off-by: Gagandeep Singh <> Signed-off-by: Hemant Agrawal <> Acked-by: Akhil Goyal <>
2018-10-17crypto/octeontx: add PMD skeletonAnoob Joseph
Adding OCTEON TX crypto PMD skeleton. Updating the maintainers files to claim responsibility. Also enabling driver by default by adding the component in common_base. Signed-off-by: Ankur Dwivedi <> Signed-off-by: Anoob Joseph <> Signed-off-by: Murthy NSSR <> Signed-off-by: Nithin Dabilpuram <> Signed-off-by: Ragothaman Jayaraman <> Signed-off-by: Srisivasubramanian S <> Signed-off-by: Tejasree Kondoj <>
2018-10-17crypto/mvsam: add dynamic loggingTomasz Duszynski
Add dynamic logging support to mvsam crypto PMD. Signed-off-by: Tomasz Duszynski <>
2018-10-16common/dpaax: add library for PA/VA translation tableShreyansh Jain
A common library, valid for dpaaX drivers, which is used to maintain a local copy of PA->VA translations. In case of physical addressing mode (one of the option for FSLMC, and only option for DPAA bus), the addresses of descriptors Rx'd are physical. These need to be converted into equivalent VA for rte_mbuf and other similar calls. Using the rte_mem_virt2iova or rte_mem_virt2phy is expensive. This library is an attempt to reduce the overall cost associated with this translation. A small table is maintained, containing continuous entries representing a continguous physical range. Each of these entries stores the equivalent VA, which is fed during mempool creation, or memory allocation/deallocation callbacks. Signed-off-by: Shreyansh Jain <>
2018-10-11net/enetc: add PMD with basic operationsGagandeep Singh
This patch introduces the enetc PMD with basic initialisation functions includes probe, teardown, hardware initialisation Signed-off-by: Gagandeep Singh <> Acked-by: Shreyansh Jain <> Reviewed-by: Ferruh Yigit <>
2018-10-11net/mvneta: add PMD skeletonZyta Szpak
Add neta pmd driver skeleton providing base for the further development. Signed-off-by: Natalie Samsonov <> Signed-off-by: Yelena Krivosheev <> Signed-off-by: Dmitri Epshtein <> Signed-off-by: Zyta Szpak <> Signed-off-by: Andrzej Ostruszka <> Reviewed-by: Ferruh Yigit <>
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-10-01event/dsw: add device registration and build systemMattias Rönnblom
This patch contains the Meson and GNU Make build system extensions required for the Distributed Event Device, and also the initialization code for the driver itself. Signed-off-by: Mattias Rönnblom <> Acked-by: Jerin Jacob <>
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-17build: add ppc64 meson buildLuca Boccassi
This has been only build-tested for now, on a native ppc64el POWER8E machine running Debian sid. Signed-off-by: Luca Boccassi <> Acked-by: Bruce Richardson <>
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 <>