doc: add limitation for l3fwd-power sample
[dpdk.git] / doc / guides / rel_notes / release_16_11.rst
1 DPDK Release 16.11
2 ==================
3
4 .. **Read this first.**
5
6    The text 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: ``LIKE_THIS``.
11
12    Build the docs and view the output file to ensure the changes are correct::
13
14       make doc-guides-html
15
16       firefox build/doc/html/guides/rel_notes/release_16_11.html
17
18
19 New Features
20 ------------
21
22 .. This section should contain new features added in this release. Sample format:
23
24    * **Add a title in the past tense with a full stop.**
25
26      Add a short 1-2 sentence description in the past tense. The description
27      should be enough to allow someone scanning the release notes to understand
28      the new feature.
29
30      If the feature adds a lot of sub-features you can use a bullet list like this.
31
32      * Added feature foo to do something.
33      * Enhanced feature bar to do something else.
34
35      Refer to the previous release notes for examples.
36
37      This section is a comment. Make sure to start the actual text at the margin.
38
39
40 * **Added software parser for packet type.**
41
42   * Added a new function ``rte_pktmbuf_read()`` to read the packet data from an
43     mbuf chain, linearizing if required.
44   * Added a new function ``rte_net_get_ptype()`` to parse an Ethernet packet
45     in an mbuf chain and retrieve its packet type by software.
46   * Added new functions ``rte_get_ptype_*()`` to dump a packet type as a string.
47
48 * **Improved offloads support in mbuf.**
49
50   * Added a new function ``rte_raw_cksum_mbuf()`` to process the checksum of
51     data embedded in an mbuf chain.
52   * Added new Rx checksum flags in mbufs to describe more states: unknown,
53     good, bad, or not present (useful for virtual drivers). This modification
54     was done for IP and L4.
55   * Added a new RX LRO mbuf flag, used when packets are coalesced. This
56     flag indicates that the segment size of original packets is known.
57
58 * **Added vhost-user dequeue zero copy support**
59
60   The copy in dequeue path is saved, which is meant to improve the performance.
61   In the VM2VM case, the boost is quite impressive. The bigger the packet size,
62   the bigger performance boost you may get. However, for VM2NIC case, there
63   are some limitations, yet the boost is not that impressive as VM2VM case.
64   It may even drop quite a bit for small packets.
65
66   For such reason, this feature is disabled by default. It can be enabled when
67   ``RTE_VHOST_USER_DEQUEUE_ZERO_COPY`` flag is given. Check the vhost section
68   at programming guide for more information.
69
70 * **Added vhost-user indirect descriptors support.**
71
72   If indirect descriptor feature is negotiated, each packet sent by the guest
73   will take exactly one slot in the enqueue virtqueue. Without the feature, in
74   current version, even 64 bytes packets take two slots with Virtio PMD on guest
75   side.
76
77   The main impact is better performance for 0% packet loss use-cases, as it
78   behaves as if the virtqueue size was enlarged, so more packets can be buffered
79   in case of system perturbations. On the downside, small performance degradation
80   is measured when running micro-benchmarks.
81
82 * **Added vhost PMD xstats.**
83
84   Added extended statistics to vhost PMD from per port perspective.
85
86 * **Supported offloads with virtio.**
87
88   * Rx/Tx checksums
89   * LRO
90   * TSO
91
92 * **Added virtio NEON support for ARM.**
93
94 * **Updated the ixgbe base driver.**
95
96   Updated the ixgbe base driver, including the following changes:
97
98   * add X550em_a 10G PHY support
99   * support flow control auto negotiation for X550em_a 1G PHY
100   * add X550em_a FW ALEF support
101   * increase mailbox version to ixgbe_mbox_api_13
102   * add two MAC ops for Hyper-V support
103
104 * **Added API's for VF management to the ixgbe PMD.**
105
106   Eight new API's have been added to the ixgbe PMD for VF management from the PF.
107   The declarations for the API's can be found in ``rte_pmd_ixgbe.h``.
108
109 * **Updated the enic driver.**
110
111   * Use interrupt for link status checking instead of polling
112   * More flow director modes on UCS Blade with firmware version >= 2.0(13e)
113   * Full support for MTU update
114   * Support for rte_eth_rx_queue_count function
115
116 * **Updated the mlx5 driver.**
117
118   * Add support for RSS hash result
119   * Several performance improvements
120   * Several bug fixes
121
122 * **Updated the QAT PMD.**
123
124   The QAT PMD was updated with following support:
125
126   * MD5_HMAC algorithm
127   * SHA224-HMAC algorithm
128   * SHA384-HMAC algorithm
129   * GMAC algorithm
130   * KASUMI (F8 and F9) algorithm
131   * 3DES algorithm
132   * NULL algorithm
133   * C3XXX device
134   * C62XX device
135
136 * **Added openssl PMD.**
137
138   A new crypto PMD has been added, which provides several ciphering and hashing.
139   All cryptography operations are using Openssl library crypto API.
140
141 * **Updated the IPsec example with following support:**
142
143   * configuration file
144   * AES CBC IV generation with cipher forward function
145   * AES GCM/CTR mode
146
147 * **Added support for new gcc -march option.**
148
149   The GCC 4.9 ``-march`` option supports the Intel processor code names.
150   The config option ``RTE_MACHINE`` can be used to pass code names to the compiler as ``-march`` flag.
151
152
153 Resolved Issues
154 ---------------
155
156 .. This section should contain bug fixes added to the relevant sections. Sample format:
157
158    * **code/section Fixed issue in the past tense with a full stop.**
159
160      Add a short 1-2 sentence description of the resolved issue in the past tense.
161      The title should contain the code/lib section like a commit message.
162      Add the entries in alphabetic order in the relevant sections below.
163
164    This section is a comment. Make sure to start the actual text at the margin.
165
166
167 EAL
168 ~~~
169
170
171 Drivers
172 ~~~~~~~
173
174 * **enic: Fixed several flow director issues.**
175
176 * **enic: Fixed inadvertent setting of L4 checksum ptype on ICMP packets.**
177
178 * **enic: Fixed high driver overhead when servicing Rx queues beyond the first.**
179
180
181 Libraries
182 ~~~~~~~~~
183
184
185 Examples
186 ~~~~~~~~
187
188
189 Other
190 ~~~~~
191
192
193 Known Issues
194 ------------
195
196 .. This section should contain new known issues in this release. Sample format:
197
198    * **Add title in present tense with full stop.**
199
200      Add a short 1-2 sentence description of the known issue in the present
201      tense. Add information on any known workarounds.
202
203    This section is a comment. Make sure to start the actual text at the margin.
204
205 * **L3fwd-power app does not work properly when Rx vector is enabled.**
206
207   Using some drivers with vector enabled, makes L3fwd-power app not work
208   properly, since the queue monitoring works differently when using
209   scalar compared to vector, making the frequency scaling not to work correctly.
210   In addition, L3fwd-power requires the mbuf to have correct packet type,
211   but in some drivers, the vector mode must be disabled for this.
212
213   Therefore, in order to use L3fwd-power, vector mode should be disabled
214   from the config file.
215
216
217 API Changes
218 -----------
219
220 .. This section should contain API changes. Sample format:
221
222    * Add a short 1-2 sentence description of the API change. Use fixed width
223      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
224
225    This section is a comment. Make sure to start the actual text at the margin.
226
227 * The driver names have been changed. It especially impacts ``--vdev`` arguments.
228   Examples: ``eth_pcap`` becomes ``net_pcap``
229   and ``cryptodev_aesni_mb_pmd`` becomes ``crypto_aesni_mb``.
230
231 * The log history is removed.
232
233 * The ``rte_ivshmem`` feature (including library and EAL code) has been removed
234   in 16.11 because it had some design issues which were not planned to be fixed.
235
236 * The ``file_name`` data type of ``struct rte_port_source_params`` and
237   ``struct rte_port_sink_params`` is changed from `char *`` to ``const char *``.
238
239 * **Improved device/driver hierarchy and generalized hotplugging**
240
241   Device and driver relationship has been restructured by introducing generic
242   classes. This paves way for having PCI, VDEV and other device types as
243   just instantiated objects rather than classes in themselves. Hotplugging too
244   has been generalized into EAL so that ethernet or crypto devices can use the
245   common infrastructure.
246
247   * removed ``pmd_type`` as way of segregation of devices
248   * moved ``numa_node`` and ``devargs`` into ``rte_driver`` from
249     ``rte_pci_driver``. These can now be used by any instantiated object of
250     ``rte_driver``.
251   * added ``rte_device`` class and all PCI and VDEV devices inherit from it
252   * renamed devinit/devuninit handlers to probe/remove to make it more
253     semantically correct with respect to device<=>driver relationship
254   * moved hotplugging support to EAL. Hereafter, PCI and vdev can use the
255     APIs ``rte_eal_dev_attach`` and ``rte_eal_dev_detach``.
256   * helpers and support macros have been renamed to make them more synonymous
257     with their device types
258     (e.g. ``PMD_REGISTER_DRIVER`` => ``RTE_PMD_REGISTER_PCI``)
259   * Device naming functions have been generalized from ethdev and cryptodev
260     to EAL. ``rte_eal_pci_device_name`` has been introduced for obtaining
261     unique device name from PCI Domain-BDF description.
262   * Virtual device registration APIs have been added: ``rte_eal_vdrv_register``
263     and ``rte_eal_vdrv_unregister``.
264
265
266 ABI Changes
267 -----------
268
269 .. This section should contain ABI changes. Sample format:
270
271    * Add a short 1-2 sentence description of the ABI change that was announced in
272      the previous releases and made in this release. Use fixed width quotes for
273      ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
274
275    This section is a comment. Make sure to start the actual text at the margin.
276
277
278
279 Shared Library Versions
280 -----------------------
281
282 .. Update any library version updated in this release and prepend with a ``+``
283    sign, like this:
284
285      libethdev.so.4
286      librte_acl.so.2
287    + librte_cfgfile.so.2
288      librte_cmdline.so.2
289
290
291
292 The libraries prepended with a plus sign were incremented in this version.
293
294 .. code-block:: diff
295
296      librte_acl.so.2
297      librte_cfgfile.so.2
298      librte_cmdline.so.2
299    + librte_cryptodev.so.2
300      librte_distributor.so.1
301    + librte_eal.so.3
302    + librte_ethdev.so.5
303      librte_hash.so.2
304      librte_ip_frag.so.1
305      librte_jobstats.so.1
306      librte_kni.so.2
307      librte_kvargs.so.1
308      librte_lpm.so.2
309      librte_mbuf.so.2
310      librte_mempool.so.2
311      librte_meter.so.1
312      librte_net.so.1
313      librte_pdump.so.1
314      librte_pipeline.so.3
315      librte_pmd_bond.so.1
316      librte_pmd_ring.so.2
317      librte_port.so.3
318      librte_power.so.1
319      librte_reorder.so.1
320      librte_ring.so.1
321      librte_sched.so.1
322      librte_table.so.2
323      librte_timer.so.1
324      librte_vhost.so.3
325
326
327 Tested Platforms
328 ----------------
329
330 .. This section should contain a list of platforms that were tested with this release.
331
332    The format is:
333
334    #. Platform name.
335
336       * Platform details.
337       * Platform details.
338
339    This section is a comment. Make sure to start the actual text at the margin.
340
341 #. Intel(R) Server board S2600WTT
342
343    - Processor: Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz
344
345 #. Intel(R) Server
346
347    - Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
348
349 #. Intel(R) Server
350
351    - Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
352
353 #. IBM(R) Power8(R)
354
355    - Machine type-model: 8247-22L
356    - Firmware FW810.21 (SV810_108)
357    - Processor: POWER8E (raw), AltiVec supported
358
359
360 Tested NICs
361 -----------
362
363 .. This section should contain a list of NICs that were tested with this release.
364
365    The format is:
366
367    #. NIC name.
368
369       * NIC details.
370       * NIC details.
371
372    This section is a comment. Make sure to start the actual text at the margin.
373
374 #. Mellanox(R) ConnectX(R)-4 10G MCX4111A-XCAT (1x10G)
375
376    * Host interface: PCI Express 3.0 x8
377    * Device ID: 15b3:1013
378    * MLNX_OFED: 3.4-1.0.0.0
379    * Firmware version: 12.17.1010
380
381 #. Mellanox(R) ConnectX(R)-4 10G MCX4121A-XCAT (2x10G)
382
383    * Host interface: PCI Express 3.0 x8
384    * Device ID: 15b3:1013
385    * MLNX_OFED: 3.4-1.0.0.0
386    * Firmware version: 12.17.1010
387
388 #. Mellanox(R) ConnectX(R)-4 25G MCX4111A-ACAT (1x25G)
389
390    * Host interface: PCI Express 3.0 x8
391    * Device ID: 15b3:1013
392    * MLNX_OFED: 3.4-1.0.0.0
393    * Firmware version: 12.17.1010
394
395 #. Mellanox(R) ConnectX(R)-4 25G MCX4121A-ACAT (2x25G)
396
397    * Host interface: PCI Express 3.0 x8
398    * Device ID: 15b3:1013
399    * MLNX_OFED: 3.4-1.0.0.0
400    * Firmware version: 12.17.1010
401
402 #. Mellanox(R) ConnectX(R)-4 40G MCX4131A-BCAT/MCX413A-BCAT (1x40G)
403
404    * Host interface: PCI Express 3.0 x8
405    * Device ID: 15b3:1013
406    * MLNX_OFED: 3.4-1.0.0.0
407    * Firmware version: 12.17.1010
408
409 #. Mellanox(R) ConnectX(R)-4 40G MCX415A-BCAT (1x40G)
410
411    * Host interface: PCI Express 3.0 x16
412    * Device ID: 15b3:1013
413    * MLNX_OFED: 3.4-1.0.0.0
414    * Firmware version: 12.17.1010
415
416 #. Mellanox(R) ConnectX(R)-4 50G MCX4131A-GCAT/MCX413A-GCAT (1x50G)
417
418    * Host interface: PCI Express 3.0 x8
419    * Device ID: 15b3:1013
420    * MLNX_OFED: 3.4-1.0.0.0
421    * Firmware version: 12.17.1010
422
423 #. Mellanox(R) ConnectX(R)-4 50G MCX414A-BCAT (2x50G)
424
425    * Host interface: PCI Express 3.0 x8
426    * Device ID: 15b3:1013
427    * MLNX_OFED: 3.4-1.0.0.0
428    * Firmware version: 12.17.1010
429
430 #. Mellanox(R) ConnectX(R)-4 50G MCX415A-GCAT/MCX416A-BCAT/MCX416A-GCAT (2x50G)
431
432    * Host interface: PCI Express 3.0 x16
433    * Device ID: 15b3:1013
434    * MLNX_OFED: 3.4-1.0.0.0
435    * Firmware version: 12.17.1010
436
437 #. Mellanox(R) ConnectX(R)-4 50G MCX415A-CCAT (1x100G)
438
439    * Host interface: PCI Express 3.0 x16
440    * Device ID: 15b3:1013
441    * MLNX_OFED: 3.4-1.0.0.0
442    * Firmware version: 12.17.1010
443
444 #. Mellanox(R) ConnectX(R)-4 100G MCX416A-CCAT (2x100G)
445
446    * Host interface: PCI Express 3.0 x16
447    * Device ID: 15b3:1013
448    * MLNX_OFED: 3.4-1.0.0.0
449    * Firmware version: 12.17.1010
450
451 #. Mellanox(R) ConnectX(R)-4 Lx 10G MCX4121A-XCAT (2x10G)
452
453    * Host interface: PCI Express 3.0 x8
454    * Device ID: 15b3:1015
455    * MLNX_OFED: 3.4-1.0.0.0
456    * Firmware version: 14.17.1010
457
458 #. Mellanox(R) ConnectX(R)-4 Lx 25G MCX4121A-ACAT (2x25G)
459
460    * Host interface: PCI Express 3.0 x8
461    * Device ID: 15b3:1015
462    * MLNX_OFED: 3.4-1.0.0.0
463    * Firmware version: 14.17.1010
464
465
466 Tested OSes
467 -----------
468
469 .. This section should contain a list of OSes that were tested with this release.
470    The format is as follows, in alphabetical order:
471
472    * CentOS 7.0
473    * Fedora 23
474    * Fedora 24
475    * FreeBSD 10.3
476    * Red Hat Enterprise Linux 7.2
477    * SUSE Enterprise Linux 12
478    * Ubuntu 15.10
479    * Ubuntu 16.04 LTS
480    * Wind River Linux 8
481
482    This section is a comment. Make sure to start the actual text at the margin.
483
484 * Red Hat Enterprise Linux Server release 6.7 (Santiago)
485 * Red Hat Enterprise Linux Server release 7.0 (Maipo)
486 * Red Hat Enterprise Linux Server release 7.2 (Maipo)
487 * Wind River Linux 6.0.0.26
488 * Ubuntu 14.04
489 * Ubuntu 15.04