a01712c9c3257da84e908c8290deb0df24e671fa
[dpdk.git] / doc / guides / rel_notes / release_19_08.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2019 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 19.08
7 ==================
8
9 .. **Read this first.**
10
11    The text in the sections below explains how to update the release notes.
12
13    Use proper spelling, capitalization and punctuation in all sections.
14
15    Variable and config names should be quoted as fixed width text:
16    ``LIKE_THIS``.
17
18    Build the docs and view the output file to ensure the changes are correct::
19
20       make doc-guides-html
21
22       xdg-open build/doc/html/guides/rel_notes/release_19_08.html
23
24
25 New Features
26 ------------
27
28 .. This section should contain new features added in this release.
29    Sample format:
30
31    * **Add a title in the past tense with a full stop.**
32
33      Add a short 1-2 sentence description in the past tense.
34      The description should be enough to allow someone scanning
35      the release notes to understand the new feature.
36
37      If the feature adds a lot of sub-features you can use a bullet list
38      like this:
39
40      * Added feature foo to do something.
41      * Enhanced feature bar to do something else.
42
43      Refer to the previous release notes for examples.
44
45      Suggested order in release notes items:
46      * Core libs (EAL, mempool, ring, mbuf, buses)
47      * Device abstraction libs and PMDs
48        - ethdev (lib, PMDs)
49        - cryptodev (lib, PMDs)
50        - eventdev (lib, PMDs)
51        - etc
52      * Other libs
53      * Apps, Examples, Tools (if significant)
54
55      This section is a comment. Do not overwrite or remove it.
56      Also, make sure to start the actual text at the margin.
57      =========================================================
58
59 * **Updated the EAL Pseudo-random Number Generator.**
60
61   The lrand48()-based rte_rand() function is replaced with a
62   DPDK-native combined Linear Feedback Shift Register (LFSR)
63   pseudo-random number generator (PRNG).
64
65   This new PRNG implementation is multi-thread safe, provides
66   higher-quality pseudo-random numbers (including full 64 bit
67   support) and improved performance.
68
69   In addition, <rte_random.h> is extended with a new function
70   rte_rand_max() which supplies unbiased, bounded pseudo-random
71   numbers.
72
73 * **Updated the bnxt PMD.**
74
75   Updated the bnxt PMD. The major enhancements include:
76
77   * Performance optimizations in non-vector Tx path
78   * Added support for SSE vector mode
79   * Updated HWRM API to version 1.10.0.74
80
81 * **Added support for Broadcom NetXtreme-E BCM57500 Ethernet controllers.**
82
83   Added support to the bnxt PMD for the BCM57500 (a.k.a. "Thor") family
84   of Ethernet controllers. These controllers support link speeds up to
85   200Gbps, 50G PAM-4, and PCIe 4.0.
86
87 * **Added hinic PMD.**
88
89   Added the new ``hinic`` net driver for Huawei Intelligent PCIE Network
90   Adapters based on the Huawei Ethernet Controller Hi1822.
91   See the :doc:`../nics/hinic` guide for more details on this new driver.
92
93 * **Updated the ice driver.**
94
95   Updated ice driver with new features and improvements, including:
96
97   * Enabled Tx outer/inner L3/L4 checksum offload.
98   * Enabled generic filter framework and supported switch filter.
99   * Supported UDP tunnel port add.
100
101 * **Updated Mellanox mlx5 driver.**
102
103   Updated Mellanox mlx5 driver with new features and improvements, including:
104
105   * Updated the packet header modification feature. Added support of TCP header
106     sequence number and acknowledgment number modification.
107
108 * **Updated Solarflare network PMD.**
109
110   Updated the Solarflare ``sfc_efx`` driver with changes including:
111
112   * Added support for Rx interrupts.
113
114 * **Added memif PMD.**
115
116   Added the new Shared Memory Packet Interface (``memif``) PMD.
117   See the :doc:`../nics/memif` guide for more details on this new driver.
118
119 * **Updated the AF_XDP PMD.**
120
121   Updated the AF_XDP PMD. The new features include:
122
123   * Enabled zero copy through mbuf's external memory mechanism to achieve
124     high performance
125   * Added multi-queue support to allow one af_xdp vdev with multiple netdev
126     queues
127   * Enabled need_wakeup feature which can provide efficient support for case
128     that application and driver executing on the same core.
129
130 * **Enabled infinite Rx in the PCAP PMD.**
131
132   Added an infinite Rx feature which allows packets in the Rx PCAP of a PCAP
133   device to be received repeatedly at a high rate. This can be useful for quick
134   performance testing of DPDK apps.
135
136 * **Added a FPGA_LTE_FEC bbdev PMD.**
137
138   Added the new ``fpga_lte_fec`` bbdev driver for the IntelĀ® FPGA PAC
139   (Programmable  Acceleration Card) N3000.  See the
140   :doc:`../bbdevs/fpga_lte_fec` BBDEV guide for more details on this new driver.
141
142 * **Updated TURBO_SW bbdev PMD.**
143
144   Updated the ``turbo_sw`` bbdev driver with changes including:
145
146   * Added option to build the driver with or without dependency of external
147     SDK libraries.
148   * Added support for 5GNR encode/decode operations.
149
150 * **Updated the QuickAssist Technology (QAT) symmetric crypto PMD.**
151
152   Added support for digest-encrypted cases where digest is appended
153   to the data.
154
155 * **Added Intel QuickData Technology PMD**
156
157   The PMD for Intel\ |reg|  QuickData Technology, part of
158   Intel\ |reg|  I/O Acceleration Technology `(Intel I/OAT)
159   <https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_,
160   allows data copies to be done by hardware instead
161   of via software, reducing cycles spent copying large blocks of data in
162   applications.
163
164 * **Introduced NTB PMD.**
165
166   Added a PMD for Intel NTB (Non-transparent Bridge). This PMD implemented
167   handshake between two separate hosts and can share local memory for peer
168   host to directly access.
169
170 * **Updated IPSec library Header Reconstruction.**
171
172   Updated the IPSec library with ECN and DSCP field header reconstruction
173   feature followed by RFC4301. The IPSec-secgw sample application is also
174   updated to support this feature by default.
175
176 * **Updated telemetry library for global metrics support.**
177
178   Updated ``librte_telemetry`` to fetch the global metrics from the
179   ``librte_metrics`` library.
180
181 * **Added new telemetry mode for l3fwd-power application.**
182
183   Added telemetry mode to l3fwd-power application to report
184   application level busyness, empty and full polls of rte_eth_rx_burst().
185
186
187 Removed Items
188 -------------
189
190 .. This section should contain removed items in this release. Sample format:
191
192    * Add a short 1-2 sentence description of the removed item
193      in the past tense.
194
195    This section is a comment. Do not overwrite or remove it.
196    Also, make sure to start the actual text at the margin.
197    =========================================================
198
199 * Removed KNI ethtool, CONFIG_RTE_KNI_KMOD_ETHTOOL, support.
200
201 * build: armv8 crypto extension is disabled.
202
203
204 API Changes
205 -----------
206
207 .. This section should contain API changes. Sample format:
208
209    * sample: Add a short 1-2 sentence description of the API change
210      which was announced in the previous releases and made in this release.
211      Start with a scope label like "ethdev:".
212      Use fixed width quotes for ``function_names`` or ``struct_names``.
213      Use the past tense.
214
215    This section is a comment. Do not overwrite or remove it.
216    Also, make sure to start the actual text at the margin.
217    =========================================================
218
219 * The ``rte_mem_config`` structure has been made private. The new accessor
220   ``rte_mcfg_*`` functions were introduced to provide replacement for direct
221   access to the shared mem config.
222
223 * The network structures, definitions and functions have
224   been prefixed by ``rte_`` to resolve conflicts with libc headers.
225
226 * malloc: The function ``rte_malloc_set_limit`` was never implemented
227   is deprecated and will be removed in a future release.
228
229 * eventdev: No longer marked as experimental.
230
231   The eventdev functions are no longer marked as experimental, and have
232   become part of the normal DPDK API and ABI. Any future ABI changes will be
233   announced at least one release before the ABI change is made. There are no
234   ABI breaking changes planned.
235
236
237 ABI Changes
238 -----------
239
240 .. This section should contain ABI changes. Sample format:
241
242    * sample: Add a short 1-2 sentence description of the ABI change
243      which was announced in the previous releases and made in this release.
244      Start with a scope label like "ethdev:".
245      Use fixed width quotes for ``function_names`` or ``struct_names``.
246      Use the past tense.
247
248    This section is a comment. Do not overwrite or remove it.
249    Also, make sure to start the actual text at the margin.
250    =========================================================
251
252 * eventdev: Event based Rx adapter callback
253
254   The mbuf pointer array in the event eth Rx adapter callback
255   has been replaced with an event array. Using
256   an event array allows the application to change attributes
257   of the events enqueued by the SW adapter.
258
259   The callback can drop packets and populate
260   a callback argument with the number of dropped packets.
261   Add a Rx adapter stats field to keep track of the total
262   number of dropped packets.
263
264 * cryptodev: New member in ``rte_cryptodev_config`` to allow applications to
265   disable features supported by the crypto device. Only the following features
266   would be allowed to be disabled this way,
267
268   - ``RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO``
269   - ``RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO``
270   - ``RTE_CRYPTODEV_FF_SECURITY``
271
272   Disabling unused features would facilitate efficient usage of HW/SW offload.
273
274 * bbdev: New operations and parameters added to support new 5GNR operations.
275   The bbdev ABI is still kept experimental.
276
277
278 Shared Library Versions
279 -----------------------
280
281 .. Update any library version updated in this release
282    and prepend with a ``+`` sign, like this:
283
284      libfoo.so.1
285    + libupdated.so.2
286      libbar.so.1
287
288    This section is a comment. Do not overwrite or remove it.
289    =========================================================
290
291 The libraries prepended with a plus sign were incremented in this version.
292
293 .. code-block:: diff
294
295      librte_acl.so.2
296      librte_bbdev.so.1
297      librte_bitratestats.so.2
298      librte_bpf.so.1
299      librte_bus_dpaa.so.2
300      librte_bus_fslmc.so.2
301      librte_bus_ifpga.so.2
302      librte_bus_pci.so.2
303      librte_bus_vdev.so.2
304      librte_bus_vmbus.so.2
305      librte_cfgfile.so.2
306      librte_cmdline.so.2
307      librte_compressdev.so.1
308    + librte_cryptodev.so.8
309      librte_distributor.so.1
310    + librte_eal.so.11
311      librte_efd.so.1
312      librte_ethdev.so.12
313    + librte_eventdev.so.7
314      librte_flow_classify.so.1
315      librte_gro.so.1
316      librte_gso.so.1
317      librte_hash.so.2
318      librte_ip_frag.so.1
319      librte_ipsec.so.1
320      librte_jobstats.so.1
321      librte_kni.so.2
322      librte_kvargs.so.1
323      librte_latencystats.so.1
324      librte_lpm.so.2
325      librte_mbuf.so.5
326      librte_member.so.1
327      librte_mempool.so.5
328      librte_meter.so.3
329      librte_metrics.so.1
330      librte_net.so.1
331      librte_pci.so.1
332      librte_pdump.so.3
333      librte_pipeline.so.3
334      librte_pmd_bnxt.so.2
335      librte_pmd_bond.so.2
336      librte_pmd_i40e.so.2
337      librte_pmd_ixgbe.so.2
338      librte_pmd_dpaa2_qdma.so.1
339      librte_pmd_ring.so.2
340      librte_pmd_softnic.so.1
341      librte_pmd_vhost.so.2
342      librte_port.so.3
343      librte_power.so.1
344      librte_rawdev.so.1
345      librte_rcu.so.1
346      librte_reorder.so.1
347      librte_ring.so.2
348      librte_sched.so.2
349      librte_security.so.2
350      librte_stack.so.1
351      librte_table.so.3
352      librte_timer.so.1
353      librte_vhost.so.4
354
355
356 Known Issues
357 ------------
358
359 .. This section should contain new known issues in this release. Sample format:
360
361    * **Add title in present tense with full stop.**
362
363      Add a short 1-2 sentence description of the known issue
364      in the present tense. Add information on any known workarounds.
365
366    This section is a comment. Do not overwrite or remove it.
367    Also, make sure to start the actual text at the margin.
368    =========================================================
369
370
371 Tested Platforms
372 ----------------
373
374 .. This section should contain a list of platforms that were tested
375    with this release.
376
377    The format is:
378
379    * <vendor> platform with <vendor> <type of devices> combinations
380
381      * List of CPU
382      * List of OS
383      * List of devices
384      * Other relevant details...
385
386    This section is a comment. Do not overwrite or remove it.
387    Also, make sure to start the actual text at the margin.
388    =========================================================
389