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 * **virtio-user with vhost-kernel as another exceptional path.**
142 Previously, we upstreamed a virtual device, virtio-user with vhost-user
143 as the backend, as a way for IPC (Inter-Process Communication) and user
144 space container networking.
146 Virtio-user with vhost-kernel as the backend is a solution for exceptional
147 path, such as KNI, which exchanges packets with kernel networking stack.
148 This solution is very promising in:
150 * maintenance: vhost and vhost-net (kernel) is upstreamed and extensively
152 * features: vhost-net is born to be a networking solution, which has
153 lots of networking related features, like multi-queue, TSO, multi-seg
155 * performance: similar to KNI, this solution would use one or more
156 kthreads to send/receive packets from user space DPDK applications,
157 which has little impact on user space polling thread (except that
158 it might enter into kernel space to wake up those kthreads if
161 * **Added virtio Rx interrupt suppprt.**
163 This feature enables Rx interrupt mode for virtio pci net devices as
164 binded to VFIO (noiommu mode) and drived by virtio PMD.
166 With this feature, virtio PMD can switch between polling mode and
167 interrupt mode, to achieve best performance, and at the same time save
168 power. It can work on both legacy and modern virtio devices. At this mode,
169 each rxq is mapped with an exluded MSIx interrupt.
171 See the :ref:`Virtio Interrupt Mode <virtio_interrupt_mode>` documentation
172 for more information.
174 * **Added ARMv8 crypto PMD.**
176 A new crypto PMD has been added, which provides combined mode cryptografic
177 operations optimized for ARMv8 processors. The driver can be used to enhance
178 performance in processing chained operations such as cipher + HMAC.
180 * **Updated the QAT PMD.**
182 The QAT PMD was updated with additional support for:
185 * Scatter-gather list (SGL) support.
187 * **Updated the AESNI MB PMD.**
189 * The Intel(R) Multi Buffer Crypto for IPsec library used in
190 AESNI MB PMD has been moved to a new repository, in GitHub.
191 * Support for single operations (cipher only and authentication only).
193 * **Updated the AES-NI GCM PMD.**
195 The AES-NI GCM PMD was migrated from MB library to ISA-L library.
196 The migration entailed the following additional support for:
199 * 256-bit cipher key.
201 * Out-of place processing
202 * Scatter-gatter support for chained mbufs (only out-of place and destination
203 mbuf must be contiguous)
205 * **Added crypto performance test application.**
207 A new performance test application allows measuring performance parameters
208 of PMDs available in crypto tree.
210 * **Added Elastic Flow Distributor library (rte_efd).**
212 This new library uses perfect hashing to determine a target/value for a
213 given incoming flow key.
215 It does not store the key itself for lookup operations, and therefore,
216 lookup performance is not dependent on the key size. Also, the target/value
217 can be any arbitrary value (8 bits by default). Finally, the storage requirement
218 is much smaller than a hash-based flow table and therefore, it can better fit for
219 CPU cache, being able to scale to millions of flow keys.
221 See the :ref:`Elastic Flow Distributor Library <Efd_Library>` documentation in
222 the Programmers Guide document, for more information.
228 .. This section should contain bug fixes added to the relevant sections. Sample format:
230 * **code/section Fixed issue in the past tense with a full stop.**
232 Add a short 1-2 sentence description of the resolved issue in the past tense.
233 The title should contain the code/lib section like a commit message.
234 Add the entries in alphabetic order in the relevant sections below.
236 This section is a comment. do not overwrite or remove it.
237 Also, make sure to start the actual text at the margin.
238 =========================================================
248 * **net/virtio: Fixed multiple process support.**
250 Fixed few regressions introduced in recent releases that break the virtio
251 multiple process support.
261 * **examples/ethtool: Fixed crash with non-PCI devices.**
263 Querying a non-PCI device was dereferencing non-existent PCI data
264 resulting in a segmentation fault.
274 .. This section should contain new known issues in this release. Sample format:
276 * **Add title in present tense with full stop.**
278 Add a short 1-2 sentence description of the known issue in the present
279 tense. Add information on any known workarounds.
281 This section is a comment. do not overwrite or remove it.
282 Also, make sure to start the actual text at the margin.
283 =========================================================
289 .. This section should contain API changes. Sample format:
291 * Add a short 1-2 sentence description of the API change. Use fixed width
292 quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
294 This section is a comment. do not overwrite or remove it.
295 Also, make sure to start the actual text at the margin.
296 =========================================================
298 * **Moved five APIs for VF management from the ethdev to the ixgbe PMD.**
300 The following five APIs for VF management from the PF have been removed from the ethdev,
301 renamed and added to the ixgbe PMD::
303 rte_eth_dev_set_vf_rate_limit
304 rte_eth_dev_set_vf_rx
305 rte_eth_dev_set_vf_rxmode
306 rte_eth_dev_set_vf_tx
307 rte_eth_dev_set_vf_vlan_filter
309 The API's have been renamed to the following::
311 rte_pmd_ixgbe_set_vf_rate_limit
312 rte_pmd_ixgbe_set_vf_rx
313 rte_pmd_ixgbe_set_vf_rxmode
314 rte_pmd_ixgbe_set_vf_tx
315 rte_pmd_ixgbe_set_vf_vlan_filter
317 The declarations for the API’s can be found in ``rte_pmd_ixgbe.h``.
322 .. This section should contain ABI changes. Sample format:
324 * Add a short 1-2 sentence description of the ABI change that was announced in
325 the previous releases and made in this release. Use fixed width quotes for
326 ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
328 This section is a comment. do not overwrite or remove it.
329 Also, make sure to start the actual text at the margin.
330 =========================================================
334 Shared Library Versions
335 -----------------------
337 .. Update any library version updated in this release and prepend with a ``+``
341 + librte_cfgfile.so.2
344 This section is a comment. do not overwrite or remove it.
345 =========================================================
348 The libraries prepended with a plus sign were incremented in this version.
355 librte_cryptodev.so.2
356 librte_distributor.so.1
386 .. This section should contain a list of systems (properties, NIC, OS) that were tested with this release.
390 #. (Intel, IBM, ARM,...) platform with <company> NICs.
394 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
395 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.70GHz
396 * Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
398 * Intel(R) Server board S2600WTT
399 * BIOS: SE5C610.86B.01.01.0005.101720141054
409 * Red Hat Enterprise Linux 7.2
410 * SUSE Enterprise Linux 12
418 * Intel(R) Ethernet Controller X540-AT2
420 * Firmware version: 0x80000389
421 * Device id (pf): 8086:1528
422 * Driver version: 3.23.2 (ixgbe)
425 * Intel(R) 82599ES 10 Gigabit Ethernet Controller
427 * Firmware version: 0x61bf0001
428 * Device id (pf/vf): 8086:10fb / 8086:10ed
429 * Driver version: 4.0.1-k (ixgbe)
433 This section is a comment. do not overwrite or remove it.
434 Also, make sure to start the actual text at the margin.
435 =========================================================
437 #. Intel(R) platforms with Mellanox(R) NICs.
441 * Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
442 * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
443 * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
451 * Red Hat Enterprise Linux 7.2
452 * SUSE Enterprise Linux 12
458 * MLNX_OFED: 4.0-1.0.1.0
462 * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
464 * Host interface: PCI Express 3.0 x8
465 * Device ID: 15b3:1007
466 * Firmware version: 2.40.5030