path: root/mk
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: add single source of DPDK version numberBruce Richardson
Add a new file VERSION to hold the current DPDK version number. Have meson use this file for it's project version, and have make use it for reporting out "showversion" and "showversionum". Signed-off-by: Bruce Richardson <> Acked-by: Luca Boccassi <> Reviewed-by: Rami Rosen <>
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/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-05mk: fix AVX512 disabled warning on non x86Jerin Jacob
AVX512 is a x86 specific feature, So, enable AVX512 warning only on x86. Fixes: a32ca9a4ebc1 ("mk: fix scope of disabling AVX512F support") Cc: Signed-off-by: Jerin Jacob <> Reviewed-by: Ferruh Yigit <>
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-01net/iavf: rename avf to iavfLeyi Rong
Rename Intel Ethernet Adaptive Virtual Function driver avf to iavf. This is the first patch which will only renames the directory name, lib name, filenames and updates the new name in makefile and meson files. Also updates the #include files in source files. Signed-off-by: Leyi Rong <> Reviewed-by: Ferruh Yigit <>
2019-02-26test: move to app directoryBruce Richardson
Since all other apps have been moved to the "app" folder, the autotest app remains alone in the test folder. Rather than having an entire top-level folder for this, we can move it back to where it all started in early versions of DPDK - the "app/" folder. This move has a couple of advantages: * This reduces clutter at the top level of the project, due to one less folder. * It eliminates the separate build task necessary for building the autotests using make "make test-build" which means that developers are less likely to miss something in their own compilation tests * It re-aligns the final location of the test binary in the app folder when building with make with it's location in the source tree. For meson builds, the autotest app is different from the other apps in that it needs a series of different test cases defined for it for use by "meson test". Therefore, it does not get built as part of the main loop in the app folder, but gets built separately at the end. Signed-off-by: Bruce Richardson <>
2019-02-24mk: fix build of shared library with libbsdThomas Monjalon
When building DPDK with "make" and options CONFIG_RTE_USE_LIBBSD=y and CONFIG_RTE_BUILD_SHARED_LIB=y libbsd was not linked, resulting in compilation errors: undefined reference to `strlcpy' The link option -lbsd is added in a common place for both Linux apps and libs. It is used in app linkage via EXECENV_LDLIBS, and in lib linkage via the added variable EXECENV_LDLIBS-y. Fixes: 5364de644a4b ("eal: support strlcpy function") Cc: Signed-off-by: Thomas Monjalon <>
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-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-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 <>
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-19mk: do not install in usertoolsTimothy Redaelli
In commit 7dd34c71de2a ("usertools: install with meson") was added in usertools directory and so it's copied to $(datadir)/usertools with "make install". This patch avoids to copy when installing usertools with "make install". Fixes: 7dd34c71de2a ("usertools: install with meson") Cc: Signed-off-by: Timothy Redaelli <> Acked-by: Luca Boccassi <>
2018-11-14mk: allow renaming of build directoriesBruce Richardson
When building using make, the Makefile in the build directory contained the name of the build directory to be passed as an "O=" parameter to the DPDK SDK makefiles. Unfortunately, this meant that the compilation would always fail if the build directory was renamed. To remove this limitation, we can use $(CURDIR) instead of the directory name. Signed-off-by: Bruce Richardson <>
2018-11-12telemetry: fix shared link with makeKevin Laatz
Currently, telemetry is not working for shared builds in make. The --as-needed flag is preventing telemetry from being linked as there are no direct API calls from the app to telemetry. This is causing the --telemetry option to not be recognized by EAL. Telemetry registers it's EAL option using the RTE_INIT constructor. Since EAL's option parsing is done before the plugins init, the --telemetry option isn't registered at the time of parsing, and as a result, the --telemetry option is not being recognized. This patch fixes this issue by explicitly linking telemetry to the application by setting the "--no-as-needed" flag for the library in mk/ Fixes: 8877ac688b52 ("telemetry: introduce infrastructure") Reported-by: Yanjie Xu <> Signed-off-by: Kevin Laatz <> Reviewed-by: Ferruh Yigit <>
2018-11-04mk: disable gcc AVX512F supportYongseok Koh
This is a workaround to prevent a crash, which might be caused by optimization of newer gcc (7.3.0) on Intel Skylake. This disables AVX512F support of gcc by adding -mno-avx512f if it is disabled in DPDK (CONFIG_RTE_ENABLE_AVX512=n). This does not apply to the meson build as that doesn't have such an option but always enable AVX512F whenever supported. Bugzilla ID: 97 Cc: Signed-off-by: Yongseok Koh <>
2018-10-27telemetry: add client feature and socketsCiara Power
This patch introduces clients to the telemetry API. When a client makes a connection through the initial telemetry socket, they can send a message through the socket to be parsed. Register messages are expected through this socket, to enable clients to register and have a client socket setup for future communications. A TAILQ is used to store all clients information. Using this, the client sockets are polled for messages, which will later be parsed and dealt with accordingly. Functionality that make use of the client sockets were introduced in this patch also, such as writing to client sockets, and sending error responses. Signed-off-by: Ciara Power <> Signed-off-by: Brian Archbold <> Signed-off-by: Kevin Laatz <> 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-25mk: use EXTRA_CFLAGS for pmdinfogenFerruh Yigit
Currently not able to pass EXTRA_CFLAGS while building *.pmd.c file, adding it. Signed-off-by: Ferruh Yigit <> Acked-by: Neil Horman <>
2018-10-24drivers: fix build if security lib disabledAkhil Goyal
RTE_SECURITY is enabled by default. If it is disabled, dpaa2_sec, dpaa_sec and caam_jr compilation fails. This patch fixes compilation by disabling these drivers when rte_security is not available. Fixes: 1ee9569576f6 ("config: enable dpaaX drivers for generic ARMv8") Fixes: 09e1e8d256b0 ("mk: fix dependencies of dpaaX drivers") Fixes: af7c9b5e9ce7 ("crypto/caam_jr: introduce basic driver") Cc: Signed-off-by: Akhil Goyal <>
2018-10-22mk: build with _GNU_SOURCE defined by defaultAnatoly Burakov
We use _GNU_SOURCE all over the place, but often times we miss defining it, resulting in broken builds on musl. Rather than fixing every library's and driver's and application's makefile, fix it by simply defining _GNU_SOURCE by default for all builds. Remove all usages of _GNU_SOURCE in source files and makefiles, and also fixup a couple of instances of using __USE_GNU instead of _GNU_SOURCE. Signed-off-by: Anatoly Burakov <>
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-17common/cpt: add PMD ops helper functionsAnoob Joseph
Adding pmd ops helper functions. Control path accessed APIs would be added as helper functions. Adding microcode defined macros etc as dependencies to the helper functions. 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/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: use common initializationDmitri Epshtein
Use common initialization to reduce boilerplate code. Signed-off-by: Dmitri Epshtein <> Signed-off-by: Tomasz Duszynski <> Reviewed-by: Natalie Samsonov <>
2018-10-16fslmc: enable dpaax libraryShreyansh Jain
With this patch, fslmc bus and ethernet devices on this bus would start using the physical-virtual library interfaces. This patch impacts mempool/dpaa2, event/dpaa2, net/dpaa2, raw/dpaa2_cmdif and raw/dpaa2_qdma as they are dependent on the bus/fslmc and thus impact linkage of libraries. Signed-off-by: Shreyansh Jain <>
2018-10-16dpaa: enable dpaax libraryShreyansh Jain
With this patch, dpaa bus and ethernet devices on this bus would start using the physical-virtual library interfaces. This patch impacts mempool/dpaa, event/dpaa and net/dpaa as they are dependent on the bus/dpaa and thus impact linkage of libraries. 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-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-18mk: use templated doxygen configLuca Boccassi
This will allow the same config file to be used from Meson. The result has been verified to be identical via diffoscope. Signed-off-by: Luca Boccassi <> Acked-by: Bruce Richardson <>
2018-09-18mk: use script to generate examples.doxLuca Boccassi
This will make it possible to generate the file in the same way from Meson as well. Signed-off-by: Luca Boccassi <> Acked-by: Bruce Richardson <>
2018-08-28common/mvep: add common code for Marvell driversLiron Himi
Add MVEP (Marvell Embedded Processors) to drivers/common which will keep code reused by current and future MRVL PMDs. Right now we have only common DMA memory initialization routines there. Signed-off-by: Liron Himi <> Signed-off-by: Tomasz Duszynski <> Reviewed-by: Natalie Samsonov <>
2018-09-16build: enable ARM NEON flag when __aarch64__ definedHonnappa Nagarahalli
GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not optional for ArmV8. Hence NEON related code can be enabled when __aarch64__ is defined. Bugzilla ID: 82 Cc: Reported-by: Raslan Darawsheh <> Reported-by: Thomas F Herbert <> Signed-off-by: Honnappa Nagarahalli <> Reviewed-by: Phil Yang <> Reviewed-by: Gavin Hu <> Acked-by: Jerin Jacob <>
2018-09-16mk: disable OcteonTx for buggy compilers only on arm64Jerin Jacob
Disable octeontx for gcc 4.8.5 as the compiler is emitting "internal compiler error" for aarch64. The GCC "internal compiler error" was observed only for arm64 architecture so disable the PMD only for arm64. Fixes: 4f760550a093 ("mk: disable OcteonTx for buggy compilers") Cc: Signed-off-by: Jerin Jacob <> Acked-by: Ferruh Yigit <>
2018-08-09mk: fix permissions when using make installBruce Richardson
When using make install, the permissions of the resulting file should be those of the user using make install, not those of the user who ran the build. This would not be the case when a user explicitly runs: "make && sudo make install" Fix this by changing "cp -a", which preserves all attributes, to "cp -dR --preserve=timestamp", and by adding the flags "--no-same-owner --no-same-permissions" to the calls to tar. Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule") Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree") Fixes: 576de42b83e5 ("doc: render and install man pages") Cc: Signed-off-by: Bruce Richardson <> Acked-by: Thomas Monjalon <>
2018-07-31mk: remove unnecessary test rulesReshma Pattan
make rule test-basic is duplicate of test rule. removed unused test-mempool and test-ring make rules. Fixes: a3df7f8d9c ("mk: rename test related rules") CC: Signed-off-by: Reshma Pattan <> Reviewed-by: Anatoly Burakov <>
2018-07-31mk: update targets for classified testsJananee Parthasarathy
Makefiles are updated with new test case lists. Test cases are classified as - P1 - Main test cases, P2 - Cryptodev/driver test cases, P3 - Perf test cases which takes longer than 10s, P4 - Logging/Dump test cases. Makefile is updated with different targets for the above classified groups. Test cases for different targets are listed accordingly. Cc: Signed-off-by: Jananee Parthasarathy <> Reviewed-by: Reshma Pattan <> Reviewed-by: Anatoly Burakov <>
2018-07-26net/mlx5: lay groundwork for switch offloadsAdrien Mazarguil
With mlx5, unlike normal flow rules implemented through Verbs for traffic emitted and received by the application, those targeting different logical ports of the device (VF representors for instance) are offloaded at the switch level and must be configured through Netlink (TC interface). This patch adds preliminary support to manage such flow rules through the flow API (rte_flow). Instead of rewriting tons of Netlink helpers and as previously suggested by Stephen [1], this patch introduces a new dependency to libmnl [2] (LGPL-2.1) when compiling mlx5. [1] [2] Signed-off-by: Adrien Mazarguil <> Acked-by: Nelio Laranjeiro <> Acked-by: Yongseok Koh <>
2018-07-25compress/octeontx: introduce octeontx zip PMDSunila Sahu
Octentx zipvf PMD provides hardware acceleration for deflate and lzs compression and decompression operations using Octeontx zip co-processor, which provide 8 virtualized zip devices. This patch add basic initialization routine to register zip VFs to compressdev library. Signed-off-by: Ashish Gupta <> Signed-off-by: Shally Verma <> Signed-off-by: Sunila Sahu <>
2018-07-25compress/zlib: introduce zlib PMDAshish Gupta
Add initial PMD setup routines in compressdev framework. ZLIB PMD appears as virtual compression device. User would need to install zlib prior to enabling this PMD. Signed-off-by: Sunila Sahu <> Signed-off-by: Shally Verma <> Signed-off-by: Ashish Gupta <>
2018-07-24compress/qat: add empty driverFiona Trahe
Add Makefiles, meson files, and empty source files for compression PMD. Handle cases for building either symmetric crypto PMD or compression PMD or both and the common files both depend on. Signed-off-by: Fiona Trahe <> Signed-off-by: Tomasz Jozwiak <>
2018-07-13net/netvsc: add Hyper-V network deviceStephen Hemminger
The driver supports Hyper-V networking directly like virtio for KVM or vmxnet3 for VMware. This code is based off of the FreeBSD driver. The file and variable names are kept the same to help with understanding (with most of the BSD style warts removed). This version supports the latest NetVSP 6.1 version and older versions. Signed-off-by: Haiyang Zhang <> Signed-off-by: Stephen Hemminger <>
2018-07-13bus/vmbus: add Hyper-V virtual bus supportStephen Hemminger
This patch adds support for an additional bus type Virtual Machine BUS (VMBUS) on Microsoft Hyper-V in Windows 10, Windows Server 2016 and Azure. Most of this code was extracted from FreeBSD and some of this is from earlier code donated by Brocade. Only Linux is supported at present, but the code is split to allow future FreeBSD and Windows support. The bus support relies on the uio_hv_generic driver from Linux kernel 4.16. Multiple queue support requires additional sysfs interfaces which is in kernel 5.0 (a.k.a 4.17). Signed-off-by: Stephen Hemminger <>
2018-07-12net/softnic: add pipeline objectJasvinder Singh
Add pipeline object implementation to the softnic. Signed-off-by: Cristian Dumitrescu <> Signed-off-by: Jasvinder Singh <>
2018-07-12net/softnic: add port action profileJasvinder Singh
Add pipeline's port action profile implementation to the softnic. Signed-off-by: Cristian Dumitrescu <> Signed-off-by: Jasvinder Singh <>
2018-07-12mk: change TLS model for DPAA machineSachin Saxena
Random corruptions observed on platfoms with using the dpdk library in shared mode with VPP software (plugin). using traditional TLS scheme resolved the issue. Tested with VPP with DPDK as a plugin. Signed-off-by: Sachin Saxena <>
2018-07-11mk: fix cross buildGavin Hu
The "-Wimplicit-fallthrough=2" option was introduced into gcc 7.0, it was enabled when the cross compiler gcc is greater than 7.0, but for the host side buildtools/pmdinfogen, if the native gcc is older than 7.0, or the host cc compiler is clang, it should not be enabled. The fix is to differentiate the host gcc Werror options from the cross gcc. gcc -Wp,-MD,./.pmdinfogen.o.d.tmp -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Wdeprecated -Werror -Wimplicit-fallthrough=2 -Dbbb -Wno-format-truncation -g -I/dpdk/build/include -o pmdinfogen.o -c ~/dpdk/buildtools/pmdinfogen/pmdinfogen.c gcc: error: unrecognized command line option ‘-Wimplicit-fallthrough=2’ Fixes: ced3e6f8 ("mk: adjust gcc flags for new gcc 7 warnings") Cc: Signed-off-by: Gavin Hu <> Reviewed-by: Honnappa Nagarahalli <> Reviewed-by: Steve Capper <> Tested-by: Ali Alnubani <> Acked-by: Thomas Monjalon <>