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