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 generic EAL API for I/O device memory read/write operations.**
43 This API introduces 8-bit, 16-bit, 32bit, 64bit I/O device
44 memory read/write operations along with the relaxed versions.
46 The weakly-ordered machine like ARM needs additional I/O barrier for
47 device memory read/write access over PCI bus.
48 By introducing the EAL abstraction for I/O device memory read/write access,
49 The drivers can access I/O device memory in architecture-agnostic manner.
50 The relaxed version does not have additional I/O memory barrier, useful in
51 accessing the device registers of integrated controllers which
52 implicitly strongly ordered with respect to memory access.
54 * **Added generic flow API (rte_flow).**
56 This API provides a generic means to configure hardware to match specific
57 ingress or egress traffic, alter its fate and query related counters
58 according to any number of user-defined rules.
60 It is slightly higher-level than the legacy filtering framework which it
61 encompasses and supersedes (including all functions and filter types) in
62 order to expose a single interface with an unambiguous behavior that is
63 common to all poll-mode drivers (PMDs).
65 See the :ref:`Generic flow API <Generic_flow_API>` documentation for more
68 * **Added firmware version get API.**
70 Added a new function ``rte_eth_dev_fw_version_get()`` to fetch firmware
71 version by a given device.
73 * **Added APIs for MACsec offload support to the ixgbe PMD.**
75 Six new APIs have been added to the ixgbe PMD for MACsec offload support.
76 The declarations for the APIs can be found in ``rte_pmd_ixgbe.h``.
78 * **Added I219 NICs support.**
80 Added support for I219 Intel 1GbE NICs.
82 * **Added VF Daemon (VFD) on i40e. - EXPERIMENTAL**
84 This's an EXPERIMENTAL feature to enhance the capability of DPDK PF as many
85 VF management features are not supported by kernel PF driver.
86 Some new private APIs are implemented in PMD without abstrction layer.
87 They can be used directly by some users who have the need.
89 The new APIs to control VFs directly from PF include,
90 1) set VF MAC anti-spoofing
91 2) set VF VLAN anti-spoofing
93 4) set VF unicast promiscuous mode
94 5) set VF multicast promiscuous mode
98 9) set VF VLAN stripping
100 12) set VF broadcast mode
102 14) set VF VLAN filter
103 VFD also includes VF to PF mailbox message management by APP.
104 When PF receives mailbox messages from VF, PF should call the callback
105 provided by APP to know if they're permitted to be processed.
107 As an EXPERIMENTAL feature, please aware it can be changed or even
108 removed without prior notice.
110 * **Updated the i40e base driver.**
112 updated the i40e base driver, including the following changes:
114 * replace existing legacy memcpy() calls with i40e_memcpy() calls.
115 * use BIT() macro instead of bit fields
116 * add clear all WoL filters implementation
117 * add broadcast promiscuous control per VLAN
118 * remove unused X722_SUPPORT and I40E_NDIS_SUPPORT MARCOs
120 * **Updated the enic driver.**
122 * Set new Rx checksum flags in mbufs to indicate unknown, good or bad.
123 * Fix set/remove of MAC addresses. Allow up to 64 addresses per device.
124 * Enable TSO on outer headers.
126 * **Added Solarflare libefx-based network PMD.**
128 A new network PMD which supports Solarflare SFN7xxx and SFN8xxx family
129 of 10/40 Gbps adapters has been added.
131 * **Updated the mlx4 driver.**
133 * Addressed a few bugs.
135 * **Added support for Mellanox ConnectX-5 adapters (mlx5).**
137 Support for Mellanox ConnectX-5 family of 10/25/40/50/100 Gbps adapters
138 has been added to the existing mlx5 PMD.
140 * **Updated the mlx5 driver.**
142 * Improve Tx performance by using vector logic.
143 * Improve RSS balancing when number of queues is not a power of two.
144 * Generic flow API support for Ethernet, IPv4, IPv4, UDP, TCP, VLAN and
145 VXLAN pattern items with DROP and QUEUE actions.
146 * Support for extended statistics.
147 * Addressed several data path bugs.
148 * As of MLNX_OFED 4.0-1.0.1.0, the Toeplitz RSS hash function is not
149 symmetric anymore for consistency with other PMDs.
151 * **virtio-user with vhost-kernel as another exceptional path.**
153 Previously, we upstreamed a virtual device, virtio-user with vhost-user
154 as the backend, as a way for IPC (Inter-Process Communication) and user
155 space container networking.
157 Virtio-user with vhost-kernel as the backend is a solution for exceptional
158 path, such as KNI, which exchanges packets with kernel networking stack.
159 This solution is very promising in:
161 * maintenance: vhost and vhost-net (kernel) is upstreamed and extensively
163 * features: vhost-net is born to be a networking solution, which has
164 lots of networking related features, like multi-queue, TSO, multi-seg
166 * performance: similar to KNI, this solution would use one or more
167 kthreads to send/receive packets from user space DPDK applications,
168 which has little impact on user space polling thread (except that
169 it might enter into kernel space to wake up those kthreads if
172 * **Added virtio Rx interrupt suppprt.**
174 This feature enables Rx interrupt mode for virtio pci net devices as
175 binded to VFIO (noiommu mode) and drived by virtio PMD.
177 With this feature, virtio PMD can switch between polling mode and
178 interrupt mode, to achieve best performance, and at the same time save
179 power. It can work on both legacy and modern virtio devices. At this mode,
180 each rxq is mapped with an exluded MSIx interrupt.
182 See the :ref:`Virtio Interrupt Mode <virtio_interrupt_mode>` documentation
183 for more information.
185 * **Added ARMv8 crypto PMD.**
187 A new crypto PMD has been added, which provides combined mode cryptografic
188 operations optimized for ARMv8 processors. The driver can be used to enhance
189 performance in processing chained operations such as cipher + HMAC.
191 * **Updated the QAT PMD.**
193 The QAT PMD was updated with additional support for:
196 * Scatter-gather list (SGL) support.
198 * **Updated the AESNI MB PMD.**
200 * The Intel(R) Multi Buffer Crypto for IPsec library used in
201 AESNI MB PMD has been moved to a new repository, in GitHub.
202 * Support for single operations (cipher only and authentication only).
204 * **Updated the AES-NI GCM PMD.**
206 The AES-NI GCM PMD was migrated from MB library to ISA-L library.
207 The migration entailed the following additional support for:
210 * 256-bit cipher key.
212 * Out-of place processing
213 * Scatter-gatter support for chained mbufs (only out-of place and destination
214 mbuf must be contiguous)
216 * **Added crypto performance test application.**
218 A new performance test application allows measuring performance parameters
219 of PMDs available in crypto tree.
221 * **Added Elastic Flow Distributor library (rte_efd).**
223 This new library uses perfect hashing to determine a target/value for a
224 given incoming flow key.
226 It does not store the key itself for lookup operations, and therefore,
227 lookup performance is not dependent on the key size. Also, the target/value
228 can be any arbitrary value (8 bits by default). Finally, the storage requirement
229 is much smaller than a hash-based flow table and therefore, it can better fit for
230 CPU cache, being able to scale to millions of flow keys.
232 See the :ref:`Elastic Flow Distributor Library <Efd_Library>` documentation in
233 the Programmers Guide document, for more information.
239 .. This section should contain bug fixes added to the relevant sections. Sample format:
241 * **code/section Fixed issue in the past tense with a full stop.**
243 Add a short 1-2 sentence description of the resolved issue in the past tense.
244 The title should contain the code/lib section like a commit message.
245 Add the entries in alphabetic order in the relevant sections below.
247 This section is a comment. do not overwrite or remove it.
248 Also, make sure to start the actual text at the margin.
249 =========================================================
259 * **net/virtio: Fixed multiple process support.**
261 Fixed few regressions introduced in recent releases that break the virtio
262 multiple process support.
272 * **examples/ethtool: Fixed crash with non-PCI devices.**
274 Querying a non-PCI device was dereferencing non-existent PCI data
275 resulting in a segmentation fault.
285 .. This section should contain new known issues in this release. Sample format:
287 * **Add title in present tense with full stop.**
289 Add a short 1-2 sentence description of the known issue in the present
290 tense. Add information on any known workarounds.
292 This section is a comment. do not overwrite or remove it.
293 Also, make sure to start the actual text at the margin.
294 =========================================================
300 .. This section should contain API changes. Sample format:
302 * Add a short 1-2 sentence description of the API change. Use fixed width
303 quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
305 This section is a comment. do not overwrite or remove it.
306 Also, make sure to start the actual text at the margin.
307 =========================================================
309 * **Moved five APIs for VF management from the ethdev to the ixgbe PMD.**
311 The following five APIs for VF management from the PF have been removed from the ethdev,
312 renamed and added to the ixgbe PMD::
314 rte_eth_dev_set_vf_rate_limit
315 rte_eth_dev_set_vf_rx
316 rte_eth_dev_set_vf_rxmode
317 rte_eth_dev_set_vf_tx
318 rte_eth_dev_set_vf_vlan_filter
320 The API's have been renamed to the following::
322 rte_pmd_ixgbe_set_vf_rate_limit
323 rte_pmd_ixgbe_set_vf_rx
324 rte_pmd_ixgbe_set_vf_rxmode
325 rte_pmd_ixgbe_set_vf_tx
326 rte_pmd_ixgbe_set_vf_vlan_filter
328 The declarations for the API’s can be found in ``rte_pmd_ixgbe.h``.
333 .. This section should contain ABI changes. Sample format:
335 * Add a short 1-2 sentence description of the ABI change that was announced in
336 the previous releases and made in this release. Use fixed width quotes for
337 ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
339 This section is a comment. do not overwrite or remove it.
340 Also, make sure to start the actual text at the margin.
341 =========================================================
345 Shared Library Versions
346 -----------------------
348 .. Update any library version updated in this release and prepend with a ``+``
352 + librte_cfgfile.so.2
355 This section is a comment. do not overwrite or remove it.
356 =========================================================
359 The libraries prepended with a plus sign were incremented in this version.
366 librte_cryptodev.so.2
367 librte_distributor.so.1
397 .. This section should contain a list of systems (properties, NIC, OS) that were tested with this release.
401 #. (Intel, IBM, ARM,...) platform with <company> NICs.
405 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
406 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.70GHz
407 * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
409 * Intel(R) Server board S2600WTT
410 * BIOS: SE5C610.86B.01.01.0005.101720141054
420 * Red Hat Enterprise Linux 7.2
421 * SUSE Enterprise Linux 12
429 * Intel(R) Ethernet Controller X540-AT2
431 * Firmware version: 0x80000389
432 * Device id (pf): 8086:1528
433 * Driver version: 3.23.2 (ixgbe)
436 * Intel(R) 82599ES 10 Gigabit Ethernet Controller
438 * Firmware version: 0x61bf0001
439 * Device id (pf/vf): 8086:10fb / 8086:10ed
440 * Driver version: 4.0.1-k (ixgbe)
444 This section is a comment. do not overwrite or remove it.
445 Also, make sure to start the actual text at the margin.
446 =========================================================
448 #. Intel(R) platforms with Mellanox(R) NICs.
452 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
453 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
454 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
462 * Red Hat Enterprise Linux 7.2
463 * SUSE Enterprise Linux 12
469 * MLNX_OFED: 4.0-1.0.1.0
473 * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
475 * Host interface: PCI Express 3.0 x8
476 * Device ID: 15b3:1007
477 * Firmware version: 2.40.5030
479 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
481 * Host interface: PCI Express 3.0 x8
482 * Device ID: 15b3:1013
483 * Firmware version: 12.18.1000
485 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
487 * Host interface: PCI Express 3.0 x8
488 * Device ID: 15b3:1013
489 * Firmware version: 12.18.1000
491 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
493 * Host interface: PCI Express 3.0 x8
494 * Device ID: 15b3:1013
495 * Firmware version: 12.18.1000
497 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
499 * Host interface: PCI Express 3.0 x8
500 * Device ID: 15b3:1013
501 * Firmware version: 12.18.1000
503 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
505 * Host interface: PCI Express 3.0 x8
506 * Device ID: 15b3:1013
507 * Firmware version: 12.18.1000
509 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
511 * Host interface: PCI Express 3.0 x16
512 * Device ID: 15b3:1013
513 * Firmware version: 12.18.1000
515 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
517 * Host interface: PCI Express 3.0 x8
518 * Device ID: 15b3:1013
519 * Firmware version: 12.18.1000
521 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
523 * Host interface: PCI Express 3.0 x8
524 * Device ID: 15b3:1013
525 * Firmware version: 12.18.1000
527 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
529 * Host interface: PCI Express 3.0 x16
530 * Device ID: 15b3:1013
531 * Firmware version: 12.18.1000
533 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
535 * Host interface: PCI Express 3.0 x16
536 * Device ID: 15b3:1013
537 * Firmware version: 12.18.1000
539 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
541 * Host interface: PCI Express 3.0 x16
542 * Device ID: 15b3:1013
543 * Firmware version: 12.18.1000
545 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
547 * Host interface: PCI Express 3.0 x8
548 * Device ID: 15b3:1015
549 * Firmware version: 14.18.1000
551 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
553 * Host interface: PCI Express 3.0 x8
554 * Device ID: 15b3:1015
555 * Firmware version: 14.18.1000
557 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
559 * Host interface: PCI Express 3.0 x16
560 * Device ID: 15b3:1017
561 * Firmware version: 16.18.1000
563 * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
565 * Host interface: PCI Express 4.0 x16
566 * Device ID: 15b3:1019
567 * Firmware version: 16.18.1000
569 #. IBM(R) Power8(R) with Mellanox(R) NICs.
573 * Processor: POWER8E (raw), AltiVec supported
575 * type-model: 8247-22L
576 * Firmware FW810.21 (SV810_108)
580 * Ubuntu 16.04 LTS PPC le
582 * MLNX_OFED: 4.0-1.0.1.0
586 * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
588 * Host interface: PCI Express 3.0 x8
589 * Device ID: 15b3:1013
590 * Firmware version: 12.18.1000
592 * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
594 * Host interface: PCI Express 3.0 x8
595 * Device ID: 15b3:1013
596 * Firmware version: 12.18.1000
598 * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
600 * Host interface: PCI Express 3.0 x8
601 * Device ID: 15b3:1013
602 * Firmware version: 12.18.1000
604 * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
606 * Host interface: PCI Express 3.0 x8
607 * Device ID: 15b3:1013
608 * Firmware version: 12.18.1000
610 * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
612 * Host interface: PCI Express 3.0 x8
613 * Device ID: 15b3:1013
614 * Firmware version: 12.18.1000
616 * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
618 * Host interface: PCI Express 3.0 x16
619 * Device ID: 15b3:1013
620 * Firmware version: 12.18.1000
622 * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
624 * Host interface: PCI Express 3.0 x8
625 * Device ID: 15b3:1013
626 * Firmware version: 12.18.1000
628 * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
630 * Host interface: PCI Express 3.0 x8
631 * Device ID: 15b3:1013
632 * Firmware version: 12.18.1000
634 * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
636 * Host interface: PCI Express 3.0 x16
637 * Device ID: 15b3:1013
638 * Firmware version: 12.18.1000
640 * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
642 * Host interface: PCI Express 3.0 x16
643 * Device ID: 15b3:1013
644 * Firmware version: 12.18.1000
646 * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
648 * Host interface: PCI Express 3.0 x16
649 * Device ID: 15b3:1013
650 * Firmware version: 12.18.1000
652 * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
654 * Host interface: PCI Express 3.0 x8
655 * Device ID: 15b3:1015
656 * Firmware version: 14.18.1000
658 * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
660 * Host interface: PCI Express 3.0 x8
661 * Device ID: 15b3:1015
662 * Firmware version: 14.18.1000
664 * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
666 * Host interface: PCI Express 3.0 x16
667 * Device ID: 15b3:1017
668 * Firmware version: 16.18.1000