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