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