]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | DPDK Release 16.07 |
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_07.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 | * **Removed the mempool cache memory if caching is not being used.** | |
38 | ||
39 | The size of the mempool structure is reduced if the per-lcore cache is disabled. | |
40 | ||
41 | * **Added mempool external cache for non-EAL thread.** | |
42 | ||
43 | Added new functions to create, free or flush a user-owned mempool | |
44 | cache for non-EAL threads. Previously the caching was always disabled | |
45 | on these threads. | |
46 | ||
47 | * **Changed the memory allocation scheme in the mempool library.** | |
48 | ||
49 | * Added the ability to allocate a large mempool in fragmented virtual memory. | |
50 | * Added new APIs to populate a mempool with memory. | |
51 | * Added an API to free a mempool. | |
52 | * Modified the API of the ``rte_mempool_obj_iter()`` function. | |
53 | * Dropped the specific Xen Dom0 code. | |
54 | * Dropped the specific anonymous mempool code in testpmd. | |
55 | ||
56 | * **Added a new driver for Broadcom NetXtreme-C devices.** | |
57 | ||
58 | Added the new bnxt driver for Broadcom NetXtreme-C devices. See the | |
59 | "Network Interface Controller Drivers" document for more details on this | |
60 | new driver. | |
61 | ||
62 | * **Added a new driver for ThunderX nicvf devices.** | |
63 | ||
64 | Added the new thunderx net driver for ThunderX nicvf devices. See the | |
65 | "Network Interface Controller Drivers" document for more details on this new | |
66 | driver. | |
67 | ||
68 | * **Added mailbox interrupt support for ixgbe and igb VFs.** | |
69 | ||
70 | When the physical NIC link comes up or down, the PF driver will send a | |
71 | mailbox message to notify each VF. To handle this link up/down event, | |
72 | support have been added for a mailbox interrupt to receive the message and | |
73 | allow the application to register a callback for it. | |
74 | ||
75 | * **Updated the ixgbe base driver.** | |
76 | ||
77 | The ixgbe base driver was updated with changes including the | |
78 | following: | |
79 | ||
80 | * Added sgmii link for X550. | |
81 | * Added MAC link setup for X550a SFP and SFP+. | |
82 | * Added KR support for X550em_a. | |
83 | * Added new PHY definitions for M88E1500. | |
84 | * Added support for the VLVF to be bypassed when adding/removing a VFTA entry. | |
85 | * Added X550a flow control auto negotiation support. | |
86 | ||
87 | * **Updated the i40e base driver.** | |
88 | ||
89 | Updated the i40e base driver including support for new devices IDs. | |
90 | ||
91 | * **Updated the enic driver.** | |
92 | ||
93 | The enic driver was updated with changes including the following: | |
94 | ||
95 | * Optimized the Tx function. | |
96 | * Added Scattered Rx capability. | |
97 | * Improved packet type identification. | |
98 | * Added MTU update in non Scattered Rx mode and enabled MTU of up to 9208 | |
99 | with UCS Software release 2.2 on 1300 series VICs. | |
100 | ||
101 | * **Updated the mlx5 driver.** | |
102 | ||
103 | The mlx5 driver was updated with changes including the following: | |
104 | ||
105 | * Data path was refactored to bypass Verbs to improve RX and TX performance. | |
106 | * Removed compilation parameters for inline send, ``MLX5_MAX_INLINE``, and | |
107 | added command line parameter instead, ``txq_inline``. | |
108 | * Improved TX scatter gather support: | |
109 | Removed compilation parameter ``MLX5_PMD_SGE_WR_N``. | |
110 | Scatter-gather elements is set to the maximum value the NIC supports. | |
111 | Removed linearization logic, this decreases the memory consumption of the PMD. | |
112 | * Improved jumbo frames support, by dynamically setting RX scatter gather elements | |
113 | according to the MTU and mbuf size, | |
114 | no need for compilation parameter ``MLX5_PMD_SGE_WR_N`` | |
115 | ||
116 | * **Added support for virtio on IBM POWER8.** | |
117 | ||
118 | The ioports are mapped in memory when using Linux UIO. | |
119 | ||
120 | * **Added support for Virtio in containers.** | |
121 | ||
122 | Add a new virtual device, named virtio_user, to support virtio for containers. | |
123 | ||
124 | Known limitations: | |
125 | ||
126 | * Control queue and multi-queue are not supported yet. | |
127 | * Doesn't work with ``--huge-unlink``. | |
128 | * Doesn't work with ``--no-huge``. | |
129 | * Doesn't work when there are more than ``VHOST_MEMORY_MAX_NREGIONS(8)`` hugepages. | |
130 | * Root privilege is required for sorting hugepages by physical address. | |
131 | * Can only be used with the vhost user backend. | |
132 | ||
133 | * **Added vhost-user client mode.** | |
134 | ||
135 | DPDK vhost-user now supports client mode as well as server mode. Client mode | |
136 | is enabled when the ``RTE_VHOST_USER_CLIENT`` flag is set while calling | |
137 | ``rte_vhost_driver_register``. | |
138 | ||
139 | When DPDK vhost-user restarts from an normal or abnormal exit (such as a | |
140 | crash), the client mode allows DPDK to establish the connection again. Note | |
141 | that QEMU version v2.7 or above is required for this feature. | |
142 | ||
143 | DPDK vhost-user will also try to reconnect by default when: | |
144 | ||
145 | * The first connect fails (for example when QEMU is not started yet). | |
146 | * The connection is broken (for example when QEMU restarts). | |
147 | ||
148 | It can be turned off by setting the ``RTE_VHOST_USER_NO_RECONNECT`` flag. | |
149 | ||
150 | * **Added NSH packet recognition in i40e.** | |
151 | ||
152 | * **Added AES-CTR support to AESNI MB PMD.** | |
153 | ||
154 | Now AESNI MB PMD supports 128/192/256-bit counter mode AES encryption and | |
155 | decryption. | |
156 | ||
157 | * **Added AES counter mode support for Intel QuickAssist devices.** | |
158 | ||
159 | Enabled support for the AES CTR algorithm for Intel QuickAssist devices. | |
160 | Provided support for algorithm-chaining operations. | |
161 | ||
162 | * **Added KASUMI SW PMD.** | |
163 | ||
164 | A new Crypto PMD has been added, which provides KASUMI F8 (UEA1) ciphering | |
165 | and KASUMI F9 (UIA1) hashing. | |
166 | ||
167 | * **Added multi-writer support for RTE Hash with Intel TSX.** | |
168 | ||
169 | The following features/modifications have been added to rte_hash library: | |
170 | ||
171 | * Enabled application developers to use an extra flag for ``rte_hash`` | |
172 | creation to specify default behavior (multi-thread safe/unsafe) with the | |
173 | ``rte_hash_add_key`` function. | |
174 | * Changed the Cuckoo Hash Search algorithm to breadth first search for | |
175 | multi-writer routines and split Cuckoo Hash Search and Move operations in | |
176 | order to reduce transactional code region and improve TSX performance. | |
177 | * Added a hash multi-writer test case to the test app. | |
178 | ||
179 | * **Improved IP Pipeline Application.** | |
180 | ||
181 | The following features have been added to the ip_pipeline application: | |
182 | ||
183 | * Configure the MAC address in the routing pipeline and automatic route | |
184 | updates with change in link state. | |
185 | * Enable RSS per network interface through the configuration file. | |
186 | * Streamline the CLI code. | |
187 | ||
188 | * **Added keepalive enhancements.** | |
189 | ||
190 | Added support for reporting of core states other than "dead" to | |
191 | monitoring applications, enabling the support of broader liveness | |
192 | reporting to external processes. | |
193 | ||
194 | * **Added packet capture framework.** | |
195 | ||
196 | * A new library ``librte_pdump`` is added to provide a packet capture API. | |
197 | * A new ``app/pdump`` tool is added to demonstrate capture packets in DPDK. | |
198 | ||
199 | ||
200 | * **Added floating VEB support for i40e PF driver.** | |
201 | ||
202 | A "floating VEB" is a special Virtual Ethernet Bridge (VEB) which does not | |
203 | have an upload port, but instead is used for switching traffic between | |
204 | virtual functions (VFs) on a port. | |
205 | ||
206 | For information on this feature, please see the "I40E Poll Mode Driver" | |
207 | section of the "Network Interface Controller Drivers" document. | |
208 | ||
209 | * **Added support for live migration of a VM with SRIOV VF.** | |
210 | ||
211 | Live migration of a VM with Virtio and VF PMD's using the bonding PMD. | |
212 | ||
213 | ||
214 | Resolved Issues | |
215 | --------------- | |
216 | ||
217 | .. This section should contain bug fixes added to the relevant sections. Sample format: | |
218 | ||
219 | * **code/section Fixed issue in the past tense with a full stop.** | |
220 | ||
221 | Add a short 1-2 sentence description of the resolved issue in the past tense. | |
222 | The title should contain the code/lib section like a commit message. | |
223 | Add the entries in alphabetic order in the relevant sections below. | |
224 | ||
225 | ||
226 | EAL | |
227 | ~~~ | |
228 | ||
229 | * **igb_uio: Fixed possible mmap failure for Linux >= 4.5.** | |
230 | ||
231 | The mmaping of the iomem range of the PCI device fails for kernels that | |
232 | enabled the ``CONFIG_IO_STRICT_DEVMEM`` option. The error seen by the | |
233 | user is as similar to the following:: | |
234 | ||
235 | EAL: pci_map_resource(): | |
236 | ||
237 | cannot mmap(39, 0x7f1c51800000, 0x100000, 0x0): | |
238 | Invalid argument (0xffffffffffffffff) | |
239 | ||
240 | The ``CONFIG_IO_STRICT_DEVMEM`` kernel option was introduced in Linux v4.5. | |
241 | ||
242 | The issues was resolve by updating ``igb_uio`` to stop reserving PCI memory | |
243 | resources. From the kernel point of view the iomem region looks like idle | |
244 | and mmap works again. This matches the ``uio_pci_generic`` usage. | |
245 | ||
246 | ||
247 | Drivers | |
248 | ~~~~~~~ | |
249 | ||
250 | * **i40e: Fixed vlan stripping from inner header.** | |
251 | ||
252 | Previously, for tunnel packets, such as VXLAN/NVGRE, the vlan | |
253 | tags of the inner header will be stripped without putting vlan | |
254 | info to descriptor. | |
255 | Now this issue is fixed by disabling vlan stripping from inner header. | |
256 | ||
257 | * **i40e: Fixed the type issue of a single VLAN type.** | |
258 | ||
259 | Currently, if a single VLAN header is added in a packet, it's treated | |
260 | as inner VLAN. But generally, a single VLAN header is treated as the | |
261 | outer VLAN header. | |
262 | This issue is fixed by changing corresponding register for single VLAN. | |
263 | ||
264 | * **enic: Fixed several issues when stopping then restarting ports and queues.** | |
265 | ||
266 | Fixed several crashes related to stopping then restarting ports and queues. | |
267 | Fixed possible crash when re-configuring the number of Rx queue descriptors. | |
268 | ||
269 | * **enic: Fixed Rx data mis-alignment if mbuf data offset modified.** | |
270 | ||
271 | Fixed possible Rx corruption when mbufs were returned to a pool with data | |
272 | offset other than RTE_PKTMBUF_HEADROOM. | |
273 | ||
274 | * **enic: Fixed Tx IP/UDP/TCP checksum offload and VLAN insertion.** | |
275 | ||
276 | * **enic: Fixed Rx error and missed counters.** | |
277 | ||
278 | ||
279 | Libraries | |
280 | ~~~~~~~~~ | |
281 | ||
282 | * **mbuf: Fixed refcnt update when detaching.** | |
283 | ||
284 | Fix the ``rte_pktmbuf_detach()`` function to decrement the direct mbuf's | |
285 | reference counter. The previous behavior was not to affect the reference | |
286 | counter. This lead to a memory leak of the direct mbuf. | |
287 | ||
288 | ||
289 | Examples | |
290 | ~~~~~~~~ | |
291 | ||
292 | ||
293 | Other | |
294 | ~~~~~ | |
295 | ||
296 | ||
297 | Known Issues | |
298 | ------------ | |
299 | ||
300 | .. This section should contain new known issues in this release. Sample format: | |
301 | ||
302 | * **Add title in present tense with full stop.** | |
303 | ||
304 | Add a short 1-2 sentence description of the known issue in the present | |
305 | tense. Add information on any known workarounds. | |
306 | ||
307 | ||
308 | API Changes | |
309 | ----------- | |
310 | ||
311 | .. This section should contain API changes. Sample format: | |
312 | ||
313 | * Add a short 1-2 sentence description of the API change. Use fixed width | |
314 | quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense. | |
315 | ||
316 | * The following counters are removed from the ``rte_eth_stats`` structure: | |
317 | ||
318 | * ``ibadcrc`` | |
319 | * ``ibadlen`` | |
320 | * ``imcasts`` | |
321 | * ``fdirmatch`` | |
322 | * ``fdirmiss`` | |
323 | * ``tx_pause_xon`` | |
324 | * ``rx_pause_xon`` | |
325 | * ``tx_pause_xoff`` | |
326 | * ``rx_pause_xoff`` | |
327 | ||
328 | * The extended statistics are fetched by ids with ``rte_eth_xstats_get`` | |
329 | after a lookup by name ``rte_eth_xstats_get_names``. | |
330 | ||
331 | * The function ``rte_eth_dev_info_get`` fill the new fields ``nb_rx_queues`` | |
332 | and ``nb_tx_queues`` in the structure ``rte_eth_dev_info``. | |
333 | ||
334 | * The vhost function ``rte_vring_available_entries`` is renamed to | |
335 | ``rte_vhost_avail_entries``. | |
336 | ||
337 | * All existing vhost APIs and callbacks with ``virtio_net`` struct pointer | |
338 | as the parameter have been changed due to the ABI refactoring described | |
339 | below. It is replaced by ``int vid``. | |
340 | ||
341 | * The function ``rte_vhost_enqueue_burst`` no longer supports concurrent enqueuing | |
342 | packets to the same queue. | |
343 | ||
344 | * The function ``rte_eth_dev_set_mtu`` adds a new return value ``-EBUSY``, which | |
345 | indicates the operation is forbidden because the port is running. | |
346 | ||
347 | * The script ``dpdk_nic_bind.py`` is renamed to ``dpdk-devbind.py``. | |
348 | And the script ``setup.sh`` is renamed to ``dpdk-setup.sh``. | |
349 | ||
350 | ||
351 | ABI Changes | |
352 | ----------- | |
353 | ||
354 | .. * Add a short 1-2 sentence description of the ABI change that was announced in | |
355 | the previous releases and made in this release. Use fixed width quotes for | |
356 | ``rte_function_names`` or ``rte_struct_names``. Use the past tense. | |
357 | ||
358 | * The ``rte_port_source_params`` structure has new fields to support PCAP files. | |
359 | It was already in release 16.04 with ``RTE_NEXT_ABI`` flag. | |
360 | ||
361 | * The ``rte_eth_dev_info`` structure has new fields ``nb_rx_queues`` and ``nb_tx_queues`` | |
362 | to support the number of queues configured by software. | |
363 | ||
364 | * A Vhost ABI refactoring has been made: the ``virtio_net`` structure is no | |
365 | longer exported directly to the application. Instead, a handle, ``vid``, has | |
366 | been used to represent this structure internally. | |
367 | ||
368 | ||
369 | Shared Library Versions | |
370 | ----------------------- | |
371 | ||
372 | .. Update any library version updated in this release and prepend with a ``+`` sign. | |
373 | ||
374 | The libraries prepended with a plus sign were incremented in this version. | |
375 | ||
376 | .. code-block:: diff | |
377 | ||
378 | + libethdev.so.4 | |
379 | librte_acl.so.2 | |
380 | librte_cfgfile.so.2 | |
381 | librte_cmdline.so.2 | |
382 | librte_cryptodev.so.1 | |
383 | librte_distributor.so.1 | |
384 | librte_eal.so.2 | |
385 | librte_hash.so.2 | |
386 | librte_ip_frag.so.1 | |
387 | librte_ivshmem.so.1 | |
388 | librte_jobstats.so.1 | |
389 | librte_kni.so.2 | |
390 | librte_kvargs.so.1 | |
391 | librte_lpm.so.2 | |
392 | librte_mbuf.so.2 | |
393 | + librte_mempool.so.2 | |
394 | librte_meter.so.1 | |
395 | librte_pdump.so.1 | |
396 | librte_pipeline.so.3 | |
397 | librte_pmd_bond.so.1 | |
398 | librte_pmd_ring.so.2 | |
399 | + librte_port.so.3 | |
400 | librte_power.so.1 | |
401 | librte_reorder.so.1 | |
402 | librte_ring.so.1 | |
403 | librte_sched.so.1 | |
404 | librte_table.so.2 | |
405 | librte_timer.so.1 | |
406 | + librte_vhost.so.3 | |
407 | ||
408 | ||
409 | Tested Platforms | |
410 | ---------------- | |
411 | ||
412 | .. This section should contain a list of platforms that were tested with this | |
413 | release. | |
414 | ||
415 | The format is: | |
416 | ||
417 | #. Platform name. | |
418 | ||
419 | - Platform details. | |
420 | - Platform details. | |
421 | ||
422 | #. SuperMicro 1U | |
423 | ||
424 | - BIOS: 1.0c | |
425 | - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz | |
426 | ||
427 | #. SuperMicro 1U | |
428 | ||
429 | - BIOS: 1.0a | |
430 | - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz | |
431 | - Onboard NIC: Intel(R) X552/X557-AT (2x10G) | |
432 | ||
433 | - Firmware-version: 0x800001cf | |
434 | - Device ID (PF/VF): 8086:15ad /8086:15a8 | |
435 | ||
436 | - kernel driver version: 4.2.5 (ixgbe) | |
437 | ||
438 | #. SuperMicro 2U | |
439 | ||
440 | - BIOS: 1.0a | |
441 | - Processor: Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz | |
442 | ||
443 | #. Intel(R) Server board S2600GZ | |
444 | ||
445 | - BIOS: SE5C600.86B.02.02.0002.122320131210 | |
446 | - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz | |
447 | ||
448 | #. Intel(R) Server board W2600CR | |
449 | ||
450 | - BIOS: SE5C600.86B.02.01.0002.082220131453 | |
451 | - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz | |
452 | ||
453 | #. Intel(R) Server board S2600CWT | |
454 | ||
455 | - BIOS: SE5C610.86B.01.01.0009.060120151350 | |
456 | - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz | |
457 | ||
458 | #. Intel(R) Server board S2600WTT | |
459 | ||
460 | - BIOS: SE5C610.86B.01.01.0005.101720141054 | |
461 | - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz | |
462 | ||
463 | #. Intel(R) Server board S2600WTT | |
464 | ||
465 | - BIOS: SE5C610.86B.11.01.0044.090120151156 | |
466 | - Processor: Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz | |
467 | ||
468 | ||
469 | Tested NICs | |
470 | ----------- | |
471 | ||
472 | .. This section should contain a list of NICs that were tested with this release. | |
473 | ||
474 | The format is: | |
475 | ||
476 | #. NIC name. | |
477 | ||
478 | - NIC details. | |
479 | - NIC details. | |
480 | ||
481 | #. Intel(R) Ethernet Controller X540-AT2 | |
482 | ||
483 | - Firmware version: 0x80000389 | |
484 | - Device id (pf): 8086:1528 | |
485 | - Driver version: 3.23.2 (ixgbe) | |
486 | ||
487 | #. Intel(R) 82599ES 10 Gigabit Ethernet Controller | |
488 | ||
489 | - Firmware version: 0x61bf0001 | |
490 | - Device id (pf/vf): 8086:10fb / 8086:10ed | |
491 | - Driver version: 4.0.1-k (ixgbe) | |
492 | ||
493 | #. Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T | |
494 | ||
495 | - Firmware version: 0x800001cf | |
496 | - Device id (pf/vf): 8086:15ad / 8086:15a8 | |
497 | - Driver version: 4.2.5 (ixgbe) | |
498 | ||
499 | #. Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G) | |
500 | ||
501 | - Firmware version: 5.04 | |
502 | - Device id (pf/vf): 8086:1572 / 8086:154c | |
503 | - Driver version: 1.4.26 (i40e) | |
504 | ||
505 | #. Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G) | |
506 | ||
507 | - Firmware version: 5.04 | |
508 | - Device id (pf/vf): 8086:1572 / 8086:154c | |
509 | - Driver version: 1.4.25 (i40e) | |
510 | ||
511 | #. Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G) | |
512 | ||
513 | - Firmware version: 5.04 | |
514 | - Device id (pf/vf): 8086:1584 / 8086:154c | |
515 | - Driver version: 1.4.25 (i40e) | |
516 | ||
517 | #. Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G) | |
518 | ||
519 | - Firmware version: 5.04 | |
520 | - Device id (pf/vf): 8086:1583 / 8086:154c | |
521 | - Driver version: 1.4.25 (i40e) | |
522 | ||
523 | #. Intel(R) Corporation I350 Gigabit Network Connection | |
524 | ||
525 | - Firmware version: 1.48, 0x800006e7 | |
526 | - Device id (pf/vf): 8086:1521 / 8086:1520 | |
527 | - Driver version: 5.2.13-k (igb) | |
528 | ||
529 | #. Intel(R) Ethernet Multi-host Controller FM10000 | |
530 | ||
531 | - Firmware version: N/A | |
532 | - Device id (pf/vf): 8086:15d0 | |
533 | - Driver version: 0.17.0.9 (fm10k) | |
534 | ||
535 | ||
536 | Tested OSes | |
537 | ----------- | |
538 | ||
539 | .. This section should contain a list of OSes that were tested with this release. | |
540 | ||
541 | - CentOS 7.0 | |
542 | - Fedora 23 | |
543 | - Fedora 24 | |
544 | - FreeBSD 10.3 | |
545 | - Red Hat Enterprise Linux 7.2 | |
546 | - SUSE Enterprise Linux 12 | |
547 | - Ubuntu 15.10 | |
548 | - Ubuntu 16.04 LTS | |
549 | - Wind River Linux 8 | |
550 |