path: root/doc
AgeCommit message (Collapse)Author
2019-03-29net/ice: enable RSS when device initQiming Yang
This patch enabled RSS for UPD/TCP/SCTP+IPV4/IPV6 packets. Signed-off-by: Qiming Yang <> Acked-by: Paul M Stillwell Jr <> Acked-by: Qi Zhang <>
2019-03-29net/ice: add safe modeQiming Yang
If E810 download package failed, driver need to go to safe mode. In the safe mode, some advanced features will not be supported. Signed-off-by: Qiming Yang <> Acked-by: Paul M Stillwell Jr <> Acked-by: Qi Zhang <>
2019-03-29net/ice: load OS default packageQiming Yang
This patch enables package downloading to the device. The package is to be in the /lib/firmware/intel/ice/ddp directory and named ice.pkg. The package is shared by the kernel driver and the DPDK PMD. There is no per device package be supported so far, all the devices can only download the same package. This limitation will be removed in the future. Signed-off-by: Qiming Yang <> Acked-by: Paul M Stillwell Jr <> Acked-by: Qi Zhang <>
2019-03-29app/testpmd: display/clear forwarding stats on demandDavid Marchand
Add a new "show/clear fwd stats all" command to display fwd and port statistics on the fly. To be able to do so, the (testpmd only) rte_port structure can't be used to maintain any statistics. Moved the stats dump parts from stop_packet_forwarding() and merge with fwd_port_stats_display() into fwd_stats_display(). fwd engine statistics are then aggregated into a local per port array. Signed-off-by: David Marchand <> Reviewed-by: Maxime Coquelin <> Reviewed-by: Ferruh Yigit <>
2019-03-29net/ice: support vector AVX2 in TxWenzhuo Lu
Signed-off-by: Wenzhuo Lu <> Acked-by: Qi Zhang <>
2019-03-29net/ice: support Tx SSE vectorWenzhuo Lu
Signed-off-by: Wenzhuo Lu <> Acked-by: Qi Zhang <>
2019-03-29net/ice: support vector SSE in RxWenzhuo Lu
Signed-off-by: Wenzhuo Lu <> Acked-by: Qi Zhang <>
2019-03-30doc: announce deprecation of VFIO DMA map functionsShahaf Shuler
As those should be replaced by rte_dev_dma_map and rte_dev_dma_unmap APIs. Signed-off-by: Shahaf Shuler <> Acked-by: Anatoly Burakov <> Acked-by: Rami Rosen <> Acked-by: Gaetan Rivet <>
2019-03-30bus: introduce device level DMA memory mappingShahaf Shuler
The DPDK APIs expose 3 different modes to work with memory used for DMA: 1. Use the DPDK owned memory (backed by the DPDK provided hugepages). This memory is allocated by the DPDK libraries, included in the DPDK memory system (memseg lists) and automatically DMA mapped by the DPDK layers. 2. Use memory allocated by the user and register to the DPDK memory systems. Upon registration of memory, the DPDK layers will DMA map it to all needed devices. After registration, allocation of this memory will be done with rte_*malloc APIs. 3. Use memory allocated by the user and not registered to the DPDK memory system. This is for users who wants to have tight control on this memory (e.g. avoid the rte_malloc header). The user should create a memory, register it through rte_extmem_register API, and call DMA map function in order to register such memory to the different devices. The scope of the patch focus on #3 above. Currently the only way to map external memory is through VFIO (rte_vfio_dma_map). While VFIO is common, there are other vendors which use different ways to map memory (e.g. Mellanox and NXP). The work in this patch moves the DMA mapping to vendor agnostic APIs. Device level DMA map and unmap APIs were added. Implementation of those APIs was done currently only for PCI devices. For PCI bus devices, the pci driver can expose its own map and unmap functions to be used for the mapping. In case the driver doesn't provide any, the memory will be mapped, if possible, to IOMMU through VFIO APIs. Application usage with those APIs is quite simple: * allocate memory * call rte_extmem_register on the memory chunk. * take a device, and query its rte_device. * call the device specific mapping function for this device. Future work will deprecate the rte_vfio_dma_map and rte_vfio_dma_unmap APIs, leaving the rte device APIs as the preferred option for the user. Signed-off-by: Shahaf Shuler <> Acked-by: Anatoly Burakov <> Acked-by: Gaetan Rivet <>
2019-03-30vfio: allow DMA map to the default containerShahaf Shuler
Enable users the option to call rte_vfio_dma_map with request to map to the default vfio fd. Signed-off-by: Shahaf Shuler <> Acked-by: Anatoly Burakov <> Acked-by: Gaetan Rivet <>
2019-03-30kni: calculate MTU from mbuf sizeLiron Himi
- mbuf_size and mtu are now being calculated according to the given mb-pool. - max_mtu is now being set according to the given mtu the above two changes provide the ability to work with jumbo frames Signed-off-by: Liron Himi <> Acked-by: Ferruh Yigit <>
2019-03-28service: fix parameter type for attributeNikhil Rao
The type of value parameter to rte_service_attr_get should be uint64_t *, since the attributes are of type uint64_t. Fixes: 4d55194d76a4 ("service: add attribute get function") Signed-off-by: Nikhil Rao <> Reviewed-by: Gage Eads <> Reviewed-by: Rami Rosen <> Acked-by: Harry van Haaren <>
2019-03-28ticketlock: introduce fair ticket based lockingJoyce Kong
The spinlock implementation is unfair, some threads may take locks aggressively while leaving the other threads starving for long time. This patch introduces ticketlock which gives each waiting thread a ticket and they can take the lock one by one. First come, first serviced. This avoids starvation for too long time and is more predictable. Suggested-by: Jerin Jacob <> Signed-off-by: Joyce Kong <> Reviewed-by: Gavin Hu <> Reviewed-by: Ola Liljedahl <> Reviewed-by: Honnappa Nagarahalli <> Acked-by: Konstantin Ananyev <>
2019-03-27doc: deprecate KNI ethtool supportFerruh Yigit
Announce removal of KNI ethtool support. Signed-off-by: Ferruh Yigit <> Acked-by: Neil Horman <> Acked-by: Igor Ryzhov <> Acked-by: Jerin Jacob <> Acked-by: Rami Rosen <> Acked-by: Thomas Monjalon <>
2019-03-27doc: add deprecation marker usageFerruh Yigit
Define '__rte_deprecated' usage process. Suggests keeping old API with '__rte_deprecated' marker including next LTS, they will be removed just after the LTS release. Signed-off-by: Ferruh Yigit <> Acked-by: Luca Boccassi <> Acked-by: Neil Horman <> Acked-by: Kevin Traynor <>
2019-03-27doc: make RTE_NEXT_ABI optional in guidelinesFerruh Yigit
Initial process requires oncoming changes described in deprecation notice should be implemented in a RTE_NEXT_ABI gated way. This has been discussed in technical board, and since this can cause a multiple #ifdef blocks in multiple locations of the code, can be confusing specially for the modifications that requires data structure changes. Anyway this was not happening in practice. Making RTE_NEXT_ABI usage more optional based on techboard decision: The intention with using RTE_NEXT_ABI was to provide more information to the user about planned changes, and force developer to think more in coding level. Since RTE_NEXT_ABI become optional, now the preferred way to do this is, if possible, sending changes, described in deprecation notice, as a separate patch and reference it in deprecation notice. Signed-off-by: Ferruh Yigit <> Acked-by: Neil Horman <> Acked-by: Kevin Traynor <>
2019-03-27doc: clean ABI/API policy guideFerruh Yigit
The original document written from the point of ABI versioning but later additions make document confusing, convert document into a ABI/API policy documentation and organize the document in subsections: - ABI/API Deprecation - Experimental APIs - Library versioning - ABI versioning Aim to clarify confusion between deprecation versioned ABI and overall ABI/API deprecation, also ABI versioning and Library versioning by organizing the sections. Signed-off-by: Ferruh Yigit <> Acked-by: Neil Horman <> Acked-by: Kevin Traynor <>
2019-03-27doc: update DPDK LTS versionsKevin Traynor
Support for 16.11 has ended. 17.11 and 18.11 are the current LTSs. Signed-off-by: Kevin Traynor <> Acked-by: Luca Boccassi <>
2019-03-27doc: update cross Arm toolchain in Linux guideJoyce Kong
Update cross build tool links as newer cross build tools version are provided on Linaro, and attempts to download the old one give permission denied. Fixes: 01add9da25cd ("doc: add cross compiling guide") Cc: Signed-off-by: Joyce Kong <> Acked-by: Stephen Hemminger <> Acked-by: Jerin Jacob <>
2019-03-26ci: introduce Travis builds for GitHub repositoriesMichael Santana
GitHub is a service used by developers to store repositories. GitHub provides service integrations that allow 3rd party services to access developer repositories and perform actions. One of these services is Travis-CI, a simple continuous integration platform. This series introduces the ability for any github mirrors of the DPDK project, including developer mirrors, to kick off builds under the travis CI infrastructure. For now, this just means compilation - no other kinds of automated run exists yet. In the future, this can be expanded to execute and report results for any test-suites that might exist. This is a simple initial implementation of a travis build for the DPDK project. It doesn't require any changes from individual developers to enable, but will allow those developers who opt-in to GitHub and the travis service to get automatic builds for every push they make. The files added under .ci/ exist so that in the future, other CI support platforms (such as cirrus, appveyor, etc.) could have a common place to put their requisite scripts without polluting the main tree. Signed-off-by: Aaron Conole <> Signed-off-by: Michael Santana <> Acked-by: Bruce Richardson <> Acked-by: Luca Boccassi <> Reviewed-by: Honnappa Nagarahalli <> Acked-by: Thomas Monjalon <>
2019-03-22ipsec: support 3DES-CBCFan Zhang
This patch adds triple-des CBC mode cipher algorithm to ipsec library. Signed-off-by: Fan Zhang <> Acked-by: Konstantin Ananyev <> Acked-by: Akhil Goyal <>
2019-03-22examples/ipsec-secgw: add test scripts for AES-CTRFan Zhang
This patch adds the functional test scripts to ipsec-secgw sample application for both transport and tunnel working mode. Updated a bit on common_defs to use "mktemp" instead of "tempfile" as Fedora does not like the command. Signed-off-by: Fan Zhang <> Acked-by: Konstantin Ananyev <>
2019-03-22ipsec: support AES-CTRFan Zhang
This patch adds AES-CTR cipher algorithm support to ipsec library. Signed-off-by: Fan Zhang <> Acked-by: Akhil Goyal <> Acked-by: Konstantin Ananyev <>
2019-03-22crypto/qat: support XTSDamian Nowak
This patch adds XTS capabilities and enables XTS cipher mode on QAT. It also updates the documentation for newly supported AES XTS mode on QAT. Signed-off-by: Damian Nowak <> Acked-by: Fiona Trahe <>
2019-03-22compress/qat: add fallback to fixed compressionTomasz Jozwiak
This patch adds fallback to fixed compression feature during dynamic compression, when the input data size is greater than IM buffer size / 1.1. This feature doesn't stop compression proccess when IM buffer can be too small to handle produced data. Signed-off-by: Tomasz Jozwiak <> Acked-by: Fiona Trahe <>
2019-03-22cryptodev: restore crypto op alignment and layoutKonstantin Ananyev
in 18.08 new cache-aligned structure rte_crypto_asym_op was introduced. As it also was included into rte_crypto_op, it caused implicit change in rte_crypto_op layout and alignment: now rte_crypto_op is cache-line aligned has a hole of 40/104 bytes between phys_addr and sym/asym op. It looks like unintended ABI breakage, plus such change can cause negative performance effects: - now status and sym[0].m_src lies on different cache-lines, so post-process code would need extra cache-line read. - new alignment causes grow of the space requirements and cache-line reads/updates for structures that contain rte_crypto_op inside. As there seems no actual need to have rte_crypto_asym_op cache-line aligned, and rte_crypto_asym_op is not intended to be used on it's own - the simplest fix is just to remove cache-line alignment for it. As the immediate positive effect: on IA ipsec-secgw performance increased by 5-10% (depending on the crypto-dev and algo used). My guess that on machines with 128B cache-line and lookaside-protocol capable crypto devices the impact will be even more noticeable. Fixes: 26008aaed14c ("cryptodev: add asymmetric xform and op definitions") Cc: Signed-off-by: Konstantin Ananyev <> Acked-by: Fiona Trahe <> Acked-by: Shally Verma <> Acked-by: Akhil Goyal <>
2019-03-21doc: fix examples in bonding guideDavid Marchand
Removed incorrect space character and fixed PCI addresses. Fixes: fc1f2750a3ec ("doc: programmers guide") Cc: Signed-off-by: David Marchand <> Reviewed-by: Ferruh Yigit <>
2019-03-20app/testpmd: optimize MAC swap for ArmRuifeng Wang
Improved MAC swap performance for ARM platform. The improvement was achieved by using neon intrinsics to save CPU cycles and doing swap for four packets at a time. The optimization had 15% - 20% throughput boost in testpmd MAC swap mode. Signed-off-by: Ruifeng Wang <> Reviewed-by: Gavin Hu <> Reviewed-by: Phil Yang <> Acked-by: Jerin Jacob <> Reviewed-by: Honnappa Nagarahalli <>
2019-03-15doc: add notes about eventdev producer/consumer dependencyPavan Nikhilesh
EventDev i.e consumer needs to be started before starting the event producers. Update documentation of EventDev and EventDev adapters. Signed-off-by: Pavan Nikhilesh <> Reviewed-by: Erik Gabriel Carrillo <> Reviewed-by: Abhinandan Gujjar <>
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-12eal/linux: rename linuxapp to linuxBruce Richardson
The term "linuxapp" is a legacy one, but just calling the subdirectory "linux" is just clearer for all concerned. Signed-off-by: Bruce Richardson <>
2019-03-12eal/bsd: rename bsdapp to freebsdBruce Richardson
The term "bsdapp" is a legacy one, but just calling the subdirectory "freebsd" is just clearer for all concerned. Signed-off-by: Bruce Richardson <>
2019-03-06doc: fix table of kernel drivers in qat guideFiona Trahe
Added missing line informing which kernel driver can be used for device DH895xcc for compression service. Moved service columns to start of table for better visibility and to prepare for future asymmetric crypto service. Fixes: e2e35849ea78 ("compress/qat: add compression on DH895x") Cc: Signed-off-by: Fiona Trahe <> Acked-by: Tomasz Jozwiak <>
2019-03-08net/ixgbevf: enable promiscuous modeWei Zhao
Add promiscuous mode support on VF Signed-off-by: Wei Zhao <>
2019-03-08doc: fix tag for inner RSS featureRami Rosen
This patch fixes a wrong tag in guides/nics/features.rst. The features tags should be, according to the "Features Overview" section in this doc, one of the following: "uses", "implements", "provides", or "related". Hence in Inner RSS section, it should be "uses" instead of "users". Fixes: d0a87d9aa8de ("doc: update mlx5 guide on tunnel offloading") Cc: Signed-off-by: Rami Rosen <> Reviewed-by: Ferruh Yigit <>
2019-03-08net/enic: fix inner packet matchingHyong Youb Kim
Inner packet matching is currently buggy in many cases. 1. Mishandling null spec ("match any"). The copy_item functions do nothing if spec is null. This is incorrect, as all patterns should be appended to the L5 pattern buffer even for null spec (treated as all zeros). 2. Accessing null spec causing segfault. 3. Not setting protocol fields. The NIC filter API currently has no flags for "match inner IPv4, IPv6, UDP, TCP, and so on". So, the driver needs to explicitly set EtherType and IP protocol fields in the L5 pattern buffer to avoid false positives (e.g. reporting IPv6 as IPv4). Instead of keep adding "if inner, do something differently" cases to the existing copy_item functions, introduce separate functions for inner packet patterns and address the above issues in those functions. The changes to the previous outer-packet copy_item functions are mechanical, due to reduced indentation. Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled") Cc: Signed-off-by: Hyong Youb Kim <>
2019-03-08net/enic: fix endianness in VLAN matchHyong Youb Kim
The VLAN fields in the NIC filter use little endian. The VLAN item is in big endian, so swap bytes. Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled") Cc: Signed-off-by: Hyong Youb Kim <>
2019-03-08net/enic: enable limited support for raw flow itemHyong Youb Kim
Some apps like VPP use a raw item to match UDP tunnel headers like VXLAN or GENEVE. The NIC hardware supports such usage via L5 match, which does pattern match on packet data immediately following the outer L4 header. Accept raw items for these limited use cases. Signed-off-by: Hyong Youb Kim <>
2019-03-08net/enic: enable limited passthru flow actionHyong Youb Kim
Some apps like VPP use PASSTHRU+MARK flow rules to offload packet matching to the NIC. Just like MARK+RSS used by OVS-DPDK and others, PASSTHRU+MARK is used to "mark and then receive normally". Recent VIC adapters support such flow rules, so enable PASSTHRU for this limited use case. Signed-off-by: Hyong Youb Kim <>
2019-03-08net/enic: enable limited RSS flow actionHyong Youb Kim
Some apps like OVS-DPDK use MARK+RSS flow rules in order to offload packet matching to the NIC. The RSS action in such flow rules simply indicates "receive packet normally", not trying to override the port wide RSS. The action is included in the flow rules simply to terminate them, as MARK is not a fate-deciding action. And, the RSS action has a most basic config: default hash, level, types, null key, and identity queue mapping. Recent VIC adapters can support these "mark and receive" flow rules. So, enable support for RSS action for this limited use case. Signed-off-by: Hyong Youb Kim <> Reviewed-by: John Daley <>
2019-03-08net/enic: allow flow mark ID 0Hyong Youb Kim
The driver currently accepts mark ID 0 but does not report it in matching packet's mbuf. For example, the following testpmd command succeeds. But, the mbuf of a matching IPv4 UDP packet does not have PKT_RX_FDIR_ID set. flow create 0 ingress pattern ... actions mark id 0 / queue index 0 / end The problem has to do with mapping mark IDs (32-bit) to NIC filter IDs. Filter ID is currently 16-bit, so values greater than 0xffff are rejected. The firmware reserves filter ID 0 for filters that do not mark (e.g. steer w/o mark). And, the driver reserves 0xffff for the flag action. This leaves 1...0xfffe for app use. It is possible to simply reject mark ID 0 as unsupported. But, 0 is commonly used (e.g. OVS-DPDK and VPP). So, when adding a filter, set filter ID = mark ID + 1 to support mark ID 0. The receive handler subtracts 1 from filter ID to get back the original mark ID. Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series") Cc: Signed-off-by: Hyong Youb Kim <> Reviewed-by: John Daley <>
2019-03-07eal: restrict control threads to startup CPU affinityDavid Marchand
Spawning the ctrl threads on anything that is not part of the eal coremask is not that polite to the rest of the system, especially when you took good care to pin your processes on cpu resources with tools like taskset (linux) / cpuset (freebsd). Rather than introduce yet another eal options to control on which cpu those ctrl threads are created, let's take the startup cpu affinity as a reference and remove the eal coremask from it. If no cpu is left, then we default to the master core. The cpuset is computed once at init before the original cpu affinity is lost. Introduced a RTE_CPU_AND macro to abstract the differences between linux and freebsd respective macros. Examples in a 4 cores FreeBSD vm: $ ./build/app/testpmd -l 2,3 --no-huge --no-pci -m 512 \ -- -i --total-num-mbufs=2048 $ procstat -S 1057 PID TID COMM TDNAME CPU CSID CPU MASK 1057 100131 testpmd - 2 1 2 1057 100140 testpmd eal-intr-thread 1 1 0-1 1057 100141 testpmd rte_mp_handle 1 1 0-1 1057 100142 testpmd lcore-slave-3 3 1 3 $ cpuset -l 1,2,3 ./build/app/testpmd -l 2,3 --no-huge --no-pci -m 512 \ -- -i --total-num-mbufs=2048 $ procstat -S 1061 PID TID COMM TDNAME CPU CSID CPU MASK 1061 100131 testpmd - 2 2 2 1061 100144 testpmd eal-intr-thread 1 2 1 1061 100145 testpmd rte_mp_handle 1 2 1 1061 100147 testpmd lcore-slave-3 3 2 3 $ cpuset -l 2,3 ./build/app/testpmd -l 2,3 --no-huge --no-pci -m 512 \ -- -i --total-num-mbufs=2048 $ procstat -S 1065 PID TID COMM TDNAME CPU CSID CPU MASK 1065 100131 testpmd - 2 2 2 1065 100148 testpmd eal-intr-thread 2 2 2 1065 100149 testpmd rte_mp_handle 2 2 2 1065 100150 testpmd lcore-slave-3 3 2 3 Fixes: d651ee4919cd ("eal: set affinity for control threads") Cc: Signed-off-by: David Marchand <> Reviewed-by: Anatoly Burakov <> Reviewed-by: Olivier Matz <>
2019-03-05doc: fix PCI whitelist typo in prog guideThomas Monjalon
The placeholder for PCI address should be named DBDF which stands for Domain/Bus/Device/Function. Fixes: 33af337773ac ("ethdev: add common devargs parser") Cc: Signed-off-by: Thomas Monjalon <> Reviewed-by: Rami Rosen <>
2019-03-05doc: fix link in Linux getting started guideRami Rosen
This patch fixes a wrong link in gsg. The Documentation/kernel-parameters.txt file from the kernel source tree was moved quite a time ago to Documentation/admin-guide/kernel-parameters.txt. Fixes: 1ab07743b21b ("doc: getting started guide for linux") Cc: Signed-off-by: Rami Rosen <> Reviewed-by: Ferruh Yigit <>
2019-03-05doc: remove reference to in programmers guideRami Rosen
This patch removes the reference to in DPDK programmers guide. Fixes: ee801f6cc7b8 ("mk: clean dead doc rules") Cc: Signed-off-by: Rami Rosen <> Reviewed-by: Ferruh Yigit <>
2019-03-01doc: improve vhost zero copy guideTiwei Bie
Highlight that vhost zero copy mbufs should be consumed as soon as possible. Signed-off-by: Tiwei Bie <> Reviewed-by: Maxime Coquelin <>
2019-03-01net/dpaa2: support low level loopback testerHemant Agrawal
Signed-off-by: Hemant Agrawal <>