path: root/config/common_linuxapp
AgeCommit message (Collapse)Author
2015-12-13bnx2x: add periodic debug optionHarish Patil
The periodic debug option is used to collect periodic events like statistics, register access etc and won't interfere with user-level messages. Signed-off-by: Harish Patil <> Signed-off-by: Rasesh Mody <>
2015-12-12mbuf_offload: mark experimental stateThomas Monjalon
Cryptodev was marked experimental and mbuf_offload depends on it. The mbuf_offload library is one of the crypto area which requires some discussions before having a stable API. The experimental mark is also added to rte_cryptodev_configure() to be sure one cannot miss it. Fixes: 66874e55f550 ("cryptodev: mark experimental state") Signed-off-by: Thomas Monjalon <>
2015-12-08nfp: introduce driver initializationAlejandro Lucero
Signed-off-by: Alejandro Lucero <> Signed-off-by: Rolf Neugebauer <>
2015-12-06config: disable vector optimizations in sched libraryChristian Ehrhardt
As it causes issues when building with RTE_MACHINE=default due to SSE4.x requirements and in other discussions was so far rated "lightly tested and doesn't provide really significant performance improvement" let us disable that in the default config. (=> Signed-off-by: Christian Ehrhardt <> Acked-by: Stephen Hemminger <>
2015-11-25cryptodev: mark experimental stateThomas Monjalon
The crypto API is in an early state. It requires more discussions and experiments to declare it stable, as discussed in A documentation section will be required in the guides. Signed-off-by: Thomas Monjalon <>
2015-11-25aesni_mb: add driver for multi buffer based cryptoDeclan Doherty
This patch provides the initial implementation of the AES-NI multi-buffer based crypto poll mode driver using DPDK's new cryptodev framework. This PMD is dependent on Intel's multibuffer library, see the whitepaper "Fast Multi-buffer IPsec Implementations on IntelĀ® Architecture Processors", see ref 1 for details on the library's design and ref 2 to download the library itself. This initial implementation is limited to supporting the chained operations of "hash then cipher" or "cipher then hash" for the following cipher and hash algorithms: Cipher algorithms: - RTE_CRYPTO_CIPHER_AES_CBC (with 128-bit, 192-bit and 256-bit keys supported) Authentication algorithms: - RTE_CRYPTO_AUTH_SHA1_HMAC - RTE_CRYPTO_AUTH_SHA256_HMAC - RTE_CRYPTO_AUTH_SHA512_HMAC - RTE_CRYPTO_AUTH_AES_XCBC_MAC Important Note: Due to the fact that the multi-buffer library is designed for accelerating IPsec crypto operation, the digest's generated for the HMAC functions are truncated to lengths specified by IPsec RFC's, ie RFC2404 for using HMAC-SHA-1 with IPsec specifies that the digest is truncate from 20 to 12 bytes. Build instructions: To build DPDK with the AESNI_MB_PMD the user is required to download (ref 2) and compile the multi-buffer library on there system before building DPDK. The environmental variable AESNI_MULTI_BUFFER_LIB_PATH must be exported with the path where you extracted and built the multi buffer library and finally set CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y in config/common_linuxapp. Current status: It's doesn't support crypto operation across chained mbufs, or cipher only or hash only operations. ref 1: ref 2: Signed-off-by: Declan Doherty <> Acked-by: Sergio Gonzalez Monroy <>
2015-11-25qat: add driver for QuickAssist devicesDeclan Doherty
This patch adds a PMD for the Intel Quick Assist Technology DH895xxC hardware accelerator. This patch depends on a QAT PF driver for device initialization. See the file docs/guides/cryptodevs/qat.rst for configuration details This patch supports a limited subset of QAT device functionality, currently supporting chaining of cipher and hash operations for the following algorithmsd: Cipher algorithms: - RTE_CRYPTO_CIPHER_AES_CBC (with 128-bit, 192-bit and 256-bit keys supported) Hash algorithms: - RTE_CRYPTO_AUTH_SHA1_HMAC - RTE_CRYPTO_AUTH_SHA256_HMAC - RTE_CRYPTO_AUTH_SHA512_HMAC - RTE_CRYPTO_AUTH_AES_XCBC_MAC Some limitation on this patchset which shall be contributed in a subsequent release: - Chained mbufs are not supported. - Hash only is not supported. - Cipher only is not supported. - Only in-place is currently supported (destination address is the same as source address). - Only supports session-oriented API implementation (session-less APIs are not supported). Signed-off-by: Declan Doherty <> Signed-off-by: John Griffin <> Signed-off-by: Des O Dea <> Signed-off-by: Fiona Trahe <> Acked-by: Sergio Gonzalez Monroy <>
2015-11-25mbuf_offload: introduce library to attach offloads to mbufDeclan Doherty
This library add support for adding a chain of offload operations to a mbuf. It contains the definition of the rte_mbuf_offload structure as well as helper functions for attaching offloads to mbufs and a mempool management functions. This initial implementation supports attaching multiple offload operations to a single mbuf, but only a single offload operation of a specific type can be attach to that mbuf. Signed-off-by: Declan Doherty <> Acked-by: Konstantin Ananyev <>
2015-11-25cryptodev: introduce API and framework for crypto devicesDeclan Doherty
This patch contains the initial proposed APIs and device framework for integrating crypto packet processing into DPDK. features include: - Crypto device configuration / management APIs - Definitions of supported cipher algorithms and operations. - Definitions of supported hash/authentication algorithms and operations. - Crypto session management APIs - Crypto operation data structures and APIs allocation of crypto operation structure used to specify the crypto operations to be performed on a particular mbuf. - Extension of mbuf to contain crypto operation data pointer and extra flags. - Burst enqueue / dequeue APIs for processing of crypto operations. Signed-off-by: Des O Dea <> Signed-off-by: John Griffin <> Signed-off-by: Fiona Trahe <> Signed-off-by: Declan Doherty <> Acked-by: Sergio Gonzalez Monroy <>
2015-11-25sched: enable SSE optimizations in configStephen Hemminger
Make the SSE optimizations visible as a normal config option. Signed-off-by: Stephen Hemminger <>
2015-11-25sched: make debugging configurableStephen Hemminger
All #ifdefs in code should be enabled/disabled via DPDK config (or better yet removed all together). Signed-off-by: Stephen Hemminger <>
2015-11-24fm10k: allow to disable vector driverChen Jing D(Mark)
fm10k driver will meet compile error on non-x86 platforms due to SSE instructions. Original implementation didn't have switch to turn off vPMD. The improvement introduces a macro to turn on/off vPMD functions, it's on by default. On non-x86 platforms, it can simply be turned off to fix compile issue. Signed-off-by: Chen Jing D(Mark) <>
2015-11-23config: disable i40e vector driverZhe Tao
Issue: l3fwd app need the ptype in the mbuf to forward the packets properly. But now some drivers like virtio driver and FVL vPMD will not set the ptype in mbuf, so l3fwd cannot work properly on that kind of drivers. Configure the vector PMD option as no for default as a work around for l3fwd. After the l3fwd app can handle the undefined ptype or the i40e vPMD can return the ptype, the option will be set as yes for default again. Signed-off-by: Zhe Tao <> Acked-by: Helin Zhang <>
2015-11-20szedata2: add new poll mode driverMatej Vido
Add virtual PMD which communicates with COMBO cards through sze2 layer using libsze2 library. Since link_speed is uint16_t, there can not be used number for 100G speed, therefore link_speed is set to ETH_LINK_SPEED_10G until the type of link_speed is solved. Signed-off-by: Matej Vido <>
2015-11-12eal: support driver loading from directoryPanu Matilainen
Add support for directories as arguments to -d for loading all drivers from a given directory. Additionally a default driver directory can be set in build-time configuration, in which case it will be always be used when EAL is initialized. This simplifies usage in shared library configuration significantly over manually loading individual drivers with -d, and allows distros to establish a drop-in driver directory for seamless integration with 3rd party drivers etc. Suggested-by: Thomas Monjalon <> Suggested-by: David Marchand <> Signed-off-by: Panu Matilainen <> Acked-by: David Marchand <>
2015-11-03i40e: enlarge the number of supported queuesHelin Zhang
It enlarges the number of supported queues to hardware allowed maximum. There was a software limitation of 64 per physical port which is not reasonable. Signed-off-by: Helin Zhang <>
2015-10-30mlx5: support non-scattered Tx and RxAdrien Mazarguil
RSS implementation with parent/child QPs comes from mlx4 and is temporary. Signed-off-by: Adrien Mazarguil <> Signed-off-by: Nelio Laranjeiro <>
2015-10-30mlx5: introduce new driver for Mellanox ConnectX-4 adaptersAdrien Mazarguil
In its current state, this driver implements the bare minimum to initialize itself and Mellanox ConnectX-4 adapters without doing anything else (no RX/TX for instance). It is disabled by default since it is based on the mlx4 driver and also depends on libibverbs. Signed-off-by: Adrien Mazarguil <> Signed-off-by: Nelio Laranjeiro <> Signed-off-by: Or Ami <>
2015-10-30i40e: add vector RxZhe Tao
The vPMD RX function uses the multi-buffer and SSE instructions to accelerate the RX speed, but now the pktype cannot be supported by the vPMD RX, because it will decrease the performance heavily. Signed-off-by: Zhe Tao <> Acked-by: Cunming Liang <>
2015-08-03config: add KNI kmod optionNikita Kozlov
This option permit to build without building rte_kni.ko so you can build a sdk without building kernel drivers. Signed-off-by: Nikita Kozlov <>
2015-07-28config: disable bnx2x driverThomas Monjalon
This driver has too many issues: - too big - bad coding style - no git history (dropped in 2 patches) - no documentation - no BSD support - no maintainer And the biggest one, constraining this disabling: - many build issues If the last 4 issues are not fixed in the next release 2.2, the driver must be removed. Signed-off-by: Thomas Monjalon <>
2015-07-27bnx2x: enable PMD buildStephen Hemminger
This is build infrastructure changes for bnx2x driver. - enable BNX2X poll mode driver in default config. - add it to mk - put entry in MAINTAINERS Note: I intentionally did not list myself as maintainer of this driver. QLogic has discussed taking over as maintainer. Signed-off-by: Stephen Hemminger <> Acked-by: Harish Patil <>
2015-07-26ixgbe: remove Rx bulk allocation optionPablo de Lara
RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC config option is not really necessary, as bulk alloc rx function can be used anyway, as long as the necessary conditions are satisfied, which are checked already in the library. Signed-off-by: Pablo de Lara <> Acked-by: Konstantin Ananyev <>
2015-07-16mem: rework memzone to be allocated by mallocSergio Gonzalez Monroy
In the current memory hierarchy, memsegs are groups of physically contiguous hugepages, memzones are slices of memsegs and malloc further slices memzones into smaller memory chunks. This patch modifies malloc so it partitions memsegs instead of memzones. Thus memzones would call malloc internally for memory allocation while maintaining its ABI. During initialization malloc sets all available memory as part of the heaps. CONFIG_RTE_MALLOC_MEMZONE_SIZE was used to specify the default memory block size to expand the heap. The option is not used/relevant anymore, so we remove it. Remove free_memseg field from internal mem config structure as it is not used anymore. Also remove code in ivshmem that was setting up free_memseg on init. It would be possible to free memzones and therefore any other structure based on memzones, ie. mempools Signed-off-by: Sergio Gonzalez Monroy <>
2015-07-16mem: move librte_malloc to eal/commonSergio Gonzalez Monroy
Move malloc inside eal and create a new section in MAINTAINERS file for Memory Allocation in EAL. Create a dummy malloc library to avoid breaking applications that have librte_malloc in their DT_NEEDED entries. This is the first step towards using malloc to allocate memory directly from memsegs. Thus, memzones would allocate memory through malloc, allowing to free memzones. Signed-off-by: Sergio Gonzalez Monroy <>
2015-07-13config: remove combined library name optionCyril Chemparathy
The library name is now being pinned to "dpdk" instead of intel_dpdk, powerpc_dpdk, etc. As a result, we no longer need this config item. This patch removes it. Signed-off-by: Cyril Chemparathy <> Signed-off-by: Zhigang Lu <> Acked-by: Bruce Richardson <>
2015-07-10config: revert the max queues per port to 256Jijiang Liu
The previous commit changed the size and the offsets of struct rte_eth_dev, so it is an ABI breakage. I revert it, and will send a deprecation notice for this. Fixes: 1a1109404e70 ("config: increase max queues per port") Signed-off-by: Jijiang Liu <>
2015-07-09mk: enable next abi previewThomas Monjalon
When a change makes really hard to keep ABI compatibility, instead of waiting next release to break the ABI, it is smoother to introduce the new code as a preview and disable it when packaging. The flag RTE_NEXT_ABI must be used to "ifdef" the new code. When the release is out, a dynamically linked application can use the new shared libraries with the old ABI while developpers can prepare their application for the next ABI by reading the deprecation notice and easily testing the new code. When starting the next release cycle, the "ifdefs" will be removed and the ABI break will be marked by incrementing LIBABIVER. The map files will also be updated. The default value is enabled to be developer compliant. The packagers must disable it as done in pkg/dpdk.spec. When enabled, all shared library numbers are incremented by appending a minor .1 to the old ABI number. In the next release, only impacted libraries will have a major +1 increment. The impacted libraries must provide an alternative map file to use with this option. The ABI policy is updated. Signed-off-by: Thomas Monjalon <> Acked-by: Neil Horman <>
2015-07-09eal: enable port hotplug as default for linux and bsdTetsuya Mukawa
This patch removes CONFIG_RTE_LIBRTE_EAL_HOTPLUG option, and enables it as default in both Linux and BSD. Also, to support port hotplug, rte_eal_pci_scan() and below missing symbols should be exported to ethdev library. - rte_eal_parse_devargs_str() - rte_eal_pci_close_one() - rte_eal_pci_probe_one() - rte_eal_pci_scan() - rte_eal_vdev_init() - rte_eal_vdev_uninit() Signed-off-by: Tetsuya Mukawa <>
2015-06-30cxgbe: add pmd skeletonRahul Lakkireddy
Adds cxgbe poll mode driver for DPDK under drivers/net/cxgbe directory. This patch: 1. Adds the Makefile to compile cxgbe pmd. 2. Registers and initializes the cxgbe pmd driver. Enable cxgbe PMD for compilation and linking with changes to: 1. config/common_linuxapp to add macros for cxgbe pmd. 2. drivers/net/Makefile to add cxgbe pmd to the compile list. 3. mk/ to add cxgbe pmd to link. Update MAINTAINERS file to claim responsibility for the cxgbe PMD. Signed-off-by: Rahul Lakkireddy <> Signed-off-by: Kumar Sanghvi <> [Thomas: add disabled config for bsdapp]
2015-06-29vhost: turn on by defaultHuawei Xie
Previous vhost-cuse implementation requires fuse development package. Now that we have vhost-user implementation, which is enabled by default and doesn't require additional library to build, we could turn on vhost. Signed-off-by: Huawei Xie <>
2015-06-29vhost: realloc device and queues to same numa node as vring descHuawei Xie
When we get the address of vring descriptor table in VHOST_SET_VRING_ADDR message, will try to reallocate vhost device and virt queue to the same numa node. Signed-off-by: Huawei Xie <>
2015-06-24eal: add and use unaligned integer typesCyril Chemparathy
On machines that are strict on pointer alignment, current code breaks on GCC's -Wcast-align checks on casts from narrower to wider types. This patch introduces new unaligned_uint(16|32|64)_t types, which correctly retain alignment in such cases. Strict alignment architectures will need to define CONFIG_RTE_ARCH_STRICT_ALIGN in order to effect these new types. Signed-off-by: Cyril Chemparathy <> Acked-by: Olivier Matz <>
2015-06-23pipeline: add statistics for ports and tablesPawel Wodkowski
This patch adds statistics collection for librte_pipeline. Those statistics are disabled by default during build time. Signed-off-by: Pawel Wodkowski <> Acked-by: Cristian Dumitrescu <>
2015-06-23table: add stats structure and config optionMaciej Gajdzica
Added common structure for table statistics. Added config option to enable table stats collecting. Signed-off-by: Maciej Gajdzica <> Acked-by: Cristian Dumitrescu <>
2015-06-23port: add stats structures and config optionMaciej Gajdzica
Added common data structures for port statistics. Added config option to enable stats collecting. Signed-off-by: Maciej Gajdzica <> Acked-by: Cristian Dumitrescu <>
2015-06-02config: increase max queues per portJijiang Liu
The default value of RTE_MAX_QUEUES_PER_PORT is 256, which is too small for some configurations for i40e. There will return an error when configured queue number is larger than 256 in rte_eth_dev_configure(). For example, in vHost sample, PF queue number: 64, configured vmdq pool number: 63, each vmdq pool has 4 queues, there will be required 316 queues in a port. Signed-off-by: Jijiang Liu <> Acked-by: Helin Zhang <>
2015-04-13enic: disable debug tracesThomas Monjalon
The function name is printed in each enic_ethdev function. Disable it by default with a new build option. Signed-off-by: Thomas Monjalon <> Acked-by: Sujith Sankar <> Reviewed-by: Adrien Mazarguil <>
2015-03-26mlx4: remove old VMware compatibility codeAdrien Mazarguil
CONFIG_RTE_LIBRTE_MLX4_COMPAT_VMWARE has no effect since this option enables MLX4_PMD_COMPAT_VMWARE. This macro is not used by the PMD which expects MLX4_COMPAT_VMWARE instead. Because this option does not work and the related code is no longer useful for VMware (as it actually supports the flow steering API), remove it entirely. Signed-off-by: Olga Shern <> Signed-off-by: Adrien Mazarguil <> Acked-by: Neil Horman <>
2015-03-26ethdev: fix crash with multiprocessBruce Richardson
The data structure for the rx and tx callbacks is local to each process since it contains function pointers and cannot be shared between different unique binaries. However, because it is not in rte_eth_dev_data structure, the array is not getting initialized for secondary processes - neither is it getting appropriately resized if the number of RX/TX queues changes. This causes crashes in secondary processes as they dereference a null pointer in struct rte_eth_dev. This patch fixes this by introducing an upper-bound on the number of queues per port that can be configured, and then uses this to make the array statically sized, thereby avoiding the crashes. Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks") Signed-off-by: Bruce Richardson <> Tested-by: Pablo de Lara <> Acked-by: Thomas Monjalon <>
2015-03-17vhost: add build option for vhost-userHuawei Xie
Turn on CONFIG_RTE_LIBRTE_VHOST to enable vhost. vhost-user is turned on by default. Turn off CONFIG_RTE_LIBRTE_VHOST_USER to enable vhost-cuse implementation. Signed-off-by: Huawei Xie <> Acked-by: Changchun Ouyang <>
2015-02-26null: new poll mode driverTetsuya Mukawa
Null PMD is a driver of the virtual device particularly designed to measure performance of DPDK PMDs. When an application call rx, Null PMD just allocates mbufs and returns those. Also tx, the PMD just frees mbufs. The PMD has following options. - size: specify packe size allocated by RX. Default packet size is 64. - copy: specify 1 or 0 to enable or disable copy while RX and TX. Default value is 0(disabled). This option is used for emulating more realistic data transfer. Copy size is equal to packet size. To use the PMD, enable CONFIG_RTE_BUILD_SHARED_LIB in config file. Then compile the PMD as shared library. The library can be linked using '-d' option when an application invokes. Here is an example. $ sudo ./testpmd -c f -n 4 -d \ --vdev 'eth_null0' --vdev 'eth_null1' -- -i --no-flush-rx If testpmd is compiled with CONFIG_RTE_BUILD_SHARED_LIB, it may need to specify more libraries using '-d' option. Signed-off-by: Tetsuya Mukawa <> Acked-by: Bernard Iremonger <>
2015-02-26pci: unmap igb_uio resourcesTetsuya Mukawa
The patch adds functions for unmapping igb_uio resources. The patch is only for Linux and igb_uio environment. VFIO and BSD are not supported. Signed-off-by: Tetsuya Mukawa <>
2015-02-25mlx4: new poll mode driverAdrien Mazarguil
This PMD manages all variants of Mellanox ConnectX-3 (EN 40, EN 10, Pro EN 40) as well as their virtual functions in SR-IOV context through IB Verbs (libibverbs) and the dedicated user-space driver (libmlx4). It is disabled by default due to dependencies on these libraries and only supports Linux userland at the moment partly because /sys (sysfs) support is required. Also claim responsibility in the MAINTAINERS file. Signed-off-by: Adrien Mazarguil <> Signed-off-by: Olga Shern <>
2015-02-24jobstats: new libraryPawel Wodkowski
This library provide API to measure time spend in particular parts of code and to calculate optimal polling time. To calculate a those statistics application code need to be divided into parts (called jobs) that do something. It is up to application to decide what is considered a job. Series of jobs must be surrounded with the rte_jobstats_context_start() and rte_jobstats_context_finish() calls. After that, jobs might be started. Each job must be surrounded with rte_jobstats_start() and rte_jobstats_finish() calls. After job finishes its execution, period in which it should be called again is adjusted. It might be used to minimize time wasted on unnecessary polls/calls. Adjustment is based on data provided by job itself (ex: number of packets it processed). After all jobs in serie are executed fallowing statistics are updated and might be used by application. Statistics can be reset. Some of provided statistic data: - total/min/max execution - time spent in executing jobs. - total/min/max management - time spent outside execution area. This value might be used to measure overhead of scheduling jobs. This time also contains overhead of rte_jobstats library itself. - number of loops that executed at least one job - executed jobs - time when statistics were reset. Each job provide total/min/max execution time and execution count statistics. Signed-off-by: Pawel Wodkowski <> Acked-by: Pablo de Lara <>
2015-02-24ring: add optional yield to avoid spin foreverCunming Liang
Add a sched_yield() syscall if the thread spins for too long, waiting other thread to finish its operations on the ring. That gives pre-empted thread a chance to proceed and finish with ring enqueue/dequeue operation. The purpose is to reduce contention on the ring. By ring_perf_test, it doesn't shows additional perf penalty. Signed-off-by: Cunming Liang <> Acked-by: Olivier Matz <> Acked-by: Konstantin Ananyev <>
2015-02-24ethdev: support optional Rx and Tx callbacksBruce Richardson
Add optional support for inline processing of packets inside the RX or TX call. For an RX callback, what happens is that we get a set of packets from the NIC and then pass them to a callback function, if configured, to allow additional processing to be done on them, e.g. filling in more mbuf fields, before passing back to the application. On TX, the packets are similarly post-processed before being handed to the NIC for transmission. Signed-off-by: Bruce Richardson <> Signed-off-by: John McNamara <> Acked-by: Thomas Monjalon <>
2015-02-23mbuf: remove build option to disable refcntSergio Gonzalez Monroy
This patch removes all references to RTE_MBUF_REFCNT, setting the refcnt field in the mbuf struct permanently. Signed-off-by: Sergio Gonzalez Monroy <> Acked-by: Olivier Matz <> Acked-by: Konstantin Ananyev <>
2015-02-23kni: add build option to disable preemptingMarc Sune
This patch introduces CONFIG_RTE_KNI_PREEMPT_DEFAULT flag. When set to 'no', KNI kernel thread(s) do not call schedule_timeout_interruptible(), which improves overall KNI performance at the expense of CPU cycles (polling). Default values is 'yes', maintaining the same behaviour as of now. Signed-off-by: Marc Sune <> Acked-by: Bruce Richardson <> Acked-by: Helin Zhang <>
2015-02-20bond: add debug info for mode 6Michal Jastrzebski
This patch add some debug information when using link bonding mode 6. It prints basic information about ARP packets on RX and TX (MAC, ip, packet number, arp packet type). If CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB == y. If CONFIG_RTE_LIBRTE_BOND_DEBUG_ALB_L1 is enabled instead of previous one, use show command to see IPv4 balancing from clients. Signed-off-by: Michal Jastrzebski <> Acked-by: Declan Doherty <>