2acb42e4564137a99c67fe61a5ae9d189c46b0f5
[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 Stack API.**
58
59   Added a new stack API for configuration and use of a bounded stack of
60   pointers. The API provides MT-safe push and pop operations that can operate
61   on one or more pointers per operation.
62
63   The library supports two stack implementations: standard (lock-based) and lock-free.
64   The lock-free implementation is currently limited to x86-64 platforms.
65
66 * **Added Lock-Free Stack Mempool Handler.**
67
68   Added a new lock-free stack handler, which uses the newly added stack
69   library.
70
71 * **Updated KNI module and PMD.**
72
73   Updated the KNI kernel module to set the max_mtu according to the given
74   initial MTU size. Without it, the maximum MTU was 1500.
75
76   Updated the KNI PMD driver to set the mbuf_size and MTU based on
77   the given mb-pool. This provide the ability to pass jumbo frames
78   if the mb-pool contains suitable buffers' size.
79
80 * **Added the AF_XDP PMD.**
81
82   Added a Linux-specific PMD driver for AF_XDP, it can create the AF_XDP socket
83   and bind it to a specific netdev queue, it allows a DPDK application to send
84   and receive raw packets through the socket which would bypass the kernel
85   network stack to achieve high performance packet processing.
86
87 * **Updated Solarflare network PMD.**
88
89   Updated the sfc_efx driver including the following changes:
90
91   * Added support for Rx descriptor status and related API in a secondary
92     process.
93   * Added support for Tx descriptor status API in a secondary process.
94   * Added support for RSS RETA and hash configuration get API in a secondary
95     process.
96   * Added support for Rx packet types list in a secondary process.
97   * Added Tx prepare to do Tx offloads checks.
98   * Added support for VXLAN and GENEVE encapsulated TSO.
99
100 * **Updated Mellanox drivers.**
101
102    New features and improvements were done in mlx4 and mlx5 PMDs:
103
104    * Added firmware version reading.
105
106 * **Renamed avf to iavf.**
107
108   Renamed Intel Ethernet Adaptive Virtual Function driver ``avf`` to ``iavf``,
109   which includes the directory name, lib name, filenames, makefile, docs,
110   macros, functions, structs and any other strings in the code.
111
112 * **Updated the enic driver.**
113
114   * Fixed several flow (director) bugs related to MARK, SCTP, VLAN, VXLAN, and
115     inner packet matching.
116   * Added limited support for RAW.
117   * Added limited support for RSS.
118   * Added limited support for PASSTHRU.
119
120 * **Updated the ixgbe driver.**
121
122   New features for VF:
123
124   * Added promiscuous mode support.
125
126 * **Updated the ice driver.**
127
128   * Added support of SSE and AVX2 instructions in Rx and Tx paths.
129   * Added package download support.
130   * Added Safe Mode support.
131   * Supported RSS for UPD/TCP/SCTP+IPV4/IPV6 packets.
132
133 * **Updated the QuickAssist Technology PMD.**
134
135   Added support for AES-XTS with 128 and 256 bit AES keys.
136
137 * **Updated AESNI-MB PMD.**
138
139   Added support for out-of-place operations.
140
141 * **Updated the IPsec library.**
142
143   The IPsec library has been updated with AES-CTR and 3DES-CBC cipher algorithms
144   support. The related ipsec-secgw test scripts have been added.
145
146 * **Updated the testpmd application.**
147
148   Improved testpmd application performance on ARM platform. For ``macswap``
149   forwarding mode, NEON intrinsics were used to do swap to save CPU cycles.
150
151
152 Removed Items
153 -------------
154
155 .. This section should contain removed items in this release. Sample format:
156
157    * Add a short 1-2 sentence description of the removed item
158      in the past tense.
159
160    This section is a comment. Do not overwrite or remove it.
161    Also, make sure to start the actual text at the margin.
162    =========================================================
163
164
165 API Changes
166 -----------
167
168 .. This section should contain API changes. Sample format:
169
170    * sample: Add a short 1-2 sentence description of the API change
171      which was announced in the previous releases and made in this release.
172      Start with a scope label like "ethdev:".
173      Use fixed width quotes for ``function_names`` or ``struct_names``.
174      Use the past tense.
175
176    This section is a comment. Do not overwrite or remove it.
177    Also, make sure to start the actual text at the margin.
178    =========================================================
179
180 * eal: the type of the ``attr_value`` parameter of the function
181   ``rte_service_attr_get()`` has been changed
182   from ``uint32_t *`` to ``uint64_t *``.
183
184 * vfio: Functions ``rte_vfio_container_dma_map`` and
185   ``rte_vfio_container_dma_unmap`` have been extended with an option to
186   request mapping or un-mapping to the default vfio container fd.
187
188
189 ABI Changes
190 -----------
191
192 .. This section should contain ABI changes. Sample format:
193
194    * sample: Add a short 1-2 sentence description of the ABI change
195      which was announced in the previous releases and made in this release.
196      Start with a scope label like "ethdev:".
197      Use fixed width quotes for ``function_names`` or ``struct_names``.
198      Use the past tense.
199
200    This section is a comment. Do not overwrite or remove it.
201    Also, make sure to start the actual text at the margin.
202    =========================================================
203
204 * ethdev: Additional fields in rte_eth_dev_info.
205
206   The ``rte_eth_dev_info`` structure has had two extra fields
207   added: ``min_mtu`` and ``max_mtu``. Each of these are of type ``uint16_t``.
208   The values of these fields can be set specifically by the PMD drivers as
209   supported values can vary from device to device.
210
211 * cryptodev: in 18.08 new structure ``rte_crypto_asym_op`` was introduced and
212   included into ``rte_crypto_op``. As ``rte_crypto_asym_op`` structure was
213   defined as cache-line aligned that caused unintended changes in
214   ``rte_crypto_op`` structure layout and alignment. Remove cache-line
215   alignment for ``rte_crypto_asym_op`` to restore expected ``rte_crypto_op``
216   layout and alignment.
217
218
219 Shared Library Versions
220 -----------------------
221
222 .. Update any library version updated in this release
223    and prepend with a ``+`` sign, like this:
224
225      libfoo.so.1
226    + libupdated.so.2
227      libbar.so.1
228
229    This section is a comment. Do not overwrite or remove it.
230    =========================================================
231
232 The libraries prepended with a plus sign were incremented in this version.
233
234 .. code-block:: diff
235
236      librte_acl.so.2
237      librte_bbdev.so.1
238      librte_bitratestats.so.2
239      librte_bpf.so.1
240      librte_bus_dpaa.so.2
241      librte_bus_fslmc.so.2
242      librte_bus_ifpga.so.2
243      librte_bus_pci.so.2
244      librte_bus_vdev.so.2
245      librte_bus_vmbus.so.2
246      librte_cfgfile.so.2
247      librte_cmdline.so.2
248      librte_compressdev.so.1
249    + librte_cryptodev.so.7
250      librte_distributor.so.1
251    + librte_eal.so.10
252      librte_efd.so.1
253    + librte_ethdev.so.12
254      librte_eventdev.so.6
255      librte_flow_classify.so.1
256      librte_gro.so.1
257      librte_gso.so.1
258      librte_hash.so.2
259      librte_ip_frag.so.1
260      librte_ipsec.so.1
261      librte_jobstats.so.1
262      librte_kni.so.2
263      librte_kvargs.so.1
264      librte_latencystats.so.1
265      librte_lpm.so.2
266      librte_mbuf.so.5
267      librte_member.so.1
268      librte_mempool.so.5
269      librte_meter.so.2
270      librte_metrics.so.1
271      librte_net.so.1
272      librte_pci.so.1
273      librte_pdump.so.3
274      librte_pipeline.so.3
275      librte_pmd_bnxt.so.2
276      librte_pmd_bond.so.2
277      librte_pmd_i40e.so.2
278      librte_pmd_ixgbe.so.2
279      librte_pmd_dpaa2_qdma.so.1
280      librte_pmd_ring.so.2
281      librte_pmd_softnic.so.1
282      librte_pmd_vhost.so.2
283      librte_port.so.3
284      librte_power.so.1
285      librte_rawdev.so.1
286      librte_reorder.so.1
287      librte_ring.so.2
288      librte_sched.so.2
289      librte_security.so.2
290    + librte_stack.so.1
291      librte_table.so.3
292      librte_timer.so.1
293      librte_vhost.so.4
294
295
296 Known Issues
297 ------------
298
299 .. This section should contain new known issues in this release. Sample format:
300
301    * **Add title in present tense with full stop.**
302
303      Add a short 1-2 sentence description of the known issue
304      in the present tense. Add information on any known workarounds.
305
306    This section is a comment. Do not overwrite or remove it.
307    Also, make sure to start the actual text at the margin.
308    =========================================================
309
310 * **No software AES-XTS implementation.**
311
312   There are currently no cryptodev software PMDs available which implement
313   support for the AES-XTS algorithm, so this feature can only be used
314   if compatible hardware and an associated PMD is available.
315
316
317 Tested Platforms
318 ----------------
319
320 .. This section should contain a list of platforms that were tested
321    with this release.
322
323    The format is:
324
325    * <vendor> platform with <vendor> <type of devices> combinations
326
327      * List of CPU
328      * List of OS
329      * List of devices
330      * Other relevant details...
331
332    This section is a comment. Do not overwrite or remove it.
333    Also, make sure to start the actual text at the margin.
334    =========================================================