357965ac925d2d11c22591660dffc8c36b299058
[dpdk.git] / doc / guides / rel_notes / release_17_02.rst
1 DPDK Release 17.02
2 ==================
3
4 .. **Read this first.**
5
6    The text 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: ``LIKE_THIS``.
11
12    Build the docs and view the output file to ensure the changes are correct::
13
14       make doc-guides-html
15
16       firefox build/doc/html/guides/rel_notes/release_17_02.html
17
18
19 New Features
20 ------------
21
22 .. This section should contain new features added in this release. Sample format:
23
24    * **Add a title in the past tense with a full stop.**
25
26      Add a short 1-2 sentence description in the past tense. The description
27      should be enough to allow someone scanning the release notes to understand
28      the new feature.
29
30      If the feature adds a lot of sub-features you can use a bullet list like this.
31
32      * Added feature foo to do something.
33      * Enhanced feature bar to do something else.
34
35      Refer to the previous release notes for examples.
36
37      This section is a comment. do not overwrite or remove it.
38      Also, make sure to start the actual text at the margin.
39      =========================================================
40
41 * **Added support for representing buses in EAL**
42
43   The ``rte_bus`` structure was introduced into the EAL. This allows for
44   devices to be represented by buses they are connected to. A new bus can be
45   added to DPDK by extending the ``rte_bus`` structure and implementing the
46   scan and probe functions. Once a new bus is registered using the provided
47   APIs, new devices can be detected and initialized using bus scan and probe
48   callbacks.
49
50   With this change, devices other than PCI or VDEV type can be represented
51   in the DPDK framework.
52
53 * **Added generic EAL API for I/O device memory read/write operations.**
54
55   This API introduces 8 bit, 16 bit, 32 bit and 64 bit I/O device
56   memory read/write operations along with "relaxed" versions.
57
58   Weakly-ordered architectures like ARM need an additional I/O barrier for
59   device memory read/write access over PCI bus. By introducing the EAL
60   abstraction for I/O device memory read/write access, the drivers can access
61   I/O device memory in an architecture-agnostic manner. The relaxed version
62   does not have an additional I/O memory barrier, which is useful in accessing
63   the device registers of integrated controllers which is implicitly strongly
64   ordered with respect to memory access.
65
66 * **Added generic flow API (rte_flow).**
67
68   This API provides a generic means to configure hardware to match specific
69   ingress or egress traffic, alter its behavior and query related counters
70   according to any number of user-defined rules.
71
72   In order to expose a single interface with an unambiguous behavior that is
73   common to all poll-mode drivers (PMDs) the ``rte_flow`` API is slightly
74   higher-level than the legacy filtering framework, which it encompasses and
75   supersedes (including all functions and filter types) .
76
77   See the :ref:`Generic flow API <Generic_flow_API>` documentation for more
78   information.
79
80 * **Added firmware version get API.**
81
82   Added a new function ``rte_eth_dev_fw_version_get()`` to fetch the firmware
83   version for a given device.
84
85 * **Added APIs for MACsec offload support to the ixgbe PMD.**
86
87   Six new APIs have been added to the ixgbe PMD for MACsec offload support.
88   The declarations for the APIs can be found in ``rte_pmd_ixgbe.h``.
89
90 * **Added I219 NICs support.**
91
92   Added support for I219 Intel 1GbE NICs.
93
94 * **Added VF Daemon (VFD) for i40e. - EXPERIMENTAL**
95
96   This is an EXPERIMENTAL feature to enhance the capability of the DPDK PF as
97   many VF management features are not currently supported by the kernel PF
98   driver. Some new private APIs are implemented directly in the PMD without an
99   abstraction layer. They can be used directly by some users who have the
100   need.
101
102   The new APIs to control VFs directly from PF include:
103
104   * Set VF MAC anti-spoofing.
105   * Set VF VLAN anti-spoofing.
106   * Set TX loopback.
107   * Set VF unicast promiscuous mode.
108   * Set VF multicast promiscuous mode.
109   * Set VF MTU.
110   * Get/reset VF stats.
111   * Set VF MAC address.
112   * Set VF VLAN stripping.
113   * Vf VLAN insertion.
114   * Set VF broadcast mode.
115   * Set VF VLAN tag.
116   * Set VF VLAN filter.
117
118   VFD also includes VF to PF mailbox message management from an application.
119   When the PF receives mailbox messages from the VF the PF should call the
120   callback provided by the application to know if they're permitted to be
121   processed.
122
123   As an EXPERIMENTAL feature, please be aware it can be changed or even
124   removed without prior notice.
125
126 * **Updated the i40e base driver.**
127
128   Updated the i40e base driver, including the following changes:
129
130   * Replace existing legacy ``memcpy()`` calls with ``i40e_memcpy()`` calls.
131   * Use ``BIT()`` macro instead of bit fields.
132   * Add clear all WoL filters implementation.
133   * Add broadcast promiscuous control per VLAN.
134   * Remove unused ``X722_SUPPORT`` and ``I40E_NDIS_SUPPORT`` macros.
135
136 * **Updated the enic driver.**
137
138   * Set new Rx checksum flags in mbufs to indicate unknown, good or bad checksums.
139   * Fix set/remove of MAC addresses. Allow up to 64 addresses per device.
140   * Enable TSO on outer headers.
141
142 * **Added Solarflare libefx-based network PMD.**
143
144   Added a new network PMD which supports Solarflare SFN7xxx and SFN8xxx family
145   of 10/40 Gbps adapters.
146
147 * **Updated the mlx4 driver.**
148
149   * Addressed a few bugs.
150
151 * **Added support for Mellanox ConnectX-5 adapters (mlx5).**
152
153   Added support for Mellanox ConnectX-5 family of 10/25/40/50/100 Gbps
154   adapters to the existing mlx5 PMD.
155
156 * **Updated the mlx5 driver.**
157
158   * Improve Tx performance by using vector logic.
159   * Improve RSS balancing when number of queues is not a power of two.
160   * Generic flow API support for Ethernet, IPv4, IPv4, UDP, TCP, VLAN and
161     VXLAN pattern items with DROP and QUEUE actions.
162   * Support for extended statistics.
163   * Addressed several data path bugs.
164   * As of MLNX_OFED 4.0-1.0.1.0, the Toeplitz RSS hash function is not
165     symmetric anymore for consistency with other PMDs.
166
167 * **virtio-user with vhost-kernel as another exceptional path.**
168
169   Previously, we upstreamed a virtual device, virtio-user with vhost-user as
170   the backend as a way of enabling IPC (Inter-Process Communication) and user
171   space container networking.
172
173   Virtio-user with vhost-kernel as the backend is a solution for the exception
174   path, such as KNI, which exchanges packets with the kernel networking stack.
175   This solution is very promising in:
176
177   * Maintenance: vhost and vhost-net (kernel) is an upstreamed and extensively
178     used kernel module.
179   * Features: vhost-net is designed to be a networking solution, which has
180     lots of networking related features, like multi-queue, TSO, multi-seg
181     mbuf, etc.
182   * Performance: similar to KNI, this solution would use one or more
183     kthreads to send/receive packets from user space DPDK applications,
184     which has little impact on user space polling thread (except that
185     it might enter into kernel space to wake up those kthreads if
186     necessary).
187
188 * **Added virtio Rx interrupt support.**
189
190   Added a feature to enable Rx interrupt mode for virtio pci net devices as
191   bound to VFIO (noiommu mode) and driven by virtio PMD.
192
193   With this feature, the virtio PMD can switch between polling mode and
194   interrupt mode, to achieve best performance, and at the same time save
195   power. It can work on both legacy and modern virtio devices. In this mode,
196   each ``rxq`` is mapped with an excluded MSIx interrupt.
197
198   See the :ref:`Virtio Interrupt Mode <virtio_interrupt_mode>` documentation
199   for more information.
200
201 * **Added ARMv8 crypto PMD.**
202
203   A new crypto PMD has been added, which provides combined mode cryptographic
204   operations optimized for ARMv8 processors. The driver can be used to enhance
205   performance in processing chained operations such as cipher + HMAC.
206
207 * **Updated the QAT PMD.**
208
209   The QAT PMD has been updated with additional support for:
210
211   * DES algorithm.
212   * Scatter-gather list (SGL) support.
213
214 * **Updated the AESNI MB PMD.**
215
216   * The Intel(R) Multi Buffer Crypto for IPsec library used in
217     AESNI MB PMD has been moved to a new repository, in GitHub.
218   * Support has been added for single operations (cipher only and
219     authentication only).
220
221 * **Updated the AES-NI GCM PMD.**
222
223   The AES-NI GCM PMD was migrated from the Multi Buffer library to the ISA-L
224   library. The migration entailed adding additional support for:
225
226   * GMAC algorithm.
227   * 256-bit cipher key.
228   * Session-less mode.
229   * Out-of place processing
230   * Scatter-gather support for chained mbufs (only out-of place and destination
231     mbuf must be contiguous)
232
233 * **Added crypto performance test application.**
234
235   Added a new performance test application for measuring performance
236   parameters of PMDs available in the crypto tree.
237
238 * **Added Elastic Flow Distributor library (rte_efd).**
239
240   Added a new library which uses perfect hashing to determine a target/value
241   for a given incoming flow key.
242
243   The library does not store the key itself for lookup operations, and
244   therefore, lookup performance is not dependent on the key size. Also, the
245   target/value can be any arbitrary value (8 bits by default). Finally, the
246   storage requirement is much smaller than a hash-based flow table and
247   therefore, it can better fit in CPU cache and scale to millions of flow
248   keys.
249
250   See the :ref:`Elastic Flow Distributor Library <Efd_Library>` documentation in
251   the Programmers Guide document, for more information.
252
253
254 Resolved Issues
255 ---------------
256
257 .. This section should contain bug fixes added to the relevant sections. Sample format:
258
259    * **code/section Fixed issue in the past tense with a full stop.**
260
261      Add a short 1-2 sentence description of the resolved issue in the past tense.
262      The title should contain the code/lib section like a commit message.
263      Add the entries in alphabetic order in the relevant sections below.
264
265    This section is a comment. do not overwrite or remove it.
266    Also, make sure to start the actual text at the margin.
267    =========================================================
268
269 Drivers
270 ~~~~~~~
271
272 * **net/virtio: Fixed multiple process support.**
273
274   Fixed a few regressions introduced in recent releases that break the virtio
275   multiple process support.
276
277
278 Examples
279 ~~~~~~~~
280
281 * **examples/ethtool: Fixed crash with non-PCI devices.**
282
283   Fixed issue where querying a non-PCI device was dereferencing non-existent
284   PCI data resulting in a segmentation fault.
285
286
287
288 API Changes
289 -----------
290
291 .. This section should contain API changes. Sample format:
292
293    * Add a short 1-2 sentence description of the API change. Use fixed width
294      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
295
296    This section is a comment. do not overwrite or remove it.
297    Also, make sure to start the actual text at the margin.
298    =========================================================
299
300 * **Moved five APIs for VF management from the ethdev to the ixgbe PMD.**
301
302   The following five APIs for VF management from the PF have been removed from
303   the ethdev, renamed, and added to the ixgbe PMD::
304
305      rte_eth_dev_set_vf_rate_limit()
306      rte_eth_dev_set_vf_rx()
307      rte_eth_dev_set_vf_rxmode()
308      rte_eth_dev_set_vf_tx()
309      rte_eth_dev_set_vf_vlan_filter()
310
311   The API's have been renamed to the following::
312
313      rte_pmd_ixgbe_set_vf_rate_limit()
314      rte_pmd_ixgbe_set_vf_rx()
315      rte_pmd_ixgbe_set_vf_rxmode()
316      rte_pmd_ixgbe_set_vf_tx()
317      rte_pmd_ixgbe_set_vf_vlan_filter()
318
319   The declarations for the API’s can be found in ``rte_pmd_ixgbe.h``.
320
321
322 ABI Changes
323 -----------
324
325 .. This section should contain ABI changes. Sample format:
326
327    * Add a short 1-2 sentence description of the ABI change that was announced in
328      the previous releases and made in this release. Use fixed width quotes for
329      ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
330
331    This section is a comment. do not overwrite or remove it.
332    Also, make sure to start the actual text at the margin.
333    =========================================================
334
335
336
337 Shared Library Versions
338 -----------------------
339
340 .. Update any library version updated in this release and prepend with a ``+``
341    sign, like this:
342
343      librte_acl.so.2
344    + librte_cfgfile.so.2
345      librte_cmdline.so.2
346
347    This section is a comment. do not overwrite or remove it.
348    =========================================================
349
350
351 The libraries prepended with a plus sign were incremented in this version.
352
353 .. code-block:: diff
354
355      librte_acl.so.2
356      librte_cfgfile.so.2
357      librte_cmdline.so.2
358      librte_cryptodev.so.2
359      librte_distributor.so.1
360      librte_eal.so.3
361    + librte_ethdev.so.6
362      librte_hash.so.2
363      librte_ip_frag.so.1
364      librte_jobstats.so.1
365      librte_kni.so.2
366      librte_kvargs.so.1
367      librte_lpm.so.2
368      librte_mbuf.so.2
369      librte_mempool.so.2
370      librte_meter.so.1
371      librte_net.so.1
372      librte_pdump.so.1
373      librte_pipeline.so.3
374      librte_pmd_bond.so.1
375      librte_pmd_ring.so.2
376      librte_port.so.3
377      librte_power.so.1
378      librte_reorder.so.1
379      librte_ring.so.1
380      librte_sched.so.1
381      librte_table.so.2
382      librte_timer.so.1
383      librte_vhost.so.3
384
385
386 Tested Platforms
387 ----------------
388
389 .. This section should contain a list of platforms that were tested with this release.
390
391    The format is:
392
393    * <vendor> platform with <vendor> <type of devices> combinations
394
395      * List of CPU
396      * List of OS
397      * List of devices
398      * Other relevant details...
399
400    This section is a comment. do not overwrite or remove it.
401    Also, make sure to start the actual text at the margin.
402    =========================================================
403
404 This release has been tested with the below list of CPU/device/firmware/OS.
405 Each section describes a different set of combinations.
406
407 * Intel(R) platforms with Mellanox(R) NICs combinations
408
409    * Platform details
410
411      * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
412      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
413      * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
414
415    * OS:
416
417      * CentOS 7.0
418      * Fedora 23
419      * Fedora 24
420      * FreeBSD 10.3
421      * Red Hat Enterprise Linux 7.2
422      * SUSE Enterprise Linux 12
423      * Ubuntu 14.04 LTS
424      * Ubuntu 15.10
425      * Ubuntu 16.04 LTS
426      * Wind River Linux 8
427
428    * MLNX_OFED: 4.0-1.0.1.0
429
430    * NICs:
431
432      * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
433
434        * Host interface: PCI Express 3.0 x8
435        * Device ID: 15b3:1007
436        * Firmware version: 2.40.5030
437
438      * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
439
440        * Host interface: PCI Express 3.0 x8
441        * Device ID: 15b3:1013
442        * Firmware version: 12.18.1000
443
444      * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
445
446        * Host interface: PCI Express 3.0 x8
447        * Device ID: 15b3:1013
448        * Firmware version: 12.18.1000
449
450      * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
451
452        * Host interface: PCI Express 3.0 x8
453        * Device ID: 15b3:1013
454        * Firmware version: 12.18.1000
455
456      * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
457
458        * Host interface: PCI Express 3.0 x8
459        * Device ID: 15b3:1013
460        * Firmware version: 12.18.1000
461
462      * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
463
464        * Host interface: PCI Express 3.0 x8
465        * Device ID: 15b3:1013
466        * Firmware version: 12.18.1000
467
468      * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
469
470        * Host interface: PCI Express 3.0 x16
471        * Device ID: 15b3:1013
472        * Firmware version: 12.18.1000
473
474      * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
475
476        * Host interface: PCI Express 3.0 x8
477        * Device ID: 15b3:1013
478        * Firmware version: 12.18.1000
479
480      * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
481
482        * Host interface: PCI Express 3.0 x8
483        * Device ID: 15b3:1013
484        * Firmware version: 12.18.1000
485
486      * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
487
488        * Host interface: PCI Express 3.0 x16
489        * Device ID: 15b3:1013
490        * Firmware version: 12.18.1000
491
492      * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
493
494        * Host interface: PCI Express 3.0 x16
495        * Device ID: 15b3:1013
496        * Firmware version: 12.18.1000
497
498      * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
499
500        * Host interface: PCI Express 3.0 x16
501        * Device ID: 15b3:1013
502        * Firmware version: 12.18.1000
503
504      * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
505
506        * Host interface: PCI Express 3.0 x8
507        * Device ID: 15b3:1015
508        * Firmware version: 14.18.1000
509
510      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
511
512        * Host interface: PCI Express 3.0 x8
513        * Device ID: 15b3:1015
514        * Firmware version: 14.18.1000
515
516      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
517
518        * Host interface: PCI Express 3.0 x16
519        * Device ID: 15b3:1017
520        * Firmware version: 16.18.1000
521
522      * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
523
524        * Host interface: PCI Express 4.0 x16
525        * Device ID: 15b3:1019
526        * Firmware version: 16.18.1000
527
528 * IBM(R) Power8(R) with Mellanox(R) NICs combinations
529
530    * Machine:
531
532      * Processor: POWER8E (raw), AltiVec supported
533
534        * type-model: 8247-22L
535        * Firmware FW810.21 (SV810_108)
536
537    * OS: Ubuntu 16.04 LTS PPC le
538
539    * MLNX_OFED: 4.0-1.0.1.0
540
541    * NICs:
542
543      * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
544
545        * Host interface: PCI Express 3.0 x8
546        * Device ID: 15b3:1013
547        * Firmware version: 12.18.1000
548
549      * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
550
551        * Host interface: PCI Express 3.0 x8
552        * Device ID: 15b3:1013
553        * Firmware version: 12.18.1000
554
555      * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
556
557        * Host interface: PCI Express 3.0 x8
558        * Device ID: 15b3:1013
559        * Firmware version: 12.18.1000
560
561      * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
562
563        * Host interface: PCI Express 3.0 x8
564        * Device ID: 15b3:1013
565        * Firmware version: 12.18.1000
566
567      * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
568
569        * Host interface: PCI Express 3.0 x8
570        * Device ID: 15b3:1013
571        * Firmware version: 12.18.1000
572
573      * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
574
575        * Host interface: PCI Express 3.0 x16
576        * Device ID: 15b3:1013
577        * Firmware version: 12.18.1000
578
579      * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
580
581        * Host interface: PCI Express 3.0 x8
582        * Device ID: 15b3:1013
583        * Firmware version: 12.18.1000
584
585      * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
586
587        * Host interface: PCI Express 3.0 x8
588        * Device ID: 15b3:1013
589        * Firmware version: 12.18.1000
590
591      * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
592
593        * Host interface: PCI Express 3.0 x16
594        * Device ID: 15b3:1013
595        * Firmware version: 12.18.1000
596
597      * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
598
599        * Host interface: PCI Express 3.0 x16
600        * Device ID: 15b3:1013
601        * Firmware version: 12.18.1000
602
603      * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
604
605        * Host interface: PCI Express 3.0 x16
606        * Device ID: 15b3:1013
607        * Firmware version: 12.18.1000
608
609      * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
610
611        * Host interface: PCI Express 3.0 x8
612        * Device ID: 15b3:1015
613        * Firmware version: 14.18.1000
614
615      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
616
617        * Host interface: PCI Express 3.0 x8
618        * Device ID: 15b3:1015
619        * Firmware version: 14.18.1000
620
621      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
622
623        * Host interface: PCI Express 3.0 x16
624        * Device ID: 15b3:1017
625        * Firmware version: 16.18.1000
626
627 * Intel(R) platforms with Intel(R) NICs combinations
628
629    * Platform details
630
631      * Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
632      * Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
633      * Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
634      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
635      * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
636      * Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
637      * Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz
638
639    * OS:
640
641      * CentOS 7.2
642      * Fedora 25
643      * FreeBSD 11
644      * Red Hat Enterprise Linux Server release 7.3
645      * SUSE Enterprise Linux 12
646      * Wind River Linux 8
647      * Ubuntu 16.04
648      * Ubuntu 16.10
649
650    * NICs:
651
652      * Intel(R) 82599ES 10 Gigabit Ethernet Controller
653
654        * Firmware version: 0x61bf0001
655        * Device id (pf/vf): 8086:10fb / 8086:10ed
656        * Driver version: 4.0.1-k (ixgbe)
657
658      * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
659
660        * Firmware version: 0x800001cf
661        * Device id (pf/vf): 8086:15ad / 8086:15a8
662        * Driver version: 4.2.5 (ixgbe)
663
664      * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
665
666        * Firmware version: 5.05
667        * Device id (pf/vf): 8086:1572 / 8086:154c
668        * Driver version: 1.5.23 (i40e)
669
670      * Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G)
671
672        * Firmware version: 5.05
673        * Device id (pf/vf): 8086:1572 / 8086:154c
674        * Driver version: 1.5.23 (i40e)
675
676      * Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G)
677
678        * Firmware version: 5.05
679        * Device id (pf/vf): 8086:1584 / 8086:154c
680        * Driver version: 1.5.23 (i40e)
681
682      * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
683
684        * Firmware version: 5.05
685        * Device id (pf/vf): 8086:1583 / 8086:154c
686        * Driver version: 1.5.23 (i40e)
687
688      * Intel(R) Corporation I350 Gigabit Network Connection
689
690        * Firmware version: 1.48, 0x800006e7
691        * Device id (pf/vf): 8086:1521 / 8086:1520
692        * Driver version: 5.2.13-k (igb)