4 .. **Read this first.**
6 The text below explains how to update the release notes.
8 Use proper spelling, capitalization and punctuation in all sections.
10 Variable and config names should be quoted as fixed width text: ``LIKE_THIS``.
12 Build the docs and view the output file to ensure the changes are correct::
16 firefox build/doc/html/guides/rel_notes/release_16_07.html
22 .. This section should contain new features added in this release. Sample format:
24 * **Add a title in the past tense with a full stop.**
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
30 If the feature adds a lot of sub-features you can use a bullet list like this.
32 * Added feature foo to do something.
33 * Enhanced feature bar to do something else.
35 Refer to the previous release notes for examples.
37 * **Removed the mempool cache memory if caching is not being used.**
39 The size of the mempool structure is reduced if the per-lcore cache is disabled.
41 * **Added mempool external cache for non-EAL thread.**
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
47 * **Changed the memory allocation scheme in the mempool library.**
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.
56 * **Added a new driver for Broadcom NetXtreme-C devices.**
58 Added the new bnxt driver for Broadcom NetXtreme-C devices. See the
59 "Network Interface Controller Drivers" document for more details on this
62 * **Added a new driver for ThunderX nicvf devices.**
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
68 * **Added mailbox interrupt support for ixgbe and igb VFs.**
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.
75 * **Updated the ixgbe base driver.**
77 The ixgbe base driver was updated with changes including the
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.
87 * **Updated the i40e base driver.**
89 Updated the i40e base driver including support for new devices IDs.
91 * **Updated the enic driver.**
93 The enic driver was updated with changes including the following:
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.
101 * **Updated the mlx5 driver.**
103 The mlx5 driver was updated with changes including the following:
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``
116 * **Added support for virtio on IBM POWER8.**
118 The ioports are mapped in memory when using Linux UIO.
120 * **Added support for Virtio in containers.**
122 Add a new virtual device, named virtio_user, to support virtio for containers.
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.
133 * **Added vhost-user client mode.**
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``.
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.
143 DPDK vhost-user will also try to reconnect by default when:
145 * The first connect fails (for example when QEMU is not started yet).
146 * The connection is broken (for example when QEMU restarts).
148 It can be turned off by setting the ``RTE_VHOST_USER_NO_RECONNECT`` flag.
150 * **Added NSH packet recognition in i40e.**
152 * **Added AES-CTR support to AESNI MB PMD.**
154 Now AESNI MB PMD supports 128/192/256-bit counter mode AES encryption and
157 * **Added AES counter mode support for Intel QuickAssist devices.**
159 Enabled support for the AES CTR algorithm for Intel QuickAssist devices.
160 Provided support for algorithm-chaining operations.
162 * **Added KASUMI SW PMD.**
164 A new Crypto PMD has been added, which provides KASUMI F8 (UEA1) ciphering
165 and KASUMI F9 (UIA1) hashing.
167 * **Added multi-writer support for RTE Hash with Intel TSX.**
169 The following features/modifications have been added to rte_hash library:
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.
179 * **Improved IP Pipeline Application.**
181 The following features have been added to the ip_pipeline application:
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.
188 * **Added keepalive enhancements.**
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.
194 * **Added packet capture framework.**
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.
200 * **Added floating VEB support for i40e PF driver.**
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.
206 For information on this feature, please see the "I40E Poll Mode Driver"
207 section of the "Network Interface Controller Drivers" document.
209 * **Added support for live migration of a VM with SRIOV VF.**
211 Live migration of a VM with Virtio and VF PMD's using the bonding PMD.
217 .. This section should contain bug fixes added to the relevant sections. Sample format:
219 * **code/section Fixed issue in the past tense with a full stop.**
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.
229 * **igb_uio: Fixed possible mmap failure for Linux >= 4.5.**
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::
235 EAL: pci_map_resource():
237 cannot mmap(39, 0x7f1c51800000, 0x100000, 0x0):
238 Invalid argument (0xffffffffffffffff)
240 The ``CONFIG_IO_STRICT_DEVMEM`` kernel option was introduced in Linux v4.5.
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.
250 * **i40e: Fixed vlan stripping from inner header.**
252 Previously, for tunnel packets, such as VXLAN/NVGRE, the vlan
253 tags of the inner header will be stripped without putting vlan
255 Now this issue is fixed by disabling vlan stripping from inner header.
257 * **i40e: Fixed the type issue of a single VLAN type.**
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
262 This issue is fixed by changing corresponding register for single VLAN.
264 * **enic: Fixed several issues when stopping then restarting ports and queues.**
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.
269 * **enic: Fixed Rx data mis-alignment if mbuf data offset modified.**
271 Fixed possible Rx corruption when mbufs were returned to a pool with data
272 offset other than RTE_PKTMBUF_HEADROOM.
274 * **enic: Fixed Tx IP/UDP/TCP checksum offload and VLAN insertion.**
276 * **enic: Fixed Rx error and missed counters.**
282 * **mbuf: Fixed refcnt update when detaching.**
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.
300 .. This section should contain new known issues in this release. Sample format:
302 * **Add title in present tense with full stop.**
304 Add a short 1-2 sentence description of the known issue in the present
305 tense. Add information on any known workarounds.
311 .. This section should contain API changes. Sample format:
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.
316 * The following counters are removed from the ``rte_eth_stats`` structure:
328 * The extended statistics are fetched by ids with ``rte_eth_xstats_get``
329 after a lookup by name ``rte_eth_xstats_get_names``.
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``.
334 * The vhost function ``rte_vring_available_entries`` is renamed to
335 ``rte_vhost_avail_entries``.
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``.
341 * The function ``rte_vhost_enqueue_burst`` no longer supports concurrent enqueuing
342 packets to the same queue.
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.
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``.
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.
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.
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.
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.
369 Shared Library Versions
370 -----------------------
372 .. Update any library version updated in this release and prepend with a ``+`` sign.
374 The libraries prepended with a plus sign were incremented in this version.
382 librte_cryptodev.so.1
383 librte_distributor.so.1
393 + librte_mempool.so.2
412 .. This section should contain a list of platforms that were tested with this
425 - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
430 - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
431 - Onboard NIC: Intel(R) X552/X557-AT (2x10G)
433 - Firmware-version: 0x800001cf
434 - Device ID (PF/VF): 8086:15ad /8086:15a8
436 - kernel driver version: 4.2.5 (ixgbe)
441 - Processor: Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
443 #. Intel(R) Server board S2600GZ
445 - BIOS: SE5C600.86B.02.02.0002.122320131210
446 - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
448 #. Intel(R) Server board W2600CR
450 - BIOS: SE5C600.86B.02.01.0002.082220131453
451 - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
453 #. Intel(R) Server board S2600CWT
455 - BIOS: SE5C610.86B.01.01.0009.060120151350
456 - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
458 #. Intel(R) Server board S2600WTT
460 - BIOS: SE5C610.86B.01.01.0005.101720141054
461 - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
463 #. Intel(R) Server board S2600WTT
465 - BIOS: SE5C610.86B.11.01.0044.090120151156
466 - Processor: Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
472 .. This section should contain a list of NICs that were tested with this release.
481 #. Intel(R) Ethernet Controller X540-AT2
483 - Firmware version: 0x80000389
484 - Device id (pf): 8086:1528
485 - Driver version: 3.23.2 (ixgbe)
487 #. Intel(R) 82599ES 10 Gigabit Ethernet Controller
489 - Firmware version: 0x61bf0001
490 - Device id (pf/vf): 8086:10fb / 8086:10ed
491 - Driver version: 4.0.1-k (ixgbe)
493 #. Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
495 - Firmware version: 0x800001cf
496 - Device id (pf/vf): 8086:15ad / 8086:15a8
497 - Driver version: 4.2.5 (ixgbe)
499 #. Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
501 - Firmware version: 5.04
502 - Device id (pf/vf): 8086:1572 / 8086:154c
503 - Driver version: 1.4.26 (i40e)
505 #. Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G)
507 - Firmware version: 5.04
508 - Device id (pf/vf): 8086:1572 / 8086:154c
509 - Driver version: 1.4.25 (i40e)
511 #. Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G)
513 - Firmware version: 5.04
514 - Device id (pf/vf): 8086:1584 / 8086:154c
515 - Driver version: 1.4.25 (i40e)
517 #. Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
519 - Firmware version: 5.04
520 - Device id (pf/vf): 8086:1583 / 8086:154c
521 - Driver version: 1.4.25 (i40e)
523 #. Intel(R) Corporation I350 Gigabit Network Connection
525 - Firmware version: 1.48, 0x800006e7
526 - Device id (pf/vf): 8086:1521 / 8086:1520
527 - Driver version: 5.2.13-k (igb)
529 #. Intel(R) Ethernet Multi-host Controller FM10000
531 - Firmware version: N/A
532 - Device id (pf/vf): 8086:15d0
533 - Driver version: 0.17.0.9 (fm10k)
539 .. This section should contain a list of OSes that were tested with this release.
545 - Red Hat Enterprise Linux 7.2
546 - SUSE Enterprise Linux 12