path: root/mk
AgeCommit message (Collapse)Author
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 <>
2018-07-03net/tap: support TSO (TCP Segment Offload)Ophir Munk
This commit implements TCP segmentation offload in TAP. librte_gso library is used to segment large TCP payloads (e.g. packets of 64K bytes size) into smaller MTU size buffers. By supporting TSO offload capability in software a TAP device can be used as a failsafe sub device and be paired with another PCI device which supports TSO capability in HW. For more details on librte_gso implementation please refer to dpdk documentation. The number of newly generated TCP TSO segments is limited to 64. Reviewed-by: Raslan Darawsheh <> Signed-off-by: Ophir Munk <> Acked-by: Keith Wiles <>
2018-06-14net/ifc: make driver name consistentXiao Wang
Make the compiler switch name and document name consistent as ``ifc`` to avoid confusion. Also rename the map file to standard name for meson build in the process. Signed-off-by: Xiao Wang <> Signed-off-by: Bruce Richardson <>
2018-05-25use SPDX tag for 6WIND copyrighted filesOlivier Matz
Signed-off-by: Olivier Matz <>
2018-05-12bpf: add ability to load eBPF program from ELF object fileKonstantin Ananyev
Introduce rte_bpf_elf_load() function to provide ability to load eBPF program from ELF object file. It also adds dependency on libelf. Signed-off-by: Konstantin Ananyev <> Acked-by: Ferruh Yigit <>
2018-05-12bpf: add BPF loading and execution frameworkKonstantin Ananyev
librte_bpf provides a framework to load and execute eBPF bytecode inside user-space dpdk based applications. It supports basic set of features from eBPF spec ( Not currently supported features: - JIT - cBPF - tail-pointer call - eBPF MAP - skb - function calls for 32-bit apps - mbuf pointer as input parameter for 32-bit apps Signed-off-by: Konstantin Ananyev <> Acked-by: Ferruh Yigit <>
2018-05-11raw/ifpga: add Intel FPGA bus rawdev driverRosen Xu
Add Intel FPGA BUS Rawdev Driver which is based on librte_rawdev library. Signed-off-by: Rosen Xu <> Signed-off-by: Yanglong Wu <> Signed-off-by: Tianfei Zhang <> Acked-by: Shreyansh Jain <> Reviewed-by: Qi Zhang <>
2018-05-11bus/ifpga: add Intel FPGA bus libraryRosen Xu
Defined FPGA-BUS for Acceleration Drivers of AFUs 1. FPGA PCI Scan (1st Scan) follows DPDK UIO/VFIO PCI Scan Process, probe Intel FPGA Rawdev Driver, it will be covered in following patches. 2. AFU Scan(2nd Scan) bind DPDK driver to FPGA Partial-Bitstream. This scan is trigged by hotplug of IFPGA Rawdev probe, in this scan the AFUs will be created and their drivers are also probed. This patch will introduce rte_afu_device which describe the AFU device listed in the FPGA-BUS. Signed-off-by: Rosen Xu <> Signed-off-by: Tianfei Zhang <> Reviewed-by: Qi Zhang <>
2018-05-10compress/isal: add skeleton ISA-L compression PMDLee Daly
Adding basic skeleton of the ISA-L compression driver. No compression functionality, but lays the foundation for operations in the rest of the patchset. The ISA-L compression driver utilizes Intel's ISA-L compression library and compressdev API. Signed-off-by: Lee Daly <> Reviewed-by: Pablo de Lara <>
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-10crypto/mrvl: rename PMD to mvsamTomasz Duszynski
Picking a company stock ticker for a PMD name might not be a best approach in a long run since name is too generic. This patch addresses that and renames mrvl to mvsam. Signed-off-by: Natalie Samsonov <> Signed-off-by: Tomasz Duszynski <>
2018-05-10mk: disable OcteonTx for buggy compilersPavan Nikhilesh
Disable octeontx for gcc 4.8.5 as compiler is emitting "internal compiler error" for aarch64. Signed-off-by: Pavan Nikhilesh <> Tested-by: Ali Alnubani <> Acked-by: Jerin Jacob <>
2018-05-08raw/dpaa2_cmdif: introduce DPAA2 command interface driverNipun Gupta
Signed-off-by: Nipun Gupta <> Acked-by: Shreyansh Jain <>
2018-05-08raw/dpaa2_qdma: introduce the DPAA2 QDMA driverNipun Gupta
DPAA2 QDMA driver uses MC DPDMAI object. This driver enables the user (app) to perform data DMA without involving CPU in the DMA process Signed-off-by: Nipun Gupta <> Acked-by: Shreyansh Jain <>
2018-04-27net/ifcvf: add ifcvf vDPA driverXiao Wang
The IFCVF vDPA (vhost data path acceleration) driver provides support for the Intel FPGA 100G VF (IFCVF). IFCVF's datapath is virtio ring compatible, it works as a HW vhost backend which can send/receive packets to/from virtio directly by DMA. Different VF devices serve different virtio frontends which are in different VMs, so each VF needs to have its own DMA address translation service. During the driver probe a new container is created, with this container vDPA driver can program DMA remapping table with the VM's memory region information. Key vDPA driver ops implemented: - ifcvf_dev_config: Enable VF data path with virtio information provided by vhost lib, including IOMMU programming to enable VF DMA to VM's memory, VFIO interrupt setup to route HW interrupt to virtio driver, create notify relay thread to translate virtio driver's kick to a MMIO write onto HW, HW queues configuration. - ifcvf_dev_close: Revoke all the setup in ifcvf_dev_config. Live migration feature is supported by IFCVF and this driver enables it. For the dirty page logging, VF helps to log for packet buffer write, driver helps to make the used ring as dirty when device stops. Because vDPA driver needs to set up MSI-X vector to interrupt the guest, only vfio-pci is supported currently. Signed-off-by: Xiao Wang <> Signed-off-by: Rosen Xu <> Reviewed-by: Maxime Coquelin <> Reviewed-by: Ferruh Yigit <>
2018-04-26mempool/bucket: implement bucket mempool managerArtem V. Andreev
The manager provides a way to allocate physically and virtually contiguous set of objects. Signed-off-by: Artem V. Andreev <> Signed-off-by: Andrew Rybchenko <>
2018-04-23mk: fix make defconfig on FreeBSDDavid Hunt
On FreeBSD, make defconfig generates the config as "defconfig_x86_64-bsdapp-", which does not resolve to any known config file. On FreeBSD, we get amd64 out of "uname -m", which was not handled by the list of checks, but which now resolves to x86_64-native. Then we run '$CC --version', and use grep -o with the list of known compilers, and set to either gcc, icc or clang. Grep's '-o' option returns the matched word rather than the whole line, making the result easier to use. The remaining code in the patch then takes ${compiler}, the "uname -m" output and assembles them all together into a valid freebsd config name, i.e. "defconfig_x86_64-native-bsdapp-clang". Fixes: bce6c42c4ad5 ("mk: add sensible default target with defconfig") Cc: Signed-off-by: David Hunt <> Tested-by: Anatoly Burakov <>