b3f5319c3975bb02bd73220f7d47e3283182ebb1
[dpdk.git] / doc / guides / rel_notes / release_18_08.rst
1 DPDK Release 18.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_18_08.html
18
19
20 New Features
21 ------------
22
23 .. This section should contain new features added in this release.
24    Sample 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.
29      The description should be enough to allow someone scanning
30      the release notes to understand the new feature.
31
32      If the feature adds a lot of sub-features you can use a bullet list
33      like 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 Hyper-V netvsc PMD.**
45
46   The new ``netvsc`` poll mode driver provides native support for
47   networking on Hyper-V. See the :doc:`../nics/netvsc` NIC driver guide
48   for more details on this new driver.
49
50 * **Added Flow API support for CXGBE PMD.**
51
52   Flow API support has been added to CXGBE Poll Mode Driver to offload
53   flows to Chelsio T5/T6 NICs. Support added for:
54   * Wildcard (LE-TCAM) and Exact (HASH) match filters.
55   * Match items: physical ingress port, IPv4, IPv6, TCP and UDP.
56   * Action items: queue, drop, count, and physical egress port redirect.
57
58 * **Added ixgbe preferred Rx/Tx parameters.**
59
60   Rather than applications providing explicit Rx and Tx parameters such as
61   queue and burst sizes, they can request that the EAL instead uses preferred
62   values provided by the PMD, falling back to defaults within the EAL if the
63   PMD does not provide any. The provision of such tuned values now includes
64   the ixgbe PMD.
65
66 * **Added descriptor status check support for fm10k.**
67
68   ``rte_eth_rx_descritpr_status`` and ``rte_eth_tx_descriptor_status``
69   are supported by fm10K.
70
71 * **Updated the enic driver.**
72
73   * Add low cycle count Tx handler for no-offload Tx.
74   * Add low cycle count Rx handler for non-scattered Rx.
75   * Minor performance improvements to scattered Rx handler.
76   * Add handlers to add/delete VxLAN port number.
77   * Add devarg to specify ingress VLAN rewrite mode.
78
79 * **Updated mlx5 driver.**
80
81   Updated the mlx5 driver including the following changes:
82
83   * Added port representors support.
84   * Added Flow API support for e-switch rules.
85     Supported ACTION_PORT_ID, ACTION_DROP, ACTION_OF_POP_VLAN,
86     ACTION_OF_PUSH_VLAN, ACTION_OF_SET_VLAN_VID, ACTION_OF_SET_VLAN_PCP
87     and ITEM_PORT_ID.
88   * Supported 32-bit compilation.
89
90 * **Added TSO support for mlx4 driver.**
91
92   The support is from MLNX_OFED_4.4 and above.
93
94 * **SoftNIC PMD rework.**
95
96   The SoftNIC PMD infrastructure is restructured to use the Packet Framework,
97   which makes it more flexible, modular and easier to add new functionality
98   in future.
99
100 * **Updated the AESNI MB PMD.**
101
102   The AESNI MB PMD has been updated with additional support for:
103
104   * 3DES for 8, 16 and 24 byte keys.
105
106 * **Added a new compression PMD using Intel's QuickAssist (QAT) device family.**
107
108   Added the new ``QAT`` compression driver, for compression and decompression
109   operations in software. See the :doc:`../compressdevs/qat_comp` compression
110   driver guide for details on this new driver.
111
112 * **Updated the ISA-L PMD.**
113
114   Added support for chained mbufs (input and output).
115
116
117 API Changes
118 -----------
119
120 .. This section should contain API changes. Sample format:
121
122    * Add a short 1-2 sentence description of the API change.
123      Use fixed width quotes for ``function_names`` or ``struct_names``.
124      Use the past tense.
125
126    This section is a comment. Do not overwrite or remove it.
127    Also, make sure to start the actual text at the margin.
128    =========================================================
129
130 * Path to runtime config file has changed. The new path is determined as
131   follows:
132
133   - If DPDK is running as root, ``/var/run/dpdk/<prefix>/config``
134   - If DPDK is not running as root:
135
136     * If ``$XDG_RUNTIME_DIR`` is set, ``${XDG_RUNTIME_DIR}/dpdk/<prefix>/config``
137     * Otherwise, ``/tmp/dpdk/<prefix>/config``
138
139 * mempool: Following functions were deprecated and are removed in 18.08:
140
141   - ``rte_mempool_populate_iova_tab``
142   - ``rte_mempool_populate_phys_tab``
143   - ``rte_mempool_populate_phys`` (``rte_mempool_populate_iova`` should be used)
144   - ``rte_mempool_virt2phy`` (``rte_mempool_virt2iova`` should be used)
145   - ``rte_mempool_xmem_create``
146   - ``rte_mempool_xmem_size``
147   - ``rte_mempool_xmem_usage``
148
149 * ethdev: The old offload API is removed:
150
151   - Rx per-port ``rte_eth_conf.rxmode.[bit-fields]``
152   - Tx per-queue ``rte_eth_txconf.txq_flags``
153   - ``ETH_TXQ_FLAGS_NO*``
154
155   The transition bits are removed:
156
157   - ``rte_eth_conf.rxmode.ignore_offload_bitfield``
158   - ``ETH_TXQ_FLAGS_IGNORE``
159
160 * cryptodev: In struct ``struct rte_cryptodev_info``, field ``rte_pci_device *pci_dev``
161   has been replaced with field ``struct rte_device *device``.
162   Value 0 is accepted in ``sym.max_nb_sessions``, meaning that a device
163   supports an unlimited number of sessions.
164   Two new fields of type ``uint16_t`` have been added:
165   ``min_mbuf_headroom_req`` and ``min_mbuf_tailroom_req``.
166   These parameters specify the recommended headroom and tailroom for mbufs
167   to be processed by the PMD.
168
169 * cryptodev: Following functions were deprecated and are removed in 18.08:
170
171   - ``rte_cryptodev_queue_pair_start``
172   - ``rte_cryptodev_queue_pair_stop``
173   - ``rte_cryptodev_queue_pair_attach_sym_session``
174   - ``rte_cryptodev_queue_pair_detach_sym_session``
175
176 * cryptodev: Following functions were deprecated and are replaced by
177   other functions in 18.08:
178
179   - ``rte_cryptodev_get_header_session_size`` is replaced with
180     ``rte_cryptodev_sym_get_header_session_size``
181   - ``rte_cryptodev_get_private_session_size`` is replaced with
182     ``rte_cryptodev_sym_get_private_session_size``
183
184 * cryptodev: Feature flag ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` is
185   replaced with the following more explicit flags:
186
187   - ``RTE_CRYPTODEV_FF_IN_PLACE_SGL``
188   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT``
189   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT``
190   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT``
191   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT``
192
193 * cryptodev: Renamed cryptodev experimental APIs:
194
195   Used user_data instead of private_data in following APIs to avoid confusion
196   with the existing session parameter ``sess_private_data[]`` and related APIs.
197
198   - ``rte_cryptodev_sym_session_set_private_data()`` changed to
199     ``rte_cryptodev_sym_session_set_user_data()``
200   - ``rte_cryptodev_sym_session_get_private_data()`` changed to
201     ``rte_cryptodev_sym_session_get_user_data()``
202
203 * compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
204   replaced with the following more explicit flags:
205
206   - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
207   - ``RTE_COMP_FF_OOP_SGL_IN_LB_OUT``
208   - ``RTE_COMP_FF_OOP_LB_IN_SGL_OUT``
209
210
211 ABI Changes
212 -----------
213
214 .. This section should contain ABI changes. Sample format:
215
216    * Add a short 1-2 sentence description of the ABI change
217      that was announced in the previous releases and made in this release.
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
226 Removed Items
227 -------------
228
229 .. This section should contain removed items in this release. Sample format:
230
231    * Add a short 1-2 sentence description of the removed item
232      in the past tense.
233
234    This section is a comment. Do not overwrite or remove it.
235    Also, make sure to start the actual text at the margin.
236    =========================================================
237
238
239 Shared Library Versions
240 -----------------------
241
242 .. Update any library version updated in this release
243    and prepend with a ``+`` sign, like this:
244
245      librte_acl.so.2
246    + librte_cfgfile.so.2
247      librte_cmdline.so.2
248
249    This section is a comment. Do not overwrite or remove it.
250    =========================================================
251
252 The libraries prepended with a plus sign were incremented in this version.
253
254 .. code-block:: diff
255
256      librte_acl.so.2
257      librte_bbdev.so.1
258      librte_bitratestats.so.2
259      librte_bpf.so.1
260      librte_bus_dpaa.so.1
261      librte_bus_fslmc.so.1
262      librte_bus_pci.so.1
263      librte_bus_vdev.so.1
264    + librte_bus_vmbus.so.1
265      librte_cfgfile.so.2
266      librte_cmdline.so.2
267      librte_common_octeontx.so.1
268      librte_compressdev.so.1
269    + librte_cryptodev.so.5
270      librte_distributor.so.1
271      librte_eal.so.7
272    + librte_ethdev.so.10
273      librte_eventdev.so.4
274      librte_flow_classify.so.1
275      librte_gro.so.1
276      librte_gso.so.1
277      librte_hash.so.2
278      librte_ip_frag.so.1
279      librte_jobstats.so.1
280      librte_kni.so.2
281      librte_kvargs.so.1
282      librte_latencystats.so.1
283      librte_lpm.so.2
284      librte_mbuf.so.4
285    + librte_mempool.so.5
286      librte_meter.so.2
287      librte_metrics.so.1
288      librte_net.so.1
289      librte_pci.so.1
290      librte_pdump.so.2
291      librte_pipeline.so.3
292      librte_pmd_bnxt.so.2
293      librte_pmd_bond.so.2
294      librte_pmd_i40e.so.2
295      librte_pmd_ixgbe.so.2
296      librte_pmd_dpaa2_cmdif.so.1
297      librte_pmd_dpaa2_qdma.so.1
298      librte_pmd_ring.so.2
299      librte_pmd_softnic.so.1
300      librte_pmd_vhost.so.2
301      librte_port.so.3
302      librte_power.so.1
303      librte_rawdev.so.1
304      librte_reorder.so.1
305      librte_ring.so.2
306      librte_sched.so.1
307      librte_security.so.1
308      librte_table.so.3
309      librte_timer.so.1
310      librte_vhost.so.3
311
312
313 Known Issues
314 ------------
315
316 .. This section should contain new known issues in this release. Sample format:
317
318    * **Add title in present tense with full stop.**
319
320      Add a short 1-2 sentence description of the known issue
321      in the present tense. Add information on any known workarounds.
322
323    This section is a comment. Do not overwrite or remove it.
324    Also, make sure to start the actual text at the margin.
325    =========================================================
326
327
328 Tested Platforms
329 ----------------
330
331 .. This section should contain a list of platforms that were tested
332    with this release.
333
334    The format is:
335
336    * <vendor> platform with <vendor> <type of devices> combinations
337
338      * List of CPU
339      * List of OS
340      * List of devices
341      * Other relevant details...
342
343    This section is a comment. Do not overwrite or remove it.
344    Also, make sure to start the actual text at the margin.
345    =========================================================