xref: /dpdk/doc/guides/rel_notes/release_19_08.rst (revision 33e71acf3d446ced520f07e4d75769323e0ec22c)
1c6a53a6bSThomas Monjalon..  SPDX-License-Identifier: BSD-3-Clause
2c6a53a6bSThomas Monjalon    Copyright 2019 The DPDK contributors
3c6a53a6bSThomas Monjalon
4f687e842SBruce Richardson.. include:: <isonum.txt>
5f687e842SBruce Richardson
6c6a53a6bSThomas MonjalonDPDK Release 19.08
7c6a53a6bSThomas Monjalon==================
8c6a53a6bSThomas Monjalon
9c6a53a6bSThomas MonjalonNew Features
10c6a53a6bSThomas Monjalon------------
11c6a53a6bSThomas Monjalon
1279a0bbe5SAnatoly Burakov* **EAL will now pick IOVA as VA mode as the default in most cases.**
1379a0bbe5SAnatoly Burakov
1499ad894dSJohn McNamara  Previously, the preferred default IOVA mode was selected to be IOVA as PA. The
1579a0bbe5SAnatoly Burakov  behavior has now been changed to handle IOVA mode detection in a more complex
1679a0bbe5SAnatoly Burakov  manner, and will default to IOVA as VA in most cases.
1779a0bbe5SAnatoly Burakov
182173f333SPhil Yang* **Added MCS lock.**
192173f333SPhil Yang
202173f333SPhil Yang  MCS lock provides scalability by spinning on a CPU/thread local variable
2199ad894dSJohn McNamara  which avoids expensive cache bouncing.
222173f333SPhil Yang  It provides fairness by maintaining a list of acquirers and passing
232173f333SPhil Yang  the lock to each CPU/thread in the order they acquired the lock.
242173f333SPhil Yang
253f002f06SMattias Rönnblom* **Updated the EAL Pseudo-random Number Generator.**
263f002f06SMattias Rönnblom
2799ad894dSJohn McNamara  The ``lrand48()`` based ``rte_rand()`` function is replaced with a
283f002f06SMattias Rönnblom  DPDK-native combined Linear Feedback Shift Register (LFSR)
293f002f06SMattias Rönnblom  pseudo-random number generator (PRNG).
303f002f06SMattias Rönnblom
313f002f06SMattias Rönnblom  This new PRNG implementation is multi-thread safe, provides
323f002f06SMattias Rönnblom  higher-quality pseudo-random numbers (including full 64 bit
333f002f06SMattias Rönnblom  support) and improved performance.
343f002f06SMattias Rönnblom
3599ad894dSJohn McNamara  In addition, ``<rte_random.h>`` is extended with a new function
3699ad894dSJohn McNamara  ``rte_rand_max()`` which supplies unbiased, bounded pseudo-random
375f4ed3f0SMattias Rönnblom  numbers.
385f4ed3f0SMattias Rönnblom
3999ad894dSJohn McNamara* **Updated the Broadcom bnxt PMD.**
400b7591e3SAjit Khaparde
4199ad894dSJohn McNamara  Updated the Broadcom bnxt PMD. The major enhancements include:
420b7591e3SAjit Khaparde
4399ad894dSJohn McNamara  * Performance optimizations in non-vector Tx path.
4499ad894dSJohn McNamara  * Added support for SSE vector mode.
4599ad894dSJohn McNamara  * Updated HWRM API to version 1.10.0.91.
460b7591e3SAjit Khaparde
47f8168ca0SLance Richardson* **Added support for Broadcom NetXtreme-E BCM57500 Ethernet controllers.**
48f8168ca0SLance Richardson
4999ad894dSJohn McNamara  Added support to the Broadcom bnxt PMD for the BCM57500 (a.k.a. "Thor") family
50f8168ca0SLance Richardson  of Ethernet controllers. These controllers support link speeds up to
51f8168ca0SLance Richardson  200Gbps, 50G PAM-4, and PCIe 4.0.
52f8168ca0SLance Richardson
5399ad894dSJohn McNamara* **Added Huawei hinic PMD.**
541d09792aSZiyang Xuan
551d09792aSZiyang Xuan  Added the new ``hinic`` net driver for Huawei Intelligent PCIE Network
561d09792aSZiyang Xuan  Adapters based on the Huawei Ethernet Controller Hi1822.
571d09792aSZiyang Xuan  See the :doc:`../nics/hinic` guide for more details on this new driver.
581d09792aSZiyang Xuan
5999ad894dSJohn McNamara* **Updated the Intel ice driver.**
60bd70c451SBeilei Xing
6199ad894dSJohn McNamara  Updated the Intel ice driver with new features and improvements, including:
62bd70c451SBeilei Xing
63bd70c451SBeilei Xing  * Enabled Tx outer/inner L3/L4 checksum offload.
64d76116a4SQiming Yang  * Enabled generic filter framework and supported switch filter.
65d4c51362SQiming Yang  * Supported UDP tunnel port add.
66bd70c451SBeilei Xing
679956d900SMesut Ali Ergin* **Updated the Intel i40e driver.**
689956d900SMesut Ali Ergin
699956d900SMesut Ali Ergin  Updated tje Intel i40e driver with new features and improvements, including:
709956d900SMesut Ali Ergin
719956d900SMesut Ali Ergin  * Added support for MARK + RSS action in rte_flow (non-vector RX path only)
729956d900SMesut Ali Ergin
73585b99fbSDekel Peled* **Updated Mellanox mlx5 driver.**
74585b99fbSDekel Peled
75585b99fbSDekel Peled  Updated Mellanox mlx5 driver with new features and improvements, including:
76585b99fbSDekel Peled
77585b99fbSDekel Peled  * Updated the packet header modification feature. Added support of TCP header
78585b99fbSDekel Peled    sequence number and acknowledgment number modification.
79d53aa89aSXiaoyu Min  * Added support for match on ICMP/ICMP6 code and type.
80a7a03655SXiaoyu Min  * Added support for matching on GRE's key and C,K,S present bits.
815e33bebdSXiaoyu Min  * Added support for IP-in-IP tunnel.
8299ad894dSJohn McNamara  * Accelerated flows with count action creation and destroy.
8399ad894dSJohn McNamara  * Accelerated flows counter query.
84505f1fe4SViacheslav Ovsiienko  * Improved Tx datapath performance with enabled HW offloads.
8521bb6c7eSDekel Peled  * Added support for LRO.
86585b99fbSDekel Peled
874279b54eSGeorgiy Levashov* **Updated Solarflare network PMD.**
884279b54eSGeorgiy Levashov
894279b54eSGeorgiy Levashov  Updated the Solarflare ``sfc_efx`` driver with changes including:
904279b54eSGeorgiy Levashov
914279b54eSGeorgiy Levashov  * Added support for Rx interrupts.
924279b54eSGeorgiy Levashov
9309c7e63aSJakub Grajciar* **Added memif PMD.**
9409c7e63aSJakub Grajciar
9599ad894dSJohn McNamara  Added a new Shared Memory Packet Interface (``memif``) PMD.
9609c7e63aSJakub Grajciar  See the :doc:`../nics/memif` guide for more details on this new driver.
9709c7e63aSJakub Grajciar
98e9ff8bb7SXiaolong Ye* **Updated the AF_XDP PMD.**
99e9ff8bb7SXiaolong Ye
100e9ff8bb7SXiaolong Ye  Updated the AF_XDP PMD. The new features include:
101e9ff8bb7SXiaolong Ye
102e9ff8bb7SXiaolong Ye  * Enabled zero copy through mbuf's external memory mechanism to achieve
10399ad894dSJohn McNamara    higher performance.
104339b88c6SXiaolong Ye  * Added multi-queue support to allow one af_xdp vdev with multiple netdev
10599ad894dSJohn McNamara    queues.
10699ad894dSJohn McNamara  * Enabled "need_wakeup" feature which can provide efficient support for the
10799ad894dSJohn McNamara    use case where the application and driver executing on the same core.
108e9ff8bb7SXiaolong Ye
10955d8f0d3SCian Ferriter* **Enabled infinite Rx in the PCAP PMD.**
11055d8f0d3SCian Ferriter
11199ad894dSJohn McNamara  Added an infinite Rx feature to the PCAP PMD which allows packets in the Rx
11299ad894dSJohn McNamara  PCAP to be received repeatedly at a high rate. This can be useful for quick
11355d8f0d3SCian Ferriter  performance testing of DPDK apps.
11455d8f0d3SCian Ferriter
11599ad894dSJohn McNamara* **Enabled receiving no packet in the PCAP PMD.**
116f14a9459SAideen McLoughlin
11799ad894dSJohn McNamara  Added function to allow users to run the PCAP PMD without receiving any
11899ad894dSJohn McNamara  packets on PCAP Rx. When the function is called, a dummy queue is created
11999ad894dSJohn McNamara  for each Tx queue argument passed.
120f14a9459SAideen McLoughlin
121efd45369SNicolas Chautru* **Added a FPGA_LTE_FEC bbdev PMD.**
122efd45369SNicolas Chautru
12399ad894dSJohn McNamara  Added a new ``fpga_lte_fec`` bbdev driver for the Intel\ |reg| FPGA PAC
124efd45369SNicolas Chautru  (Programmable  Acceleration Card) N3000.  See the
125efd45369SNicolas Chautru  :doc:`../bbdevs/fpga_lte_fec` BBDEV guide for more details on this new driver.
126efd45369SNicolas Chautru
12799ad894dSJohn McNamara* **Updated the TURBO_SW bbdev PMD.**
128c769c711SNicolas Chautru
129c769c711SNicolas Chautru  Updated the ``turbo_sw`` bbdev driver with changes including:
130c769c711SNicolas Chautru
131c769c711SNicolas Chautru  * Added option to build the driver with or without dependency of external
132c769c711SNicolas Chautru    SDK libraries.
133c769c711SNicolas Chautru  * Added support for 5GNR encode/decode operations.
134c769c711SNicolas Chautru
13599ad894dSJohn McNamara* **Updated the Intel QuickAssist Technology (QAT) symmetric crypto PMD.**
13640002f6cSDamian Nowak
13740002f6cSDamian Nowak  Added support for digest-encrypted cases where digest is appended
13840002f6cSDamian Nowak  to the data.
13940002f6cSDamian Nowak
14099ad894dSJohn McNamara* **Added the Intel QuickData Technology PMD.**
141f687e842SBruce Richardson
14299ad894dSJohn McNamara  Added a PMD for the Intel\ |reg|  QuickData Technology, part of
143f687e842SBruce Richardson  Intel\ |reg|  I/O Acceleration Technology `(Intel I/OAT)
144f687e842SBruce Richardson  <https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_,
14599ad894dSJohn McNamara  which allows data copies to be done by hardware instead
146f687e842SBruce Richardson  of via software, reducing cycles spent copying large blocks of data in
147f687e842SBruce Richardson  applications.
148f687e842SBruce Richardson
14971645974SJerin Jacob* **Added Marvell OCTEON TX2 drivers.**
15071645974SJerin Jacob
15171645974SJerin Jacob  Added the new ``ethdev``, ``eventdev``, ``mempool``, ``eventdev Rx adapter``,
15271645974SJerin Jacob  ``eventdev Tx adapter``, ``eventdev Timer adapter`` and ``rawdev DMA``
15399ad894dSJohn McNamara  drivers for various HW co-processors available in ``OCTEON TX2`` SoC.
15471645974SJerin Jacob
155*33e71acfSJerin Jacob  See ``platform/octeontx2`` and driver information:
15671645974SJerin Jacob
157*33e71acfSJerin Jacob  * ``nics/octeontx2``
158*33e71acfSJerin Jacob  * ``mempool/octeontx2``
159*33e71acfSJerin Jacob  * ``eventdevs/octeontx2``
160a59745ebSRadha Mohan Chintakuntla  * ``rawdevs/octeontx2_dma``
16171645974SJerin Jacob
16299ad894dSJohn McNamara* **Introduced the Intel NTB PMD.**
16327731002SXiaoyun Li
16499ad894dSJohn McNamara  Added a PMD for Intel NTB (Non-transparent Bridge). This PMD implements
16599ad894dSJohn McNamara  a handshake between two separate hosts and can share local memory for peer
16627731002SXiaoyun Li  host to directly access.
16727731002SXiaoyun Li
16899ad894dSJohn McNamara* **Updated the IPSec library and IPsec Security Gateway application.**
1691cfd1559SFan Zhang
17076ac7131SBernard Iremonger  Added the following features to ``librte_ipsec``. Corresponding changes are
17199ad894dSJohn McNamara  also added in the ``ipsec-secgw`` sample application.
17276ac7131SBernard Iremonger
17376ac7131SBernard Iremonger  * ECN and DSCP field header reconstruction as per RFC4301.
17476ac7131SBernard Iremonger  * Transport mode with IPv6 extension headers.
17576ac7131SBernard Iremonger  * Support packets with multiple segments.
1761cfd1559SFan Zhang
1774080e46cSReshma Pattan* **Updated telemetry library for global metrics support.**
1784080e46cSReshma Pattan
1794080e46cSReshma Pattan  Updated ``librte_telemetry`` to fetch the global metrics from the
1804080e46cSReshma Pattan  ``librte_metrics`` library.
1814080e46cSReshma Pattan
182609e7984SReshma Pattan* **Added new telemetry mode for l3fwd-power application.**
183609e7984SReshma Pattan
18499ad894dSJohn McNamara  Added a telemetry mode to the ``l3fwd-power`` application to report
18599ad894dSJohn McNamara  application level busyness, empty and full polls of ``rte_eth_rx_burst()``.
186609e7984SReshma Pattan
187a99a311bSSuanming Mou* **Updated the pdump application.**
188a99a311bSSuanming Mou
189a99a311bSSuanming Mou  Add support for pdump to exit with primary process.
190a99a311bSSuanming Mou
1917c14a7a9STomasz Jozwiak* **Updated test-compress-perf tool application.**
1927c14a7a9STomasz Jozwiak
19399ad894dSJohn McNamara  Added a multiple cores feature to the compression perf tool application.
1947c14a7a9STomasz Jozwiak
195c6a53a6bSThomas Monjalon
196c6a53a6bSThomas MonjalonRemoved Items
197c6a53a6bSThomas Monjalon-------------
198c6a53a6bSThomas Monjalon
19999ad894dSJohn McNamara* Removed KNI ethtool, ``CONFIG_RTE_KNI_KMOD_ETHTOOL``, support.
200ea6b39b5SFerruh Yigit
201e404de13SYongseok Koh* build: armv8 crypto extension is disabled.
202e404de13SYongseok Koh
203c6a53a6bSThomas Monjalon
204c6a53a6bSThomas MonjalonAPI Changes
205c6a53a6bSThomas Monjalon-----------
206c6a53a6bSThomas Monjalon
20799ad894dSJohn McNamara* The ``rte_mem_config`` structure has been made private. New accessor
208028669bcSAnatoly Burakov  ``rte_mcfg_*`` functions were introduced to provide replacement for direct
209028669bcSAnatoly Burakov  access to the shared mem config.
210028669bcSAnatoly Burakov
2113e48944fSOlivier Matz* The network structures, definitions and functions have
2123e48944fSOlivier Matz  been prefixed by ``rte_`` to resolve conflicts with libc headers.
2133e48944fSOlivier Matz
21499ad894dSJohn McNamara* malloc: The function ``rte_malloc_set_limit()`` was never implemented.
21599ad894dSJohn McNamara  It is deprecated and will be removed in a future release.
2165348806eSStephen Hemminger
21799ad894dSJohn McNamara* cryptodev: the ``uint8_t *data`` member of the ``key`` structure in the xforms
218186b14d6SFan Zhang  structure (``rte_crypto_cipher_xform``, ``rte_crypto_auth_xform``, and
219186b14d6SFan Zhang  ``rte_crypto_aead_xform``) have been changed to ``const uint8_t *data``.
220186b14d6SFan Zhang
22168d21669SNikhil Rao* eventdev: No longer marked as experimental.
22268d21669SNikhil Rao
22368d21669SNikhil Rao  The eventdev functions are no longer marked as experimental, and have
22468d21669SNikhil Rao  become part of the normal DPDK API and ABI. Any future ABI changes will be
22568d21669SNikhil Rao  announced at least one release before the ABI change is made. There are no
22668d21669SNikhil Rao  ABI breaking changes planned.
22768d21669SNikhil Rao
22899ad894dSJohn McNamara* ip_frag: The IP fragmentation library converts input mbuf into fragments
22999ad894dSJohn McNamara  using input MTU size via the ``rte_ipv4_fragment_packet()`` interface.
230e29fc443SSunil Kumar Kori  Once fragmentation is done, each ``mbuf->ol_flags`` are set to enable IP
231e29fc443SSunil Kumar Kori  checksum H/W offload irrespective of the platform capability.
232e29fc443SSunil Kumar Kori  Cleared IP checksum H/W offload flag from the library. The application must
233e29fc443SSunil Kumar Kori  set this flag if it is supported by the platform and application wishes to
234e29fc443SSunil Kumar Kori  use it.
235e29fc443SSunil Kumar Kori
236e29fc443SSunil Kumar Kori* ip_frag: IP reassembly library converts the list of fragments into a
23799ad894dSJohn McNamara  reassembled packet via ``rte_ipv4_frag_reassemble_packet()`` interface.
238e29fc443SSunil Kumar Kori  Once reassembly is done, ``mbuf->ol_flags`` are set to enable IP checksum H/W
239e29fc443SSunil Kumar Kori  offload irrespective of the platform capability. Cleared IP checksum H/W
240e29fc443SSunil Kumar Kori  offload flag from the library. The application must set this flag if it is
241e29fc443SSunil Kumar Kori  supported by the platform and application wishes to use it.
242e29fc443SSunil Kumar Kori
243b767a6a2SJasvinder Singh* sched: Macros ``RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS`` and
244b767a6a2SJasvinder Singh  ``RTE_SCHED_PIPE_PROFILES_PER_PORT`` are removed for flexible configuration
245b767a6a2SJasvinder Singh  of pipe traffic classes and their queues size, and for runtime configuration
24699ad894dSJohn McNamara  of the maximum number of pipe profiles, respectively. In addition, the
24799ad894dSJohn McNamara  ``wrr_weights`` field of struct ``rte_sched_pipe_params`` is modified to be
24899ad894dSJohn McNamara  used only for best-effort tc, and the ``qsize`` field of struct
24999ad894dSJohn McNamara  ``rte_sched_port_params`` is changed to allow different sizes for each
25099ad894dSJohn McNamara  queue.
251b767a6a2SJasvinder Singh
252c6a53a6bSThomas Monjalon
253c6a53a6bSThomas MonjalonABI Changes
254c6a53a6bSThomas Monjalon-----------
255c6a53a6bSThomas Monjalon
25668d21669SNikhil Rao* eventdev: Event based Rx adapter callback
25768d21669SNikhil Rao
25868d21669SNikhil Rao  The mbuf pointer array in the event eth Rx adapter callback
25968d21669SNikhil Rao  has been replaced with an event array. Using
26068d21669SNikhil Rao  an event array allows the application to change attributes
26168d21669SNikhil Rao  of the events enqueued by the SW adapter.
26268d21669SNikhil Rao
26368d21669SNikhil Rao  The callback can drop packets and populate
26468d21669SNikhil Rao  a callback argument with the number of dropped packets.
26568d21669SNikhil Rao  Add a Rx adapter stats field to keep track of the total
26668d21669SNikhil Rao  number of dropped packets.
26768d21669SNikhil Rao
268c9030ae3SAnoob Joseph* cryptodev: New member in ``rte_cryptodev_config`` to allow applications to
269c9030ae3SAnoob Joseph  disable features supported by the crypto device. Only the following features
270c9030ae3SAnoob Joseph  would be allowed to be disabled this way,
271c9030ae3SAnoob Joseph
27299ad894dSJohn McNamara  - ``RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO``.
27399ad894dSJohn McNamara  - ``RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO``.
27499ad894dSJohn McNamara  - ``RTE_CRYPTODEV_FF_SECURITY``.
275c9030ae3SAnoob Joseph
276c9030ae3SAnoob Joseph  Disabling unused features would facilitate efficient usage of HW/SW offload.
277c9030ae3SAnoob Joseph
27899ad894dSJohn McNamara* bbdev: New operations and parameters have been added to support new 5GNR
27999ad894dSJohn McNamara  operations. The bbdev ABI is still kept experimental.
280b443f318SNicolas Chautru
28154dcfdeeSBruce Richardson* rawdev: The driver names have been changed to ``librte_rawdev_*``.
28254dcfdeeSBruce Richardson  Now they all have the same prefix, and same name with make and meson builds.
28354dcfdeeSBruce Richardson
284c6a53a6bSThomas Monjalon
285c6a53a6bSThomas MonjalonShared Library Versions
286c6a53a6bSThomas Monjalon-----------------------
287c6a53a6bSThomas Monjalon
288c6a53a6bSThomas MonjalonThe libraries prepended with a plus sign were incremented in this version.
289c6a53a6bSThomas Monjalon
290c6a53a6bSThomas Monjalon.. code-block:: diff
291c6a53a6bSThomas Monjalon
292c6a53a6bSThomas Monjalon     librte_acl.so.2
293c6a53a6bSThomas Monjalon     librte_bbdev.so.1
294c6a53a6bSThomas Monjalon     librte_bitratestats.so.2
295c6a53a6bSThomas Monjalon     librte_bpf.so.1
296c6a53a6bSThomas Monjalon     librte_bus_dpaa.so.2
297c6a53a6bSThomas Monjalon     librte_bus_fslmc.so.2
298c6a53a6bSThomas Monjalon     librte_bus_ifpga.so.2
299c6a53a6bSThomas Monjalon     librte_bus_pci.so.2
300c6a53a6bSThomas Monjalon     librte_bus_vdev.so.2
301c6a53a6bSThomas Monjalon     librte_bus_vmbus.so.2
302c6a53a6bSThomas Monjalon     librte_cfgfile.so.2
303c6a53a6bSThomas Monjalon     librte_cmdline.so.2
304c6a53a6bSThomas Monjalon     librte_compressdev.so.1
305c9030ae3SAnoob Joseph   + librte_cryptodev.so.8
306c6a53a6bSThomas Monjalon     librte_distributor.so.1
307028669bcSAnatoly Burakov   + librte_eal.so.11
308c6a53a6bSThomas Monjalon     librte_efd.so.1
309c6a53a6bSThomas Monjalon     librte_ethdev.so.12
31068d21669SNikhil Rao   + librte_eventdev.so.7
311c6a53a6bSThomas Monjalon     librte_flow_classify.so.1
312c6a53a6bSThomas Monjalon     librte_gro.so.1
313c6a53a6bSThomas Monjalon     librte_gso.so.1
314c6a53a6bSThomas Monjalon     librte_hash.so.2
315c6a53a6bSThomas Monjalon     librte_ip_frag.so.1
316c6a53a6bSThomas Monjalon     librte_ipsec.so.1
317c6a53a6bSThomas Monjalon     librte_jobstats.so.1
318c6a53a6bSThomas Monjalon     librte_kni.so.2
319c6a53a6bSThomas Monjalon     librte_kvargs.so.1
320c6a53a6bSThomas Monjalon     librte_latencystats.so.1
321c6a53a6bSThomas Monjalon     librte_lpm.so.2
322c6a53a6bSThomas Monjalon     librte_mbuf.so.5
323c6a53a6bSThomas Monjalon     librte_member.so.1
324c6a53a6bSThomas Monjalon     librte_mempool.so.5
325c6a53a6bSThomas Monjalon     librte_meter.so.3
326c6a53a6bSThomas Monjalon     librte_metrics.so.1
327c6a53a6bSThomas Monjalon     librte_net.so.1
328c6a53a6bSThomas Monjalon     librte_pci.so.1
329c6a53a6bSThomas Monjalon     librte_pdump.so.3
330c6a53a6bSThomas Monjalon     librte_pipeline.so.3
331c6a53a6bSThomas Monjalon     librte_pmd_bnxt.so.2
332c6a53a6bSThomas Monjalon     librte_pmd_bond.so.2
333c6a53a6bSThomas Monjalon     librte_pmd_i40e.so.2
334c6a53a6bSThomas Monjalon     librte_pmd_ixgbe.so.2
335c6a53a6bSThomas Monjalon     librte_pmd_dpaa2_qdma.so.1
336c6a53a6bSThomas Monjalon     librte_pmd_ring.so.2
337c6a53a6bSThomas Monjalon     librte_pmd_softnic.so.1
338c6a53a6bSThomas Monjalon     librte_pmd_vhost.so.2
339c6a53a6bSThomas Monjalon     librte_port.so.3
340c6a53a6bSThomas Monjalon     librte_power.so.1
341c6a53a6bSThomas Monjalon     librte_rawdev.so.1
342c6a53a6bSThomas Monjalon     librte_rcu.so.1
343c6a53a6bSThomas Monjalon     librte_reorder.so.1
344c6a53a6bSThomas Monjalon     librte_ring.so.2
345b767a6a2SJasvinder Singh   + librte_sched.so.3
346c6a53a6bSThomas Monjalon     librte_security.so.2
347c6a53a6bSThomas Monjalon     librte_stack.so.1
348c6a53a6bSThomas Monjalon     librte_table.so.3
349c6a53a6bSThomas Monjalon     librte_timer.so.1
350c6a53a6bSThomas Monjalon     librte_vhost.so.4
351c6a53a6bSThomas Monjalon
352c6a53a6bSThomas Monjalon
353c6a53a6bSThomas MonjalonKnown Issues
354c6a53a6bSThomas Monjalon------------
355c6a53a6bSThomas Monjalon
35699ad894dSJohn McNamara* **Unsuitable IOVA mode may be picked as the default.**
35779a0bbe5SAnatoly Burakov
35879a0bbe5SAnatoly Burakov  Not all kernel drivers and not all devices support all IOVA modes. EAL will
35979a0bbe5SAnatoly Burakov  attempt to pick a reasonable default based on a number of factors, but
36099ad894dSJohn McNamara  there may be cases where the default is unsuitable.
36179a0bbe5SAnatoly Burakov
36279a0bbe5SAnatoly Burakov  It is recommended to use the `--iova-mode` command-line parameter if the
36379a0bbe5SAnatoly Burakov  default is not suitable.
36479a0bbe5SAnatoly Burakov
365c6a53a6bSThomas Monjalon
366c6a53a6bSThomas MonjalonTested Platforms
367c6a53a6bSThomas Monjalon----------------
368c6a53a6bSThomas Monjalon
3698ac60cacSWenjie Li* Intel(R) platforms with Intel(R) NICs combinations
3708ac60cacSWenjie Li
3718ac60cacSWenjie Li   * CPU
3728ac60cacSWenjie Li
3738ac60cacSWenjie Li     * Intel(R) Atom(TM) CPU C3758 @ 2.20GHz
3748ac60cacSWenjie Li     * Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
3758ac60cacSWenjie Li     * Intel(R) Xeon(R) CPU D-1553N @ 2.30GHz
3768ac60cacSWenjie Li     * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
3778ac60cacSWenjie Li     * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
3788ac60cacSWenjie Li     * Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
3798ac60cacSWenjie Li     * Intel(R) Xeon(R) Gold 6139 CPU @ 2.30GHz
3808ac60cacSWenjie Li     * Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
3818ac60cacSWenjie Li     * Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz
3828ac60cacSWenjie Li
3838ac60cacSWenjie Li   * OS:
3848ac60cacSWenjie Li
3858ac60cacSWenjie Li     * CentOS 7.6
3868ac60cacSWenjie Li     * Fedora 30
3878ac60cacSWenjie Li     * FreeBSD 12.0
3888ac60cacSWenjie Li     * Red Hat Enterprise Linux Server release 8.0
3898ac60cacSWenjie Li     * Red Hat Enterprise Linux Server release 7.6
3908ac60cacSWenjie Li     * Suse12SP3
3918ac60cacSWenjie Li     * Ubuntu 16.04
3928ac60cacSWenjie Li     * Ubuntu 16.10
3938ac60cacSWenjie Li     * Ubuntu 18.04
3948ac60cacSWenjie Li     * Ubuntu 19.04
3958ac60cacSWenjie Li
3968ac60cacSWenjie Li   * NICs:
3978ac60cacSWenjie Li
3988ac60cacSWenjie Li     * Intel(R) 82599ES 10 Gigabit Ethernet Controller
3998ac60cacSWenjie Li
4008ac60cacSWenjie Li       * Firmware version: 0x61bf0001
4018ac60cacSWenjie Li       * Device id (pf/vf): 8086:10fb / 8086:10ed
4028ac60cacSWenjie Li       * Driver version: 5.6.1 (ixgbe)
4038ac60cacSWenjie Li
4048ac60cacSWenjie Li     * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
4058ac60cacSWenjie Li
4068ac60cacSWenjie Li       * Firmware version: 0x800003e7
4078ac60cacSWenjie Li       * Device id (pf/vf): 8086:15ad / 8086:15a8
4088ac60cacSWenjie Li       * Driver version: 5.1.0 (ixgbe)
4098ac60cacSWenjie Li
4108ac60cacSWenjie Li     * Intel Corporation Ethernet Controller 10G X550T
4118ac60cacSWenjie Li
4128ac60cacSWenjie Li       * Firmware version: 0x80000482
4138ac60cacSWenjie Li       * Device id (pf): 8086:1563
4148ac60cacSWenjie Li       * Driver version: 5.6.1 (ixgbe)
4158ac60cacSWenjie Li
4168ac60cacSWenjie Li     * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
4178ac60cacSWenjie Li
4188ac60cacSWenjie Li       * Firmware version: 7.00 0x80004cdb
4198ac60cacSWenjie Li       * Device id (pf/vf): 8086:1572 / 8086:154c
4208ac60cacSWenjie Li       * Driver version: 2.9.21 (i40e)
4218ac60cacSWenjie Li
4228ac60cacSWenjie Li     * Intel(R) Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
4238ac60cacSWenjie Li
4248ac60cacSWenjie Li       * Firmware version: 4.10 0x80001a3c
4258ac60cacSWenjie Li       * Device id (pf/vf): 8086:37d0 / 8086:37cd
4268ac60cacSWenjie Li       * Driver version: 2.9.21 (i40e)
4278ac60cacSWenjie Li
4288ac60cacSWenjie Li     * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
4298ac60cacSWenjie Li
4308ac60cacSWenjie Li       * Firmware version: 7.00 0x80004cf8
4318ac60cacSWenjie Li       * Device id (pf/vf): 8086:158b / 8086:154c
4328ac60cacSWenjie Li       * Driver version: 2.9.21 (i40e)
4338ac60cacSWenjie Li
4348ac60cacSWenjie Li     * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
4358ac60cacSWenjie Li
4368ac60cacSWenjie Li       * Firmware version: 7.00 0x80004c97
4378ac60cacSWenjie Li       * Device id (pf/vf): 8086:1583 / 8086:154c
4388ac60cacSWenjie Li       * Driver version: 2.9.21 (i40e)
4398ac60cacSWenjie Li
4408ac60cacSWenjie Li     * Intel(R) Corporation I350 Gigabit Network Connection
4418ac60cacSWenjie Li
4428ac60cacSWenjie Li       * Firmware version: 1.63, 0x80000cbc
4438ac60cacSWenjie Li       * Device id (pf/vf): 8086:1521 / 8086:1520
4448ac60cacSWenjie Li       * Driver version: 5.4.0-k (igb)
4458ac60cacSWenjie Li
4468ac60cacSWenjie Li     * Intel Corporation I210 Gigabit Network Connection
4478ac60cacSWenjie Li
4488ac60cacSWenjie Li       * Firmware version: 3.25, 0x800006eb
4498ac60cacSWenjie Li       * Device id (pf): 8086:1533
4508ac60cacSWenjie Li       * Driver version: 5.4.0-k(igb)
451a91ca789SJerin Jacob
452e0a0b3d6SRaslan Darawsheh* Intel(R) platforms with Mellanox(R) NICs combinations
453e0a0b3d6SRaslan Darawsheh
454e0a0b3d6SRaslan Darawsheh  * CPU:
455e0a0b3d6SRaslan Darawsheh
456e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz
457e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
458e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
459e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
460e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
461e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2640 @ 2.50GHz
462e0a0b3d6SRaslan Darawsheh    * Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
463e0a0b3d6SRaslan Darawsheh
464e0a0b3d6SRaslan Darawsheh  * OS:
465e0a0b3d6SRaslan Darawsheh
466e0a0b3d6SRaslan Darawsheh    * Red Hat Enterprise Linux Server release 7.6 (Maipo)
467e0a0b3d6SRaslan Darawsheh    * Red Hat Enterprise Linux Server release 7.5 (Maipo)
468e0a0b3d6SRaslan Darawsheh    * Red Hat Enterprise Linux Server release 7.4 (Maipo)
469e0a0b3d6SRaslan Darawsheh    * Red Hat Enterprise Linux Server release 7.3 (Maipo)
470e0a0b3d6SRaslan Darawsheh    * Red Hat Enterprise Linux Server release 7.2 (Maipo)
471e0a0b3d6SRaslan Darawsheh    * Ubuntu 19.04
472e0a0b3d6SRaslan Darawsheh    * Ubuntu 18.10
473e0a0b3d6SRaslan Darawsheh    * Ubuntu 18.04
474e0a0b3d6SRaslan Darawsheh    * Ubuntu 16.04
475e0a0b3d6SRaslan Darawsheh    * SUSE Linux Enterprise Server 15
476e0a0b3d6SRaslan Darawsheh
477e0a0b3d6SRaslan Darawsheh  * OFED:
478e0a0b3d6SRaslan Darawsheh
479e0a0b3d6SRaslan Darawsheh    * MLNX_OFED 4.6-1.0.1.1
480e0a0b3d6SRaslan Darawsheh    * MLNX_OFED 4.6-4.1.2.0
481e0a0b3d6SRaslan Darawsheh
482e0a0b3d6SRaslan Darawsheh  * NICs:
483e0a0b3d6SRaslan Darawsheh
484e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
485e0a0b3d6SRaslan Darawsheh
486e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
487e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1007
488e0a0b3d6SRaslan Darawsheh      * Firmware version: 2.42.5000
489e0a0b3d6SRaslan Darawsheh
490e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
491e0a0b3d6SRaslan Darawsheh
492e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
493e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
494e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
495e0a0b3d6SRaslan Darawsheh
496e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
497e0a0b3d6SRaslan Darawsheh
498e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
499e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
500e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
501e0a0b3d6SRaslan Darawsheh
502e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
503e0a0b3d6SRaslan Darawsheh
504e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
505e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
506e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
507e0a0b3d6SRaslan Darawsheh
508e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
509e0a0b3d6SRaslan Darawsheh
510e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
511e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
512e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
513e0a0b3d6SRaslan Darawsheh
514e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
515e0a0b3d6SRaslan Darawsheh
516e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
517e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
518e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
519e0a0b3d6SRaslan Darawsheh
520e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
521e0a0b3d6SRaslan Darawsheh
522e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
523e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
524e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
525e0a0b3d6SRaslan Darawsheh
526e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
527e0a0b3d6SRaslan Darawsheh
528e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
529e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
530e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
531e0a0b3d6SRaslan Darawsheh
532e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
533e0a0b3d6SRaslan Darawsheh
534e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
535e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
536e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
537e0a0b3d6SRaslan Darawsheh
538e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
539e0a0b3d6SRaslan Darawsheh
540e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
541e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
542e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
543e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
544e0a0b3d6SRaslan Darawsheh
545e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
546e0a0b3d6SRaslan Darawsheh
547e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
548e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
549e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
550e0a0b3d6SRaslan Darawsheh
551e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
552e0a0b3d6SRaslan Darawsheh
553e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
554e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1013
555e0a0b3d6SRaslan Darawsheh      * Firmware version: 12.25.6406 and above
556e0a0b3d6SRaslan Darawsheh
557e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
558e0a0b3d6SRaslan Darawsheh
559e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
560e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1015
561e0a0b3d6SRaslan Darawsheh      * Firmware version: 14.25.6406 and above
562e0a0b3d6SRaslan Darawsheh
563e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
564e0a0b3d6SRaslan Darawsheh
565e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x8
566e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1015
567e0a0b3d6SRaslan Darawsheh      * Firmware version: 14.25.6406 and above
568e0a0b3d6SRaslan Darawsheh
569e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
570e0a0b3d6SRaslan Darawsheh
571e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
572e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1017
573e0a0b3d6SRaslan Darawsheh      * Firmware version: 16.25.6406 and above
574e0a0b3d6SRaslan Darawsheh
575e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-5 Ex EN 100G MCX516A-CDAT (2x100G)
576e0a0b3d6SRaslan Darawsheh
577e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 4.0 x16
578e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1019
579e0a0b3d6SRaslan Darawsheh      * Firmware version: 16.25.6406 and above
580e0a0b3d6SRaslan Darawsheh
581e0a0b3d6SRaslan Darawsheh* Mellanox(R) BlueField SmartNIC
582e0a0b3d6SRaslan Darawsheh
583e0a0b3d6SRaslan Darawsheh  * Mellanox(R) BlueField SmartNIC MT416842 (2x25G)
584e0a0b3d6SRaslan Darawsheh
585e0a0b3d6SRaslan Darawsheh    * Host interface: PCI Express 3.0 x16
586e0a0b3d6SRaslan Darawsheh    * Device ID: 15b3:a2d2
587e0a0b3d6SRaslan Darawsheh    * Firmware version: 18.25.6600
588e0a0b3d6SRaslan Darawsheh
589e0a0b3d6SRaslan Darawsheh  * SoC Arm cores running OS:
590e0a0b3d6SRaslan Darawsheh
591e0a0b3d6SRaslan Darawsheh    * CentOS Linux release 7.5.1804 (AltArch)
592e0a0b3d6SRaslan Darawsheh    * MLNX_OFED 4.6-3.5.8.0
593e0a0b3d6SRaslan Darawsheh
594e0a0b3d6SRaslan Darawsheh  * DPDK application running on Arm cores inside SmartNIC
595e0a0b3d6SRaslan Darawsheh
596e0a0b3d6SRaslan Darawsheh* IBM Power 9 platforms with Mellanox(R) NICs combinations
597e0a0b3d6SRaslan Darawsheh
598e0a0b3d6SRaslan Darawsheh  * CPU:
599e0a0b3d6SRaslan Darawsheh
600e0a0b3d6SRaslan Darawsheh    * POWER9 2.2 (pvr 004e 1202) 2300MHz
601e0a0b3d6SRaslan Darawsheh
602e0a0b3d6SRaslan Darawsheh  * OS:
603e0a0b3d6SRaslan Darawsheh
604e0a0b3d6SRaslan Darawsheh    * Ubuntu 18.04.1 LTS (Bionic Beaver)
605e0a0b3d6SRaslan Darawsheh
606e0a0b3d6SRaslan Darawsheh  * NICs:
607e0a0b3d6SRaslan Darawsheh
608e0a0b3d6SRaslan Darawsheh    * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
609e0a0b3d6SRaslan Darawsheh
610e0a0b3d6SRaslan Darawsheh      * Host interface: PCI Express 3.0 x16
611e0a0b3d6SRaslan Darawsheh      * Device ID: 15b3:1017
612e0a0b3d6SRaslan Darawsheh      * Firmware version: 16.25.6406
613e0a0b3d6SRaslan Darawsheh
614e0a0b3d6SRaslan Darawsheh  * OFED:
615e0a0b3d6SRaslan Darawsheh
616e0a0b3d6SRaslan Darawsheh    * MLNX_OFED 4.6-4.1.2.0
617e0a0b3d6SRaslan Darawsheh
618a91ca789SJerin Jacob* ARMv8 SoC combinations from Marvell (with integrated NICs)
619a91ca789SJerin Jacob
620a91ca789SJerin Jacob   * SoC:
621a91ca789SJerin Jacob
622a91ca789SJerin Jacob     * CN83xx, CN96xx, CNF95xx, CN93xx
623a91ca789SJerin Jacob
624a91ca789SJerin Jacob   * OS (Based on Marvell OCTEON TX SDK 10.0):
625a91ca789SJerin Jacob
626a91ca789SJerin Jacob     * Arch Linux
627a91ca789SJerin Jacob     * Buildroot 2018.11
628a91ca789SJerin Jacob     * Ubuntu 16.04.1 LTS
629a91ca789SJerin Jacob     * Ubuntu 16.10
630a91ca789SJerin Jacob     * Ubuntu 18.04.1
631a91ca789SJerin Jacob     * Ubuntu 19.04
632