673f20869f9eee34aaa7451e25395e95a571aa13
[dpdk.git] / doc / guides / rel_notes / release_18_08.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright 2018 The DPDK contributors
3
4 DPDK Release 18.08
5 ==================
6
7 .. **Read this first.**
8
9    The text in the sections below explains how to update the release notes.
10
11    Use proper spelling, capitalization and punctuation in all sections.
12
13    Variable and config names should be quoted as fixed width text:
14    ``LIKE_THIS``.
15
16    Build the docs and view the output file to ensure the changes are correct::
17
18       make doc-guides-html
19
20       xdg-open build/doc/html/guides/rel_notes/release_18_08.html
21
22
23 New Features
24 ------------
25
26 .. This section should contain new features added in this release.
27    Sample format:
28
29    * **Add a title in the past tense with a full stop.**
30
31      Add a short 1-2 sentence description in the past tense.
32      The description should be enough to allow someone scanning
33      the release notes to understand the new feature.
34
35      If the feature adds a lot of sub-features you can use a bullet list
36      like this:
37
38      * Added feature foo to do something.
39      * Enhanced feature bar to do something else.
40
41      Refer to the previous release notes for examples.
42
43      This section is a comment. Do not overwrite or remove it.
44      Also, make sure to start the actual text at the margin.
45      =========================================================
46
47 * **Added support for Hyper-V netvsc PMD.**
48
49   The new ``netvsc`` poll mode driver provides native support for
50   networking on Hyper-V. See the :doc:`../nics/netvsc` NIC driver guide
51   for more details on this new driver.
52
53 * **Added Flow API support for CXGBE PMD.**
54
55   Flow API support has been added to CXGBE Poll Mode Driver to offload
56   flows to Chelsio T5/T6 NICs. Support added for:
57   * Wildcard (LE-TCAM) and Exact (HASH) match filters.
58   * Match items: physical ingress port, IPv4, IPv6, TCP and UDP.
59   * Action items: queue, drop, count, and physical egress port redirect.
60
61 * **Added ixgbe preferred Rx/Tx parameters.**
62
63   Rather than applications providing explicit Rx and Tx parameters such as
64   queue and burst sizes, they can request that the EAL instead uses preferred
65   values provided by the PMD, falling back to defaults within the EAL if the
66   PMD does not provide any. The provision of such tuned values now includes
67   the ixgbe PMD.
68
69 * **Added descriptor status check support for fm10k.**
70
71   ``rte_eth_rx_descritpr_status`` and ``rte_eth_tx_descriptor_status``
72   are supported by fm10K.
73
74 * **Updated the enic driver.**
75
76   * Add low cycle count Tx handler for no-offload Tx.
77   * Add low cycle count Rx handler for non-scattered Rx.
78   * Minor performance improvements to scattered Rx handler.
79   * Add handlers to add/delete VxLAN port number.
80   * Add devarg to specify ingress VLAN rewrite mode.
81
82 * **Updated mlx5 driver.**
83
84   Updated the mlx5 driver including the following changes:
85
86   * Added port representors support.
87   * Added Flow API support for e-switch rules.
88     Supported ACTION_PORT_ID, ACTION_DROP, ACTION_OF_POP_VLAN,
89     ACTION_OF_PUSH_VLAN, ACTION_OF_SET_VLAN_VID, ACTION_OF_SET_VLAN_PCP
90     and ITEM_PORT_ID.
91   * Supported 32-bit compilation.
92
93 * **Added TSO support for mlx4 driver.**
94
95   The support is from MLNX_OFED_4.4 and above.
96
97 * **SoftNIC PMD rework.**
98
99   The SoftNIC PMD infrastructure is restructured to use the Packet Framework,
100   which makes it more flexible, modular and easier to add new functionality
101   in future.
102
103 * **Updated the AESNI MB PMD.**
104
105   The AESNI MB PMD has been updated with additional support for:
106
107   * 3DES for 8, 16 and 24 byte keys.
108
109 * **Added a new compression PMD using Intel's QuickAssist (QAT) device family.**
110
111   Added the new ``QAT`` compression driver, for compression and decompression
112   operations in software. See the :doc:`../compressdevs/qat_comp` compression
113   driver guide for details on this new driver.
114
115 * **Updated the ISA-L PMD.**
116
117   Added support for chained mbufs (input and output).
118
119
120 API Changes
121 -----------
122
123 .. This section should contain API changes. Sample format:
124
125    * Add a short 1-2 sentence description of the API change.
126      Use fixed width quotes for ``function_names`` or ``struct_names``.
127      Use the past tense.
128
129    This section is a comment. Do not overwrite or remove it.
130    Also, make sure to start the actual text at the margin.
131    =========================================================
132
133 * Path to runtime config file has changed. The new path is determined as
134   follows:
135
136   - If DPDK is running as root, ``/var/run/dpdk/<prefix>/config``
137   - If DPDK is not running as root:
138
139     * If ``$XDG_RUNTIME_DIR`` is set, ``${XDG_RUNTIME_DIR}/dpdk/<prefix>/config``
140     * Otherwise, ``/tmp/dpdk/<prefix>/config``
141
142 * eal: The function ``rte_eal_mbuf_default_mempool_ops`` was deprecated
143   and is removed in 18.08. It shall be replaced by
144   ``rte_mbuf_best_mempool_ops``.
145
146 * mempool: Following functions were deprecated and are removed in 18.08:
147
148   - ``rte_mempool_populate_iova_tab``
149   - ``rte_mempool_populate_phys_tab``
150   - ``rte_mempool_populate_phys`` (``rte_mempool_populate_iova`` should be used)
151   - ``rte_mempool_virt2phy`` (``rte_mempool_virt2iova`` should be used)
152   - ``rte_mempool_xmem_create``
153   - ``rte_mempool_xmem_size``
154   - ``rte_mempool_xmem_usage``
155
156 * ethdev: The old offload API is removed:
157
158   - Rx per-port ``rte_eth_conf.rxmode.[bit-fields]``
159   - Tx per-queue ``rte_eth_txconf.txq_flags``
160   - ``ETH_TXQ_FLAGS_NO*``
161
162   The transition bits are removed:
163
164   - ``rte_eth_conf.rxmode.ignore_offload_bitfield``
165   - ``ETH_TXQ_FLAGS_IGNORE``
166
167 * cryptodev: In struct ``struct rte_cryptodev_info``, field ``rte_pci_device *pci_dev``
168   has been replaced with field ``struct rte_device *device``.
169   Value 0 is accepted in ``sym.max_nb_sessions``, meaning that a device
170   supports an unlimited number of sessions.
171   Two new fields of type ``uint16_t`` have been added:
172   ``min_mbuf_headroom_req`` and ``min_mbuf_tailroom_req``.
173   These parameters specify the recommended headroom and tailroom for mbufs
174   to be processed by the PMD.
175
176 * cryptodev: Following functions were deprecated and are removed in 18.08:
177
178   - ``rte_cryptodev_queue_pair_start``
179   - ``rte_cryptodev_queue_pair_stop``
180   - ``rte_cryptodev_queue_pair_attach_sym_session``
181   - ``rte_cryptodev_queue_pair_detach_sym_session``
182
183 * cryptodev: Following functions were deprecated and are replaced by
184   other functions in 18.08:
185
186   - ``rte_cryptodev_get_header_session_size`` is replaced with
187     ``rte_cryptodev_sym_get_header_session_size``
188   - ``rte_cryptodev_get_private_session_size`` is replaced with
189     ``rte_cryptodev_sym_get_private_session_size``
190
191 * cryptodev: Feature flag ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` is
192   replaced with the following more explicit flags:
193
194   - ``RTE_CRYPTODEV_FF_IN_PLACE_SGL``
195   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT``
196   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT``
197   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT``
198   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT``
199
200 * cryptodev: Renamed cryptodev experimental APIs:
201
202   Used user_data instead of private_data in following APIs to avoid confusion
203   with the existing session parameter ``sess_private_data[]`` and related APIs.
204
205   - ``rte_cryptodev_sym_session_set_private_data()`` changed to
206     ``rte_cryptodev_sym_session_set_user_data()``
207   - ``rte_cryptodev_sym_session_get_private_data()`` changed to
208     ``rte_cryptodev_sym_session_get_user_data()``
209
210 * compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
211   replaced with the following more explicit flags:
212
213   - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
214   - ``RTE_COMP_FF_OOP_SGL_IN_LB_OUT``
215   - ``RTE_COMP_FF_OOP_LB_IN_SGL_OUT``
216
217
218 ABI Changes
219 -----------
220
221 .. This section should contain ABI changes. Sample format:
222
223    * Add a short 1-2 sentence description of the ABI change
224      that was announced in the previous releases and made in this release.
225      Use fixed width quotes for ``function_names`` or ``struct_names``.
226      Use the past tense.
227
228    This section is a comment. Do not overwrite or remove it.
229    Also, make sure to start the actual text at the margin.
230    =========================================================
231
232
233 Removed Items
234 -------------
235
236 .. This section should contain removed items in this release. Sample format:
237
238    * Add a short 1-2 sentence description of the removed item
239      in the past tense.
240
241    This section is a comment. Do not overwrite or remove it.
242    Also, make sure to start the actual text at the margin.
243    =========================================================
244
245
246 Shared Library Versions
247 -----------------------
248
249 .. Update any library version updated in this release
250    and prepend with a ``+`` sign, like this:
251
252      librte_acl.so.2
253    + librte_cfgfile.so.2
254      librte_cmdline.so.2
255
256    This section is a comment. Do not overwrite or remove it.
257    =========================================================
258
259 The libraries prepended with a plus sign were incremented in this version.
260
261 .. code-block:: diff
262
263      librte_acl.so.2
264      librte_bbdev.so.1
265      librte_bitratestats.so.2
266      librte_bpf.so.1
267      librte_bus_dpaa.so.1
268      librte_bus_fslmc.so.1
269      librte_bus_pci.so.1
270      librte_bus_vdev.so.1
271    + librte_bus_vmbus.so.1
272      librte_cfgfile.so.2
273      librte_cmdline.so.2
274      librte_common_octeontx.so.1
275      librte_compressdev.so.1
276    + librte_cryptodev.so.5
277      librte_distributor.so.1
278    + librte_eal.so.8
279    + librte_ethdev.so.10
280      librte_eventdev.so.4
281      librte_flow_classify.so.1
282      librte_gro.so.1
283      librte_gso.so.1
284      librte_hash.so.2
285      librte_ip_frag.so.1
286      librte_jobstats.so.1
287      librte_kni.so.2
288      librte_kvargs.so.1
289      librte_latencystats.so.1
290      librte_lpm.so.2
291      librte_mbuf.so.4
292    + librte_mempool.so.5
293      librte_meter.so.2
294      librte_metrics.so.1
295      librte_net.so.1
296      librte_pci.so.1
297      librte_pdump.so.2
298      librte_pipeline.so.3
299      librte_pmd_bnxt.so.2
300      librte_pmd_bond.so.2
301      librte_pmd_i40e.so.2
302      librte_pmd_ixgbe.so.2
303      librte_pmd_dpaa2_cmdif.so.1
304      librte_pmd_dpaa2_qdma.so.1
305      librte_pmd_ring.so.2
306      librte_pmd_softnic.so.1
307      librte_pmd_vhost.so.2
308      librte_port.so.3
309      librte_power.so.1
310      librte_rawdev.so.1
311      librte_reorder.so.1
312      librte_ring.so.2
313      librte_sched.so.1
314      librte_security.so.1
315      librte_table.so.3
316      librte_timer.so.1
317      librte_vhost.so.3
318
319
320 Known Issues
321 ------------
322
323 .. This section should contain new known issues in this release. Sample format:
324
325    * **Add title in present tense with full stop.**
326
327      Add a short 1-2 sentence description of the known issue
328      in the present tense. Add information on any known workarounds.
329
330    This section is a comment. Do not overwrite or remove it.
331    Also, make sure to start the actual text at the margin.
332    =========================================================
333
334
335 Tested Platforms
336 ----------------
337
338 .. This section should contain a list of platforms that were tested
339    with this release.
340
341    The format is:
342
343    * <vendor> platform with <vendor> <type of devices> combinations
344
345      * List of CPU
346      * List of OS
347      * List of devices
348      * Other relevant details...
349
350    This section is a comment. Do not overwrite or remove it.
351    Also, make sure to start the actual text at the margin.
352    =========================================================
353
354 * Intel(R) platforms with Intel(R) NICs combinations
355
356    * CPU
357
358      * Intel(R) Atom(TM) CPU C3858 @ 2.00GHz
359      * Intel(R) Xeon(R) CPU D-1541 @ 2.10GHz
360      * Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
361      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
362      * Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
363      * Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
364      * Intel(R) Xeon(R) CPU E5-2658 v2 @ 2.40GHz
365      * Intel(R) Xeon(R) CPU E5-2658 v3 @ 2.20GHz
366      * Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz
367
368    * OS:
369
370      * CentOS 7.4
371      * Fedora 25
372      * Fedora 27
373      * Fedora 28
374      * FreeBSD 11.1
375      * Red Hat Enterprise Linux Server release 7.5
376      * SUSE Enterprise Linux 12
377      * Wind River Linux 8
378      * Ubuntu 14.04
379      * Ubuntu 16.04
380      * Ubuntu 16.10
381      * Ubuntu 17.10
382      * Ubuntu 18.04
383
384    * NICs:
385
386      * Intel(R) 82599ES 10 Gigabit Ethernet Controller
387
388        * Firmware version: 0x61bf0001
389        * Device id (pf/vf): 8086:10fb / 8086:10ed
390        * Driver version: 5.2.3 (ixgbe)
391
392      * Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
393
394        * Firmware version: 0x800003e7
395        * Device id (pf/vf): 8086:15ad / 8086:15a8
396        * Driver version: 4.4.6 (ixgbe)
397
398      * Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
399
400        * Firmware version: 6.01 0x80003221
401        * Device id (pf/vf): 8086:1572 / 8086:154c
402        * Driver version: 2.4.6 (i40e)
403
404      * Intel Corporation Ethernet Connection X722 for 10GbE SFP+ (4x10G)
405
406        * Firmware version: 3.33 0x80000fd5 0.0.0
407        * Device id (pf/vf): 8086:37d0 / 8086:37cd
408        * Driver version: 2.4.3 (i40e)
409
410      * Intel(R) Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
411
412        * Firmware version: 6.01 0x80003221
413        * Device id (pf/vf): 8086:158b / 8086:154c
414        * Driver version: 2.4.6 (i40e)
415
416      * Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
417
418        * Firmware version: 6.01 0x8000321c
419        * Device id (pf/vf): 8086:1583 / 8086:154c
420        * Driver version: 2.4.6 (i40e)
421
422      * Intel(R) Corporation I350 Gigabit Network Connection
423
424        * Firmware version: 1.63, 0x80000dda
425        * Device id (pf/vf): 8086:1521 / 8086:1520
426        * Driver version: 5.4.0-k (igb)
427
428 * Intel(R) platforms with Mellanox(R) NICs combinations
429
430    * CPU:
431
432      * Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz
433      * Intel(R) Xeon(R) CPU E5-2697A v4 @ 2.60GHz
434      * Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
435      * Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
436      * Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
437      * Intel(R) Xeon(R) CPU E5-2640 @ 2.50GHz
438      * Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
439
440    * OS:
441
442      * Red Hat Enterprise Linux Server release 7.5 (Maipo)
443      * Red Hat Enterprise Linux Server release 7.4 (Maipo)
444      * Red Hat Enterprise Linux Server release 7.3 (Maipo)
445      * Red Hat Enterprise Linux Server release 7.2 (Maipo)
446      * Ubuntu 18.04
447      * Ubuntu 17.10
448      * Ubuntu 16.04
449      * SUSE Linux Enterprise Server 15
450
451    * MLNX_OFED: 4.3-2.0.2.0
452    * MLNX_OFED: 4.4-2.0.1.0
453
454    * NICs:
455
456      * Mellanox(R) ConnectX(R)-3 Pro 40G MCX354A-FCC_Ax (2x40G)
457
458        * Host interface: PCI Express 3.0 x8
459        * Device ID: 15b3:1007
460        * Firmware version: 2.42.5000
461
462      * Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
463
464        * Host interface: PCI Express 3.0 x8
465        * Device ID: 15b3:1013
466        * Firmware version: 12.21.1000 and above
467
468      * Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
469
470        * Host interface: PCI Express 3.0 x8
471        * Device ID: 15b3:1013
472        * Firmware version: 12.21.1000 and above
473
474      * Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
475
476        * Host interface: PCI Express 3.0 x8
477        * Device ID: 15b3:1013
478        * Firmware version: 12.21.1000 and above
479
480      * Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
481
482        * Host interface: PCI Express 3.0 x8
483        * Device ID: 15b3:1013
484        * Firmware version: 12.21.1000 and above
485
486      * Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
487
488        * Host interface: PCI Express 3.0 x8
489        * Device ID: 15b3:1013
490        * Firmware version: 12.21.1000 and above
491
492      * Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
493
494        * Host interface: PCI Express 3.0 x16
495        * Device ID: 15b3:1013
496        * Firmware version: 12.21.1000 and above
497
498      * Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
499
500        * Host interface: PCI Express 3.0 x8
501        * Device ID: 15b3:1013
502        * Firmware version: 12.21.1000 and above
503
504      * Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
505
506        * Host interface: PCI Express 3.0 x8
507        * Device ID: 15b3:1013
508        * Firmware version: 12.21.1000 and above
509
510      * Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
511
512        * Host interface: PCI Express 3.0 x16
513        * Device ID: 15b3:1013
514        * Firmware version: 12.21.1000 and above
515        * Firmware version: 12.21.1000 and above
516
517      * Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
518
519        * Host interface: PCI Express 3.0 x16
520        * Device ID: 15b3:1013
521        * Firmware version: 12.21.1000 and above
522
523      * Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
524
525        * Host interface: PCI Express 3.0 x16
526        * Device ID: 15b3:1013
527        * Firmware version: 12.21.1000 and above
528
529      * Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
530
531        * Host interface: PCI Express 3.0 x8
532        * Device ID: 15b3:1015
533        * Firmware version: 14.21.1000 and above
534
535      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
536
537        * Host interface: PCI Express 3.0 x8
538        * Device ID: 15b3:1015
539        * Firmware version: 14.21.1000 and above
540
541      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
542
543        * Host interface: PCI Express 3.0 x16
544        * Device ID: 15b3:1017
545        * Firmware version: 16.21.1000 and above
546
547      * Mellanox(R) ConnectX-5 Ex EN 100G MCX516A-CDAT (2x100G)
548
549        * Host interface: PCI Express 4.0 x16
550        * Device ID: 15b3:1019
551        * Firmware version: 16.21.1000 and above
552
553 * ARM platforms with Mellanox(R) NICs combinations
554
555    * CPU:
556
557      * Qualcomm ARM 1.1 2500MHz
558
559    * OS:
560
561      * Red Hat Enterprise Linux Server release 7.5 (Maipo)
562
563    * NICs:
564
565      * Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
566
567        * Host interface: PCI Express 3.0 x8
568        * Device ID: 15b3:1015
569        * Firmware version: 14.23.1000
570
571      * Mellanox(R) ConnectX(R)-5 100G MCX556A-ECAT (2x100G)
572
573        * Host interface: PCI Express 3.0 x16
574        * Device ID: 15b3:1017
575        * Firmware version: 16.23.1000
576
577 * Mellanox BlueField SmartNIC
578
579    * Mellanox(R) BlueField SmartNIC MT416842 (2x25G)
580        * Host interface: PCI Express 3.0 x16
581        * Device ID: 15b3:a2d2
582        * Firmware version: 18.99.3950
583
584    * SoC ARM cores running OS:
585      * CentOS Linux release 7.4.1708 (AltArch)
586      * Mellanox MLNX_OFED 4.2-1.4.21.0
587
588   * DPDK application running on ARM cores inside SmartNIC
589   * Bluefield representors support planned for next release.