doc: add port representor in release notes
[dpdk.git] / doc / guides / rel_notes / release_18_05.rst
1 DPDK Release 18.05
2 ==================
3
4 .. **Read this first.**
5
6    The text in the sections below explains how to update the release notes.
7
8    Use proper spelling, capitalization and punctuation in all sections.
9
10    Variable and config names should be quoted as fixed width text:
11    ``LIKE_THIS``.
12
13    Build the docs and view the output file to ensure the changes are correct::
14
15       make doc-guides-html
16
17       xdg-open build/doc/html/guides/rel_notes/release_18_05.html
18
19
20 New Features
21 ------------
22
23 .. This section should contain new features added in this release. Sample
24    format:
25
26    * **Add a title in the past tense with a full stop.**
27
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.
31
32      If the feature adds a lot of sub-features you can use a bullet list like
33      this:
34
35      * Added feature foo to do something.
36      * Enhanced feature bar to do something else.
37
38      Refer to the previous release notes for examples.
39
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      =========================================================
43
44 * **Reworked memory subsystem.**
45
46   Memory subsystem has been reworked to support new functionality.
47
48   On Linux, support for reserving/unreserving hugepage memory at runtime was
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.
53
54   This functionality has introduced the following changes:
55
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 user (or
61     drivers) to be notified of new memory being allocated or deallocated
62   * New callbacks for validating memory allocations above 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
70     memory segments
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
74     application
75
76   Reserving/unreserving memory at runtime is not currently supported on FreeBSD.
77
78 * **Added bucket mempool driver.**
79
80   Added bucket mempool driver which provides a way to allocate contiguous
81   block of objects.
82   Number of objects in the block depends on how many objects fit in
83   RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB memory chunk which is 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.
86
87 * **Added support for port representors.**
88
89   The 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.
96
97 * **Added PMD-recommended Tx and Rx parameters**
98
99   Applications can now query drivers for device-tuned values of
100   ring sizes, burst sizes, and number of queues.
101
102 * **Added RSS hash and key update to CXGBE PMD.**
103
104   Support to update RSS hash and key has been added to CXGBE PMD.
105
106 * **Added CXGBE VF PMD.**
107
108   CXGBE VF Poll Mode Driver has been added to run DPDK over Chelsio
109   T5/T6 NIC VF instances.
110
111 * **Updated mlx5 driver.**
112
113   Updated the mlx5 driver including the following changes:
114
115   * Introduced Multi-packet Rx. With it, achieved 100Gb/sec with 64B frames.
116   * Supported to be run by non-root users given reduced set of capabilities
117     CAP_NET_ADMIN, CAP_NET_RAW and CAP_IPC_LOCK.
118   * Supported TSO and checksum for generic UDP and IP tunnels.
119   * Supported inner checksum and RSS for GRE, VXLAN-GPE, MPLSoGRE
120     and MPLSoUDP tunnels.
121   * Accommodate to the new memory hotplug model.
122   * Supported non virtually contiguous mempools.
123   * Supported MAC adding along with allmulti and promiscuous modes from VF.
124   * Supported Mellanox BlueField SoC device.
125   * Supported PMD defaults for queue number and depth to improve the out
126     of the box performance.
127
128 * **Updated mlx4 driver.**
129
130   Updated the mlx4 driver including the following changes:
131
132   * Supported to be run by non-root users given reduced set of capabilities
133     CAP_NET_ADMIN, CAP_NET_RAW and CAP_IPC_LOCK.
134   * Supported CRC strip toggling.
135   * Accommodate to the new memory hotplug model.
136   * Supported non virtually contiguous mempools.
137   * Dropped support in Mellanox OFED 4.2.
138
139 * **Updated Solarflare network PMD.**
140
141   Updated the sfc_efx driver including the following changes:
142
143   * Added support for Solarflare XtremeScale X2xxx family adapters.
144   * Added support for NVGRE, VXLAN and GENEVE filters in flow API.
145   * Added support for DROP action in flow API.
146   * Added support for equal stride super-buffer Rx mode (X2xxx only).
147   * Added support for MARK and FLAG actions in flow API (X2xxx only).
148
149 * **Added Ethernet poll mode driver for AMD XGBE devices.**
150
151   Added the new ``axgbe`` ethernet poll mode driver for AMD XGBE devices.
152   See the :doc:`../nics/axgbe` nic driver guide for more details on this
153   new driver.
154
155 * **Updated szedata2 PMD.**
156
157   Added support for new NFB-200G2QL card.
158   New API was introduced in the libsze2 library which the szedata2 PMD depends
159   on thus the new version of the library was needed.
160   New versions of the packages are available and the minimum required version
161   is 4.4.1.
162
163 * **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray)**
164
165   The BCM58800 devices feature a NetXtreme E-Series advanced network controller, a high-performance
166   ARM CPU block, PCI Express (PCIe) Gen3 interfaces, key accelerators for compute offload and a high-
167   speed memory subsystem including L3 cache and DDR4 interfaces, all interconnected by a coherent
168   Network-on-chip (NOC) fabric.
169
170   The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster
171   configuration.
172
173 * **Added vDPA in vhost-user lib.**
174
175   Added support for selective datapath in vhost-user lib. vDPA stands for vhost
176   Data Path Acceleration. It supports virtio ring compatible devices to serve
177   virtio driver directly to enable datapath acceleration.
178
179 * **Added IFCVF vDPA driver.**
180
181   Added IFCVF vDPA driver to support Intel FPGA 100G VF device. IFCVF works
182   as a HW vhost data path accelerator, it supports live migration and is
183   compatible with virtio 0.95 and 1.0. This driver registers ifcvf vDPA driver
184   to vhost lib, when virtio connected, with the help of the registered vDPA
185   driver the assigned VF gets configured to Rx/Tx directly to VM's virtio
186   vrings.
187
188 * **Added support for vhost dequeue interrupt mode.**
189
190   Added support for vhost dequeue interrupt mode to release cpus to others when
191   no data to transmit. Applications could register an epoll event fd to associate
192   Rx queues with interrupt vectors.
193
194 * **Added support for virtio-user server mode.**
195   In a container environment if the vhost-user backend restarts, there's no way
196   for it to reconnect to virtio-user. To address this, support for server mode
197   is added. In this mode the socket file is created by virtio-user, which the
198   backend connects to. This means that if the backend restarts, it can reconnect
199   to virtio-user and continue communications.
200
201 * **Added crypto workload support to vhost library.**
202
203   New APIs are introduced in vhost library to enable virtio crypto support
204   including session creation/deletion handling and translating virtio-crypto
205   request into DPDK crypto operations. A sample application is also introduced.
206
207 * **Added virtio crypto PMD.**
208
209   Added a new poll mode driver for virtio crypto devices, which provides
210   AES-CBC ciphering and AES-CBC with HMAC-SHA1 algorithm-chaining. See the
211   :doc:`../cryptodevs/virtio` crypto driver guide for more details on
212   this new driver.
213
214 * **Added AMD CCP Crypto PMD.**
215
216   Added the new ``ccp`` crypto driver for AMD CCP devices. See the
217   :doc:`../cryptodevs/ccp` crypto driver guide for more details on
218   this new driver.
219
220 * **Updated AESNI MB PMD.**
221
222   The AESNI MB PMD has been updated with additional support for:
223
224   * AES-CMAC (128-bit key).
225
226 * **Added Compressdev Library, a generic compression service library.**
227
228   The compressdev library provides an API for offload of compression and
229   decompression operations to hardware or software accelerator devices.
230
231 * **Added a new compression poll mode driver using Intels ISA-L.**
232
233    Added the new ``ISA-L`` compression driver, for compression and decompression
234    operations in software. See the :doc:`../compressdevs/isal` compression driver
235    guide for details on this new driver.
236
237 * **Added the Event Timer Adapter Library.**
238
239   The Event Timer Adapter Library extends the event-based model by introducing
240   APIs that allow applications to arm/cancel event timers that generate
241   timer expiry events. This new type of event is scheduled by an event device
242   along with existing types of events.
243
244 * **Added OcteonTx TIM Driver (Event timer adapter).**
245
246   The OcteonTx Timer block enables software to schedule events for a future
247   time, it is exposed to an application via Event timer adapter library.
248
249   See the :doc:`../eventdevs/octeontx` guide for more details
250
251 * **Added Event Crypto Adapter Library.**
252
253     Added the Event Crypto Adapter Library.  This library extends the
254     event-based model by introducing APIs that allow applications to
255     enqueue/dequeue crypto operations to/from cryptodev as events scheduled
256     by an event device.
257
258 * **Added Ifpga Bus, a generic Intel FPGA Bus library.**
259
260   The Ifpga Bus library provides support for integrating any Intel FPGA device with
261   the DPDK framework. It provides Intel FPGA Partial Bit Stream AFU (Accelerated
262   Function Unit) scan and drivers probe.
263
264 * **Added IFPGA (Intel FPGA) Rawdev Driver.**
265
266   Added a new Rawdev driver called IFPGA(Intel FPGA) Rawdev Driver, which cooperates
267   with OPAE (Open Programmable Acceleration Engine) share code provides common FPGA
268   management ops for FPGA operation.
269
270   See the :doc:`../rawdevs/ifpga_rawdev` programmer's guide for more details.
271
272 * **Added DPAA2 QDMA Driver (in rawdev).**
273
274   The DPAA2 QDMA is an implementation of the rawdev API, that provide means
275   to initiate a DMA transaction from CPU. The initiated DMA is performed
276   without CPU being involved in the actual DMA transaction.
277
278   See the :doc:`../rawdevs/dpaa2_qdma` guide for more details.
279
280 * **Added DPAA2 Command Interface Driver (in rawdev).**
281
282   The DPAA2 CMDIF is an implementation of the rawdev API, that provides
283   communication between the GPP and NXP's QorIQ based AIOP Block (Firmware).
284   Advanced IO Processor i.e. AIOP is clusters of programmable RISC engines
285   optimised for flexible networking and I/O operations. The communication
286   between GPP and AIOP is achieved via using DPCI devices exposed by MC for
287   GPP <--> AIOP interaction.
288
289   See the :doc:`../rawdevs/dpaa2_cmdif` guide for more details.
290
291 * **Added device event monitor framework.**
292
293   Added a general device event monitor framework at EAL, for device dynamic management.
294   Such as device hotplug awareness and actions adopted accordingly. The list of new APIs:
295
296   * ``rte_dev_event_monitor_start`` and ``rte_dev_event_monitor_stop`` are for
297     the event monitor enable and disable.
298   * ``rte_dev_event_callback_register`` and ``rte_dev_event_callback_unregister``
299     are for the user's callbacks register and unregister.
300
301   Linux uevent is supported as backend of this device event notification framework.
302
303 * **Added support for procinfo and pdump on eth vdev.**
304
305   For ethernet virtual devices (like tap, pcap, etc), with this feature, we can get
306   stats/xstats on shared memory from secondary process, and also pdump packets on
307   those virtual devices.
308
309 * **Advancement to Packet Framework Library.**
310
311   Design and development of new API functions for Packet Framework library that
312   implements common set of actions such as traffic metering, packet
313   encapsulation, network address translation, TTL update, etc., for pipeline
314   table and input ports to speed up application development. The API functions
315   includes creating action profiles, registering actions to the profiles,
316   instantiating action profiles for pipeline table and input ports, etc.
317
318 * **Added the BPF Library.**
319
320   The BPF Library provides the ability to load and execute
321   Enhanced Berkeley Packet Filter (eBPF) within user-space dpdk application.
322   Also it introduces basic framework to load/unload BPF-based filters
323   on eth devices (right now only via SW RX/TX callbacks).
324   It also adds dependency on libelf.
325
326
327 API Changes
328 -----------
329
330 .. This section should contain API changes. Sample format:
331
332    * Add a short 1-2 sentence description of the API change. Use fixed width
333      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past
334      tense.
335
336    This section is a comment. Do not overwrite or remove it.
337    Also, make sure to start the actual text at the margin.
338    =========================================================
339
340 * service cores: no longer marked as experimental.
341
342   The service cores functions are no longer marked as experimental, and have
343   become part of the normal DPDK API and ABI. Any future ABI changes will be
344   announced at least one release before the ABI change is made. There are no
345   ABI breaking changes planned.
346
347 * eal: ``rte_lcore_has_role()`` return value changed.
348
349   This function now returns true or false, respectively,
350   rather than 0 or <0 for success or failure.
351   It makes use of the function more intuitive.
352
353 * mempool: capability flags and related functions have been removed.
354
355   Flags ``MEMPOOL_F_CAPA_PHYS_CONTIG`` and
356   ``MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS`` were used by octeontx mempool
357   driver to customize generic mempool library behaviour.
358   Now the new driver callbacks ``calc_mem_size`` and ``populate`` may be
359   used to achieve it without specific knowledge in the generic code.
360
361 * mempool: xmem functions have been deprecated:
362
363   - ``rte_mempool_xmem_create``
364   - ``rte_mempool_xmem_size``
365   - ``rte_mempool_xmem_usage``
366   - ``rte_mempool_populate_iova_tab``
367
368 * mbuf: The control mbuf API has been removed in v18.05. The impacted
369   functions and macros are:
370
371   - ``rte_ctrlmbuf_init()``
372   - ``rte_ctrlmbuf_alloc()``
373   - ``rte_ctrlmbuf_free()``
374   - ``rte_ctrlmbuf_data()``
375   - ``rte_ctrlmbuf_len()``
376   - ``rte_is_ctrlmbuf()``
377   - ``CTRL_MBUF_FLAG``
378
379   The packet mbuf API should be used as a replacement.
380
381 * meter: updated to accommodate configuration profiles.
382
383   The meter API is changed to support meter configuration profiles. The
384   configuration profile represents the set of configuration parameters
385   for a given meter object, such as the rates and sizes for the token
386   buckets. These configuration parameters were previously the part of meter
387   object internal data strcuture. The separation of the configuration
388   parameters from meter object data structure results in reducing its
389   memory footprint which helps in better cache utilization when large number
390   of meter objects are used.
391
392 * ethdev: The function ``rte_eth_dev_count``, often mis-used to iterate
393   over ports, is deprecated and replaced by ``rte_eth_dev_count_avail``.
394   There is also a new function ``rte_eth_dev_count_total`` to get the
395   total number of allocated ports, available or not.
396   The hotplug-proof applications should use ``RTE_ETH_FOREACH_DEV`` or
397   ``RTE_ETH_FOREACH_DEV_OWNED_BY`` as port iterators.
398
399 * ethdev, in struct ``struct rte_eth_dev_info``, field ``rte_pci_device *pci_dev``
400   replaced with field ``struct rte_device *device``.
401
402 * **Changes to semantics of rte_eth_dev_configure() parameters.**
403
404    If both the ``nb_rx_q`` and ``nb_tx_q`` parameters are zero,
405    ``rte_eth_dev_configure`` will now use PMD-recommended queue sizes, or if
406    recommendations are not provided by the PMD the function will use ethdev
407    fall-back values. Previously setting both of the parameters to zero would
408    have resulted in ``-EINVAL`` being returned.
409
410 * **Changes to semantics of rte_eth_rx_queue_setup() parameters.**
411
412    If the ``nb_rx_desc`` parameter is zero, ``rte_eth_rx_queue_setup`` will
413    now use the PMD-recommended Rx ring size, or in the case where the PMD
414    does not provide a recommendation, will use an ethdev-provided
415    fall-back value. Previously, setting ``nb_rx_desc`` to zero would have
416    resulted in an error.
417
418 * **Changes to semantics of rte_eth_tx_queue_setup() parameters.**
419
420    If the ``nb_tx_desc`` parameter is zero, ``rte_eth_tx_queue_setup`` will
421    now use the PMD-recommended Tx ring size, or in the case where the PMD
422    does not provide a recoomendation, will use an ethdev-provided
423    fall-back value. Previously, setting ``nb_tx_desc`` to zero would have
424    resulted in an error.
425
426 * ethdev: several changes were made to the flow API.
427
428   * Unused DUP action was removed.
429   * Actions semantics in flow rules: list order now matters ("first
430     to last" instead of "all simultaneously"), repeated actions are now
431     all performed, and they do not individually have (non-)terminating
432     properties anymore.
433   * Flow rules are now always terminating unless a PASSTHRU action is
434     present.
435   * C99-style flexible arrays were replaced with standard pointers in RSS
436     action and in RAW pattern item structures due to compatibility issues.
437   * The RSS action was modified to not rely on external
438     ``struct rte_eth_rss_conf`` anymore to instead expose its own and more
439     appropriately named configuration fields directly
440     (``rss_conf->rss_key`` => ``key``,
441     ``rss_conf->rss_key_len`` => ``key_len``,
442     ``rss_conf->rss_hf`` => ``types``,
443     ``num`` => ``queue_num``), and the addition of missing RSS parameters
444     (``func`` for RSS hash function to apply and ``level`` for the
445     encapsulation level).
446   * The VLAN pattern item (``struct rte_flow_item_vlan``) was modified to
447     include inner EtherType instead of outer TPID. Its default mask was also
448     modified to cover the VID part (lower 12 bits) of TCI only.
449   * A new transfer attribute was added to ``struct rte_flow_attr`` in order
450     to clarify the behavior of some pattern items.
451   * PF and VF pattern items are now only accepted by PMDs that implement
452     them (bnxt and i40e) when the transfer attribute is also present for
453     consistency.
454   * Pattern item PORT was renamed PHY_PORT to avoid confusion with DPDK port
455     IDs.
456   * An action counterpart to the PHY_PORT pattern item was added in order to
457     redirect matching traffic to a specific physical port.
458   * PORT_ID pattern item and actions were added to match and target DPDK
459     port IDs at a higher level than PHY_PORT.
460
461 * ethdev: change flow APIs regarding count action:
462   * ``rte_flow_create()`` API count action now requires the ``struct rte_flow_action_count``.
463   * ``rte_flow_query()`` API parameter changed from action type to action structure.
464
465 * ethdev: changes to offload API
466
467    A pure per-port offloading isn't requested to be repeated in [rt]x_conf->offloads to
468    ``rte_eth_[rt]x_queue_setup()``. Now any offloading enabled in ``rte_eth_dev_configure()``
469    can't be disabled by ``rte_eth_[rt]x_queue_setup()``. Any new added offloading which has
470    not been enabled in ``rte_eth_dev_configure()`` and is requested to be enabled in
471    ``rte_eth_[rt]x_queue_setup()`` must be per-queue type, otherwise trigger an error log.
472
473 * ethdev: runtime queue setup:
474
475   ``rte_eth_rx_queue_setup`` and ``rte_eth_tx_queue_setup`` can be called after
476   ``rte_eth_dev_start`` if device support runtime queue setup. Device driver can
477   expose this capability through ``rte_eth_dev_info_get``. A Rx or Tx queue be
478   setup at runtime need to be started explicitly by ``rte_eth_dev_rx_queue_start``
479   or ``rte_eth_dev_tx_queue_start``.
480
481
482 ABI Changes
483 -----------
484
485 .. This section should contain ABI changes. Sample format:
486
487    * Add a short 1-2 sentence description of the ABI change that was announced
488      in the previous releases and made in this release. Use fixed width quotes
489      for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
490
491    This section is a comment. Do not overwrite or remove it.
492    Also, make sure to start the actual text at the margin.
493    =========================================================
494
495 * ring: the alignment constraints on the ring structure has been relaxed
496   to one cache line instead of two, and an empty cache line padding is
497   added between the producer and consumer structures. The size of the
498   structure and the offset of the fields remains the same on platforms
499   with 64B cache line, but change on other platforms.
500
501 * mempool: ops have changed.
502
503   A new callback ``calc_mem_size`` has been added to ``rte_mempool_ops``
504   to allow to customize required memory size calculation.
505   A new callback ``populate`` has been added to ``rte_mempool_ops``
506   to allow to customize objects population.
507   Callback ``get_capabilities`` has been removed from ``rte_mempool_ops``
508   since its features are covered by ``calc_mem_size`` and ``populate``
509   callbacks.
510   Callback ``register_memory_area`` has been removed from ``rte_mempool_ops``
511   since the new callback ``populate`` may be used instead of it.
512
513 * **Additional fields in rte_eth_dev_info.**
514
515   The ``rte_eth_dev_info`` structure has had two extra entries appended to the
516   end of it: ``default_rxportconf`` and ``default_txportconf``. Each of these
517   in turn are ``rte_eth_dev_portconf`` structures containing three fields of
518   type ``uint16_t``: ``burst_size``, ``ring_size``, and ``nb_queues``. These
519   are parameter values recommended for use by the PMD.
520
521 * ethdev: ABI for all flow API functions was updated.
522
523   This includes functions ``rte_flow_copy``, ``rte_flow_create``,
524   ``rte_flow_destroy``, ``rte_flow_error_set``, ``rte_flow_flush``,
525   ``rte_flow_isolate``, ``rte_flow_query`` and ``rte_flow_validate``, due to
526   changes in error type definitions (``enum rte_flow_error_type``), removal
527   of the unused DUP action (``enum rte_flow_action_type``), modified
528   behavior for flow rule actions (see API changes), removal of C99 flexible
529   array from RAW pattern item (``struct rte_flow_item_raw``), complete
530   rework of the RSS action definition (``struct rte_flow_action_rss``),
531   sanity fix in the VLAN pattern item (``struct rte_flow_item_vlan``) and
532   new transfer attribute (``struct rte_flow_attr``).
533
534 **New parameter added to rte_bbdev_op_cap_turbo_dec.**
535
536   A new parameter ``max_llr_modulus`` has been added to
537   ``rte_bbdev_op_cap_turbo_dec`` structure to specify maximal LLR (likelihood
538   ratio) absolute value.
539
540 * **BBdev Queue Groups split into UL/DL Groups**
541
542   Queue Groups have been split into UL/DL Groups in Turbo Software Driver.
543   They are independent for Decode/Encode. ``rte_bbdev_driver_info`` reflects
544   introduced changes.
545
546
547 Removed Items
548 -------------
549
550 .. This section should contain removed items in this release. Sample format:
551
552    * Add a short 1-2 sentence description of the removed item in the past
553      tense.
554
555    This section is a comment. Do not overwrite or remove it.
556    Also, make sure to start the actual text at the margin.
557    =========================================================
558
559
560 Known Issues
561 ------------
562
563 .. This section should contain new known issues in this release. Sample format:
564
565    * **Add title in present tense with full stop.**
566
567      Add a short 1-2 sentence description of the known issue in the present
568      tense. Add information on any known workarounds.
569
570    This section is a comment. Do not overwrite or remove it.
571    Also, make sure to start the actual text at the margin.
572    =========================================================
573
574 * **pdump is not compatible with old applications.**
575
576   As we changed to use generic multi-process communication for pdump negotiation
577   instead of previous dedicated unix socket way, pdump applications, including
578   dpdk-pdump example and any other applications using librte_pdump, cannot work
579   with older version DPDK primary applications.
580
581
582 Shared Library Versions
583 -----------------------
584
585 .. Update any library version updated in this release and prepend with a ``+``
586    sign, like this:
587
588      librte_acl.so.2
589    + librte_cfgfile.so.2
590      librte_cmdline.so.2
591
592    This section is a comment. Do not overwrite or remove it.
593    =========================================================
594
595
596 The libraries prepended with a plus sign were incremented in this version.
597
598 .. code-block:: diff
599
600      librte_acl.so.2
601      librte_bbdev.so.1
602      librte_bitratestats.so.2
603    + librte_bpf.so.1
604      librte_bus_dpaa.so.1
605      librte_bus_fslmc.so.1
606      librte_bus_pci.so.1
607      librte_bus_vdev.so.1
608      librte_cfgfile.so.2
609      librte_cmdline.so.2
610    + librte_common_octeontx.so.1
611    + librte_compressdev.so.1
612      librte_cryptodev.so.4
613      librte_distributor.so.1
614    + librte_eal.so.7
615    + librte_ethdev.so.9
616    + librte_eventdev.so.4
617      librte_flow_classify.so.1
618      librte_gro.so.1
619      librte_gso.so.1
620      librte_hash.so.2
621      librte_ip_frag.so.1
622      librte_jobstats.so.1
623      librte_kni.so.2
624      librte_kvargs.so.1
625      librte_latencystats.so.1
626      librte_lpm.so.2
627    + librte_mbuf.so.4
628    + librte_mempool.so.4
629    + librte_meter.so.2
630      librte_metrics.so.1
631      librte_net.so.1
632      librte_pci.so.1
633      librte_pdump.so.2
634      librte_pipeline.so.3
635      librte_pmd_bnxt.so.2
636      librte_pmd_bond.so.2
637      librte_pmd_i40e.so.2
638      librte_pmd_ixgbe.so.2
639    + librte_pmd_dpaa2_cmdif.so.1
640    + librte_pmd_dpaa2_qdma.so.1
641      librte_pmd_ring.so.2
642      librte_pmd_softnic.so.1
643      librte_pmd_vhost.so.2
644      librte_port.so.3
645      librte_power.so.1
646      librte_rawdev.so.1
647      librte_reorder.so.1
648    + librte_ring.so.2
649      librte_sched.so.1
650      librte_security.so.1
651      librte_table.so.3
652      librte_timer.so.1
653      librte_vhost.so.3
654
655
656 Tested Platforms
657 ----------------
658
659 .. This section should contain a list of platforms that were tested with this
660    release.
661
662    The format is:
663
664    * <vendor> platform with <vendor> <type of devices> combinations
665
666      * List of CPU
667      * List of OS
668      * List of devices
669      * Other relevant details...
670
671    This section is a comment. Do not overwrite or remove it.
672    Also, make sure to start the actual text at the margin.
673    =========================================================
674
675 * Intel(R) platforms with Intel(R) NICs combinations
676
677    * CPU
678
679      * Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
680      * Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
681      * Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
682      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
683      * Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
684      * Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
685      * Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz
686      * Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz
687      * Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
688
689    * OS:
690
691      * CentOS 7.4
692      * Fedora 25
693      * Fedora 27
694      * Fedora 28
695      * FreeBSD 11.1
696      * Red Hat Enterprise Linux Server release 7.3
697      * SUSE Enterprise Linux 12
698      * Wind River Linux 8
699      * Ubuntu 14.04
700      * Ubuntu 16.04
701      * Ubuntu 16.10
702      * Ubuntu 17.10
703
704    * NICs:
705
706      * Intel(R) 82599ES 10 Gigabit Ethernet Controller
707
708        * Firmware version: 0x61bf0001
709        * Device id (pf/vf): 8086:10fb / 8086:10ed
710        * Driver version: 5.2.3 (ixgbe)
711
712      * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
713
714        * Firmware version: 0x800003e7
715        * Device id (pf/vf): 8086:15ad / 8086:15a8
716        * Driver version: 4.4.6 (ixgbe)
717
718      * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
719
720        * Firmware version: 6.01 0x80003221
721        * Device id (pf/vf): 8086:1572 / 8086:154c
722        * Driver version: 2.4.6 (i40e)
723
724      * Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
725
726        * Firmware version: 3.33 0x80000fd5 0.0.0
727        * Device id (pf/vf): 8086:37d0 / 8086:37cd
728        * Driver version: 2.4.3 (i40e)
729
730      * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
731
732        * Firmware version: 6.01 0x80003221
733        * Device id (pf/vf): 8086:158b / 8086:154c
734        * Driver version: 2.4.6 (i40e)
735
736      * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
737
738        * Firmware version: 6.01 0x8000321c
739        * Device id (pf/vf): 8086:1583 / 8086:154c
740        * Driver version: 2.4.6 (i40e)
741
742      * Intel(R) Corporation I350 Gigabit Network Connection
743
744        * Firmware version: 1.63, 0x80000dda
745        * Device id (pf/vf): 8086:1521 / 8086:1520
746        * Driver version: 5.4.0-k (igb)
747
748 * Intel(R) platforms with Mellanox(R) NICs combinations
749
750    * CPU:
751
752      * Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz
753      * Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
754      * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
755      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
756      * Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
757      * Intel(R) Xeon(R) CPU E5-2640 @ 2.50GHz
758      * Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
759
760    * OS:
761
762      * Red Hat Enterprise Linux Server release 7.5 (Maipo)
763      * Red Hat Enterprise Linux Server release 7.4 (Maipo)
764      * Red Hat Enterprise Linux Server release 7.3 (Maipo)
765      * Red Hat Enterprise Linux Server release 7.2 (Maipo)
766      * Ubuntu 18.04
767      * Ubuntu 17.10
768      * Ubuntu 16.10
769      * Ubuntu 16.04
770      * SUSE Linux Enterprise Server 15
771
772    * MLNX_OFED: 4.2-1.0.0.0
773    * MLNX_OFED: 4.3-2.0.2.0
774
775    * NICs:
776
777      * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
778
779        * Host interface: PCI Express 3.0 x8
780        * Device ID: 15b3:1007
781        * Firmware version: 2.42.5000
782
783      * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
784
785        * Host interface: PCI Express 3.0 x8
786        * Device ID: 15b3:1013
787        * Firmware version: 12.21.1000 and above
788
789      * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
790
791        * Host interface: PCI Express 3.0 x8
792        * Device ID: 15b3:1013
793        * Firmware version: 12.21.1000 and above
794
795      * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
796
797        * Host interface: PCI Express 3.0 x8
798        * Device ID: 15b3:1013
799        * Firmware version: 12.21.1000 and above
800
801      * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
802
803        * Host interface: PCI Express 3.0 x8
804        * Device ID: 15b3:1013
805        * Firmware version: 12.21.1000 and above
806
807      * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
808
809        * Host interface: PCI Express 3.0 x8
810        * Device ID: 15b3:1013
811        * Firmware version: 12.21.1000 and above
812
813      * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
814
815        * Host interface: PCI Express 3.0 x16
816        * Device ID: 15b3:1013
817        * Firmware version: 12.21.1000 and above
818
819      * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
820
821        * Host interface: PCI Express 3.0 x8
822        * Device ID: 15b3:1013
823        * Firmware version: 12.21.1000 and above
824
825      * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
826
827        * Host interface: PCI Express 3.0 x8
828        * Device ID: 15b3:1013
829        * Firmware version: 12.21.1000 and above
830
831      * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
832
833        * Host interface: PCI Express 3.0 x16
834        * Device ID: 15b3:1013
835        * Firmware version: 12.21.1000 and above
836        * Firmware version: 12.21.1000 and above
837
838      * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
839
840        * Host interface: PCI Express 3.0 x16
841        * Device ID: 15b3:1013
842        * Firmware version: 12.21.1000 and above
843
844      * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
845
846        * Host interface: PCI Express 3.0 x16
847        * Device ID: 15b3:1013
848        * Firmware version: 12.21.1000 and above
849
850      * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
851
852        * Host interface: PCI Express 3.0 x8
853        * Device ID: 15b3:1015
854        * Firmware version: 14.21.1000 and above
855
856      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
857
858        * Host interface: PCI Express 3.0 x8
859        * Device ID: 15b3:1015
860        * Firmware version: 14.21.1000 and above
861
862      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
863
864        * Host interface: PCI Express 3.0 x16
865        * Device ID: 15b3:1017
866        * Firmware version: 16.21.1000 and above
867
868      * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
869
870        * Host interface: PCI Express 4.0 x16
871        * Device ID: 15b3:1019
872        * Firmware version: 16.21.1000 and above
873
874 * ARM platforms with Mellanox(R) NICs combinations
875
876    * CPU:
877
878      * Qualcomm ARM 1.1 2500MHz
879
880    * OS:
881
882      * Red Hat Enterprise Linux Server release 7.5 (Maipo)
883
884    * NICs:
885
886      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
887
888        * Host interface: PCI Express 3.0 x8
889        * Device ID: 15b3:1015
890        * Firmware version: 14.22.0428
891
892      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
893
894        * Host interface: PCI Express 3.0 x16
895        * Device ID: 15b3:1017
896        * Firmware version: 16.22.0428
897
898 * ARM SoC combinations from Cavium (with integrated NICs)
899
900    * SoC:
901
902      * Cavium CN81xx
903      * Cavium CN83xx
904
905    * OS:
906
907      * Ubuntu 16.04.2 LTS with Cavium SDK-6.2.0-Patch2 release support package.
908
909 * ARM SoC combinations from NXP (with integrated NICs)
910
911    * SoC:
912
913      * NXP/Freescale QorIQ LS1046A with ARM Cortex A72
914      * NXP/Freescale QorIQ LS2088A with ARM Cortex A72
915
916    * OS:
917
918      * Ubuntu 16.04.3 LTS with NXP QorIQ LSDK 1803 support packages