net/mlx5: match GRE key and present bits
[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 * **Added MCS lock.**
60
61   MCS lock provides scalability by spinning on a CPU/thread local variable
62   which avoids expensive cache bouncings.
63   It provides fairness by maintaining a list of acquirers and passing
64   the lock to each CPU/thread in the order they acquired the lock.
65
66 * **Updated the EAL Pseudo-random Number Generator.**
67
68   The lrand48()-based rte_rand() function is replaced with a
69   DPDK-native combined Linear Feedback Shift Register (LFSR)
70   pseudo-random number generator (PRNG).
71
72   This new PRNG implementation is multi-thread safe, provides
73   higher-quality pseudo-random numbers (including full 64 bit
74   support) and improved performance.
75
76   In addition, <rte_random.h> is extended with a new function
77   rte_rand_max() which supplies unbiased, bounded pseudo-random
78   numbers.
79
80 * **Updated the bnxt PMD.**
81
82   Updated the bnxt PMD. The major enhancements include:
83
84   * Performance optimizations in non-vector Tx path
85   * Added support for SSE vector mode
86   * Updated HWRM API to version 1.10.0.74
87
88 * **Added support for Broadcom NetXtreme-E BCM57500 Ethernet controllers.**
89
90   Added support to the bnxt PMD for the BCM57500 (a.k.a. "Thor") family
91   of Ethernet controllers. These controllers support link speeds up to
92   200Gbps, 50G PAM-4, and PCIe 4.0.
93
94 * **Added hinic PMD.**
95
96   Added the new ``hinic`` net driver for Huawei Intelligent PCIE Network
97   Adapters based on the Huawei Ethernet Controller Hi1822.
98   See the :doc:`../nics/hinic` guide for more details on this new driver.
99
100 * **Updated the ice driver.**
101
102   Updated ice driver with new features and improvements, including:
103
104   * Enabled Tx outer/inner L3/L4 checksum offload.
105   * Enabled generic filter framework and supported switch filter.
106   * Supported UDP tunnel port add.
107
108 * **Updated Mellanox mlx5 driver.**
109
110   Updated Mellanox mlx5 driver with new features and improvements, including:
111
112   * Updated the packet header modification feature. Added support of TCP header
113     sequence number and acknowledgment number modification.
114   * Added support for match on ICMP/ICMP6 code and type.
115   * Added support for matching on GRE's key and C,K,S present bits.
116
117 * **Updated Solarflare network PMD.**
118
119   Updated the Solarflare ``sfc_efx`` driver with changes including:
120
121   * Added support for Rx interrupts.
122
123 * **Added memif PMD.**
124
125   Added the new Shared Memory Packet Interface (``memif``) PMD.
126   See the :doc:`../nics/memif` guide for more details on this new driver.
127
128 * **Updated the AF_XDP PMD.**
129
130   Updated the AF_XDP PMD. The new features include:
131
132   * Enabled zero copy through mbuf's external memory mechanism to achieve
133     high performance
134   * Added multi-queue support to allow one af_xdp vdev with multiple netdev
135     queues
136   * Enabled need_wakeup feature which can provide efficient support for case
137     that application and driver executing on the same core.
138
139 * **Enabled infinite Rx in the PCAP PMD.**
140
141   Added an infinite Rx feature which allows packets in the Rx PCAP of a PCAP
142   device to be received repeatedly at a high rate. This can be useful for quick
143   performance testing of DPDK apps.
144
145 * **Added a FPGA_LTE_FEC bbdev PMD.**
146
147   Added the new ``fpga_lte_fec`` bbdev driver for the IntelĀ® FPGA PAC
148   (Programmable  Acceleration Card) N3000.  See the
149   :doc:`../bbdevs/fpga_lte_fec` BBDEV guide for more details on this new driver.
150
151 * **Updated TURBO_SW bbdev PMD.**
152
153   Updated the ``turbo_sw`` bbdev driver with changes including:
154
155   * Added option to build the driver with or without dependency of external
156     SDK libraries.
157   * Added support for 5GNR encode/decode operations.
158
159 * **Updated the QuickAssist Technology (QAT) symmetric crypto PMD.**
160
161   Added support for digest-encrypted cases where digest is appended
162   to the data.
163
164 * **Added Intel QuickData Technology PMD**
165
166   The PMD for Intel\ |reg|  QuickData Technology, part of
167   Intel\ |reg|  I/O Acceleration Technology `(Intel I/OAT)
168   <https://www.intel.com/content/www/us/en/wireless-network/accel-technology.html>`_,
169   allows data copies to be done by hardware instead
170   of via software, reducing cycles spent copying large blocks of data in
171   applications.
172
173 * **Added Marvell OCTEON TX2 drivers.**
174
175   Added the new ``ethdev``, ``eventdev``, ``mempool``, ``eventdev Rx adapter``,
176   ``eventdev Tx adapter``, ``eventdev Timer adapter`` and ``rawdev DMA``
177   drivers for various HW coprocessors available in ``OCTEON TX2`` SoC.
178
179   See :doc:`../platform/octeontx2` and driver informations:
180
181   * :doc:`../nics/octeontx2`
182   * :doc:`../mempool/octeontx2`
183   * :doc:`../eventdevs/octeontx2`
184   * :doc:`../rawdevs/octeontx2_dma`
185
186 * **Introduced NTB PMD.**
187
188   Added a PMD for Intel NTB (Non-transparent Bridge). This PMD implemented
189   handshake between two separate hosts and can share local memory for peer
190   host to directly access.
191
192 * **Updated IPSec library Header Reconstruction.**
193
194   Updated the IPSec library with ECN and DSCP field header reconstruction
195   feature followed by RFC4301. The IPSec-secgw sample application is also
196   updated to support this feature by default.
197
198 * **Updated telemetry library for global metrics support.**
199
200   Updated ``librte_telemetry`` to fetch the global metrics from the
201   ``librte_metrics`` library.
202
203 * **Added new telemetry mode for l3fwd-power application.**
204
205   Added telemetry mode to l3fwd-power application to report
206   application level busyness, empty and full polls of rte_eth_rx_burst().
207
208 * **Updated the pdump application.**
209
210   Add support for pdump to exit with primary process.
211
212 * **Updated test-compress-perf tool application.**
213
214   Added multiple cores feature to compression perf tool application.
215
216
217 Removed Items
218 -------------
219
220 .. This section should contain removed items in this release. Sample format:
221
222    * Add a short 1-2 sentence description of the removed item
223      in the past tense.
224
225    This section is a comment. Do not overwrite or remove it.
226    Also, make sure to start the actual text at the margin.
227    =========================================================
228
229 * Removed KNI ethtool, CONFIG_RTE_KNI_KMOD_ETHTOOL, support.
230
231 * build: armv8 crypto extension is disabled.
232
233
234 API Changes
235 -----------
236
237 .. This section should contain API changes. Sample format:
238
239    * sample: Add a short 1-2 sentence description of the API change
240      which was announced in the previous releases and made in this release.
241      Start with a scope label like "ethdev:".
242      Use fixed width quotes for ``function_names`` or ``struct_names``.
243      Use the past tense.
244
245    This section is a comment. Do not overwrite or remove it.
246    Also, make sure to start the actual text at the margin.
247    =========================================================
248
249 * The ``rte_mem_config`` structure has been made private. The new accessor
250   ``rte_mcfg_*`` functions were introduced to provide replacement for direct
251   access to the shared mem config.
252
253 * The network structures, definitions and functions have
254   been prefixed by ``rte_`` to resolve conflicts with libc headers.
255
256 * malloc: The function ``rte_malloc_set_limit`` was never implemented
257   is deprecated and will be removed in a future release.
258
259 * cryptodev: the ``uint8_t *data`` member of ``key`` structure in the xforms
260   structure (``rte_crypto_cipher_xform``, ``rte_crypto_auth_xform``, and
261   ``rte_crypto_aead_xform``) have been changed to ``const uint8_t *data``.
262
263 * eventdev: No longer marked as experimental.
264
265   The eventdev functions are no longer marked as experimental, and have
266   become part of the normal DPDK API and ABI. Any future ABI changes will be
267   announced at least one release before the ABI change is made. There are no
268   ABI breaking changes planned.
269
270 * ip_frag: IP fragmentation library converts input mbuf into fragments
271   using input MTU size via ``rte_ipv4_fragment_packet`` interface.
272   Once fragmentation is done, each ``mbuf->ol_flags`` are set to enable IP
273   checksum H/W offload irrespective of the platform capability.
274   Cleared IP checksum H/W offload flag from the library. The application must
275   set this flag if it is supported by the platform and application wishes to
276   use it.
277
278 * ip_frag: IP reassembly library converts the list of fragments into a
279   reassembled packet via ``rte_ipv4_frag_reassemble_packet`` interface.
280   Once reassembly is done, ``mbuf->ol_flags`` are set to enable IP checksum H/W
281   offload irrespective of the platform capability. Cleared IP checksum H/W
282   offload flag from the library. The application must set this flag if it is
283   supported by the platform and application wishes to use it.
284
285 * sched: Macros ``RTE_SCHED_QUEUES_PER_TRAFFIC_CLASS`` and
286   ``RTE_SCHED_PIPE_PROFILES_PER_PORT`` are removed for flexible configuration
287   of pipe traffic classes and their queues size, and for runtime configuration
288   of maximum number of pipe profiles, respectively. In addtion, wrr_weights
289   field of struct ``rte_sched_pipe_params`` is modifed to be used only for
290   best-effort tc, and qsize field of struct ``rte_sched_port_params`` is
291   changed to allow different size of the each queue.
292
293
294 ABI Changes
295 -----------
296
297 .. This section should contain ABI changes. Sample format:
298
299    * sample: Add a short 1-2 sentence description of the ABI change
300      which was announced in the previous releases and made in this release.
301      Start with a scope label like "ethdev:".
302      Use fixed width quotes for ``function_names`` or ``struct_names``.
303      Use the past tense.
304
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    =========================================================
308
309 * eventdev: Event based Rx adapter callback
310
311   The mbuf pointer array in the event eth Rx adapter callback
312   has been replaced with an event array. Using
313   an event array allows the application to change attributes
314   of the events enqueued by the SW adapter.
315
316   The callback can drop packets and populate
317   a callback argument with the number of dropped packets.
318   Add a Rx adapter stats field to keep track of the total
319   number of dropped packets.
320
321 * cryptodev: New member in ``rte_cryptodev_config`` to allow applications to
322   disable features supported by the crypto device. Only the following features
323   would be allowed to be disabled this way,
324
325   - ``RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO``
326   - ``RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO``
327   - ``RTE_CRYPTODEV_FF_SECURITY``
328
329   Disabling unused features would facilitate efficient usage of HW/SW offload.
330
331 * bbdev: New operations and parameters added to support new 5GNR operations.
332   The bbdev ABI is still kept experimental.
333
334
335 Shared Library Versions
336 -----------------------
337
338 .. Update any library version updated in this release
339    and prepend with a ``+`` sign, like this:
340
341      libfoo.so.1
342    + libupdated.so.2
343      libbar.so.1
344
345    This section is a comment. Do not overwrite or remove it.
346    =========================================================
347
348 The libraries prepended with a plus sign were incremented in this version.
349
350 .. code-block:: diff
351
352      librte_acl.so.2
353      librte_bbdev.so.1
354      librte_bitratestats.so.2
355      librte_bpf.so.1
356      librte_bus_dpaa.so.2
357      librte_bus_fslmc.so.2
358      librte_bus_ifpga.so.2
359      librte_bus_pci.so.2
360      librte_bus_vdev.so.2
361      librte_bus_vmbus.so.2
362      librte_cfgfile.so.2
363      librte_cmdline.so.2
364      librte_compressdev.so.1
365    + librte_cryptodev.so.8
366      librte_distributor.so.1
367    + librte_eal.so.11
368      librte_efd.so.1
369      librte_ethdev.so.12
370    + librte_eventdev.so.7
371      librte_flow_classify.so.1
372      librte_gro.so.1
373      librte_gso.so.1
374      librte_hash.so.2
375      librte_ip_frag.so.1
376      librte_ipsec.so.1
377      librte_jobstats.so.1
378      librte_kni.so.2
379      librte_kvargs.so.1
380      librte_latencystats.so.1
381      librte_lpm.so.2
382      librte_mbuf.so.5
383      librte_member.so.1
384      librte_mempool.so.5
385      librte_meter.so.3
386      librte_metrics.so.1
387      librte_net.so.1
388      librte_pci.so.1
389      librte_pdump.so.3
390      librte_pipeline.so.3
391      librte_pmd_bnxt.so.2
392      librte_pmd_bond.so.2
393      librte_pmd_i40e.so.2
394      librte_pmd_ixgbe.so.2
395      librte_pmd_dpaa2_qdma.so.1
396      librte_pmd_ring.so.2
397      librte_pmd_softnic.so.1
398      librte_pmd_vhost.so.2
399      librte_port.so.3
400      librte_power.so.1
401      librte_rawdev.so.1
402      librte_rcu.so.1
403      librte_reorder.so.1
404      librte_ring.so.2
405    + librte_sched.so.3
406      librte_security.so.2
407      librte_stack.so.1
408      librte_table.so.3
409      librte_timer.so.1
410      librte_vhost.so.4
411
412
413 Known Issues
414 ------------
415
416 .. This section should contain new known issues in this release. Sample format:
417
418    * **Add title in present tense with full stop.**
419
420      Add a short 1-2 sentence description of the known issue
421      in the present tense. Add information on any known workarounds.
422
423    This section is a comment. Do not overwrite or remove it.
424    Also, make sure to start the actual text at the margin.
425    =========================================================
426
427
428 Tested Platforms
429 ----------------
430
431 .. This section should contain a list of platforms that were tested
432    with this release.
433
434    The format is:
435
436    * <vendor> platform with <vendor> <type of devices> combinations
437
438      * List of CPU
439      * List of OS
440      * List of devices
441      * Other relevant details...
442
443    This section is a comment. Do not overwrite or remove it.
444    Also, make sure to start the actual text at the margin.
445    =========================================================
446