4 .. **Read this first.**
6 The text in the sections below explains how to update the release notes.
8 Use proper spelling, capitalization and punctuation in all sections.
10 Variable and config names should be quoted as fixed width text:
13 Build the docs and view the output file to ensure the changes are correct::
17 xdg-open build/doc/html/guides/rel_notes/release_18_05.html
23 .. This section should contain new features added in this release. Sample
26 * **Add a title in the past tense with a full stop.**
28 Add a short 1-2 sentence description in the past tense. The description
29 should be enough to allow someone scanning the release notes to
30 understand the new feature.
32 If the feature adds a lot of sub-features you can use a bullet list like
35 * Added feature foo to do something.
36 * Enhanced feature bar to do something else.
38 Refer to the previous release notes for examples.
40 This section is a comment. Do not overwrite or remove it.
41 Also, make sure to start the actual text at the margin.
42 =========================================================
44 * **Reworked memory subsystem.**
46 Memory subsystem has been reworked to support new functionality.
48 On Linux, support for reserving/unreserving hugepage memory at runtime has been
49 added, so applications no longer need to pre-reserve memory at startup. Due to
50 reorganized internal workings of memory subsystem, any memory allocated
51 through ``rte_malloc()`` or ``rte_memzone_reserve()`` is no longer guaranteed
52 to be IOVA-contiguous.
54 This functionality has introduced the following changes:
56 * ``rte_eal_get_physmem_layout()`` was removed.
57 * A new flag for memzone reservation (``RTE_MEMZONE_IOVA_CONTIG``) was added
58 to ensure reserved memory will be IOVA-contiguous, for use with device
59 drivers and other cases requiring such memory.
60 * New callbacks for memory allocation/deallocation events, allowing users (or
61 drivers) to be notified of new memory being allocated or deallocated
62 * New callbacks for validating memory allocations above a specified limit,
63 allowing user to permit or deny memory allocations.
64 * A new command-line switch ``--legacy-mem`` to enable EAL behavior similar to
65 how older versions of DPDK worked (memory segments that are IOVA-contiguous,
66 but hugepages are reserved at startup only, and can never be released).
67 * A new command-line switch ``--single-file-segments`` to put all memory
68 segments within a segment list in a single file.
69 * A set of convenience function calls to look up and iterate over allocated
71 * ``-m`` and ``--socket-mem`` command-line arguments now carry an additional
72 meaning and mark pre-reserved hugepages as "unfree-able", thereby acting as
73 a mechanism guaranteeing minimum availability of hugepage memory to the
76 Reserving/unreserving memory at runtime is not currently supported on FreeBSD.
78 * **Added bucket mempool driver.**
80 Added a bucket mempool driver which provides a way to allocate contiguous
82 The number of objects in the block depends on how many objects fit in the
83 ``RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB`` memory chunk which is a build time option.
84 The number may be obtained using ``rte_mempool_ops_get_info()`` API.
85 Contiguous blocks may be allocated using ``rte_mempool_get_contig_blocks()`` API.
87 * **Added support for port representors.**
89 Added DPDK port representors (also known as "VF representors" in the specific
90 context of VFs), which are to DPDK what the Ethernet switch device driver
91 model (**switchdev**) is to Linux, and which can be thought as a software
92 "patch panel" front-end for applications. DPDK port representors are
93 implemented as additional virtual Ethernet device (**ethdev**) instances,
94 spawned on an as-needed basis through configuration parameters passed to the
95 driver of the underlying device using devargs.
97 * **Added support for VXLAN and NVGRE tunnel endpoint.**
99 New actions types have been added to support encapsulation and decapsulation
100 operations for a tunnel endpoint. The new action types are
101 ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_ENCAP``, ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_DECAP``,
102 ``RTE_FLOW_ACTION_TYPE_JUMP``. A new item type ``RTE_FLOW_ACTION_TYPE_MARK`` has been
103 added to match a flow against a previously marked flow. A shared counter has also been
104 introduced to the flow API to count a group of flows.
106 * **Added PMD-recommended Tx and Rx parameters.**
108 Applications can now query drivers for device-tuned values of
109 ring sizes, burst sizes, and number of queues.
111 * **Added RSS hash and key update to CXGBE PMD.**
113 Added support for updating the RSS hash and key to the CXGBE PMD.
115 * **Added CXGBE VF PMD.**
117 CXGBE VF Poll Mode Driver has been added to run DPDK over Chelsio
118 T5/T6 NIC VF instances.
120 * **Updated mlx5 driver.**
122 Updated the mlx5 driver including the following changes:
124 * Introduced Multi-packet Rx to enable 100Gb/sec with 64B frames.
125 * Support for being run by non-root users given a reduced set of capabilities
126 ``CAP_NET_ADMIN``, ``CAP_NET_RAW`` and ``CAP_IPC_LOCK``.
127 * Support for TSO and checksum for generic UDP and IP tunnels.
128 * Support for inner checksum and RSS for GRE, VXLAN-GPE, MPLSoGRE
129 and MPLSoUDP tunnels.
130 * Accommodate the new memory hotplug model.
131 * Support for non virtually contiguous mempools.
132 * Support for MAC adding along with allmulti and promiscuous modes from VF.
133 * Support for Mellanox BlueField SoC device.
134 * Support for PMD defaults for queue number and depth to improve the out
135 of the box performance.
137 * **Updated mlx4 driver.**
139 Updated the mlx4 driver including the following changes:
141 * Support for to being run by non-root users given a reduced set of capabilities
142 ``CAP_NET_ADMIN``, ``CAP_NET_RAW`` and ``CAP_IPC_LOCK``.
143 * Supported CRC strip toggling.
144 * Accommodate the new memory hotplug model.
145 * Support non virtually contiguous mempools.
146 * Dropped support for Mellanox OFED 4.2.
148 * **Updated Solarflare network PMD.**
150 Updated the sfc_efx driver including the following changes:
152 * Added support for Solarflare XtremeScale X2xxx family adapters.
153 * Added support for NVGRE, VXLAN and GENEVE filters in flow API.
154 * Added support for DROP action in flow API.
155 * Added support for equal stride super-buffer Rx mode (X2xxx only).
156 * Added support for MARK and FLAG actions in flow API (X2xxx only).
158 * **Added Ethernet poll mode driver for AMD XGBE devices.**
160 Added the new ``axgbe`` ethernet poll mode driver for AMD XGBE devices.
161 See the :doc:`../nics/axgbe` nic driver guide for more details on this
164 * **Updated szedata2 PMD.**
166 Added support for new NFB-200G2QL card.
167 A new API was introduced in the libsze2 library which the szedata2 PMD depends
168 on, thus the new version of the library was needed.
169 New versions of the packages are available and the minimum required version
172 * **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray).**
174 Added support for the Broadcom NetXtreme-S (BCM58800) family of controllers
175 (aka Stingray). The BCM58800 devices feature a NetXtreme E-Series advanced
176 network controller, a high-performance ARM CPU block, PCI Express (PCIe)
177 Gen3 interfaces, key accelerators for compute offload and a high-speed
178 memory subsystem including L3 cache and DDR4 interfaces, all interconnected
179 by a coherent Network-on-chip (NOC) fabric.
181 The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz,
182 arranged in a multi-cluster configuration.
184 * **Added vDPA in vhost-user lib.**
186 Added support for selective datapath in the vhost-user lib. vDPA stands for vhost
187 Data Path Acceleration. It supports virtio ring compatible devices to serve
188 the virtio driver directly to enable datapath acceleration.
190 * **Added IFCVF vDPA driver.**
192 Added IFCVF vDPA driver to support Intel FPGA 100G VF devices. IFCVF works
193 as a HW vhost data path accelerator, it supports live migration and is
194 compatible with virtio 0.95 and 1.0. This driver registers the ifcvf vDPA driver
195 to vhost lib, when virtio connects. With the help of the registered vDPA
196 driver the assigned VF gets configured to Rx/Tx directly to VM's virtio
199 * **Added support for vhost dequeue interrupt mode.**
201 Added support for vhost dequeue interrupt mode to release CPUs to others
202 when there is no data to transmit. Applications can register an epoll event
203 file descriptor to associate Rx queues with interrupt vectors.
205 * **Added support for virtio-user server mode.**
207 In a container environment if the vhost-user backend restarts, there's no way
208 for it to reconnect to virtio-user. To address this, support for server mode
209 has been added. In this mode the socket file is created by virtio-user, which the
210 backend connects to. This means that if the backend restarts, it can reconnect
211 to virtio-user and continue communications.
213 * **Added crypto workload support to vhost library.**
215 New APIs have been introduced in the vhost library to enable virtio crypto support
216 including session creation/deletion handling and translating virtio-crypto
217 requests into DPDK crypto operations. A sample application has also been introduced.
219 * **Added virtio crypto PMD.**
221 Added a new Poll Mode Driver for virtio crypto devices, which provides
222 AES-CBC ciphering and AES-CBC with HMAC-SHA1 algorithm-chaining. See the
223 :doc:`../cryptodevs/virtio` crypto driver guide for more details on
226 * **Added AMD CCP Crypto PMD.**
228 Added the new ``ccp`` crypto driver for AMD CCP devices. See the
229 :doc:`../cryptodevs/ccp` crypto driver guide for more details on
232 * **Updated AESNI MB PMD.**
234 The AESNI MB PMD has been updated with additional support for:
236 * AES-CMAC (128-bit key).
238 * **Added the Compressdev Library, a generic compression service library.**
240 Added the Compressdev library which provides an API for offload of compression and
241 decompression operations to hardware or software accelerator devices.
243 * **Added a new compression poll mode driver using Intels ISA-L.**
245 Added the new ``ISA-L`` compression driver, for compression and decompression
246 operations in software. See the :doc:`../compressdevs/isal` compression driver
247 guide for details on this new driver.
249 * **Added the Event Timer Adapter Library.**
251 The Event Timer Adapter Library extends the event-based model by introducing
252 APIs that allow applications to arm/cancel event timers that generate
253 timer expiry events. This new type of event is scheduled by an event device
254 along with existing types of events.
256 * **Added OcteonTx TIM Driver (Event timer adapter).**
258 The OcteonTx Timer block enables software to schedule events for a future
259 time, it is exposed to an application via the Event timer adapter library.
261 See the :doc:`../eventdevs/octeontx` guide for more details
263 * **Added Event Crypto Adapter Library.**
265 Added the Event Crypto Adapter Library. This library extends the
266 event-based model by introducing APIs that allow applications to
267 enqueue/dequeue crypto operations to/from cryptodev as events scheduled
270 * **Added Ifpga Bus, a generic Intel FPGA Bus library.**
272 Added the Ifpga Bus library which provides support for integrating any Intel
273 FPGA device with the DPDK framework. It provides Intel FPGA Partial Bit
274 Stream AFU (Accelerated Function Unit) scan and drivers probe.
276 * **Added IFPGA (Intel FPGA) Rawdev Driver.**
278 Added a new Rawdev driver called IFPGA (Intel FPGA) Rawdev Driver, which cooperates
279 with OPAE (Open Programmable Acceleration Engine) shared code to provide common FPGA
280 management ops for FPGA operation.
282 See the :doc:`../rawdevs/ifpga_rawdev` programmer's guide for more details.
284 * **Added DPAA2 QDMA Driver (in rawdev).**
286 The DPAA2 QDMA is an implementation of the rawdev API, that provide a means
287 of initiating a DMA transaction from CPU. The initiated DMA is performed
288 without the CPU being involved in the actual DMA transaction.
290 See the :doc:`../rawdevs/dpaa2_qdma` guide for more details.
292 * **Added DPAA2 Command Interface Driver (in rawdev).**
294 The DPAA2 CMDIF is an implementation of the rawdev API, that provides
295 communication between the GPP and NXP's QorIQ based AIOP Block (Firmware).
296 Advanced IO Processor i.e. AIOP are clusters of programmable RISC engines
297 optimized for flexible networking and I/O operations. The communication
298 between GPP and AIOP is achieved via using DPCI devices exposed by MC for
299 GPP <--> AIOP interaction.
301 See the :doc:`../rawdevs/dpaa2_cmdif` guide for more details.
303 * **Added device event monitor framework.**
305 Added a general device event monitor framework to EAL, for device dynamic
306 management to facilitate device hotplug awareness and associated
307 actions. The list of new APIs is:
309 * ``rte_dev_event_monitor_start`` and ``rte_dev_event_monitor_stop`` for
310 the event monitor enabling and disabling.
311 * ``rte_dev_event_callback_register`` and ``rte_dev_event_callback_unregister``
312 for registering and un-registering user callbacks.
314 Linux uevent is supported as a backend of this device event notification framework.
316 * **Added support for procinfo and pdump on eth vdev.**
318 For ethernet virtual devices (like TAP, PCAP, etc.), with this feature, we can get
319 stats/xstats on shared memory from a secondary process, and also pdump packets on
320 those virtual devices.
322 * **Enhancements to the Packet Framework Library.**
324 Design and development of new API functions for Packet Framework library that
325 implement a common set of actions such as traffic metering, packet
326 encapsulation, network address translation, TTL update, etc., for pipeline
327 table and input ports to speed up application development. The API functions
328 includes creating action profiles, registering actions to the profiles,
329 instantiating action profiles for pipeline table and input ports, etc.
331 * **Added the BPF Library.**
333 The BPF Library provides the ability to load and execute
334 Enhanced Berkeley Packet Filters (eBPF) within user-space DPDK applications.
335 It also introduces a basic framework to load/unload BPF-based filters
336 on Eth devices (right now only via SW RX/TX callbacks).
337 It also adds a dependency on libelf.
343 .. This section should contain API changes. Sample format:
345 * Add a short 1-2 sentence description of the API change. Use fixed width
346 quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past
349 This section is a comment. Do not overwrite or remove it.
350 Also, make sure to start the actual text at the margin.
351 =========================================================
353 * service cores: No longer marked as experimental.
355 The service cores functions are no longer marked as experimental, and have
356 become part of the normal DPDK API and ABI. Any future ABI changes will be
357 announced at least one release before the ABI change is made. There are no
358 ABI breaking changes planned.
360 * eal: The ``rte_lcore_has_role()`` return value changed.
362 This function now returns true or false, respectively,
363 rather than 0 or < 0 for success or failure.
364 It makes use of the function more intuitive.
366 * mempool: The capability flags and related functions have been removed.
368 Flags ``MEMPOOL_F_CAPA_PHYS_CONTIG`` and
369 ``MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS`` were used by octeontx mempool
370 driver to customize generic mempool library behavior.
371 Now the new driver callbacks ``calc_mem_size`` and ``populate`` may be
372 used to achieve it without specific knowledge in the generic code.
374 * mempool: The following xmem functions have been deprecated:
376 - ``rte_mempool_xmem_create``
377 - ``rte_mempool_xmem_size``
378 - ``rte_mempool_xmem_usage``
379 - ``rte_mempool_populate_iova_tab``
381 * mbuf: The control mbuf API has been removed in v18.05. The impacted
382 functions and macros are:
384 - ``rte_ctrlmbuf_init()``
385 - ``rte_ctrlmbuf_alloc()``
386 - ``rte_ctrlmbuf_free()``
387 - ``rte_ctrlmbuf_data()``
388 - ``rte_ctrlmbuf_len()``
389 - ``rte_is_ctrlmbuf()``
392 The packet mbuf API should be used as a replacement.
394 * meter: API updated to accommodate configuration profiles.
396 The meter API has been changed to support meter configuration profiles. The
397 configuration profile represents the set of configuration parameters
398 for a given meter object, such as the rates and sizes for the token
399 buckets. These configuration parameters were previously part of the meter
400 object internal data structure. The separation of the configuration
401 parameters from the meter object data structure results in reducing its
402 memory footprint which helps in better cache utilization when a large number
403 of meter objects are used.
405 * ethdev: The function ``rte_eth_dev_count()``, often mis-used to iterate
406 over ports, is deprecated and replaced by ``rte_eth_dev_count_avail()``.
407 There is also a new function ``rte_eth_dev_count_total()`` to get the
408 total number of allocated ports, available or not.
409 The hotplug-proof applications should use ``RTE_ETH_FOREACH_DEV`` or
410 ``RTE_ETH_FOREACH_DEV_OWNED_BY`` as port iterators.
412 * ethdev: In struct ``struct rte_eth_dev_info``, field ``rte_pci_device *pci_dev``
413 has been replaced with field ``struct rte_device *device``.
415 * ethdev: Changes to the semantics of ``rte_eth_dev_configure()`` parameters.
417 If both the ``nb_rx_q`` and ``nb_tx_q`` parameters are zero,
418 ``rte_eth_dev_configure()`` will now use PMD-recommended queue sizes, or if
419 recommendations are not provided by the PMD the function will use ethdev
420 fall-back values. Previously setting both of the parameters to zero would
421 have resulted in ``-EINVAL`` being returned.
423 * ethdev: Changes to the semantics of ``rte_eth_rx_queue_setup()`` parameters.
425 If the ``nb_rx_desc`` parameter is zero, ``rte_eth_rx_queue_setup`` will
426 now use the PMD-recommended Rx ring size, or in the case where the PMD
427 does not provide a recommendation, will use an ethdev-provided
428 fall-back value. Previously, setting ``nb_rx_desc`` to zero would have
429 resulted in an error.
431 * ethdev: Changes to the semantics of ``rte_eth_tx_queue_setup()`` parameters.
433 If the ``nb_tx_desc`` parameter is zero, ``rte_eth_tx_queue_setup`` will
434 now use the PMD-recommended Tx ring size, or in the case where the PMD
435 does not provide a recommendation, will use an ethdev-provided
436 fall-back value. Previously, setting ``nb_tx_desc`` to zero would have
437 resulted in an error.
439 * ethdev: Several changes were made to the flow API.
441 * The unused DUP action was removed.
442 * Actions semantics in flow rules: list order now matters ("first
443 to last" instead of "all simultaneously"), repeated actions are now
444 all performed, and they do not individually have (non-)terminating
446 * Flow rules are now always terminating unless a ``PASSTHRU`` action is
448 * C99-style flexible arrays were replaced with standard pointers in RSS
449 action and in RAW pattern item structures due to compatibility issues.
450 * The RSS action was modified to not rely on external
451 ``struct rte_eth_rss_conf`` anymore to instead expose its own and more
452 appropriately named configuration fields directly
453 (``rss_conf->rss_key`` => ``key``,
454 ``rss_conf->rss_key_len`` => ``key_len``,
455 ``rss_conf->rss_hf`` => ``types``,
456 ``num`` => ``queue_num``), and the addition of missing RSS parameters
457 (``func`` for RSS hash function to apply and ``level`` for the
458 encapsulation level).
459 * The VLAN pattern item (``struct rte_flow_item_vlan``) was modified to
460 include inner EtherType instead of outer TPID. Its default mask was also
461 modified to cover the VID part (lower 12 bits) of TCI only.
462 * A new transfer attribute was added to ``struct rte_flow_attr`` in order
463 to clarify the behavior of some pattern items.
464 * PF and VF pattern items are now only accepted by PMDs that implement
465 them (bnxt and i40e) when the transfer attribute is also present, for
467 * Pattern item PORT was renamed PHY_PORT to avoid confusion with DPDK port
469 * An action counterpart to the PHY_PORT pattern item was added in order to
470 redirect matching traffic to a specific physical port.
471 * PORT_ID pattern item and actions were added to match and target DPDK
472 port IDs at a higher level than PHY_PORT.
473 * ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_ENCAP`` action items were added to support
474 tunnel encapsulation operation for VXLAN and NVGRE type tunnel endpoint.
475 * ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_DECAP`` action items were added to support
476 tunnel decapsulation operation for VXLAN and NVGRE type tunnel endpoint.
477 * ``RTE_FLOW_ACTION_TYPE_JUMP`` action item was added to support a matched flow
478 to be redirected to the specific group.
479 * ``RTE_FLOW_ACTION_TYPE_MARK`` item type has been added to match a flow against
480 a previously marked flow.
482 * ethdev: Change flow APIs regarding count action:
484 * ``rte_flow_create()`` API count action now requires the ``struct rte_flow_action_count``.
485 * ``rte_flow_query()`` API parameter changed from action type to action structure.
487 * ethdev: Changes to offload API
489 A pure per-port offloading isn't requested to be repeated in [rt]x_conf->offloads to
490 ``rte_eth_[rt]x_queue_setup()``. Now any offloading enabled in ``rte_eth_dev_configure()``
491 can't be disabled by ``rte_eth_[rt]x_queue_setup()``. Any new added offloading which has
492 not been enabled in ``rte_eth_dev_configure()`` and is requested to be enabled in
493 ``rte_eth_[rt]x_queue_setup()`` must be per-queue type, or otherwise trigger an error log.
495 * ethdev: Runtime queue setup
497 ``rte_eth_rx_queue_setup`` and ``rte_eth_tx_queue_setup`` can be called after
498 ``rte_eth_dev_start`` if the device supports runtime queue setup. The device driver can
499 expose this capability through ``rte_eth_dev_info_get``. A Rx or Tx queue
500 set up at runtime need to be started explicitly by ``rte_eth_dev_rx_queue_start``
501 or ``rte_eth_dev_tx_queue_start``.
507 .. This section should contain ABI changes. Sample format:
509 * Add a short 1-2 sentence description of the ABI change that was announced
510 in the previous releases and made in this release. Use fixed width quotes
511 for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
513 This section is a comment. Do not overwrite or remove it.
514 Also, make sure to start the actual text at the margin.
515 =========================================================
517 * ring: The alignment constraints on the ring structure has been relaxed
518 to one cache line instead of two, and an empty cache line padding is
519 added between the producer and consumer structures. The size of the
520 structure and the offset of the fields remains the same on platforms
521 with 64B cache line, but changes on other platforms.
523 * mempool: Some ops have changed.
525 A new callback ``calc_mem_size`` has been added to ``rte_mempool_ops``
526 to allow customization of the required memory size calculation.
527 A new callback ``populate`` has been added to ``rte_mempool_ops``
528 to allow customized object population.
529 Callback ``get_capabilities`` has been removed from ``rte_mempool_ops``
530 since its features are covered by ``calc_mem_size`` and ``populate``
532 Callback ``register_memory_area`` has been removed from ``rte_mempool_ops``
533 since the new callback ``populate`` may be used instead of it.
535 * ethdev: Additional fields in rte_eth_dev_info.
537 The ``rte_eth_dev_info`` structure has had two extra entries appended to the
538 end of it: ``default_rxportconf`` and ``default_txportconf``. Each of these
539 in turn are ``rte_eth_dev_portconf`` structures containing three fields of
540 type ``uint16_t``: ``burst_size``, ``ring_size``, and ``nb_queues``. These
541 are parameter values recommended for use by the PMD.
543 * ethdev: ABI for all flow API functions was updated.
545 This includes functions ``rte_flow_copy``, ``rte_flow_create``,
546 ``rte_flow_destroy``, ``rte_flow_error_set``, ``rte_flow_flush``,
547 ``rte_flow_isolate``, ``rte_flow_query`` and ``rte_flow_validate``, due to
548 changes in error type definitions (``enum rte_flow_error_type``), removal
549 of the unused DUP action (``enum rte_flow_action_type``), modified
550 behavior for flow rule actions (see API changes), removal of C99 flexible
551 array from RAW pattern item (``struct rte_flow_item_raw``), complete
552 rework of the RSS action definition (``struct rte_flow_action_rss``),
553 sanity fix in the VLAN pattern item (``struct rte_flow_item_vlan``) and
554 new transfer attribute (``struct rte_flow_attr``).
556 * bbdev: New parameter added to rte_bbdev_op_cap_turbo_dec.
558 A new parameter ``max_llr_modulus`` has been added to
559 ``rte_bbdev_op_cap_turbo_dec`` structure to specify maximal LLR (likelihood
560 ratio) absolute value.
562 * bbdev: Queue Groups split into UL/DL Groups.
564 Queue Groups have been split into UL/DL Groups in the Turbo Software Driver.
565 They are independent for Decode/Encode. ``rte_bbdev_driver_info`` reflects
572 .. This section should contain new known issues in this release. Sample format:
574 * **Add title in present tense with full stop.**
576 Add a short 1-2 sentence description of the known issue in the present
577 tense. Add information on any known workarounds.
579 This section is a comment. Do not overwrite or remove it.
580 Also, make sure to start the actual text at the margin.
581 =========================================================
583 * **Secondary process launch is not reliable.**
585 Recent memory hotplug patches have made multiprocess startup less reliable
586 than it was in past releases. A number of workarounds are known to work depending
587 on the circumstances. As such it isn't recommended to use the secondary
588 process mechanism for critical systems. The underlying issues will be
589 addressed in upcoming releases.
591 The issue is explained in more detail, including potential workarounds,
592 in the Bugzilla entry referenced below.
594 Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=50
596 * **pdump is not compatible with old applications.**
598 As we changed to use generic multi-process communication for pdump
599 negotiation instead of previous dedicated unix socket way, pdump
600 applications, including the dpdk-pdump example and any other applications
601 using ``librte_pdump``, will not work with older version DPDK primary
604 * **rte_abort takes a long time on FreeBSD.**
606 DPDK processes now allocates a large area of virtual memory address space.
607 As a result ``rte_abort`` on FreeBSD now dumps the contents of the
608 whole reserved memory range, not just the used portion, to a core dump file.
609 Writing this large core file can take a significant amount of time, causing
610 processes to appear to hang on the system.
612 The work around for the issue is to set the system resource limits for core
613 dumps before running any tests, e.g. ``limit coredumpsize 0``. This will
614 effectively disable core dumps on FreeBSD. If they are not to be completely
615 disabled, a suitable limit, e.g. 1G might be specified instead of 0. This
616 needs to be run per-shell session, or before every test run. This change
617 can also be made persistent by adding ``kern.coredump=0`` to ``/etc/sysctl.conf``.
619 Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=53
621 * **ixgbe PMD crash on hotplug detach when no VF created.**
623 ixgbe PMD uninit path cause null pointer dereference because of port representor
624 cleanup when number of VF is zero.
626 Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=57
628 * **Bonding PMD may fail to accept new slave ports in certain conditions.**
630 In certain conditions when using testpmd,
631 bonding may fail to register new slave ports.
633 Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=52.
635 * **Unexpected performance regression in Vhost library.**
637 Patches fixing CVE-2018-1059 were expected to introduce a small performance
638 drop. However, in some setups, bigger performance drops have been measured
639 when running micro-benchmarks.
641 Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=48
644 Shared Library Versions
645 -----------------------
647 .. Update any library version updated in this release and prepend with a ``+``
651 + librte_cfgfile.so.2
654 This section is a comment. Do not overwrite or remove it.
655 =========================================================
658 The libraries prepended with a plus sign were incremented in this version.
664 librte_bitratestats.so.2
667 librte_bus_fslmc.so.1
672 + librte_common_octeontx.so.1
673 + librte_compressdev.so.1
674 librte_cryptodev.so.4
675 librte_distributor.so.1
678 + librte_eventdev.so.4
679 librte_flow_classify.so.1
687 librte_latencystats.so.1
690 + librte_mempool.so.4
700 librte_pmd_ixgbe.so.2
701 + librte_pmd_dpaa2_cmdif.so.1
702 + librte_pmd_dpaa2_qdma.so.1
704 librte_pmd_softnic.so.1
705 librte_pmd_vhost.so.2
721 .. This section should contain a list of platforms that were tested with this
726 * <vendor> platform with <vendor> <type of devices> combinations
731 * Other relevant details...
733 This section is a comment. Do not overwrite or remove it.
734 Also, make sure to start the actual text at the margin.
735 =========================================================
737 * Intel(R) platforms with Intel(R) NICs combinations
741 * Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
742 * Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
743 * Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
744 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
745 * Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
746 * Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
747 * Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz
748 * Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz
749 * Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
758 * Red Hat Enterprise Linux Server release 7.3
759 * SUSE Enterprise Linux 12
768 * Intel(R) 82599ES 10 Gigabit Ethernet Controller
770 * Firmware version: 0x61bf0001
771 * Device id (pf/vf): 8086:10fb / 8086:10ed
772 * Driver version: 5.2.3 (ixgbe)
774 * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
776 * Firmware version: 0x800003e7
777 * Device id (pf/vf): 8086:15ad / 8086:15a8
778 * Driver version: 4.4.6 (ixgbe)
780 * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
782 * Firmware version: 6.01 0x80003221
783 * Device id (pf/vf): 8086:1572 / 8086:154c
784 * Driver version: 2.4.6 (i40e)
786 * Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
788 * Firmware version: 3.33 0x80000fd5 0.0.0
789 * Device id (pf/vf): 8086:37d0 / 8086:37cd
790 * Driver version: 2.4.3 (i40e)
792 * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
794 * Firmware version: 6.01 0x80003221
795 * Device id (pf/vf): 8086:158b / 8086:154c
796 * Driver version: 2.4.6 (i40e)
798 * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
800 * Firmware version: 6.01 0x8000321c
801 * Device id (pf/vf): 8086:1583 / 8086:154c
802 * Driver version: 2.4.6 (i40e)
804 * Intel(R) Corporation I350 Gigabit Network Connection
806 * Firmware version: 1.63, 0x80000dda
807 * Device id (pf/vf): 8086:1521 / 8086:1520
808 * Driver version: 5.4.0-k (igb)
810 * Intel(R) platforms with Mellanox(R) NICs combinations
814 * Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz
815 * Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
816 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
817 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
818 * Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
819 * Intel(R) Xeon(R) CPU E5-2640 @ 2.50GHz
820 * Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
824 * Red Hat Enterprise Linux Server release 7.5 (Maipo)
825 * Red Hat Enterprise Linux Server release 7.4 (Maipo)
826 * Red Hat Enterprise Linux Server release 7.3 (Maipo)
827 * Red Hat Enterprise Linux Server release 7.2 (Maipo)
832 * SUSE Linux Enterprise Server 15
834 * MLNX_OFED: 4.2-1.0.0.0
835 * MLNX_OFED: 4.3-2.0.2.0
839 * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
841 * Host interface: PCI Express 3.0 x8
842 * Device ID: 15b3:1007
843 * Firmware version: 2.42.5000
845 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
847 * Host interface: PCI Express 3.0 x8
848 * Device ID: 15b3:1013
849 * Firmware version: 12.21.1000 and above
851 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
853 * Host interface: PCI Express 3.0 x8
854 * Device ID: 15b3:1013
855 * Firmware version: 12.21.1000 and above
857 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
859 * Host interface: PCI Express 3.0 x8
860 * Device ID: 15b3:1013
861 * Firmware version: 12.21.1000 and above
863 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
865 * Host interface: PCI Express 3.0 x8
866 * Device ID: 15b3:1013
867 * Firmware version: 12.21.1000 and above
869 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
871 * Host interface: PCI Express 3.0 x8
872 * Device ID: 15b3:1013
873 * Firmware version: 12.21.1000 and above
875 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
877 * Host interface: PCI Express 3.0 x16
878 * Device ID: 15b3:1013
879 * Firmware version: 12.21.1000 and above
881 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
883 * Host interface: PCI Express 3.0 x8
884 * Device ID: 15b3:1013
885 * Firmware version: 12.21.1000 and above
887 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
889 * Host interface: PCI Express 3.0 x8
890 * Device ID: 15b3:1013
891 * Firmware version: 12.21.1000 and above
893 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
895 * Host interface: PCI Express 3.0 x16
896 * Device ID: 15b3:1013
897 * Firmware version: 12.21.1000 and above
898 * Firmware version: 12.21.1000 and above
900 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
902 * Host interface: PCI Express 3.0 x16
903 * Device ID: 15b3:1013
904 * Firmware version: 12.21.1000 and above
906 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
908 * Host interface: PCI Express 3.0 x16
909 * Device ID: 15b3:1013
910 * Firmware version: 12.21.1000 and above
912 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
914 * Host interface: PCI Express 3.0 x8
915 * Device ID: 15b3:1015
916 * Firmware version: 14.21.1000 and above
918 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
920 * Host interface: PCI Express 3.0 x8
921 * Device ID: 15b3:1015
922 * Firmware version: 14.21.1000 and above
924 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
926 * Host interface: PCI Express 3.0 x16
927 * Device ID: 15b3:1017
928 * Firmware version: 16.21.1000 and above
930 * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
932 * Host interface: PCI Express 4.0 x16
933 * Device ID: 15b3:1019
934 * Firmware version: 16.21.1000 and above
936 * ARM platforms with Mellanox(R) NICs combinations
940 * Qualcomm ARM 1.1 2500MHz
944 * Red Hat Enterprise Linux Server release 7.5 (Maipo)
948 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
950 * Host interface: PCI Express 3.0 x8
951 * Device ID: 15b3:1015
952 * Firmware version: 14.22.0428
954 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
956 * Host interface: PCI Express 3.0 x16
957 * Device ID: 15b3:1017
958 * Firmware version: 16.22.0428
960 * ARM SoC combinations from Cavium (with integrated NICs)
969 * Ubuntu 16.04.2 LTS with Cavium SDK-6.2.0-Patch2 release support package.
971 * ARM SoC combinations from NXP (with integrated NICs)
975 * NXP/Freescale QorIQ LS1046A with ARM Cortex A72
976 * NXP/Freescale QorIQ LS2088A with ARM Cortex A72
980 * Ubuntu 16.04.3 LTS with NXP QorIQ LSDK 1803 support packages