de72b1c957344cc74b27849d8764723f09a0cb68
[dpdk.git] / doc / guides / rel_notes / release_17_08.rst
1 DPDK Release 17.08
2 ==================
3
4 .. **Read this first.**
5
6    The text in the sections below explains how to update the release notes.
7
8    Use proper spelling, capitalization and punctuation in all sections.
9
10    Variable and config names should be quoted as fixed width text:
11    ``LIKE_THIS``.
12
13    Build the docs and view the output file to ensure the changes are correct::
14
15       make doc-guides-html
16
17       xdg-open build/doc/html/guides/rel_notes/release_17_08.html
18
19
20 New Features
21 ------------
22
23 .. This section should contain new features added in this release. Sample
24    format:
25
26    * **Add a title in the past tense with a full stop.**
27
28      Add a short 1-2 sentence description in the past tense. The description
29      should be enough to allow someone scanning the release notes to
30      understand the new feature.
31
32      If the feature adds a lot of sub-features you can use a bullet list like
33      this:
34
35      * Added feature foo to do something.
36      * Enhanced feature bar to do something else.
37
38      Refer to the previous release notes for examples.
39
40      This section is a comment. do not overwrite or remove it.
41      Also, make sure to start the actual text at the margin.
42      =========================================================
43
44 * **Added support for generic flow API (rte_flow) on igb NIC.**
45
46   This API provides a generic means to configure hardware to match specific
47   ingress or egress traffic, alter its behavior and query related counters
48   according to any number of user-defined rules.
49
50   * Generic flow API support for Ethernet, IPv4, UDP, TCP and
51     RAW pattern items with QUEUE actions. There are four
52     type of filter support for this feature on igb.
53
54 * **Added Generic Flow API support to enic.**
55
56   Flow API support for outer Ethernet, VLAN, IPv4, IPv6, UDP, TCP, SCTP, VxLAN
57   and inner Ethernet, VLAN, IPv4, IPv6, UDP and TCP pattern items with QUEUE,
58   MARK, FLAG and VOID actions for ingress traffic.
59
60 * **Added support for Chelsio T6 family of adapters**
61
62   CXGBE PMD updated to run Chelsio T6 family of adapters.
63
64 * **Added latency and performance improvements for cxgbe**
65
66   TX and RX path reworked to improve performance.  Also reduced latency
67   for slow traffic.
68
69 * **Updated bnxt PMD.**
70
71   Major enhancements include:
72   * Support MTU modification.
73   * Support LRO.
74   * Support VLAN filter and strip functionality.
75   * Other enhancements to add support for more dev_ops.
76   * Add PMD specific APIs mainly to control VF from PF.
77   * Update HWRM version to 1.7.7
78
79 * **Added support for Rx interrupts on mlx4 driver.**
80
81   Rx queues can be armed with an interrupt which will trigger on the
82   next packet arrival.
83
84 * **Updated szedata2 PMD.**
85
86   Added support for firmwares with multiple Ethernet ports per physical port.
87
88 * **Reorganized the symmetric crypto operation structure.**
89
90   The crypto operation (``rte_crypto_sym_op``) has been reorganized as follows:
91
92   * Removed field ``rte_crypto_sym_op_sess_type``.
93   * Replaced pointer and physical address of IV with offset from the start
94     of the crypto operation.
95   * Moved length and offset of cipher IV to ``rte_crypto_cipher_xform``.
96   * Removed Additional Authentication Data (AAD) length.
97   * Removed digest length.
98   * Removed AAD pointer and physical address from ``auth`` structure.
99   * Added ``aead`` structure, containing parameters for AEAD algorithms.
100
101 * **Reorganized the crypto operation structure.**
102
103   The crypto operation (``rte_crypto_op``) has been reorganized as follows:
104
105   * Added field ``rte_crypto_op_sess_type``.
106   * Enumerations ``rte_crypto_op_status`` and ``rte_crypto_op_type``
107     have been modified to be uint8_t values.
108   * Removed the field ``opaque_data``.
109   * Pointer to ``rte_crypto_sym_op`` has been replaced with a zero length array.
110
111 * **Reorganized the crypto symmetric session structure.**
112
113   The crypto symmetric session structure (``rte_cryptodev_sym_session``) has
114   been reorganized as follows:
115
116   * ``dev_id`` field has been removed.
117   * ``driver_id`` field has been removed.
118   * Mempool pointer ``mp`` has been removed.
119   * Replaced ``private`` marker with array of pointers to private data sessions
120     ``sess_private_data``.
121
122 * **Updated cryptodev library.**
123
124   * Added AEAD algorithm specific functions and structures, so it is not
125     necessary to use a combination of cipher and authentication
126     structures anymore.
127   * Added helper functions for crypto device driver identification.
128   * Added support for multi-device sessions, so a single session can be
129     used in multiple drivers.
130   * Added functions to initialize and free individual driver private data
131     with a same session.
132
133 * **Updated dpaa2_sec crypto PMD.**
134
135   Added support for AES-GCM and AES-CTR
136
137 * **Updated the AESNI MB PMD.**
138
139   The AESNI MB PMD has been updated with additional support for:
140
141     * 12-byte IV on AES Counter Mode, apart from the previous 16-byte IV.
142
143 * **Updated the AES-NI GCM PMD.**
144
145   The AES-NI GCM PMD was migrated from the ISA-L library to the Multi Buffer
146   library, as the latter library has Scatter Gather List support
147   now. The migration entailed adding additional support for:
148
149   * 192-bit key.
150
151 * **Updated the Cryptodev Scheduler PMD.**
152
153   Added a multicore based distribution mode, which distributes the enqueued
154   crypto operations among several slaves, running on different logical cores.
155
156
157 Resolved Issues
158 ---------------
159
160 .. This section should contain bug fixes added to the relevant
161    sections. Sample format:
162
163    * **code/section Fixed issue in the past tense with a full stop.**
164
165      Add a short 1-2 sentence description of the resolved issue in the past
166      tense.
167
168      The title should contain the code/lib section like a commit message.
169
170      Add the entries in alphabetic order in the relevant sections below.
171
172    This section is a comment. do not overwrite or remove it.
173    Also, make sure to start the actual text at the margin.
174    =========================================================
175
176
177 EAL
178 ~~~
179
180
181 Drivers
182 ~~~~~~~
183
184
185 Libraries
186 ~~~~~~~~~
187
188
189 Examples
190 ~~~~~~~~
191
192
193 Other
194 ~~~~~
195
196
197 Known Issues
198 ------------
199
200 .. This section should contain new known issues in this release. Sample format:
201
202    * **Add title in present tense with full stop.**
203
204      Add a short 1-2 sentence description of the known issue in the present
205      tense. Add information on any known workarounds.
206
207    This section is a comment. do not overwrite or remove it.
208    Also, make sure to start the actual text at the margin.
209    =========================================================
210
211
212 API Changes
213 -----------
214
215 .. This section should contain API changes. Sample format:
216
217    * Add a short 1-2 sentence description of the API change. Use fixed width
218      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past
219      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 * **Reworked rte_cryptodev library.**
226
227   The rte_cryptodev library has been reworked and updated. The following changes
228   have been made to it:
229
230   * The crypto device type enumeration has been removed from cryptodev library.
231   * The function ``rte_crypto_count_devtype()`` has been removed, and replaced
232     by the new function ``rte_crypto_count_by_driver()``.
233   * Moved crypto device driver names definitions to the particular PMDs.
234     These names are not public anymore.
235   * ``rte_cryptodev_configure()`` does not create the session mempool
236     for the device anymore.
237   * ``rte_cryptodev_queue_pair_attach_sym_session()`` and
238     ``rte_cryptodev_queue_pair_dettach_sym_session()`` functions require
239     the new parameter ``device id``.
240   * Modified parameters of ``rte_cryptodev_sym_session_create()``, to accept
241     ``mempool``, instead of ``device id`` and ``rte_crypto_sym_xform``.
242   * Remove ``device id`` parameter from ``rte_cryptodev_sym_session_free()``.
243
244
245 ABI Changes
246 -----------
247
248 .. This section should contain ABI changes. Sample format:
249
250    * Add a short 1-2 sentence description of the ABI change that was announced
251      in the previous releases and made in this release. Use fixed width quotes
252      for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
253
254    This section is a comment. do not overwrite or remove it.
255    Also, make sure to start the actual text at the margin.
256    =========================================================
257
258 * **Reorganized the crypto operation structures.**
259
260   Some fields have been modified in the ``rte_crypto_op`` and ``rte_crypto_sym_op``
261   structures, as described in the `New Features`_ section.
262
263 * **Reorganized the crypto symmetric session structure.**
264
265   Some fields have been modified in the ``rte_cryptodev_sym_session``
266   structure, as described in the `New Features`_ section.
267
268 * **Reorganized the ``rte_crypto_sym_cipher_xform`` structure.**
269
270   * Added cipher IV length and offset parameters.
271
272 * **Reorganized the ``rte_crypto_sym_auth_xform`` structure.**
273
274   * Added authentication IV length and offset parameters.
275   * Changed field size of AAD length from uint32_t to uint16_t.
276   * Changed field size of digest length from uint32_t to uint16_t.
277   * Removed AAD length.
278
279 * Replaced ``dev_type`` enumeration with uint8_t ``driver_id`` in
280   ``rte_cryptodev_info`` and  ``rte_cryptodev`` structures.
281
282 * Removed ``session_mp`` from ``rte_cryptodev_config``.
283
284
285 Shared Library Versions
286 -----------------------
287
288 .. Update any library version updated in this release and prepend with a ``+``
289    sign, like this:
290
291      librte_acl.so.2
292    + librte_cfgfile.so.2
293      librte_cmdline.so.2
294
295    This section is a comment. do not overwrite or remove it.
296    =========================================================
297
298
299 The libraries prepended with a plus sign were incremented in this version.
300
301 .. code-block:: diff
302
303      librte_acl.so.2
304      librte_bitratestats.so.1
305      librte_cfgfile.so.2
306      librte_cmdline.so.2
307    + librte_cryptodev.so.3
308      librte_distributor.so.1
309      librte_eal.so.4
310      librte_ethdev.so.6
311      librte_hash.so.2
312      librte_ip_frag.so.1
313      librte_jobstats.so.1
314      librte_kni.so.2
315      librte_kvargs.so.1
316      librte_latencystats.so.1
317      librte_lpm.so.2
318      librte_mbuf.so.3
319      librte_mempool.so.2
320      librte_meter.so.1
321      librte_metrics.so.1
322      librte_net.so.1
323      librte_pdump.so.1
324      librte_pipeline.so.3
325      librte_pmd_bond.so.1
326      librte_pmd_ring.so.2
327      librte_port.so.3
328      librte_power.so.1
329      librte_reorder.so.1
330      librte_ring.so.1
331      librte_sched.so.1
332      librte_table.so.2
333      librte_timer.so.1
334      librte_vhost.so.3
335
336
337 Tested Platforms
338 ----------------
339
340 .. This section should contain a list of platforms that were tested with this
341    release.
342
343    The format is:
344
345    * <vendor> platform with <vendor> <type of devices> combinations
346
347      * List of CPU
348      * List of OS
349      * List of devices
350      * Other relevant details...
351
352    This section is a comment. do not overwrite or remove it.
353    Also, make sure to start the actual text at the margin.
354    =========================================================