devtools: remove check-includes script
[dpdk.git] / doc / guides / rel_notes / release_21_02.rst
1 .. SPDX-License-Identifier: BSD-3-Clause
2    Copyright 2020 The DPDK contributors
3
4 .. include:: <isonum.txt>
5
6 DPDK Release 21.02
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       xdg-open build/doc/html/guides/rel_notes/release_21_02.html
22
23
24 New Features
25 ------------
26
27 .. This section should contain new features added in this release.
28    Sample format:
29
30    * **Add a title in the past tense with a full stop.**
31
32      Add a short 1-2 sentence description in the past tense.
33      The description should be enough to allow someone scanning
34      the release notes to understand the new feature.
35
36      If the feature adds a lot of sub-features you can use a bullet list
37      like this:
38
39      * Added feature foo to do something.
40      * Enhanced feature bar to do something else.
41
42      Refer to the previous release notes for examples.
43
44      Suggested order in release notes items:
45      * Core libs (EAL, mempool, ring, mbuf, buses)
46      * Device abstraction libs and PMDs
47        - ethdev (lib, PMDs)
48        - cryptodev (lib, PMDs)
49        - eventdev (lib, PMDs)
50        - etc
51      * Other libs
52      * Apps, Examples, Tools (if significant)
53
54      This section is a comment. Do not overwrite or remove it.
55      Also, make sure to start the actual text at the margin.
56      =======================================================
57
58 * **Added new ethdev API for PMD power management.**
59
60   Added ``rte_eth_get_monitor_addr()``, to be used in conjunction with
61   ``rte_power_monitor()`` to enable automatic power management for PMDs.
62
63 * **Added Ethernet PMD power management helper API.**
64
65   A new helper API has been added to make using Ethernet PMD power management
66   easier for the user: ``rte_power_ethdev_pmgmt_queue_enable()``. Three power
67   management schemes are supported initially:
68
69   * Power saving based on UMWAIT instruction (x86 only)
70   * Power saving based on ``rte_pause()`` (generic) or TPAUSE instruction (x86 only)
71   * Power saving based on frequency scaling through the ``librte_power`` library
72
73 * **Added GENEVE TLV option in rte_flow.**
74
75   Added support for matching and raw encap/decap of GENEVE TLV option.
76
77 * **Added support of modify field action in the flow API.**
78
79   Added modify action support to perform various operations on
80   any arbitrary header field (as well as mark, metadata or tag values):
81   ``RTE_FLOW_ACTION_TYPE_MODIFY_FIELD``.
82   Supported operations are: overwriting a field with the content from
83   another field, addition and subtraction using an immediate value.
84
85 * **Updated Broadcom bnxt driver.**
86
87   Updated the Broadcom bnxt driver with fixes and improvements, including:
88
89   * Added support for Stingray2 device.
90
91 * **Updated Cisco enic driver.**
92
93   * Added support for 64B completion queue entries
94
95 * **Updated Intel ice driver.**
96
97   * Added Double VLAN support for DCF switch QinQ filtering.
98
99 * **Updated Mellanox mlx5 driver.**
100
101   Updated the Mellanox mlx5 driver with new features and improvements, including:
102
103   * Introduced basic support on Windows.
104   * Added GTP PDU session container matching and raw encap/decap.
105   * Added support for RSS action in the sample sub-actions list.
106
107 * **Updated Wangxun txgbe driver.**
108
109   Updated the Wangxun txgbe driver with new features and improvements, including:
110
111   * Add support for generic flow API.
112   * Add support for traffic manager.
113   * Add support for IPsec.
114
115 * **Updated GSO support.**
116
117   * Added inner UDP/IPv4 support for VXLAN IPv4 GSO.
118
119 * **Added enqueue & dequeue callback APIs for cryptodev library.**
120
121   Cryptodev library is added with enqueue & dequeue callback APIs to
122   enable applications to add/remove user callbacks which gets called
123   for every enqueue/dequeue operation.
124
125 * **Updated the OCTEON TX2 crypto PMD.**
126
127   * Updated the OCTEON TX2 crypto PMD lookaside protocol offload for IPsec with
128     ESN and anti-replay support.
129   * Updated the OCTEON TX2 crypto PMD with CN98xx support.
130   * Added support for aes-cbc sha1-hmac cipher combination in OCTEON TX2 crypto
131     PMD lookaside protocol offload for IPsec.
132   * Added support for aes-cbc sha256-128-hmac cipher combination in OCTEON TX2
133     crypto PMD lookaside protocol offload for IPsec.
134
135 * **Added mlx5 compress PMD.**
136
137   Added a new compress PMD driver for Bluefield 2 adapters.
138
139   See the :doc:`../compressdevs/mlx5` for more details.
140
141 * **Added support for build-time checking of header includes.**
142
143   A new build option ``check_includes`` has been added, which, when enabled,
144   will perform build-time checking on DPDK public header files, to ensure none
145   are missing dependent header includes. This feature, disabled by default, is
146   intended for use by developers contributing to the DPDK SDK itself, and is
147   integrated into the build scripts and automated CI for patch contributions.
148
149
150 Removed Items
151 -------------
152
153 .. This section should contain removed items in this release. Sample format:
154
155    * Add a short 1-2 sentence description of the removed item
156      in the past tense.
157
158    This section is a comment. Do not overwrite or remove it.
159    Also, make sure to start the actual text at the margin.
160    =======================================================
161
162 * The internal header files ``rte_ethdev_driver.h``, ``rte_ethdev_vdev.h`` and
163   ``rte_ethdev_pci.h`` are no longer installed as part of the DPDK
164   ``ninja install`` action and are renamed to ``ethdev_driver.h``,
165   ``ethdev_vdev.h`` and ``ethdev_pci.h`` respectively in the source tree, to
166   reflect the fact that they are non-public headers.
167
168 * The internal header files ``rte_eventdev_pmd.h``, ``rte_eventdev_pmd_vdev.h``
169   and ``rte_eventdev_pmd_pci.h`` are no longer installed as part of the DPDK
170   ``ninja install`` action and are renamed to ``eventdev_pmd.h``,
171   ``eventdev_pmd_vdev.h`` and ``eventdev_pmd_pci.h`` respectively in the source
172   tree, to reflect the fact that they are non-public headers.
173
174 * Removed support for NetXtreme devices belonging to ``BCM573xx and
175   BCM5740x`` families. Specifically the support for the following Broadcom
176   PCI device IDs ``0x16c8, 0x16c9, 0x16ca, 0x16ce, 0x16cf, 0x16df, 0x16d0,``
177   ``0x16d1, 0x16d2, 0x16d4, 0x16d5, 0x16e7, 0x16e8, 0x16e9`` has been removed.
178
179 * The ``check-includes.sh`` script for checking DPDK header files has been
180   removed, being replaced by the ``check_includes`` build option described
181   above.
182
183
184 API Changes
185 -----------
186
187 .. This section should contain API changes. Sample format:
188
189    * sample: Add a short 1-2 sentence description of the API change
190      which was announced in the previous releases and made in this release.
191      Start with a scope label like "ethdev:".
192      Use fixed width quotes for ``function_names`` or ``struct_names``.
193      Use 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 * config: Removed the old macros, included in ``rte_config.h``,
200   to indicate which DPDK libraries and drivers are built.
201   The new macros are generated by meson in a standardized format:
202   ``RTE_LIB_<NAME>`` and ``RTE_<CLASS>_<NAME>``, where ``NAME`` is
203   the upper-case component name, e.g. ``EAL``, ``ETHDEV``, ``VIRTIO``,
204   and ``CLASS`` is the upper-case driver class, e.g. ``NET``, ``CRYPTO``.
205
206 * cryptodev: The structure ``rte_cryptodev`` has been updated with pointers
207   for adding enqueue and dequeue callbacks.
208
209
210 ABI Changes
211 -----------
212
213 .. This section should contain ABI changes. Sample format:
214
215    * sample: Add a short 1-2 sentence description of the ABI change
216      which was announced in the previous releases and made in this release.
217      Start with a scope label like "ethdev:".
218      Use fixed width quotes for ``function_names`` or ``struct_names``.
219      Use the past tense.
220
221    This section is a comment. Do not overwrite or remove it.
222    Also, make sure to start the actual text at the margin.
223    =======================================================
224
225 * No ABI change that would break compatibility with 20.11.
226
227
228 Known Issues
229 ------------
230
231 .. This section should contain new known issues in this release. Sample format:
232
233    * **Add title in present tense with full stop.**
234
235      Add a short 1-2 sentence description of the known issue
236      in the present tense. Add information on any known workarounds.
237
238    This section is a comment. Do not overwrite or remove it.
239    Also, make sure to start the actual text at the margin.
240    =======================================================
241
242
243 Tested Platforms
244 ----------------
245
246 .. This section should contain a list of platforms that were tested
247    with this release.
248
249    The format is:
250
251    * <vendor> platform with <vendor> <type of devices> combinations
252
253      * List of CPU
254      * List of OS
255      * List of devices
256      * Other relevant details...
257
258    This section is a comment. Do not overwrite or remove it.
259    Also, make sure to start the actual text at the margin.
260    =======================================================