7b8ea4dea46baea468c9e6449491e94c6a92500b
[dpdk.git] / doc / guides / rel_notes / release_19_05.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2019 The DPDK contributors
3
4 DPDK Release 19.05
5 ==================
6
7 .. **Read this first.**
8
9    The text in the sections below explains how to update the release notes.
10
11    Use proper spelling, capitalization and punctuation in all sections.
12
13    Variable and config names should be quoted as fixed width text:
14    ``LIKE_THIS``.
15
16    Build the docs and view the output file to ensure the changes are correct::
17
18       make doc-guides-html
19
20       xdg-open build/doc/html/guides/rel_notes/release_19_05.html
21
22
23 New Features
24 ------------
25
26 .. This section should contain new features added in this release.
27    Sample format:
28
29    * **Add a title in the past tense with a full stop.**
30
31      Add a short 1-2 sentence description in the past tense.
32      The description should be enough to allow someone scanning
33      the release notes to understand the new feature.
34
35      If the feature adds a lot of sub-features you can use a bullet list
36      like this:
37
38      * Added feature foo to do something.
39      * Enhanced feature bar to do something else.
40
41      Refer to the previous release notes for examples.
42
43      Suggested order in release notes items:
44      * Core libs (EAL, mempool, ring, mbuf, buses)
45      * Device abstraction libs and PMDs
46        - ethdev (lib, PMDs)
47        - cryptodev (lib, PMDs)
48        - eventdev (lib, PMDs)
49        - etc
50      * Other libs
51      * Apps, Examples, Tools (if significant)
52
53      This section is a comment. Do not overwrite or remove it.
54      Also, make sure to start the actual text at the margin.
55      =========================================================
56
57 * **Added new armv8 machine targets:**
58
59   * BlueField (Mellanox)
60   * OcteonTX2 (Marvell)
61   * ThunderX2 (Marvell)
62
63 * **Introduced Windows Support.**
64
65   Added Windows support to build Hello World sample application.
66
67 * **Added Stack API.**
68
69   Added a new stack API for configuration and use of a bounded stack of
70   pointers. The API provides MT-safe push and pop operations that can operate
71   on one or more pointers per operation.
72
73   The library supports two stack implementations: standard (lock-based) and lock-free.
74   The lock-free implementation is currently limited to x86-64 platforms.
75
76 * **Added Lock-Free Stack Mempool Handler.**
77
78   Added a new lock-free stack handler, which uses the newly added stack
79   library.
80
81 * **Added RCU library.**
82
83   Added RCU library supporting quiescent state based memory reclamation method.
84   This library helps identify the quiescent state of the reader threads so
85   that the writers can free the memory associated with the lock free data
86   structures.
87
88 * **Updated KNI module and PMD.**
89
90   Updated the KNI kernel module to set the max_mtu according to the given
91   initial MTU size. Without it, the maximum MTU was 1500.
92
93   Updated the KNI PMD driver to set the mbuf_size and MTU based on
94   the given mb-pool. This provide the ability to pass jumbo frames
95   if the mb-pool contains suitable buffers' size.
96
97 * **Added the AF_XDP PMD.**
98
99   Added a Linux-specific PMD driver for AF_XDP, it can create the AF_XDP socket
100   and bind it to a specific netdev queue, it allows a DPDK application to send
101   and receive raw packets through the socket which would bypass the kernel
102   network stack to achieve high performance packet processing.
103
104 * **Added a net PMD NFB.**
105
106   Added the new ``nfb`` net driver for Netcope NFB cards. See
107   the :doc:`../nics/nfb` NIC guide for more details on this new driver.
108
109 * **Added IPN3KE net PMD.**
110
111   Added the new ``ipn3ke`` net driver for IntelĀ® FPGA PAC(Programmable
112   Acceleration Card) N3000. See the :doc:`../nics/ipn3ke` NIC guide for more
113   details on this new driver.
114
115   Aside from this, ifpga_rawdev is also updated to support IntelĀ® FPGA PAC
116   N3000 with SPI interface access, I2C Read/Write and Ethernet PHY configuration.
117
118 * **Updated Solarflare network PMD.**
119
120   Updated the sfc_efx driver including the following changes:
121
122   * Added support for Rx descriptor status and related API in a secondary
123     process.
124   * Added support for Tx descriptor status API in a secondary process.
125   * Added support for RSS RETA and hash configuration get API in a secondary
126     process.
127   * Added support for Rx packet types list in a secondary process.
128   * Added Tx prepare to do Tx offloads checks.
129   * Added support for VXLAN and GENEVE encapsulated TSO.
130
131 * **Updated Mellanox mlx4 driver.**
132
133    New features and improvements were done:
134
135    * Added firmware version reading.
136    * Added support for secondary process.
137    * Added support of per-process device registers, reserving identical VA space
138      is not needed anymore.
139    * Added support for multicast address list interface
140
141 * **Updated Mellanox mlx5 driver.**
142
143    New features and improvements were done:
144
145    * Added firmware version reading.
146    * Added support of new naming scheme of representor.
147    * Added support for new PCI device DMA map/unmap API.
148    * Added support for multiport InfiniBand device.
149    * Added control of excessive memory pinning by kernel.
150    * Added support of DMA memory registration by secondary process.
151    * Added Direct Rule support in Direct Verbs flow driver.
152    * Added support of per-process device registers, reserving identical VA space
153      is not needed anymore.
154    * Added E-Switch support in Direct Verbs flow driver.
155
156 * **Renamed avf to iavf.**
157
158   Renamed Intel Ethernet Adaptive Virtual Function driver ``avf`` to ``iavf``,
159   which includes the directory name, lib name, filenames, makefile, docs,
160   macros, functions, structs and any other strings in the code.
161
162 * **Updated the enic driver.**
163
164   * Fixed several flow (director) bugs related to MARK, SCTP, VLAN, VXLAN, and
165     inner packet matching.
166   * Added limited support for RAW.
167   * Added limited support for RSS.
168   * Added limited support for PASSTHRU.
169
170 * **Updated the ixgbe driver.**
171
172   New features for VF:
173
174   * Added promiscuous mode support.
175
176 * **Updated the ice driver.**
177
178   * Added support of SSE and AVX2 instructions in Rx and Tx paths.
179   * Added package download support.
180   * Added Safe Mode support.
181   * Supported RSS for UPD/TCP/SCTP+IPV4/IPV6 packets.
182
183 * **Updated the i40e driver.**
184
185   New features for PF:
186
187   * Added support for VXLAN-GPE packet.
188   * Added support for VXLAN-GPE classification.
189
190 * **Updated the ENETC driver.**
191
192   New features:
193
194   * Added physical addressing mode support
195   * Added SXGMII interface support
196   * Added basic statistics support
197   * Added promiscuous and allmulticast mode support
198   * Added MTU update support
199   * Added jumbo frame support
200   * Added queue start/stop
201   * Added CRC offload support
202   * Added Rx checksum offload validation support
203
204 * **Updated the atlantic PMD.**
205
206   Added MACSEC hardware offload experimental API.
207
208 * **Updated the Intel QuickAssist Technology (QAT) compression PMD.**
209
210   Simplified and made more robust QAT compressdev PMD's handling of SGLs with
211   more than 16 segments.
212
213 * **Updated the QuickAssist Technology (QAT) symmetric crypto PMD.**
214
215   Added support for AES-XTS with 128 and 256 bit AES keys.
216
217 * **Added Intel QuickAssist Technology PMD for asymmetric crypto.**
218
219   A new QAT Crypto PMD has been added, which provides asymmetric cryptography
220   algorithms, in this release modular exponentiation and modular multiplicative
221   inverse algorithms were added.
222
223 * **Updated AESNI-MB PMD.**
224
225   Added support for out-of-place operations.
226
227 * **Updated the IPsec library.**
228
229   The IPsec library has been updated with AES-CTR and 3DES-CBC cipher algorithms
230   support. The related ipsec-secgw test scripts have been added.
231
232 * **Updated the testpmd application.**
233
234   Improved testpmd application performance on ARM platform. For ``macswap``
235   forwarding mode, NEON intrinsics were used to do swap to save CPU cycles.
236
237 * **Updated power management library.**
238
239   Added support for Intel Speed Select Technology - Base Frequency (SST-BF).
240   ``rte_power_get_capabilities`` now has a bit in it's returned mask
241   indicating it's a high frequency core.
242
243 * **Updated distributor sample application.**
244
245   Added support for Intel SST-BF feature so that the distributor core is
246   pinned to a high frequency core if available.
247
248
249 Removed Items
250 -------------
251
252 .. This section should contain removed items in this release. Sample format:
253
254    * Add a short 1-2 sentence description of the removed item
255      in the past tense.
256
257    This section is a comment. Do not overwrite or remove it.
258    Also, make sure to start the actual text at the margin.
259    =========================================================
260
261
262 API Changes
263 -----------
264
265 .. This section should contain API changes. Sample format:
266
267    * sample: Add a short 1-2 sentence description of the API change
268      which was announced in the previous releases and made in this release.
269      Start with a scope label like "ethdev:".
270      Use fixed width quotes for ``function_names`` or ``struct_names``.
271      Use the past tense.
272
273    This section is a comment. Do not overwrite or remove it.
274    Also, make sure to start the actual text at the margin.
275    =========================================================
276
277 * eal: the type of the ``attr_value`` parameter of the function
278   ``rte_service_attr_get()`` has been changed
279   from ``uint32_t *`` to ``uint64_t *``.
280
281 * meter: replace ``enum rte_meter_color`` in meter library with new
282   ``rte_color`` definition added in 19.02. To consolidate mulitple color
283   definitions replicated at many places such as: rte_mtr.h, rte_tm.h,
284   replacements with rte_color values are done.
285
286 * vfio: Functions ``rte_vfio_container_dma_map`` and
287   ``rte_vfio_container_dma_unmap`` have been extended with an option to
288   request mapping or un-mapping to the default vfio container fd.
289
290 * power: ``rte_power_set_env`` and ``rte_power_unset_env`` functions
291   have been modified to be thread safe.
292
293 * timer: Functions have been introduced that allow multiple instances of the
294   timer lists to be created, and they are now allocated in shared memory. New
295   functions allow particular timer lists to be selected when timers are being
296   started, stopped, and managed.
297
298
299 ABI Changes
300 -----------
301
302 .. This section should contain ABI changes. Sample format:
303
304    * sample: Add a short 1-2 sentence description of the ABI change
305      which was announced in the previous releases and made in this release.
306      Start with a scope label like "ethdev:".
307      Use fixed width quotes for ``function_names`` or ``struct_names``.
308      Use the past tense.
309
310    This section is a comment. Do not overwrite or remove it.
311    Also, make sure to start the actual text at the margin.
312    =========================================================
313
314 * ethdev: Additional fields in rte_eth_dev_info.
315
316   The ``rte_eth_dev_info`` structure has had two extra fields
317   added: ``min_mtu`` and ``max_mtu``. Each of these are of type ``uint16_t``.
318   The values of these fields can be set specifically by the PMD drivers as
319   supported values can vary from device to device.
320
321 * cryptodev: in 18.08 new structure ``rte_crypto_asym_op`` was introduced and
322   included into ``rte_crypto_op``. As ``rte_crypto_asym_op`` structure was
323   defined as cache-line aligned that caused unintended changes in
324   ``rte_crypto_op`` structure layout and alignment. Remove cache-line
325   alignment for ``rte_crypto_asym_op`` to restore expected ``rte_crypto_op``
326   layout and alignment.
327
328 * timer: ``rte_timer_subsystem_init`` now returns success or failure to reflect
329   whether it was able to allocate memory.
330
331
332 Shared Library Versions
333 -----------------------
334
335 .. Update any library version updated in this release
336    and prepend with a ``+`` sign, like this:
337
338      libfoo.so.1
339    + libupdated.so.2
340      libbar.so.1
341
342    This section is a comment. Do not overwrite or remove it.
343    =========================================================
344
345 The libraries prepended with a plus sign were incremented in this version.
346
347 .. code-block:: diff
348
349      librte_acl.so.2
350      librte_bbdev.so.1
351      librte_bitratestats.so.2
352      librte_bpf.so.1
353      librte_bus_dpaa.so.2
354      librte_bus_fslmc.so.2
355      librte_bus_ifpga.so.2
356      librte_bus_pci.so.2
357      librte_bus_vdev.so.2
358      librte_bus_vmbus.so.2
359      librte_cfgfile.so.2
360      librte_cmdline.so.2
361      librte_compressdev.so.1
362    + librte_cryptodev.so.7
363      librte_distributor.so.1
364    + librte_eal.so.10
365      librte_efd.so.1
366    + librte_ethdev.so.12
367      librte_eventdev.so.6
368      librte_flow_classify.so.1
369      librte_gro.so.1
370      librte_gso.so.1
371      librte_hash.so.2
372      librte_ip_frag.so.1
373      librte_ipsec.so.1
374      librte_jobstats.so.1
375      librte_kni.so.2
376      librte_kvargs.so.1
377      librte_latencystats.so.1
378      librte_lpm.so.2
379      librte_mbuf.so.5
380      librte_member.so.1
381      librte_mempool.so.5
382      librte_meter.so.3
383      librte_metrics.so.1
384      librte_net.so.1
385      librte_pci.so.1
386      librte_pdump.so.3
387      librte_pipeline.so.3
388      librte_pmd_bnxt.so.2
389      librte_pmd_bond.so.2
390      librte_pmd_i40e.so.2
391      librte_pmd_ixgbe.so.2
392      librte_pmd_dpaa2_qdma.so.1
393      librte_pmd_ring.so.2
394      librte_pmd_softnic.so.1
395      librte_pmd_vhost.so.2
396      librte_port.so.3
397      librte_power.so.1
398      librte_rawdev.so.1
399    + librte_rcu.so.1
400      librte_reorder.so.1
401      librte_ring.so.2
402      librte_sched.so.2
403      librte_security.so.2
404    + librte_stack.so.1
405      librte_table.so.3
406      librte_timer.so.1
407      librte_vhost.so.4
408
409
410 Known Issues
411 ------------
412
413 .. This section should contain new known issues in this release. Sample format:
414
415    * **Add title in present tense with full stop.**
416
417      Add a short 1-2 sentence description of the known issue
418      in the present tense. Add information on any known workarounds.
419
420    This section is a comment. Do not overwrite or remove it.
421    Also, make sure to start the actual text at the margin.
422    =========================================================
423
424 * **On x86 platforms, AVX512 support is disabled with binutils 2.31**
425
426   Because a defect in binutils 2.31 AVX512 support is disabled.
427   DPDK defect: https://bugs.dpdk.org/show_bug.cgi?id=249
428   GCC defect: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028
429
430 * **No software AES-XTS implementation.**
431
432   There are currently no cryptodev software PMDs available which implement
433   support for the AES-XTS algorithm, so this feature can only be used
434   if compatible hardware and an associated PMD is available.
435
436
437 Tested Platforms
438 ----------------
439
440 .. This section should contain a list of platforms that were tested
441    with this release.
442
443    The format is:
444
445    * <vendor> platform with <vendor> <type of devices> combinations
446
447      * List of CPU
448      * List of OS
449      * List of devices
450      * Other relevant details...
451
452    This section is a comment. Do not overwrite or remove it.
453    Also, make sure to start the actual text at the margin.
454    =========================================================