xref: /dpdk/doc/guides/rel_notes/release_16_04.rst (revision f8dbaebbf1c9efcbb2e2354b341ed62175466a57)
1120be1b9SHemant Agrawal..  SPDX-License-Identifier: BSD-3-Clause
2120be1b9SHemant Agrawal    Copyright 2016 The DPDK contributors
3120be1b9SHemant Agrawal
4ad8f40daSBruce RichardsonDPDK Release 16.04
5ad8f40daSBruce Richardson==================
6ad8f40daSBruce Richardson
7ad8f40daSBruce RichardsonNew Features
8ad8f40daSBruce Richardson------------
9ad8f40daSBruce Richardson
10dd3e0013SHarry van Haaren* **Added function to check primary process state.**
11dd3e0013SHarry van Haaren
12dd3e0013SHarry van Haaren  A new function ``rte_eal_primary_proc_alive()`` has been added
13dd3e0013SHarry van Haaren  to allow the user to detect if a primary process is running.
14dd3e0013SHarry van Haaren  Use cases for this feature include fault detection, and monitoring
15dd3e0013SHarry van Haaren  using secondary processes.
16dd3e0013SHarry van Haaren
179ec201f5SHuawei Xie* **Enabled bulk allocation of mbufs.**
189ec201f5SHuawei Xie
199ec201f5SHuawei Xie  A new function ``rte_pktmbuf_alloc_bulk()`` has been added to allow the user
20b0641b68SJohn McNamara  to bulk allocate mbufs.
219ec201f5SHuawei Xie
22e274f573SMarc Sune* **Added device link speed capabilities.**
23e274f573SMarc Sune
24b0641b68SJohn McNamara  The structure ``rte_eth_dev_info`` now has a ``speed_capa`` bitmap, which
25b0641b68SJohn McNamara  allows the application to determine the supported speeds of each device.
26e274f573SMarc Sune
2782113036SMarc Sune* **Added bitmap of link speeds to advertise.**
2882113036SMarc Sune
29b0641b68SJohn McNamara  Added a feature to allow the definition of a set of advertised speeds for auto-negotiation,
3082113036SMarc Sune  explicitly disabling link auto-negotiation (single speed)
3182113036SMarc Sune  and full auto-negotiation.
3282113036SMarc Sune
331173fca2SJan Medala* **Added new poll-mode driver for Amazon Elastic Network Adapters (ENA).**
341173fca2SJan Medala
35b0641b68SJohn McNamara  The driver operates for a variety of ENA adapters through feature negotiation
361173fca2SJan Medala  with the adapter and upgradable commands set.
37b0641b68SJohn McNamara  The ENA driver handles PCI Physical and Virtual ENA functions.
381173fca2SJan Medala
39b0641b68SJohn McNamara* **Restored vmxnet3 TX data ring.**
406e9893c5SYong Wang
41b0641b68SJohn McNamara  TX data ring has been shown to improve small packet forwarding performance
42b0641b68SJohn McNamara  on the vSphere environment.
436e9893c5SYong Wang
44b0641b68SJohn McNamara* **Added vmxnet3 TX L4 checksum offload.**
45f598fd06SYong Wang
46b0641b68SJohn McNamara  Added support for TCP/UDP checksum offload to vmxnet3.
47f598fd06SYong Wang
48c3ecdbb3SYong Wang* **Added vmxnet3 TSO support.**
49c3ecdbb3SYong Wang
50b0641b68SJohn McNamara  Added support for TSO to vmxnet3.
51b0641b68SJohn McNamara
522fdd835fSStephen Hemminger* **Added vmxnet3 support for jumbo frames.**
532fdd835fSStephen Hemminger
542fdd835fSStephen Hemminger  Added support for linking multi-segment buffers together to
552fdd835fSStephen Hemminger  handle Jumbo packets.
562fdd835fSStephen Hemminger
57b0641b68SJohn McNamara* **Enabled Virtio 1.0 support.**
58ad8f40daSBruce Richardson
59*f8dbaebbSSean Morrissey  Enabled Virtio 1.0 support for Virtio PMD.
60ad8f40daSBruce Richardson
61b0641b68SJohn McNamara* **Supported Virtio for ARM.**
62f4730aa6SSantosh Shukla
63b0641b68SJohn McNamara  Enabled Virtio support for ARMv7/v8. Tested for ARM64.
64b0641b68SJohn McNamara  Virtio for ARM supports VFIO-noiommu mode only.
65b0641b68SJohn McNamara  Virtio can work with other non-x86 architectures as well, like PowerPC.
66f4730aa6SSantosh Shukla
67b0641b68SJohn McNamara* **Supported Virtio offload in vhost-user.**
68d0cf9130SJijiang Liu
69b0641b68SJohn McNamara  Added the offload and negotiation of checksum and TSO between vhost-user and
70b0641b68SJohn McNamara  vanilla Linux Virtio guest.
71d0cf9130SJijiang Liu
72d639996aSYuanhan Liu* **Added vhost-user live migration support.**
73d639996aSYuanhan Liu
74ee584e97STetsuya Mukawa* **Added vhost driver.**
75ee584e97STetsuya Mukawa
76b0641b68SJohn McNamara  Added a virtual PMD that wraps ``librte_vhost``.
77ee584e97STetsuya Mukawa
7872dec9e3SWenzhuo Lu* **Added multicast promiscuous mode support on VF for ixgbe.**
7972dec9e3SWenzhuo Lu
80b0641b68SJohn McNamara  Added multicast promiscuous mode support for the ixgbe VF driver so all VFs
8172dec9e3SWenzhuo Lu  can receive the multicast packets.
8272dec9e3SWenzhuo Lu
83b0641b68SJohn McNamara  Please note if you want to use this promiscuous mode, you need both PF and VF
84b0641b68SJohn McNamara  driver to support it. The reason is that this VF feature is configured in the PF.
85b0641b68SJohn McNamara  If you use kernel PF driver and the dpdk VF driver, make sure the kernel PF driver supports
86b0641b68SJohn McNamara  VF multicast promiscuous mode. If you use dpdk PF and  dpdk VF ensure the PF
87b0641b68SJohn McNamara  driver is the same version as the VF.
8872dec9e3SWenzhuo Lu
8922e77d45SWenzhuo Lu* **Added support for E-tag on X550.**
9022e77d45SWenzhuo Lu
91b0641b68SJohn McNamara  E-tag is defined in `802.1BR - Bridge Port Extension <http://www.ieee802.org/1/pages/802.1br.html>`_.
9222e77d45SWenzhuo Lu
93b0641b68SJohn McNamara  This feature is for the VF, but the settings are on the PF. It means
94b0641b68SJohn McNamara  the CLIs should be used on the PF, but some of their effects will be shown on the VF.
95b0641b68SJohn McNamara  The forwarding of E-tag packets based on GRP and E-CID_base will have an effect
96b0641b68SJohn McNamara  on the PF. Theoretically, the E-tag packets can be forwarded to any pool/queue
97b0641b68SJohn McNamara  but normally we'd like to forward the packets to the pools/queues belonging
98b0641b68SJohn McNamara  to the VFs. And E-tag insertion and stripping will have an effect on VFs. When
99b0641b68SJohn McNamara  a VF receives E-tag packets it should strip the E-tag. When the VF transmits
100b0641b68SJohn McNamara  packets, it should insert the E-tag. Both actions can be offloaded.
10122e77d45SWenzhuo Lu
10222e77d45SWenzhuo Lu  When we want to use this E-tag support feature, the forwarding should be
103b0641b68SJohn McNamara  enabled to forward the packets received by the PF to the indicated VFs. And insertion
104b0641b68SJohn McNamara  and stripping should be enabled for VFs to offload the effort to hardware.
105b0641b68SJohn McNamara
106b0641b68SJohn McNamara  Features added:
10722e77d45SWenzhuo Lu
10822e77d45SWenzhuo Lu  * Support E-tag offloading of insertion and stripping.
10922e77d45SWenzhuo Lu  * Support Forwarding E-tag packets to pools based on
11022e77d45SWenzhuo Lu    GRP and E-CID_base.
11122e77d45SWenzhuo Lu
112b0641b68SJohn McNamara* **Added support for VxLAN and NVGRE checksum off-load on X550.**
113d87c3058SWenzhuo Lu
114b0641b68SJohn McNamara  * Added support for VxLAN and NVGRE RX/TX checksum off-load on
115d87c3058SWenzhuo Lu    X550. RX/TX checksum off-load is provided on both inner and
116d87c3058SWenzhuo Lu    outer IP header and TCP header.
117d87c3058SWenzhuo Lu  * Added functions to support VxLAN port configuration. The
118d87c3058SWenzhuo Lu    default VxLAN port number is 4789 but this can be updated
119d87c3058SWenzhuo Lu    programmatically.
120d87c3058SWenzhuo Lu
121b0641b68SJohn McNamara* **Added support for new X550EM_a devices.**
1220790adebSWenzhuo Lu
123b0641b68SJohn McNamara  Added support for new X550EM_a devices and their MAC types, X550EM_a and X550EM_a_vf.
124b0641b68SJohn McNamara  Updated the relevant PMD to use the new devices and MAC types.
1250790adebSWenzhuo Lu
126e44844ceSWenzhuo Lu* **Added x550em_x V2 device support.**
127e44844ceSWenzhuo Lu
128b0641b68SJohn McNamara  Added support for x550em_x V2 device. Only x550em_x V1 was supported before.
129e44844ceSWenzhuo Lu  A mask for V1 and V2 is defined and used to support both.
130e44844ceSWenzhuo Lu
1316be3dfecSWenzhuo Lu* **Supported link speed auto-negotiation on X550EM_X**
1326be3dfecSWenzhuo Lu
133b0641b68SJohn McNamara  Normally the auto-negotiation is supported by firmware and software doesn't care about
134b0641b68SJohn McNamara  it. But on x550em_x, firmware doesn't support auto-negotiation. As the ports of x550em_x
135b0641b68SJohn McNamara  are 10GbE, if we connect the port with a peer which is 1GbE, the link will always
1366be3dfecSWenzhuo Lu  be down.
137b0641b68SJohn McNamara  We added the support for auto-negotiation by software to avoid this link down issue.
1386be3dfecSWenzhuo Lu
139b0641b68SJohn McNamara* **Added software-firmware sync on X550EM_a.**
14086b8fb29SWenzhuo Lu
141b0641b68SJohn McNamara  Added support for software-firmware sync for resource sharing.
142b0641b68SJohn McNamara  Use the PHY token, shared between software-firmware for PHY access on X550EM_a.
14386b8fb29SWenzhuo Lu
144b0541764SHelin Zhang* **Updated the i40e base driver.**
145b0541764SHelin Zhang
146b0541764SHelin Zhang  The i40e base driver was updated with changes including the
147b0541764SHelin Zhang  following:
148b0541764SHelin Zhang
149b0641b68SJohn McNamara  * Use RX control AQ commands to read/write RX control registers.
150b0541764SHelin Zhang  * Add new X722 device IDs, and removed X710 one was never used.
151b0541764SHelin Zhang  * Expose registers for HASH/FD input set configuring.
152b0541764SHelin Zhang
15356465cfaSHelin Zhang* **Enabled PCI extended tag for i40e.**
15456465cfaSHelin Zhang
155b0641b68SJohn McNamara  Enabled extended tag for i40e by checking and writing corresponding PCI config
156b0641b68SJohn McNamara  space bytes, to boost the performance.
157b0641b68SJohn McNamara  The legacy method of reading/writing sysfile supported by kernel module igb_uio
158b0641b68SJohn McNamara  is now deprecated.
15956465cfaSHelin Zhang
160e18e01e9SRemy Horton* **Added i40e support for setting mac addresses.**
16197ac72aaSJingjing Wu
162d9efd013SRemy Horton* **Added dump of i40e registers and EEPROM.**
163d9efd013SRemy Horton
16419b16e2fSHelin Zhang* **Supported ether type setting of single and double VLAN for i40e**
16519b16e2fSHelin Zhang
1665135f3caSJingjing Wu* **Added VMDQ DCB mode in i40e.**
1675135f3caSJingjing Wu
1685135f3caSJingjing Wu  Added support for DCB in VMDQ mode to i40e driver.
1695135f3caSJingjing Wu
170689bba33SZhe Tao* **Added i40e VEB switching support.**
171689bba33SZhe Tao
1720a123744SJingjing Wu* **Added Flow director enhancements in i40e.**
1730a123744SJingjing Wu
174ae19955eSJingjing Wu* **Added PF reset event reporting in i40e VF driver.**
175ae19955eSJingjing Wu
176b0641b68SJohn McNamara* **Added fm10k RX interrupt support.**
177eb57d9b7SShaopeng He
178b0641b68SJohn McNamara* **Optimized fm10k TX.**
179d06e6bb2SChen Jing D(Mark)
180b0641b68SJohn McNamara  Optimized fm10k TX by freeing multiple mbufs at a time.
181d06e6bb2SChen Jing D(Mark)
182b0641b68SJohn McNamara* **Handled error flags in fm10k vector RX.**
183d51be739SChen Jing D(Mark)
184b0641b68SJohn McNamara  Parse error flags in RX descriptor and set error bits in mbuf with vector instructions.
185d51be739SChen Jing D(Mark)
1867958b131SXiao Wang* **Added fm10k FTAG based forwarding support.**
1877958b131SXiao Wang
18876f5c99eSYaacov Hazan* **Added mlx5 flow director support.**
18976f5c99eSYaacov Hazan
190b0641b68SJohn McNamara  Added flow director support (``RTE_FDIR_MODE_PERFECT`` and
191b0641b68SJohn McNamara  ``RTE_FDIR_MODE_PERFECT_MAC_VLAN``).
19276f5c99eSYaacov Hazan
19376f5c99eSYaacov Hazan  Only available with Mellanox OFED >= 3.2.
19476f5c99eSYaacov Hazan
195f3db9489SYaacov Hazan* **Added mlx5 RX VLAN stripping support.**
196f3db9489SYaacov Hazan
197f3db9489SYaacov Hazan  Added support for RX VLAN stripping.
198f3db9489SYaacov Hazan
199f3db9489SYaacov Hazan  Only available with Mellanox OFED >= 3.2.
200f3db9489SYaacov Hazan
20162072098SOr Ami* **Added mlx5 link up/down callbacks.**
20262072098SOr Ami
20362072098SOr Ami  Implemented callbacks to bring link up and down.
20462072098SOr Ami
205a48deadaSOr Ami* **Added mlx5 support for operation in secondary processes.**
206a48deadaSOr Ami
207a48deadaSOr Ami  Implemented TX support in secondary processes (like mlx4).
208a48deadaSOr Ami
2094d326709SOlga Shern* **Added mlx5 RX CRC stripping configuration.**
2104d326709SOlga Shern
2114d326709SOlga Shern  Until now, CRC was always stripped. It can now be configured.
2124d326709SOlga Shern
2134d326709SOlga Shern  Only available with Mellanox OFED >= 3.2.
2144d326709SOlga Shern
2154d803a72SOlga Shern* **Added mlx5 optional packet padding by HW.**
2164d803a72SOlga Shern
217b0641b68SJohn McNamara  Added an option to make PCI bus transactions rounded to a multiple of a
2184d803a72SOlga Shern  cache line size for better alignment.
2194d803a72SOlga Shern
2204d803a72SOlga Shern  Only available with Mellanox OFED >= 3.2.
2214d803a72SOlga Shern
222e192ef80SYaacov Hazan* **Added mlx5 TX VLAN insertion support.**
223e192ef80SYaacov Hazan
224e192ef80SYaacov Hazan  Added support for TX VLAN insertion.
225e192ef80SYaacov Hazan
226e192ef80SYaacov Hazan  Only available with Mellanox OFED >= 3.2.
227e192ef80SYaacov Hazan
228b0641b68SJohn McNamara* **Changed szedata2 driver type from vdev to pdev.**
22983556fd2SMatej Vido
23083556fd2SMatej Vido  Previously szedata2 device had to be added by ``--vdev`` option.
231b0641b68SJohn McNamara  Now szedata2 PMD recognizes the device automatically during EAL
23283556fd2SMatej Vido  initialization.
23383556fd2SMatej Vido
2349eddbdb4SMatej Vido* **Added szedata2 functions for setting link up/down.**
2359eddbdb4SMatej Vido
236c7f9ccfbSMatej Vido* **Added szedata2 promiscuous and allmulticast modes.**
237c7f9ccfbSMatej Vido
238e6ee4db0SWojciech Zmuda* **Added af_packet dynamic removal function.**
239e6ee4db0SWojciech Zmuda
240b0641b68SJohn McNamara  An af_packet device can now be detached using the API, like other PMD devices.
241e6ee4db0SWojciech Zmuda
242dc81ebbaSMichal Kobylinski* **Increased number of next hops for LPM IPv4 to 2^24.**
243dc81ebbaSMichal Kobylinski
244b0641b68SJohn McNamara  The ``next_hop`` field has been extended from 8 bits to 24 bits for IPv4.
245dc81ebbaSMichal Kobylinski
246a38dfe97SDeepak Kumar Jain* **Added support of SNOW 3G (UEA2 and UIA2) for Intel Quick Assist devices.**
247a38dfe97SDeepak Kumar Jain
248b0641b68SJohn McNamara  Enabled support for the SNOW 3G wireless algorithm for Intel Quick Assist devices.
249b0641b68SJohn McNamara  Support for cipher-only and  hash-only is also provided
250b0641b68SJohn McNamara  along with algorithm-chaining operations.
251a38dfe97SDeepak Kumar Jain
2523aafc423SPablo de Lara* **Added SNOW3G SW PMD.**
2533aafc423SPablo de Lara
2543aafc423SPablo de Lara  A new Crypto PMD has been added, which provides SNOW 3G UEA2 ciphering
2553aafc423SPablo de Lara  and SNOW3G UIA2 hashing.
2563aafc423SPablo de Lara
257eec136f3SDeclan Doherty* **Added AES GCM PMD.**
258eec136f3SDeclan Doherty
259eec136f3SDeclan Doherty  Added new Crypto PMD to support AES-GCM authenticated encryption and
260b0641b68SJohn McNamara  authenticated decryption in software.
261eec136f3SDeclan Doherty
26294b0ad8eSDeclan Doherty* **Added NULL Crypto PMD**
26394b0ad8eSDeclan Doherty
264b0641b68SJohn McNamara  Added new Crypto PMD to support null crypto operations in software.
265ad8f40daSBruce Richardson
26667010b8eSJasvinder Singh* **Improved IP Pipeline Application.**
26767010b8eSJasvinder Singh
26867010b8eSJasvinder Singh  The following features have been added to ip_pipeline application;
26967010b8eSJasvinder Singh
27067010b8eSJasvinder Singh  * Added CPU utilization measurement and idle cycle rate computation.
271b0641b68SJohn McNamara  * Added link identification support through existing port-mask option or by
27267010b8eSJasvinder Singh    specifying PCI device in every LINK section in the configuration file.
27367010b8eSJasvinder Singh  * Added load balancing support in passthrough pipeline.
27467010b8eSJasvinder Singh
27539fee04fSThomas Monjalon* **Added IPsec security gateway example.**
27639fee04fSThomas Monjalon
277b0641b68SJohn McNamara  Added a new application implementing an IPsec Security Gateway.
27839fee04fSThomas Monjalon
27939fee04fSThomas Monjalon
280ad8f40daSBruce RichardsonResolved Issues
281ad8f40daSBruce Richardson---------------
282ad8f40daSBruce Richardson
283ad8f40daSBruce RichardsonDrivers
284ad8f40daSBruce Richardson~~~~~~~
285ad8f40daSBruce Richardson
286b2feed01SThomas Monjalon* **ethdev: Fixed overflow for 100Gbps.**
287b2feed01SThomas Monjalon
288b0641b68SJohn McNamara  100Gbps in Mbps (100000) was exceeding the 16-bit max value of ``link_speed``
289b2feed01SThomas Monjalon  in ``rte_eth_link``.
290b2feed01SThomas Monjalon
2911409f127SJingjing Wu* **ethdev: Fixed byte order consistency between fdir flow and mask.**
2921409f127SJingjing Wu
293b0641b68SJohn McNamara  Fixed issue in ethdev library where the structure for setting
2941409f127SJingjing Wu  fdir's mask and flow entry was not consistent in byte ordering.
2951409f127SJingjing Wu
2968dca8cc5SRahul Lakkireddy* **cxgbe: Fixed crash due to incorrect size allocated for RSS table.**
2978dca8cc5SRahul Lakkireddy
2988dca8cc5SRahul Lakkireddy  Fixed a segfault that occurs when accessing part of port 0's RSS
2998dca8cc5SRahul Lakkireddy  table that gets overwritten by subsequent port 1's part of the RSS
3008dca8cc5SRahul Lakkireddy  table due to incorrect size allocated for each entry in the table.
3018dca8cc5SRahul Lakkireddy
3025a9e303aSRahul Lakkireddy* **cxgbe: Fixed setting wrong device MTU.**
3035a9e303aSRahul Lakkireddy
304b0641b68SJohn McNamara  Fixed an incorrect device MTU being set due to the Ethernet header and
3055a9e303aSRahul Lakkireddy  CRC lengths being added twice.
3065a9e303aSRahul Lakkireddy
307ce7a4100SWenzhuo Lu* **ixgbe: Fixed zeroed VF mac address.**
308ce7a4100SWenzhuo Lu
309b0641b68SJohn McNamara  Resolved an issue where the VF MAC address is zeroed out in cases where the VF
310ce7a4100SWenzhuo Lu  driver is loaded while the PF interface is down.
311ce7a4100SWenzhuo Lu  The solution is to only set it when we get an ACK from the PF.
312ce7a4100SWenzhuo Lu
313e2f368a4SWenzhuo Lu* **ixgbe: Fixed setting flow director flag twice.**
314e2f368a4SWenzhuo Lu
315e2f368a4SWenzhuo Lu  Resolved an issue where packets were being dropped when switching to perfect
316e2f368a4SWenzhuo Lu  filters mode.
317e2f368a4SWenzhuo Lu
3180cf7c6a6SWenzhuo Lu* **ixgbe: Set MDIO speed after MAC reset.**
3190cf7c6a6SWenzhuo Lu
3200cf7c6a6SWenzhuo Lu  The MDIO clock speed must be reconfigured after the MAC reset. The MDIO clock
3210cf7c6a6SWenzhuo Lu  speed becomes invalid, therefore the driver reads invalid PHY register values.
3220cf7c6a6SWenzhuo Lu  The driver now set the MDIO clock speed prior to initializing PHY ops and
3230cf7c6a6SWenzhuo Lu  again after the MAC reset.
3240cf7c6a6SWenzhuo Lu
32596c0450dSWenzhuo Lu* **ixgbe: Fixed maximum number of available TX queues.**
32696c0450dSWenzhuo Lu
32796c0450dSWenzhuo Lu  In IXGBE, the maximum number of TX queues varies depending on the NIC operating
32896c0450dSWenzhuo Lu  mode. This was not being updated in the device information, providing
32996c0450dSWenzhuo Lu  an incorrect number in some cases.
33096c0450dSWenzhuo Lu
331488ecf62SHelin Zhang* **i40e: Generated MAC address for each VFs.**
332488ecf62SHelin Zhang
333488ecf62SHelin Zhang  It generates a MAC address for each VFs during PF host initialization,
334488ecf62SHelin Zhang  and keeps the VF MAC address the same among different VF launch.
335488ecf62SHelin Zhang
336b0641b68SJohn McNamara* **i40e: Fixed failure of reading/writing RX control registers.**
337b6a0ec41SHelin Zhang
338b6a0ec41SHelin Zhang  Fixed i40e issue of failing to read/write rx control registers when
339b6a0ec41SHelin Zhang  under stress with traffic, which might result in application launch
340b6a0ec41SHelin Zhang  failure.
341b6a0ec41SHelin Zhang
342c8f9e99cSJianfeng Tan* **i40e: Enabled vector driver by default.**
343c8f9e99cSJianfeng Tan
344b0641b68SJohn McNamara  Previously, vector driver was disabled by default as it couldn't fill packet type
345b0641b68SJohn McNamara  info for l3fwd to work well. Now there is an option for l3fwd to analyze
346b0641b68SJohn McNamara  the packet type so the vector driver is enabled by default.
347c8f9e99cSJianfeng Tan
3482a73125bSJingjing Wu* **i40e: Fixed link info of VF.**
3492a73125bSJingjing Wu
350b0641b68SJohn McNamara  Previously, the VF's link speed stayed at 10GbE and status always was up.
351b0641b68SJohn McNamara  It did not change even when the physical link's status changed.
3522a73125bSJingjing Wu  Now this issue is fixed to make VF's link info consistent with physical link.
3532a73125bSJingjing Wu
3542f636ae5SOr Ami* **mlx5: Fixed possible crash during initialization.**
3552f636ae5SOr Ami
3562f636ae5SOr Ami  A crash could occur when failing to allocate private device context.
3572f636ae5SOr Ami
3581371f4dfSOr Ami* **mlx5: Added port type check.**
3591371f4dfSOr Ami
360b0641b68SJohn McNamara  Added port type check to prevent port initialization on non-Ethernet link layers and
3611371f4dfSOr Ami  to report an error.
3621371f4dfSOr Ami
363188b8ccdSAdrien Mazarguil* **mlx5: Applied VLAN filtering to broadcast and IPv6 multicast flows.**
364188b8ccdSAdrien Mazarguil
365188b8ccdSAdrien Mazarguil  Prevented reception of multicast frames outside of configured VLANs.
366188b8ccdSAdrien Mazarguil
367d0087d76SYaacov Hazan* **mlx5: Fixed RX checksum offload in non L3/L4 packets.**
368d0087d76SYaacov Hazan
369d0087d76SYaacov Hazan  Fixed report of bad checksum for packets of unknown type.
370d0087d76SYaacov Hazan
371a324c45aSPablo de Lara* **aesni_mb: Fixed wrong return value when creating a device.**
372a324c45aSPablo de Lara
373b0641b68SJohn McNamara  The ``cryptodev_aesni_mb_init()`` function was returning the device id of the device created,
374b0641b68SJohn McNamara  instead of 0 (on success) that ``rte_eal_vdev_init()`` expects.
375b0641b68SJohn McNamara  This made it impossible to create more than one aesni_mb device
376b0641b68SJohn McNamara  from the command line.
377a324c45aSPablo de Lara
37853d8971cSJohn Griffin* **qat: Fixed AES GCM decryption.**
37953d8971cSJohn Griffin
38053d8971cSJohn Griffin  Allowed AES GCM on the cryptodev API, but in some cases gave invalid results
38153d8971cSJohn Griffin  due to incorrect IV setting.
38253d8971cSJohn Griffin
383ad8f40daSBruce Richardson
384ad8f40daSBruce RichardsonLibraries
385ad8f40daSBruce Richardson~~~~~~~~~
386ad8f40daSBruce Richardson
3879792848cSDidier Pallard* **hash: Fixed CRC32c hash computation for non multiple of 4 bytes sizes.**
3889792848cSDidier Pallard
3899792848cSDidier Pallard  Fix crc32c hash functions to return a valid crc32c value for data lengths
390b0641b68SJohn McNamara  not a multiple of 4 bytes.
3919792848cSDidier Pallard
392f9bd3342SPablo de Lara* **hash: Fixed hash library to support multi-process mode.**
393f9bd3342SPablo de Lara
394f9bd3342SPablo de Lara  Fix hash library to support multi-process mode, using a jump table,
395f9bd3342SPablo de Lara  instead of storing a function pointer to the key compare function.
396f9bd3342SPablo de Lara  Multi-process mode only works with the built-in compare functions,
397f9bd3342SPablo de Lara  however a custom compare function (not in the jump table) can only
398f9bd3342SPablo de Lara  be used in single-process mode.
399f9bd3342SPablo de Lara
4001aadacb5SOlivier Matz* **hash: Fixed return value when allocating an existing hash table.**
4011aadacb5SOlivier Matz
4021aadacb5SOlivier Matz  Changed the ``rte_hash*_create()`` functions to return ``NULL`` and set
4031aadacb5SOlivier Matz  ``rte_errno`` to ``EEXIST`` when the object name already exists. This is
4041aadacb5SOlivier Matz  the behavior described in the API documentation in the header file.
4051aadacb5SOlivier Matz  The previous behavior was to return a pointer to the existing object in
406b0641b68SJohn McNamara  that case, preventing the caller from knowing if the object had to be freed
4071aadacb5SOlivier Matz  or not.
4081aadacb5SOlivier Matz
409f82f705bSOlivier Matz* **lpm: Fixed return value when allocating an existing object.**
410f82f705bSOlivier Matz
411f82f705bSOlivier Matz  Changed the ``rte_lpm*_create()`` functions to return ``NULL`` and set
412f82f705bSOlivier Matz  ``rte_errno`` to ``EEXIST`` when the object name already exists. This is
413f82f705bSOlivier Matz  the behavior described in the API documentation in the header file.
414f82f705bSOlivier Matz  The previous behavior was to return a pointer to the existing object in
415b0641b68SJohn McNamara  that case, preventing the caller from knowing if the object had to be freed
416f82f705bSOlivier Matz  or not.
417f82f705bSOlivier Matz
41867010b8eSJasvinder Singh* **librte_port: Fixed segmentation fault for ring and ethdev writer nodrop.**
41967010b8eSJasvinder Singh
42067010b8eSJasvinder Singh  Fixed core dump issue on txq and swq when dropless is set to yes.
42167010b8eSJasvinder Singh
422ad8f40daSBruce Richardson
423ad8f40daSBruce RichardsonExamples
424ad8f40daSBruce Richardson~~~~~~~~
425ad8f40daSBruce Richardson
426bec2f7dfSShaopeng He* **l3fwd-power: Fixed memory leak for non-IP packet.**
427bec2f7dfSShaopeng He
428bec2f7dfSShaopeng He  Fixed issue in l3fwd-power where, on receiving packets of types
429bec2f7dfSShaopeng He  other than IPv4 or IPv6, the mbuf was not released, and caused
430bec2f7dfSShaopeng He  a memory leak.
431bec2f7dfSShaopeng He
43271a7e242SJianfeng Tan* **l3fwd: Fixed using packet type blindly.**
43371a7e242SJianfeng Tan
434b0641b68SJohn McNamara  l3fwd makes use of packet type information without querying if devices or PMDs
435b0641b68SJohn McNamara  really set it. For those devices that don't set ptypes, add an option to parse it.
43671a7e242SJianfeng Tan
4378827234dSThomas Monjalon* **examples/vhost: Fixed frequent mbuf allocation failure.**
4388827234dSThomas Monjalon
439b0641b68SJohn McNamara  The vhost-switch often fails to allocate mbuf when dequeue from vring because it
4408827234dSThomas Monjalon  wrongly calculates the number of mbufs needed.
4418827234dSThomas Monjalon
442ad8f40daSBruce Richardson
443ad8f40daSBruce RichardsonAPI Changes
444ad8f40daSBruce Richardson-----------
445ad8f40daSBruce Richardson
446b0641b68SJohn McNamara* The ethdev statistics counter ``imissed`` is considered to be independent of ``ierrors``.
44742762a80SThomas Monjalon  All drivers are now counting the missed packets only once, i.e. drivers will
44842762a80SThomas Monjalon  not increment ierrors anymore for missed packets.
44942762a80SThomas Monjalon
450e274f573SMarc Sune* The ethdev structure ``rte_eth_dev_info`` was changed to support device
451e274f573SMarc Sune  speed capabilities.
452e274f573SMarc Sune
45382113036SMarc Sune* The ethdev structures ``rte_eth_link`` and ``rte_eth_conf`` were changed to
45482113036SMarc Sune  support the new link API.
45582113036SMarc Sune
4561cbe755fSWenzhuo Lu* The functions ``rte_eth_dev_udp_tunnel_add`` and ``rte_eth_dev_udp_tunnel_delete``
4571cbe755fSWenzhuo Lu  have been renamed into ``rte_eth_dev_udp_tunnel_port_add`` and
4581cbe755fSWenzhuo Lu  ``rte_eth_dev_udp_tunnel_port_delete``.
4591cbe755fSWenzhuo Lu
460dd76f93cSXutao Sun* The ``outer_mac`` and ``inner_mac`` fields in structure
461dd76f93cSXutao Sun  ``rte_eth_tunnel_filter_conf`` are changed from pointer to struct in order
462dd76f93cSXutao Sun  to keep code's readability.
463dd76f93cSXutao Sun
464173cd791SJingjing Wu* The fields in ethdev structure ``rte_eth_fdir_masks`` were changed
465173cd791SJingjing Wu  to be in big endian.
466173cd791SJingjing Wu
46719b16e2fSHelin Zhang* A parameter ``vlan_type`` has been added to the function
46819b16e2fSHelin Zhang  ``rte_eth_dev_set_vlan_ether_type``.
46919b16e2fSHelin Zhang
470b0641b68SJohn McNamara* The af_packet device init function is no longer public. The device should be attached
471b0641b68SJohn McNamara  via the API.
472e6ee4db0SWojciech Zmuda
473dc81ebbaSMichal Kobylinski* The LPM ``next_hop`` field is extended from 8 bits to 24 bits for IPv4
474dc81ebbaSMichal Kobylinski  while keeping ABI compatibility.
475dc81ebbaSMichal Kobylinski
476b0641b68SJohn McNamara* A new ``rte_lpm_config`` structure is used so the LPM library will allocate
477f1f72618SMichal Kobylinski  exactly the amount of memory which is necessary to hold application’s rules.
478f1f72618SMichal Kobylinski  The previous ABI is kept for compatibility.
479f1f72618SMichal Kobylinski
48088ac2fd9SJasvinder Singh* The prototype for the pipeline input port, output port and table action
48188ac2fd9SJasvinder Singh  handlers are updated: the pipeline parameter is added,
48288ac2fd9SJasvinder Singh  the packets mask parameter has been either removed or made input-only.
48388ac2fd9SJasvinder Singh
484ad8f40daSBruce Richardson
485ad8f40daSBruce RichardsonABI Changes
486ad8f40daSBruce Richardson-----------
487ad8f40daSBruce Richardson
488cfd2279eSThomas Monjalon* The RETA entry size in ``rte_eth_rss_reta_entry64`` has been increased
489cfd2279eSThomas Monjalon  from 8-bit to 16-bit.
490cfd2279eSThomas Monjalon
4918e32fc27SJingjing Wu* The ethdev flow director structure ``rte_eth_fdir_flow`` structure was
4928e32fc27SJingjing Wu  changed. New fields were added to extend flow director's input set.
4938e32fc27SJingjing Wu
4949f9a35bfSThomas Monjalon* The cmdline buffer size has been increase from 256 to 512.
4959f9a35bfSThomas Monjalon
496ad8f40daSBruce Richardson
497ad8f40daSBruce RichardsonShared Library Versions
498ad8f40daSBruce Richardson-----------------------
499ad8f40daSBruce Richardson
500ad8f40daSBruce RichardsonThe libraries prepended with a plus sign were incremented in this version.
501ad8f40daSBruce Richardson
502ad8f40daSBruce Richardson.. code-block:: diff
503ad8f40daSBruce Richardson
504cfd2279eSThomas Monjalon   + libethdev.so.3
505ad8f40daSBruce Richardson     librte_acl.so.2
506ad8f40daSBruce Richardson     librte_cfgfile.so.2
5079f9a35bfSThomas Monjalon   + librte_cmdline.so.2
508ad8f40daSBruce Richardson     librte_distributor.so.1
509ad8f40daSBruce Richardson     librte_eal.so.2
510ad8f40daSBruce Richardson     librte_hash.so.2
511ad8f40daSBruce Richardson     librte_ip_frag.so.1
512ad8f40daSBruce Richardson     librte_ivshmem.so.1
513ad8f40daSBruce Richardson     librte_jobstats.so.1
514ad8f40daSBruce Richardson     librte_kni.so.2
515ad8f40daSBruce Richardson     librte_kvargs.so.1
516ad8f40daSBruce Richardson     librte_lpm.so.2
517ad8f40daSBruce Richardson     librte_mbuf.so.2
518ad8f40daSBruce Richardson     librte_mempool.so.1
519ad8f40daSBruce Richardson     librte_meter.so.1
52088ac2fd9SJasvinder Singh   + librte_pipeline.so.3
521ad8f40daSBruce Richardson     librte_pmd_bond.so.1
522ad8f40daSBruce Richardson     librte_pmd_ring.so.2
523ad8f40daSBruce Richardson     librte_port.so.2
524ad8f40daSBruce Richardson     librte_power.so.1
525ad8f40daSBruce Richardson     librte_reorder.so.1
526ad8f40daSBruce Richardson     librte_ring.so.1
527ad8f40daSBruce Richardson     librte_sched.so.1
528ad8f40daSBruce Richardson     librte_table.so.2
529ad8f40daSBruce Richardson     librte_timer.so.1
530ad8f40daSBruce Richardson     librte_vhost.so.2
53103600dd5SJohn McNamara
53203600dd5SJohn McNamara
53303600dd5SJohn McNamaraTested Platforms
53403600dd5SJohn McNamara----------------
53503600dd5SJohn McNamara
53603600dd5SJohn McNamara#. SuperMicro 1U
53703600dd5SJohn McNamara
53803600dd5SJohn McNamara   - BIOS: 1.0c
53903600dd5SJohn McNamara   - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
54003600dd5SJohn McNamara
54103600dd5SJohn McNamara#. SuperMicro 1U
54203600dd5SJohn McNamara
54303600dd5SJohn McNamara   - BIOS: 1.0a
54403600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
54503600dd5SJohn McNamara   - Onboard NIC: Intel(R) X552/X557-AT (2x10G)
54603600dd5SJohn McNamara
54703600dd5SJohn McNamara     - Firmware-version: 0x800001cf
54803600dd5SJohn McNamara     - Device ID (PF/VF): 8086:15ad /8086:15a8
54903600dd5SJohn McNamara
55003600dd5SJohn McNamara   - kernel driver version: 4.2.5 (ixgbe)
55103600dd5SJohn McNamara
55203600dd5SJohn McNamara#. SuperMicro 1U
55303600dd5SJohn McNamara
55403600dd5SJohn McNamara   - BIOS: 1.0a
55503600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-4667 v3 @ 2.00GHz
55603600dd5SJohn McNamara
55703600dd5SJohn McNamara#. Intel(R) Server board S2600GZ
55803600dd5SJohn McNamara
55903600dd5SJohn McNamara   - BIOS: SE5C600.86B.02.02.0002.122320131210
56003600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
56103600dd5SJohn McNamara
56203600dd5SJohn McNamara#. Intel(R) Server board W2600CR
56303600dd5SJohn McNamara
56403600dd5SJohn McNamara   - BIOS: SE5C600.86B.02.01.0002.082220131453
56503600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
56603600dd5SJohn McNamara
56703600dd5SJohn McNamara#. Intel(R) Server board S2600CWT
56803600dd5SJohn McNamara
56903600dd5SJohn McNamara   - BIOS: SE5C610.86B.01.01.0009.060120151350
57003600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
57103600dd5SJohn McNamara
57203600dd5SJohn McNamara#. Intel(R) Server board S2600WTT
57303600dd5SJohn McNamara
57403600dd5SJohn McNamara   - BIOS: SE5C610.86B.01.01.0005.101720141054
57503600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
57603600dd5SJohn McNamara
57703600dd5SJohn McNamara#. Intel(R) Server board S2600WTT
57803600dd5SJohn McNamara
57903600dd5SJohn McNamara   - BIOS: SE5C610.86B.11.01.0044.090120151156
58003600dd5SJohn McNamara   - Processor: Intel(R) Xeon(R) CPU E5-2695 v4 @ 2.10GHz
58103600dd5SJohn McNamara
58203600dd5SJohn McNamara
58303600dd5SJohn McNamaraTested NICs
58403600dd5SJohn McNamara-----------
58503600dd5SJohn McNamara
58603600dd5SJohn McNamara#. Intel(R) Ethernet Controller X540-AT2
58703600dd5SJohn McNamara
58803600dd5SJohn McNamara   - Firmware version: 0x80000389
58903600dd5SJohn McNamara   - Device id (pf): 8086:1528
59003600dd5SJohn McNamara   - Driver version: 3.23.2 (ixgbe)
59103600dd5SJohn McNamara
59203600dd5SJohn McNamara#. Intel(R) 82599ES 10 Gigabit Ethernet Controller
59303600dd5SJohn McNamara
59403600dd5SJohn McNamara   - Firmware version: 0x61bf0001
59503600dd5SJohn McNamara   - Device id (pf/vf): 8086:10fb / 8086:10ed
59603600dd5SJohn McNamara   - Driver version: 4.0.1-k (ixgbe)
59703600dd5SJohn McNamara
59803600dd5SJohn McNamara#. Intel(R) Corporation Ethernet Connection X552/X557-AT 10GBASE-T
59903600dd5SJohn McNamara
60003600dd5SJohn McNamara   - Firmware version: 0x800001cf
60103600dd5SJohn McNamara   - Device id (pf/vf): 8086:15ad / 8086:15a8
60203600dd5SJohn McNamara   - Driver version: 4.2.5 (ixgbe)
60303600dd5SJohn McNamara
60403600dd5SJohn McNamara#. Intel(R) Ethernet Converged Network Adapter X710-DA4 (4x10G)
60503600dd5SJohn McNamara
60603600dd5SJohn McNamara   - Firmware version: 5.02 0x80002284
60703600dd5SJohn McNamara   - Device id (pf/vf): 8086:1572 / 8086:154c
60803600dd5SJohn McNamara   - Driver version: 1.4.26 (i40e)
60903600dd5SJohn McNamara
61003600dd5SJohn McNamara#. Intel(R) Ethernet Converged Network Adapter X710-DA2 (2x10G)
61103600dd5SJohn McNamara
61203600dd5SJohn McNamara   - Firmware version: 5.02 0x80002282
61303600dd5SJohn McNamara   - Device id (pf/vf): 8086:1572 / 8086:154c
61403600dd5SJohn McNamara   - Driver version: 1.4.25 (i40e)
61503600dd5SJohn McNamara
61603600dd5SJohn McNamara#. Intel(R) Ethernet Converged Network Adapter XL710-QDA1 (1x40G)
61703600dd5SJohn McNamara
61803600dd5SJohn McNamara   - Firmware version: 5.02 0x80002281
61903600dd5SJohn McNamara   - Device id (pf/vf): 8086:1584 / 8086:154c
62003600dd5SJohn McNamara   - Driver version: 1.4.25 (i40e)
62103600dd5SJohn McNamara
62203600dd5SJohn McNamara#. Intel(R) Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
62303600dd5SJohn McNamara
62403600dd5SJohn McNamara   - Firmware version: 5.02 0x80002285
62503600dd5SJohn McNamara   - Device id (pf/vf): 8086:1583 / 8086:154c
62603600dd5SJohn McNamara   - Driver version: 1.4.25 (i40e)
62703600dd5SJohn McNamara
62803600dd5SJohn McNamara#. Intel(R) 82576EB Gigabit Ethernet Controller
62903600dd5SJohn McNamara
63003600dd5SJohn McNamara   - Firmware version: 1.2.1
63103600dd5SJohn McNamara   - Device id (pf): 8086:1526
63203600dd5SJohn McNamara   - Driver version: 5.2.13-k (igb)
63303600dd5SJohn McNamara
63403600dd5SJohn McNamara#. Intel(R) Ethernet Controller I210
63503600dd5SJohn McNamara
63603600dd5SJohn McNamara   - Firmware version: 3.16, 0x80000500, 1.304.0
63703600dd5SJohn McNamara   - Device id (pf): 8086:1533
63803600dd5SJohn McNamara   - Driver version: 5.2.13-k (igb)
63903600dd5SJohn McNamara
64003600dd5SJohn McNamara#. Intel(R) Corporation I350 Gigabit Network Connection
64103600dd5SJohn McNamara
64203600dd5SJohn McNamara   - Firmware version: 1.48, 0x800006e7
64303600dd5SJohn McNamara   - Device id (pf/vf): 8086:1521 / 8086:1520
64403600dd5SJohn McNamara   - Driver version: 5.2.13-k (igb)
64503600dd5SJohn McNamara
64603600dd5SJohn McNamara
64703600dd5SJohn McNamara#. Intel(R) Ethernet Multi-host Controller FM10000
64803600dd5SJohn McNamara
64903600dd5SJohn McNamara   - Firmware version: N/A
65003600dd5SJohn McNamara   - Device id (pf/vf): 8086:15d0
65103600dd5SJohn McNamara   - Driver version: 0.17.0.9 (fm10k)
652