4 .. **Read this first.**
6 The text 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: ``LIKE_THIS``.
12 Build the docs and view the output file to ensure the changes are correct::
16 firefox build/doc/html/guides/rel_notes/release_17_02.html
22 .. This section should contain new features added in this release. Sample format:
24 * **Add a title in the past tense with a full stop.**
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
30 If the feature adds a lot of sub-features you can use a bullet list like this.
32 * Added feature foo to do something.
33 * Enhanced feature bar to do something else.
35 Refer to the previous release notes for examples.
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 =========================================================
41 * **Added support for representing buses in EAL**
43 A new structure ``rte_bus`` is introduced in EAL. This allows for devices to
44 be represented by buses they are connected to. A new bus can be added to
45 DPDK by extending the ``rte_bus`` structure and implementing the scan and
46 probe functions. Once a new bus is registered using provided APIs, new
47 devices can be detected and initialized using bus scan and probe callbacks.
49 With this change, devices other than PCI or VDEV type can also be represented
52 * **Added generic EAL API for I/O device memory read/write operations.**
54 This API introduces 8-bit, 16-bit, 32bit, 64bit I/O device
55 memory read/write operations along with the relaxed versions.
57 The weakly-ordered machine like ARM needs additional I/O barrier for
58 device memory read/write access over PCI bus.
59 By introducing the EAL abstraction for I/O device memory read/write access,
60 The drivers can access I/O device memory in architecture-agnostic manner.
61 The relaxed version does not have additional I/O memory barrier, useful in
62 accessing the device registers of integrated controllers which
63 implicitly strongly ordered with respect to memory access.
65 * **Added generic flow API (rte_flow).**
67 This API provides a generic means to configure hardware to match specific
68 ingress or egress traffic, alter its fate and query related counters
69 according to any number of user-defined rules.
71 It is slightly higher-level than the legacy filtering framework which it
72 encompasses and supersedes (including all functions and filter types) in
73 order to expose a single interface with an unambiguous behavior that is
74 common to all poll-mode drivers (PMDs).
76 See the :ref:`Generic flow API <Generic_flow_API>` documentation for more
79 * **Added firmware version get API.**
81 Added a new function ``rte_eth_dev_fw_version_get()`` to fetch firmware
82 version by a given device.
84 * **Added APIs for MACsec offload support to the ixgbe PMD.**
86 Six new APIs have been added to the ixgbe PMD for MACsec offload support.
87 The declarations for the APIs can be found in ``rte_pmd_ixgbe.h``.
89 * **Added I219 NICs support.**
91 Added support for I219 Intel 1GbE NICs.
93 * **Added VF Daemon (VFD) on i40e. - EXPERIMENTAL**
95 This's an EXPERIMENTAL feature to enhance the capability of DPDK PF as many
96 VF management features are not supported by kernel PF driver.
97 Some new private APIs are implemented in PMD without abstrction layer.
98 They can be used directly by some users who have the need.
100 The new APIs to control VFs directly from PF include,
101 1) set VF MAC anti-spoofing
102 2) set VF VLAN anti-spoofing
104 4) set VF unicast promiscuous mode
105 5) set VF multicast promiscuous mode
107 7) get/reset VF stats
108 8) set VF MAC address
109 9) set VF VLAN stripping
110 10) VF VLAN insertion
111 12) set VF broadcast mode
113 14) set VF VLAN filter
114 VFD also includes VF to PF mailbox message management by APP.
115 When PF receives mailbox messages from VF, PF should call the callback
116 provided by APP to know if they're permitted to be processed.
118 As an EXPERIMENTAL feature, please aware it can be changed or even
119 removed without prior notice.
121 * **Updated the i40e base driver.**
123 updated the i40e base driver, including the following changes:
125 * replace existing legacy memcpy() calls with i40e_memcpy() calls.
126 * use BIT() macro instead of bit fields
127 * add clear all WoL filters implementation
128 * add broadcast promiscuous control per VLAN
129 * remove unused X722_SUPPORT and I40E_NDIS_SUPPORT MARCOs
131 * **Updated the enic driver.**
133 * Set new Rx checksum flags in mbufs to indicate unknown, good or bad.
134 * Fix set/remove of MAC addresses. Allow up to 64 addresses per device.
135 * Enable TSO on outer headers.
137 * **Added Solarflare libefx-based network PMD.**
139 A new network PMD which supports Solarflare SFN7xxx and SFN8xxx family
140 of 10/40 Gbps adapters has been added.
142 * **Updated the mlx4 driver.**
144 * Addressed a few bugs.
146 * **Added support for Mellanox ConnectX-5 adapters (mlx5).**
148 Support for Mellanox ConnectX-5 family of 10/25/40/50/100 Gbps adapters
149 has been added to the existing mlx5 PMD.
151 * **Updated the mlx5 driver.**
153 * Improve Tx performance by using vector logic.
154 * Improve RSS balancing when number of queues is not a power of two.
155 * Generic flow API support for Ethernet, IPv4, IPv4, UDP, TCP, VLAN and
156 VXLAN pattern items with DROP and QUEUE actions.
157 * Support for extended statistics.
158 * Addressed several data path bugs.
159 * As of MLNX_OFED 4.0-1.0.1.0, the Toeplitz RSS hash function is not
160 symmetric anymore for consistency with other PMDs.
162 * **virtio-user with vhost-kernel as another exceptional path.**
164 Previously, we upstreamed a virtual device, virtio-user with vhost-user
165 as the backend, as a way for IPC (Inter-Process Communication) and user
166 space container networking.
168 Virtio-user with vhost-kernel as the backend is a solution for exceptional
169 path, such as KNI, which exchanges packets with kernel networking stack.
170 This solution is very promising in:
172 * maintenance: vhost and vhost-net (kernel) is upstreamed and extensively
174 * features: vhost-net is born to be a networking solution, which has
175 lots of networking related features, like multi-queue, TSO, multi-seg
177 * performance: similar to KNI, this solution would use one or more
178 kthreads to send/receive packets from user space DPDK applications,
179 which has little impact on user space polling thread (except that
180 it might enter into kernel space to wake up those kthreads if
183 * **Added virtio Rx interrupt suppprt.**
185 This feature enables Rx interrupt mode for virtio pci net devices as
186 binded to VFIO (noiommu mode) and drived by virtio PMD.
188 With this feature, virtio PMD can switch between polling mode and
189 interrupt mode, to achieve best performance, and at the same time save
190 power. It can work on both legacy and modern virtio devices. At this mode,
191 each rxq is mapped with an exluded MSIx interrupt.
193 See the :ref:`Virtio Interrupt Mode <virtio_interrupt_mode>` documentation
194 for more information.
196 * **Added ARMv8 crypto PMD.**
198 A new crypto PMD has been added, which provides combined mode cryptografic
199 operations optimized for ARMv8 processors. The driver can be used to enhance
200 performance in processing chained operations such as cipher + HMAC.
202 * **Updated the QAT PMD.**
204 The QAT PMD was updated with additional support for:
207 * Scatter-gather list (SGL) support.
209 * **Updated the AESNI MB PMD.**
211 * The Intel(R) Multi Buffer Crypto for IPsec library used in
212 AESNI MB PMD has been moved to a new repository, in GitHub.
213 * Support for single operations (cipher only and authentication only).
215 * **Updated the AES-NI GCM PMD.**
217 The AES-NI GCM PMD was migrated from MB library to ISA-L library.
218 The migration entailed the following additional support for:
221 * 256-bit cipher key.
223 * Out-of place processing
224 * Scatter-gatter support for chained mbufs (only out-of place and destination
225 mbuf must be contiguous)
227 * **Added crypto performance test application.**
229 A new performance test application allows measuring performance parameters
230 of PMDs available in crypto tree.
232 * **Added Elastic Flow Distributor library (rte_efd).**
234 This new library uses perfect hashing to determine a target/value for a
235 given incoming flow key.
237 It does not store the key itself for lookup operations, and therefore,
238 lookup performance is not dependent on the key size. Also, the target/value
239 can be any arbitrary value (8 bits by default). Finally, the storage requirement
240 is much smaller than a hash-based flow table and therefore, it can better fit for
241 CPU cache, being able to scale to millions of flow keys.
243 See the :ref:`Elastic Flow Distributor Library <Efd_Library>` documentation in
244 the Programmers Guide document, for more information.
250 .. This section should contain bug fixes added to the relevant sections. Sample format:
252 * **code/section Fixed issue in the past tense with a full stop.**
254 Add a short 1-2 sentence description of the resolved issue in the past tense.
255 The title should contain the code/lib section like a commit message.
256 Add the entries in alphabetic order in the relevant sections below.
258 This section is a comment. do not overwrite or remove it.
259 Also, make sure to start the actual text at the margin.
260 =========================================================
270 * **net/virtio: Fixed multiple process support.**
272 Fixed few regressions introduced in recent releases that break the virtio
273 multiple process support.
283 * **examples/ethtool: Fixed crash with non-PCI devices.**
285 Querying a non-PCI device was dereferencing non-existent PCI data
286 resulting in a segmentation fault.
296 .. This section should contain new known issues in this release. Sample format:
298 * **Add title in present tense with full stop.**
300 Add a short 1-2 sentence description of the known issue in the present
301 tense. Add information on any known workarounds.
303 This section is a comment. do not overwrite or remove it.
304 Also, make sure to start the actual text at the margin.
305 =========================================================
311 .. This section should contain API changes. Sample format:
313 * Add a short 1-2 sentence description of the API change. Use fixed width
314 quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
316 This section is a comment. do not overwrite or remove it.
317 Also, make sure to start the actual text at the margin.
318 =========================================================
320 * **Moved five APIs for VF management from the ethdev to the ixgbe PMD.**
322 The following five APIs for VF management from the PF have been removed from the ethdev,
323 renamed and added to the ixgbe PMD::
325 rte_eth_dev_set_vf_rate_limit
326 rte_eth_dev_set_vf_rx
327 rte_eth_dev_set_vf_rxmode
328 rte_eth_dev_set_vf_tx
329 rte_eth_dev_set_vf_vlan_filter
331 The API's have been renamed to the following::
333 rte_pmd_ixgbe_set_vf_rate_limit
334 rte_pmd_ixgbe_set_vf_rx
335 rte_pmd_ixgbe_set_vf_rxmode
336 rte_pmd_ixgbe_set_vf_tx
337 rte_pmd_ixgbe_set_vf_vlan_filter
339 The declarations for the API’s can be found in ``rte_pmd_ixgbe.h``.
344 .. This section should contain ABI changes. Sample format:
346 * Add a short 1-2 sentence description of the ABI change that was announced in
347 the previous releases and made in this release. Use fixed width quotes for
348 ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
350 This section is a comment. do not overwrite or remove it.
351 Also, make sure to start the actual text at the margin.
352 =========================================================
356 Shared Library Versions
357 -----------------------
359 .. Update any library version updated in this release and prepend with a ``+``
363 + librte_cfgfile.so.2
366 This section is a comment. do not overwrite or remove it.
367 =========================================================
370 The libraries prepended with a plus sign were incremented in this version.
377 librte_cryptodev.so.2
378 librte_distributor.so.1
408 .. This section should contain a list of systems (properties, NIC, OS) that were tested with this release.
412 #. (Intel, IBM, ARM,...) platform with <company> NICs.
416 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
417 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.70GHz
418 * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
420 * Intel(R) Server board S2600WTT
421 * BIOS: SE5C610.86B.01.01.0005.101720141054
431 * Red Hat Enterprise Linux 7.2
432 * SUSE Enterprise Linux 12
440 * Intel(R) Ethernet Controller X540-AT2
442 * Firmware version: 0x80000389
443 * Device id (pf): 8086:1528
444 * Driver version: 3.23.2 (ixgbe)
447 * Intel(R) 82599ES 10 Gigabit Ethernet Controller
449 * Firmware version: 0x61bf0001
450 * Device id (pf/vf): 8086:10fb / 8086:10ed
451 * Driver version: 4.0.1-k (ixgbe)
455 This section is a comment. do not overwrite or remove it.
456 Also, make sure to start the actual text at the margin.
457 =========================================================
459 #. Intel(R) platforms with Mellanox(R) NICs.
463 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
464 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
465 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
473 * Red Hat Enterprise Linux 7.2
474 * SUSE Enterprise Linux 12
480 * MLNX_OFED: 4.0-1.0.1.0
484 * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
486 * Host interface: PCI Express 3.0 x8
487 * Device ID: 15b3:1007
488 * Firmware version: 2.40.5030
490 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
492 * Host interface: PCI Express 3.0 x8
493 * Device ID: 15b3:1013
494 * Firmware version: 12.18.1000
496 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
498 * Host interface: PCI Express 3.0 x8
499 * Device ID: 15b3:1013
500 * Firmware version: 12.18.1000
502 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
504 * Host interface: PCI Express 3.0 x8
505 * Device ID: 15b3:1013
506 * Firmware version: 12.18.1000
508 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
510 * Host interface: PCI Express 3.0 x8
511 * Device ID: 15b3:1013
512 * Firmware version: 12.18.1000
514 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
516 * Host interface: PCI Express 3.0 x8
517 * Device ID: 15b3:1013
518 * Firmware version: 12.18.1000
520 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
522 * Host interface: PCI Express 3.0 x16
523 * Device ID: 15b3:1013
524 * Firmware version: 12.18.1000
526 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
528 * Host interface: PCI Express 3.0 x8
529 * Device ID: 15b3:1013
530 * Firmware version: 12.18.1000
532 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
534 * Host interface: PCI Express 3.0 x8
535 * Device ID: 15b3:1013
536 * Firmware version: 12.18.1000
538 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
540 * Host interface: PCI Express 3.0 x16
541 * Device ID: 15b3:1013
542 * Firmware version: 12.18.1000
544 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
546 * Host interface: PCI Express 3.0 x16
547 * Device ID: 15b3:1013
548 * Firmware version: 12.18.1000
550 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
552 * Host interface: PCI Express 3.0 x16
553 * Device ID: 15b3:1013
554 * Firmware version: 12.18.1000
556 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
558 * Host interface: PCI Express 3.0 x8
559 * Device ID: 15b3:1015
560 * Firmware version: 14.18.1000
562 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
564 * Host interface: PCI Express 3.0 x8
565 * Device ID: 15b3:1015
566 * Firmware version: 14.18.1000
568 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
570 * Host interface: PCI Express 3.0 x16
571 * Device ID: 15b3:1017
572 * Firmware version: 16.18.1000
574 * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
576 * Host interface: PCI Express 4.0 x16
577 * Device ID: 15b3:1019
578 * Firmware version: 16.18.1000
580 #. IBM(R) Power8(R) with Mellanox(R) NICs.
584 * Processor: POWER8E (raw), AltiVec supported
586 * type-model: 8247-22L
587 * Firmware FW810.21 (SV810_108)
591 * Ubuntu 16.04 LTS PPC le
593 * MLNX_OFED: 4.0-1.0.1.0
597 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
599 * Host interface: PCI Express 3.0 x8
600 * Device ID: 15b3:1013
601 * Firmware version: 12.18.1000
603 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
605 * Host interface: PCI Express 3.0 x8
606 * Device ID: 15b3:1013
607 * Firmware version: 12.18.1000
609 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
611 * Host interface: PCI Express 3.0 x8
612 * Device ID: 15b3:1013
613 * Firmware version: 12.18.1000
615 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
617 * Host interface: PCI Express 3.0 x8
618 * Device ID: 15b3:1013
619 * Firmware version: 12.18.1000
621 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
623 * Host interface: PCI Express 3.0 x8
624 * Device ID: 15b3:1013
625 * Firmware version: 12.18.1000
627 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
629 * Host interface: PCI Express 3.0 x16
630 * Device ID: 15b3:1013
631 * Firmware version: 12.18.1000
633 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
635 * Host interface: PCI Express 3.0 x8
636 * Device ID: 15b3:1013
637 * Firmware version: 12.18.1000
639 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
641 * Host interface: PCI Express 3.0 x8
642 * Device ID: 15b3:1013
643 * Firmware version: 12.18.1000
645 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
647 * Host interface: PCI Express 3.0 x16
648 * Device ID: 15b3:1013
649 * Firmware version: 12.18.1000
651 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
653 * Host interface: PCI Express 3.0 x16
654 * Device ID: 15b3:1013
655 * Firmware version: 12.18.1000
657 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
659 * Host interface: PCI Express 3.0 x16
660 * Device ID: 15b3:1013
661 * Firmware version: 12.18.1000
663 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
665 * Host interface: PCI Express 3.0 x8
666 * Device ID: 15b3:1015
667 * Firmware version: 14.18.1000
669 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
671 * Host interface: PCI Express 3.0 x8
672 * Device ID: 15b3:1015
673 * Firmware version: 14.18.1000
675 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
677 * Host interface: PCI Express 3.0 x16
678 * Device ID: 15b3:1017
679 * Firmware version: 16.18.1000
681 #. Intel(R) platforms with Intel(R) NICs.
685 * Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
686 * Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
687 * Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
688 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
689 * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
690 * Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
691 * Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz
698 * Red Hat Enterprise Linux Server release 7.3
699 * 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: 4.0.1-k (ixgbe)
712 * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
714 * Firmware version: 0x800001cf
715 * Device id (pf/vf): 8086:15ad / 8086:15a8
716 * Driver version: 4.2.5 (ixgbe)
718 * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
720 * Firmware version: 5.05
721 * Device id (pf/vf): 8086:1572 / 8086:154c
722 * Driver version: 1.5.23 (i40e)
724 * Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G)
726 * Firmware version: 5.05
727 * Device id (pf/vf): 8086:1572 / 8086:154c
728 * Driver version: 1.5.23 (i40e)
730 * Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G)
732 * Firmware version: 5.05
733 * Device id (pf/vf): 8086:1584 / 8086:154c
734 * Driver version: 1.5.23 (i40e)
736 * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
738 * Firmware version: 5.05
739 * Device id (pf/vf): 8086:1583 / 8086:154c
740 * Driver version: 1.5.23 (i40e)
742 * Intel(R) Corporation I350 Gigabit Network Connection
744 * Firmware version: 1.48, 0x800006e7
745 * Device id (pf/vf): 8086:1521 / 8086:1520
746 * Driver version: 5.2.13-k (igb)