1DPDK 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
19New 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
254Resolved 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
269Drivers
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
278Examples
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
288API 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
322ABI 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
337Shared 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
351The 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
386Tested 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
404This release has been tested with the below list of CPU/device/firmware/OS.
405Each 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)
693