4 .. **Read this first.**
6 The text in the sections below explains how to update the release notes.
8 Use proper spelling, capitalization and punctuation in all sections.
10 Variable and config names should be quoted as fixed width text:
13 Build the docs and view the output file to ensure the changes are correct::
17 xdg-open build/doc/html/guides/rel_notes/release_18_05.html
23 .. This section should contain new features added in this release. Sample
26 * **Add a title in the past tense with a full stop.**
28 Add a short 1-2 sentence description in the past tense. The description
29 should be enough to allow someone scanning the release notes to
30 understand the new feature.
32 If the feature adds a lot of sub-features you can use a bullet list like
35 * Added feature foo to do something.
36 * Enhanced feature bar to do something else.
38 Refer to the previous release notes for examples.
40 This section is a comment. Do not overwrite or remove it.
41 Also, make sure to start the actual text at the margin.
42 =========================================================
44 * **Reworked memory subsystem.**
46 Memory subsystem has been reworked to support new functionality.
48 On Linux, support for reserving/unreserving hugepage memory at runtime 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.
54 This functionality has introduced the following changes:
56 * ``rte_eal_get_physmem_layout()`` was removed
57 * A new flag for memzone reservation (``RTE_MEMZONE_IOVA_CONTIG``) was added
58 to ensure reserved memory will be IOVA-contiguous, for use with device
59 drivers and other cases requiring such memory
60 * New callbacks for memory allocation/deallocation events, allowing 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
71 * ``-m`` and ``--socket-mem`` command-line arguments now carry an additional
72 meaning and mark pre-reserved hugepages as "unfree-able", thereby acting as
73 a mechanism guaranteeing minimum availability of hugepage memory to the
76 Reserving/unreserving memory at runtime is not currently supported on FreeBSD.
78 * **Added bucket mempool driver.**
80 Added bucket mempool driver which provides a way to allocate contiguous
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.
87 * **Added support for port representors.**
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.
97 * **Added PMD-recommended Tx and Rx parameters**
99 Applications can now query drivers for device-tuned values of
100 ring sizes, burst sizes, and number of queues.
102 * **Added RSS hash and key update to CXGBE PMD.**
104 Support to update RSS hash and key has been added to CXGBE PMD.
106 * **Added CXGBE VF PMD.**
108 CXGBE VF Poll Mode Driver has been added to run DPDK over Chelsio
109 T5/T6 NIC VF instances.
111 * **Updated mlx5 driver.**
113 Updated the mlx5 driver including the following changes:
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.
128 * **Updated mlx4 driver.**
130 Updated the mlx4 driver including the following changes:
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.
139 * **Updated Solarflare network PMD.**
141 Updated the sfc_efx driver including the following changes:
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).
149 * **Added Ethernet poll mode driver for AMD XGBE devices.**
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
155 * **Updated szedata2 PMD.**
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
163 * **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray)**
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.
170 The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz, arranged in a multi-cluster
173 * **Added vDPA in vhost-user lib.**
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.
179 * **Added IFCVF vDPA driver.**
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
188 * **Added support for vhost dequeue interrupt mode.**
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.
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.
201 * **Added crypto workload support to vhost library.**
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.
207 * **Added virtio crypto PMD.**
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
214 * **Added AMD CCP Crypto PMD.**
216 Added the new ``ccp`` crypto driver for AMD CCP devices. See the
217 :doc:`../cryptodevs/ccp` crypto driver guide for more details on
220 * **Updated AESNI MB PMD.**
222 The AESNI MB PMD has been updated with additional support for:
224 * AES-CMAC (128-bit key).
226 * **Added Compressdev Library, a generic compression service library.**
228 The compressdev library provides an API for offload of compression and
229 decompression operations to hardware or software accelerator devices.
231 * **Added a new compression poll mode driver using Intels ISA-L.**
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.
237 * **Added the Event Timer Adapter Library.**
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.
244 * **Added OcteonTx TIM Driver (Event timer adapter).**
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.
249 See the :doc:`../eventdevs/octeontx` guide for more details
251 * **Added Event Crypto Adapter Library.**
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
258 * **Added Ifpga Bus, a generic Intel FPGA Bus library.**
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.
264 * **Added IFPGA (Intel FPGA) Rawdev Driver.**
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.
270 See the :doc:`../rawdevs/ifpga_rawdev` programmer's guide for more details.
272 * **Added DPAA2 QDMA Driver (in rawdev).**
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.
278 See the :doc:`../rawdevs/dpaa2_qdma` guide for more details.
280 * **Added DPAA2 Command Interface Driver (in rawdev).**
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.
289 See the :doc:`../rawdevs/dpaa2_cmdif` guide for more details.
291 * **Added device event monitor framework.**
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:
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.
301 Linux uevent is supported as backend of this device event notification framework.
303 * **Added support for procinfo and pdump on eth vdev.**
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.
309 * **Advancement to Packet Framework Library.**
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.
318 * **Added the BPF Library.**
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.
330 .. This section should contain API changes. Sample format:
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
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 =========================================================
340 * service cores: no longer marked as experimental.
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.
347 * eal: ``rte_lcore_has_role()`` return value changed.
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.
353 * mempool: capability flags and related functions have been removed.
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.
361 * mempool: xmem functions have been deprecated:
363 - ``rte_mempool_xmem_create``
364 - ``rte_mempool_xmem_size``
365 - ``rte_mempool_xmem_usage``
366 - ``rte_mempool_populate_iova_tab``
368 * mbuf: The control mbuf API has been removed in v18.05. The impacted
369 functions and macros are:
371 - ``rte_ctrlmbuf_init()``
372 - ``rte_ctrlmbuf_alloc()``
373 - ``rte_ctrlmbuf_free()``
374 - ``rte_ctrlmbuf_data()``
375 - ``rte_ctrlmbuf_len()``
376 - ``rte_is_ctrlmbuf()``
379 The packet mbuf API should be used as a replacement.
381 * meter: updated to accommodate configuration profiles.
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.
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.
399 * ethdev, in struct ``struct rte_eth_dev_info``, field ``rte_pci_device *pci_dev``
400 replaced with field ``struct rte_device *device``.
402 * **Changes to semantics of rte_eth_dev_configure() parameters.**
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.
410 * **Changes to semantics of rte_eth_rx_queue_setup() parameters.**
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.
418 * **Changes to semantics of rte_eth_tx_queue_setup() parameters.**
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.
426 * ethdev: several changes were made to the flow API.
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
433 * Flow rules are now always terminating unless a PASSTHRU action is
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
454 * Pattern item PORT was renamed PHY_PORT to avoid confusion with DPDK port
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.
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.
465 * ethdev: changes to offload API
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.
473 * ethdev: runtime queue setup:
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``.
485 .. This section should contain ABI changes. Sample format:
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.
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 =========================================================
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.
501 * mempool: ops have changed.
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``
510 Callback ``register_memory_area`` has been removed from ``rte_mempool_ops``
511 since the new callback ``populate`` may be used instead of it.
513 * **Additional fields in rte_eth_dev_info.**
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.
521 * ethdev: ABI for all flow API functions was updated.
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``).
534 **New parameter added to rte_bbdev_op_cap_turbo_dec.**
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.
540 * **BBdev Queue Groups split into UL/DL Groups**
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
550 .. This section should contain removed items in this release. Sample format:
552 * Add a short 1-2 sentence description of the removed item in the past
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 =========================================================
563 .. This section should contain new known issues in this release. Sample format:
565 * **Add title in present tense with full stop.**
567 Add a short 1-2 sentence description of the known issue in the present
568 tense. Add information on any known workarounds.
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 =========================================================
574 * **pdump is not compatible with old applications.**
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.
582 Shared Library Versions
583 -----------------------
585 .. Update any library version updated in this release and prepend with a ``+``
589 + librte_cfgfile.so.2
592 This section is a comment. Do not overwrite or remove it.
593 =========================================================
596 The libraries prepended with a plus sign were incremented in this version.
602 librte_bitratestats.so.2
605 librte_bus_fslmc.so.1
610 + librte_common_octeontx.so.1
611 + librte_compressdev.so.1
612 librte_cryptodev.so.4
613 librte_distributor.so.1
616 + librte_eventdev.so.4
617 librte_flow_classify.so.1
625 librte_latencystats.so.1
628 + librte_mempool.so.4
638 librte_pmd_ixgbe.so.2
639 + librte_pmd_dpaa2_cmdif.so.1
640 + librte_pmd_dpaa2_qdma.so.1
642 librte_pmd_softnic.so.1
643 librte_pmd_vhost.so.2
659 .. This section should contain a list of platforms that were tested with this
664 * <vendor> platform with <vendor> <type of devices> combinations
669 * Other relevant details...
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 =========================================================
675 * Intel(R) platforms with Intel(R) NICs combinations
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
696 * Red Hat Enterprise Linux Server release 7.3
697 * SUSE Enterprise Linux 12
706 * Intel(R) 82599ES 10 Gigabit Ethernet Controller
708 * Firmware version: 0x61bf0001
709 * Device id (pf/vf): 8086:10fb / 8086:10ed
710 * Driver version: 5.2.3 (ixgbe)
712 * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
714 * Firmware version: 0x800003e7
715 * Device id (pf/vf): 8086:15ad / 8086:15a8
716 * Driver version: 4.4.6 (ixgbe)
718 * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
720 * Firmware version: 6.01 0x80003221
721 * Device id (pf/vf): 8086:1572 / 8086:154c
722 * Driver version: 2.4.6 (i40e)
724 * Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
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)
730 * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
732 * Firmware version: 6.01 0x80003221
733 * Device id (pf/vf): 8086:158b / 8086:154c
734 * Driver version: 2.4.6 (i40e)
736 * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
738 * Firmware version: 6.01 0x8000321c
739 * Device id (pf/vf): 8086:1583 / 8086:154c
740 * Driver version: 2.4.6 (i40e)
742 * Intel(R) Corporation I350 Gigabit Network Connection
744 * Firmware version: 1.63, 0x80000dda
745 * Device id (pf/vf): 8086:1521 / 8086:1520
746 * Driver version: 5.4.0-k (igb)
748 * Intel(R) platforms with Mellanox(R) NICs combinations
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
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)
770 * SUSE Linux Enterprise Server 15
772 * MLNX_OFED: 4.2-1.0.0.0
773 * MLNX_OFED: 4.3-2.0.2.0
777 * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
779 * Host interface: PCI Express 3.0 x8
780 * Device ID: 15b3:1007
781 * Firmware version: 2.42.5000
783 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
785 * Host interface: PCI Express 3.0 x8
786 * Device ID: 15b3:1013
787 * Firmware version: 12.21.1000 and above
789 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
791 * Host interface: PCI Express 3.0 x8
792 * Device ID: 15b3:1013
793 * Firmware version: 12.21.1000 and above
795 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
797 * Host interface: PCI Express 3.0 x8
798 * Device ID: 15b3:1013
799 * Firmware version: 12.21.1000 and above
801 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
803 * Host interface: PCI Express 3.0 x8
804 * Device ID: 15b3:1013
805 * Firmware version: 12.21.1000 and above
807 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
809 * Host interface: PCI Express 3.0 x8
810 * Device ID: 15b3:1013
811 * Firmware version: 12.21.1000 and above
813 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
815 * Host interface: PCI Express 3.0 x16
816 * Device ID: 15b3:1013
817 * Firmware version: 12.21.1000 and above
819 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
821 * Host interface: PCI Express 3.0 x8
822 * Device ID: 15b3:1013
823 * Firmware version: 12.21.1000 and above
825 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
827 * Host interface: PCI Express 3.0 x8
828 * Device ID: 15b3:1013
829 * Firmware version: 12.21.1000 and above
831 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
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
838 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
840 * Host interface: PCI Express 3.0 x16
841 * Device ID: 15b3:1013
842 * Firmware version: 12.21.1000 and above
844 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
846 * Host interface: PCI Express 3.0 x16
847 * Device ID: 15b3:1013
848 * Firmware version: 12.21.1000 and above
850 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
852 * Host interface: PCI Express 3.0 x8
853 * Device ID: 15b3:1015
854 * Firmware version: 14.21.1000 and above
856 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
858 * Host interface: PCI Express 3.0 x8
859 * Device ID: 15b3:1015
860 * Firmware version: 14.21.1000 and above
862 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
864 * Host interface: PCI Express 3.0 x16
865 * Device ID: 15b3:1017
866 * Firmware version: 16.21.1000 and above
868 * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
870 * Host interface: PCI Express 4.0 x16
871 * Device ID: 15b3:1019
872 * Firmware version: 16.21.1000 and above
874 * ARM platforms with Mellanox(R) NICs combinations
878 * Qualcomm ARM 1.1 2500MHz
882 * Red Hat Enterprise Linux Server release 7.5 (Maipo)
886 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
888 * Host interface: PCI Express 3.0 x8
889 * Device ID: 15b3:1015
890 * Firmware version: 14.22.0428
892 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
894 * Host interface: PCI Express 3.0 x16
895 * Device ID: 15b3:1017
896 * Firmware version: 16.22.0428
898 * ARM SoC combinations from Cavium (with integrated NICs)
907 * Ubuntu 16.04.2 LTS with Cavium SDK-6.2.0-Patch2 release support package.
909 * ARM SoC combinations from NXP (with integrated NICs)
913 * NXP/Freescale QorIQ LS1046A with ARM Cortex A72
914 * NXP/Freescale QorIQ LS2088A with ARM Cortex A72
918 * Ubuntu 16.04.3 LTS with NXP QorIQ LSDK 1803 support packages