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