1120be1b9SHemant Agrawal.. SPDX-License-Identifier: BSD-3-Clause 2120be1b9SHemant Agrawal Copyright 2016 The DPDK contributors 3120be1b9SHemant Agrawal 4f2edfd23SThomas MonjalonDPDK Release 2.2 5f2edfd23SThomas Monjalon================ 6f2edfd23SThomas Monjalon 7f2edfd23SThomas MonjalonNew Features 8f2edfd23SThomas Monjalon------------ 9f2edfd23SThomas Monjalon 108580bbadSJohn McNamara* **Introduce ARMv7 and ARMv8 architectures.** 1102a86862SVlastimil Kosar 12b3ce00e5SJerin Jacob * It is now possible to build DPDK for the ARMv7 and ARMv8 platforms. 13*f8dbaebbSSean Morrissey * ARMv7 can be tested with virtual PMDs. 14*f8dbaebbSSean Morrissey * ARMv8 can be tested with virtual and physical PMDs. 1502a86862SVlastimil Kosar 164e32101fSPablo de Lara* **Enabled freeing of ring.** 174e32101fSPablo de Lara 188580bbadSJohn McNamara A new function ``rte_ring_free()`` has been added to allow the user to free 198580bbadSJohn McNamara a ring if it was created with ``rte_ring_create()``. 204e32101fSPablo de Lara 21e64833f2SRemy Horton* **Added keepalive support to EAL and example application.** 2275583b0dSRemy Horton 2366874e55SThomas Monjalon* **Added experimental cryptodev API** 2466874e55SThomas Monjalon 258580bbadSJohn McNamara The cryptographic processing of packets is provided as a preview 2666874e55SThomas Monjalon with two drivers for: 2766874e55SThomas Monjalon 2866874e55SThomas Monjalon * Intel QuickAssist devices 2966874e55SThomas Monjalon * Intel AES-NI multi-buffer library 3066874e55SThomas Monjalon 3166874e55SThomas Monjalon Due to its experimental state, the API may change without prior notice. 3266874e55SThomas Monjalon 338580bbadSJohn McNamara* **Added ethdev APIs for additional IEEE1588 support.** 34eb1cbcbaSDaniel Mrzyglod 35eb1cbcbaSDaniel Mrzyglod Added functions to read, write and adjust system time in the NIC. 368580bbadSJohn McNamara Added client slave sample application to demonstrate the IEEE1588 378580bbadSJohn McNamara functionality. 38eb1cbcbaSDaniel Mrzyglod 398580bbadSJohn McNamara* **Extended Statistics.** 40b291f3f9SHarry van Haaren 418580bbadSJohn McNamara Defined an extended statistics naming scheme to store metadata in the name 428580bbadSJohn McNamara string of each statistic. Refer to the Extended Statistics section of the 438580bbadSJohn McNamara Programmers Guide for more details. 44b291f3f9SHarry van Haaren 458580bbadSJohn McNamara Implemented the extended statistics API for the following PMDs: 468580bbadSJohn McNamara 478580bbadSJohn McNamara * ``igb`` 488580bbadSJohn McNamara * ``igbvf`` 498580bbadSJohn McNamara * ``i40e`` 508580bbadSJohn McNamara * ``i40evf`` 518580bbadSJohn McNamara * ``fm10k`` 528580bbadSJohn McNamara * ``virtio`` 53b291f3f9SHarry van Haaren 5480a1deb4SKonstantin Ananyev* **Added API in ethdev to retrieve RX/TX queue information.** 5580a1deb4SKonstantin Ananyev 568580bbadSJohn McNamara * Added the ability for the upper layer to query RX/TX queue information. 578580bbadSJohn McNamara * Added new fields in ``rte_eth_dev_info`` to represent information about 588580bbadSJohn McNamara RX/TX descriptors min/max/align numbers, per queue, for the device. 5980a1deb4SKonstantin Ananyev 60734ce47fSTomasz Kulasek* **Added RSS dynamic configuration to bonding.** 61734ce47fSTomasz Kulasek 62011667d5SWenzhuo Lu* **Updated the e1000 base driver.** 63011667d5SWenzhuo Lu 64011667d5SWenzhuo Lu The e1000 base driver was updated with several features including the 65011667d5SWenzhuo Lu following: 66011667d5SWenzhuo Lu 678580bbadSJohn McNamara * Added new i218 devices 688580bbadSJohn McNamara * Allowed both ULP and EEE in Sx state 698580bbadSJohn McNamara * Initialized 88E1543 (Marvell 1543) PHY 708580bbadSJohn McNamara * Added flags to set EEE advertisement modes 718580bbadSJohn McNamara * Supported inverted format ETrackId 728580bbadSJohn McNamara * Added bit to disable packetbuffer read 738580bbadSJohn McNamara * Added defaults for i210 RX/TX PBSIZE 74011667d5SWenzhuo Lu * Check more errors for ESB2 init and reset 75011667d5SWenzhuo Lu * Check more NVM read errors 76011667d5SWenzhuo Lu * Return code after setting receive address register 778580bbadSJohn McNamara * Removed all NAHUM6LP_HW tags 78011667d5SWenzhuo Lu 798580bbadSJohn McNamara* **Added e1000 RX interrupt support.** 80dcfd32cfSYong Liu 814c8db5f0SWang Xiao W* **Added igb TSO support for both PF and VF.** 824c8db5f0SWang Xiao W 838580bbadSJohn McNamara* **Added RSS enhancements to Intel x550 NIC.** 844bee94a6SWenzhuo Lu 858580bbadSJohn McNamara * Added support for 512 entry RSS redirection table. 868580bbadSJohn McNamara * Added support for per VF RSS redirection table. 874bee94a6SWenzhuo Lu 888580bbadSJohn McNamara* **Added Flow director enhancements on Intel x550 NIC.** 8982fb7020SWenzhuo Lu 908580bbadSJohn McNamara * Added 2 new flow director modes on x550. 918580bbadSJohn McNamara One is MAC VLAN mode, the other is tunnel mode. 9282fb7020SWenzhuo Lu 93252768f4SJingjing Wu* **Updated the i40e base driver.** 94252768f4SJingjing Wu 95252768f4SJingjing Wu The i40e base driver was updated with several changes including the 96252768f4SJingjing Wu following: 97252768f4SJingjing Wu 98252768f4SJingjing Wu * Added promiscuous on VLAN support 99252768f4SJingjing Wu * Added a workaround to drop all flow control frames 100252768f4SJingjing Wu * Added VF capabilities to virtual channel interface 1018580bbadSJohn McNamara * Added TX Scheduling related AQ commands 102252768f4SJingjing Wu * Added additional PCTYPES supported for FortPark RSS 103252768f4SJingjing Wu * Added parsing for CEE DCBX TLVs 104252768f4SJingjing Wu * Added FortPark specific registers 105252768f4SJingjing Wu * Added AQ functions to handle RSS Key and LUT programming 1068580bbadSJohn McNamara * Increased PF reset max loop limit 107252768f4SJingjing Wu 1088e109464SZhe Tao* **Added i40e vector RX/TX.** 1098e109464SZhe Tao 1108580bbadSJohn McNamara* **Added i40e RX interrupt support.** 111be6c228dSCunming Liang 112f53577f0SZhe Tao* **Added i40e flow control support.** 113f53577f0SZhe Tao 114c8b9a3e3SJingjing Wu* **Added DCB support to i40e PF driver.** 115c8b9a3e3SJingjing Wu 11698f05570SHelin Zhang* **Added RSS/FD input set granularity on Intel X710/XL710.** 11798f05570SHelin Zhang 118da0ab5daSHelin Zhang* **Added different GRE key length for input set on Intel X710/XL710.** 119da0ab5daSHelin Zhang 12088ebc2b7SJingjing Wu* **Added flow director support in i40e VF.** 12188ebc2b7SJingjing Wu 12280685187SHelin Zhang* **Added i40e support of early X722 series.** 12380685187SHelin Zhang 1248580bbadSJohn McNamara Added early X722 support, for evaluation only, as the hardware is alpha. 12580685187SHelin Zhang 126a6ce64a9SChen Jing D(Mark)* **Added fm10k vector RX/TX.** 127a6ce64a9SChen Jing D(Mark) 128d9623c4fSWang Xiao W* **Added fm10k TSO support for both PF and VF.** 129d9623c4fSWang Xiao W 130faf2b25cSShaopeng He* **Added fm10k VMDQ support.** 131faf2b25cSShaopeng He 1326bbf8c8fSMichael Qiu* **New NIC Boulder Rapid support.** 1336bbf8c8fSMichael Qiu 1348580bbadSJohn McNamara Added support for the Boulder Rapid variant of Intel's fm10k NIC family. 1356bbf8c8fSMichael Qiu 136bf89cbedSRahul Lakkireddy* **Enhanced support for the Chelsio CXGBE driver.** 137bf89cbedSRahul Lakkireddy 1384b2eff45SRahul Lakkireddy * Added support for Jumbo Frames. 1398580bbadSJohn McNamara * Optimized forwarding performance for Chelsio T5 40GbE cards. 140bf89cbedSRahul Lakkireddy 1418580bbadSJohn McNamara* **Improved enic TX packet rate.** 14283f44606SJohn Daley 1438580bbadSJohn McNamara Reduced frequency of TX tail pointer updates to the NIC. 14483f44606SJohn Daley 14584d55767SOlga Shern* **Added support for link status interrupts in mlx4.** 14684d55767SOlga Shern 14784d55767SOlga Shern* **Added partial support (TX only) for secondary processes in mlx4.** 14884d55767SOlga Shern 149a7e11a0cSAdrien Mazarguil* **Added support for Mellanox ConnectX-4 adapters (mlx5).** 150a7e11a0cSAdrien Mazarguil 151a7e11a0cSAdrien Mazarguil The mlx5 poll-mode driver implements support for Mellanox ConnectX-4 EN 152a7e11a0cSAdrien Mazarguil and Mellanox ConnectX-4 Lx EN families of 10/25/40/50/100 Gb/s adapters. 153a7e11a0cSAdrien Mazarguil 154a7e11a0cSAdrien Mazarguil Like mlx4, this PMD is only available for Linux and is disabled by default 155a7e11a0cSAdrien Mazarguil due to external dependencies (libibverbs and libmlx5). 156a7e11a0cSAdrien Mazarguil 157defb9a5dSAlejandro Lucero* **Added driver for Netronome nfp-6xxx card.** 158defb9a5dSAlejandro Lucero 159defb9a5dSAlejandro Lucero Support for using Netronome nfp-6xxx with PCI VFs. 160defb9a5dSAlejandro Lucero 161abef3dd6SMatej Vido* **Added virtual szedata2 driver for COMBO cards.** 162abef3dd6SMatej Vido 163abef3dd6SMatej Vido Added virtual PMD for COMBO-100G and COMBO-80G cards. 164abef3dd6SMatej Vido PMD is disabled in default configuration. 165abef3dd6SMatej Vido 166b4ae9c50SHuawei Xie* **Enhanced support for virtio driver.** 167b4ae9c50SHuawei Xie 168b4ae9c50SHuawei Xie * Virtio ring layout optimization (fixed avail ring) 169fc3d6621SHuawei Xie * Vector RX 170c121c8d6SHuawei Xie * Simple TX 171b4ae9c50SHuawei Xie 17219d4d7efSYuanhan Liu* **Added vhost-user multiple queue support.** 17319d4d7efSYuanhan Liu 174bcf1c37bSBernard Iremonger* **Added port hotplug support to vmxnet3.** 175bcf1c37bSBernard Iremonger 1765ad78a66SBernard Iremonger* **Added port hotplug support to xenvirt.** 1775ad78a66SBernard Iremonger 178bda68ab9SRemy Horton* **Added ethtool shim and sample application.** 179bda68ab9SRemy Horton 180b700090cSIan Betts* **Added experimental performance thread example application.** 181b700090cSIan Betts 1828580bbadSJohn McNamara The new sample application demonstrates L3 forwarding with different threading 1838580bbadSJohn McNamara models: pthreads, cgroups, or lightweight threads. The example includes 184b700090cSIan Betts a simple cooperative scheduler. 185b700090cSIan Betts 186b700090cSIan Betts Due to its experimental state this application may change without notice. 187b700090cSIan Betts The application is supported only for Linux x86_64. 188b700090cSIan Betts 1898580bbadSJohn McNamara* **Enhancements to the IP pipeline application.** 1906ca9768aSJasvinder Singh 1918580bbadSJohn McNamara The following features have been added to the ``ip_pipeline`` 1926ca9768aSJasvinder Singh application; 1936ca9768aSJasvinder Singh 1948580bbadSJohn McNamara * Added Multiple Producers/Multiple Consumers (MPSC) 1956ca9768aSJasvinder Singh and fragmentation/reassembly support to software rings. 1966ca9768aSJasvinder Singh 1978580bbadSJohn McNamara * Added a dynamic pipeline reconfiguration feature that 1988580bbadSJohn McNamara allows binding a pipeline to other threads at runtime 1996ca9768aSJasvinder Singh using CLI commands. 2006ca9768aSJasvinder Singh 2018580bbadSJohn McNamara * Added enable/disable of ``promisc`` mode from ``ip_pipeline`` 2026ca9768aSJasvinder Singh configuration file. 2036ca9768aSJasvinder Singh 2048580bbadSJohn McNamara * Added check on RX queues and TX queues of each link 2058580bbadSJohn McNamara whether they are used correctly in the ``ip_pipeline`` 2066ca9768aSJasvinder Singh configuration file. 2076ca9768aSJasvinder Singh 2086ca9768aSJasvinder Singh * Added flow id parameters to the flow-classification 2096ca9768aSJasvinder Singh table entries. 2106ca9768aSJasvinder Singh 2116ca9768aSJasvinder Singh * Added more functions to the routing pipeline: 2126ca9768aSJasvinder Singh ARP table enable/disable, Q-in-Q and MPLS encapsulation, 2138580bbadSJohn McNamara add color (traffic-class for QoS) to the MPLS tag. 2146ca9768aSJasvinder Singh 2156ca9768aSJasvinder Singh * Added flow-actions pipeline for traffic metering/marking 2166ca9768aSJasvinder Singh (for e.g. Two Rate Three Color Marker (trTCM)), policer etc. 2176ca9768aSJasvinder Singh 2186ca9768aSJasvinder Singh * Modified the pass-through pipeline's actions-handler to 2196ca9768aSJasvinder Singh implement a generic approach to extract fields from the 2208580bbadSJohn McNamara packet's header and copy them to packet metadata. 2216ca9768aSJasvinder Singh 2225ad78a66SBernard Iremonger 223f2edfd23SThomas MonjalonResolved Issues 224f2edfd23SThomas Monjalon--------------- 225f2edfd23SThomas Monjalon 226d196fd0eSJohn McNamaraEAL 227d196fd0eSJohn McNamara~~~ 228d196fd0eSJohn McNamara 229d196fd0eSJohn McNamara* **eal/linux: Fixed epoll timeout.** 230d196fd0eSJohn McNamara 231d196fd0eSJohn McNamara Fixed issue where the ``rte_epoll_wait()`` function didn't return when the 232d196fd0eSJohn McNamara underlying call to ``epoll_wait()`` timed out. 233d196fd0eSJohn McNamara 234d196fd0eSJohn McNamara 235d196fd0eSJohn McNamaraDrivers 236d196fd0eSJohn McNamara~~~~~~~ 237d196fd0eSJohn McNamara 238011667d5SWenzhuo Lu* **e1000/base: Synchronize PHY interface on non-ME systems.** 239011667d5SWenzhuo Lu 2408580bbadSJohn McNamara On power up, the MAC - PHY interface needs to be set to PCIe, even if the 2418580bbadSJohn McNamara cable is disconnected. In ME systems, the ME handles this on exit from the 2428580bbadSJohn McNamara Sx (Sticky mode) state. In non-ME, the driver handles it. Added a check for 2438580bbadSJohn McNamara non-ME system to the driver code that handles it. 244011667d5SWenzhuo Lu 2458580bbadSJohn McNamara* **e1000/base: Increased timeout of reset check.** 246011667d5SWenzhuo Lu 2478580bbadSJohn McNamara Previously, in ``check_reset_block`` RSPCIPHY was polled for 100 ms before 2488580bbadSJohn McNamara determining that the ME veto was set. This was not enough and it was 2498580bbadSJohn McNamara increased to 300 ms. 250011667d5SWenzhuo Lu 2518580bbadSJohn McNamara* **e1000/base: Disabled IPv6 extension header parsing on 82575.** 252011667d5SWenzhuo Lu 2538580bbadSJohn McNamara Disabled IPv6 options as per hardware limitation. 254011667d5SWenzhuo Lu 255011667d5SWenzhuo Lu* **e1000/base: Prevent ULP flow if cable connected.** 256011667d5SWenzhuo Lu 2578580bbadSJohn McNamara Enabling ULP on link down when the cable is connected caused an infinite 258011667d5SWenzhuo Lu loop of link up/down indications in the NDIS driver. 2598580bbadSJohn McNamara The driver now enables ULP only when the cable is disconnected. 260011667d5SWenzhuo Lu 261011667d5SWenzhuo Lu* **e1000/base: Support different EEARBC for i210.** 262011667d5SWenzhuo Lu 263011667d5SWenzhuo Lu EEARBC has changed on i210. It means EEARBC has a different address on 264011667d5SWenzhuo Lu i210 than on other NICs. So, add a new entity named EEARBC_I210 to the 265011667d5SWenzhuo Lu register list and make sure the right one is being used on i210. 266011667d5SWenzhuo Lu 2678580bbadSJohn McNamara* **e1000/base: Fix K1 configuration.** 268011667d5SWenzhuo Lu 2698580bbadSJohn McNamara Added fix for the following updates to the K1 configurations: 2708580bbadSJohn McNamara TX idle period for entering K1 should be 128 ns. 2718580bbadSJohn McNamara Minimum TX idle period in K1 should be 256 ns. 272011667d5SWenzhuo Lu 2738580bbadSJohn McNamara* **e1000/base: Fix link detect flow.** 274011667d5SWenzhuo Lu 2758580bbadSJohn McNamara Fix link detect flow in case where auto-negotiate is not enabled, by calling 2768580bbadSJohn McNamara ``e1000_setup_copper_link_generic`` instead of ``e1000_phy_setup_autoneg``. 277011667d5SWenzhuo Lu 2788580bbadSJohn McNamara* **e1000/base: Fix link check for i354 M88E1112 PHY.** 279011667d5SWenzhuo Lu 2808580bbadSJohn McNamara The ``e1000_check_for_link_media_swap()`` function is supposed to check PHY 2818580bbadSJohn McNamara page 0 for copper and PHY page 1 for "other" (fiber) links. The driver 2828580bbadSJohn McNamara switched back from page 1 to page 0 too soon, before 2838580bbadSJohn McNamara ``e1000_check_for_link_82575()`` is executed and was never finding the link 2848580bbadSJohn McNamara on the fiber (other). 285011667d5SWenzhuo Lu 286011667d5SWenzhuo Lu If the link is copper, as the M88E1112 page address is set to 1, it should be 287011667d5SWenzhuo Lu set back to 0 before checking this link. 288011667d5SWenzhuo Lu 2898580bbadSJohn McNamara* **e1000/base: Fix beacon duration for i217.** 290011667d5SWenzhuo Lu 291011667d5SWenzhuo Lu Fix for I217 Packet Loss issue - The Management Engine sets the FEXTNVM4 292011667d5SWenzhuo Lu Beacon Duration incorrectly. This fix ensures that the correct value will 293011667d5SWenzhuo Lu always be set. Correct value for this field is 8 usec. 294011667d5SWenzhuo Lu 2958580bbadSJohn McNamara* **e1000/base: Fix TIPG for non 10 half duplex mode.** 296011667d5SWenzhuo Lu 2978580bbadSJohn McNamara TIPG value is increased when setting speed to 10 half duplex to prevent 298011667d5SWenzhuo Lu packet loss. However, it was never decreased again when speed 2998580bbadSJohn McNamara changed. This caused performance issues in the NDIS driver. 3008580bbadSJohn McNamara Fix this to restore TIPG to default value on non 10 half duplex. 301011667d5SWenzhuo Lu 3028580bbadSJohn McNamara* **e1000/base: Fix reset of DH89XXCC SGMII.** 303011667d5SWenzhuo Lu 3048580bbadSJohn McNamara For DH89XXCC_SGMII, a write flush leaves registers of this device trashed 305011667d5SWenzhuo Lu (0xFFFFFFFF). Add check for this device. 306011667d5SWenzhuo Lu 3078580bbadSJohn McNamara Also, after both Port SW Reset and Device Reset case, the platform should 3088580bbadSJohn McNamara wait at least 3ms before reading any registers. Remove this condition since 3098580bbadSJohn McNamara waiting is conditionally executed only for Device Reset. 3108580bbadSJohn McNamara 3118580bbadSJohn McNamara* **e1000/base: Fix redundant PHY power down for i210.** 312011667d5SWenzhuo Lu 313011667d5SWenzhuo Lu Bit 11 of PHYREG 0 is used to power down PHY. The use of PHYREG 16 is 3148580bbadSJohn McNamara no longer necessary. 315011667d5SWenzhuo Lu 3168580bbadSJohn McNamara* **e1000/base: fix jumbo frame CRC failures.** 317011667d5SWenzhuo Lu 318011667d5SWenzhuo Lu Change the value of register 776.20[11:2] for jumbo mode from 0x1A to 0x1F. 3198580bbadSJohn McNamara This is to enlarge the gap between read and write pointers in the TX FIFO. 320011667d5SWenzhuo Lu 3218580bbadSJohn McNamara* **e1000/base: Fix link flap on 82579.** 322011667d5SWenzhuo Lu 323011667d5SWenzhuo Lu Several customers have reported a link flap issue on 82579. The symptoms 324011667d5SWenzhuo Lu are random and intermittent link losses when 82579 is connected to specific 3259c30a6f3SHenry Nadeau switches. the Issue was root caused as an interoperability problem between 326011667d5SWenzhuo Lu the NIC and at least some Broadcom PHYs in the Energy Efficient Ethernet 327011667d5SWenzhuo Lu wake mechanism. 3288580bbadSJohn McNamara 329011667d5SWenzhuo Lu To fix the issue, we are disabling the Phase Locked Loop shutdown in 100M 330011667d5SWenzhuo Lu Low Power Idle. This solution will cause an increase of power in 100M EEE 3318580bbadSJohn McNamara link. It may cost an additional 28mW in this specific mode. 332011667d5SWenzhuo Lu 3331ce6591eSPablo de Lara* **igb: Fixed IEEE1588 frame identification in I210.** 3341ce6591eSPablo de Lara 3358580bbadSJohn McNamara Fixed issue where the flag ``PKT_RX_IEEE1588_PTP`` was not being set 3368580bbadSJohn McNamara in the Intel I210 NIC, as the EtherType in RX descriptor is in bits 8:10 of 3371ce6591eSPablo de Lara Packet Type and not in the default bits 0:2. 3381ce6591eSPablo de Lara 339fe685de2SCunming Liang* **igb: Fixed VF start with PF stopped.** 340fe685de2SCunming Liang 341fe685de2SCunming Liang VF needs the PF interrupt support initialized even if not started. 342fe685de2SCunming Liang 3432a3cf071SWenzhuo Lu* **igb: Fixed VF MAC address when using with DPDK PF.** 3442a3cf071SWenzhuo Lu 3452a3cf071SWenzhuo Lu Assign a random MAC address in VF when not assigned by PF. 3462a3cf071SWenzhuo Lu 3477f92f32fSHarry van Haaren* **igb: Removed CRC bytes from byte counter statistics.** 3487f92f32fSHarry van Haaren 349d196fd0eSJohn McNamara* **ixgbe: Fixed issue with X550 DCB.** 350d196fd0eSJohn McNamara 351d196fd0eSJohn McNamara Fixed a DCB issue with x550 where for 8 TCs (Traffic Classes), if a packet 352d196fd0eSJohn McNamara with user priority 6 or 7 was injected to the NIC, then the NIC would only 353d196fd0eSJohn McNamara put 3 packets into the queue. There was also a similar issue for 4 TCs. 354d196fd0eSJohn McNamara 355d196fd0eSJohn McNamara* **ixgbe: Removed burst size restriction of vector RX.** 356d196fd0eSJohn McNamara 357d196fd0eSJohn McNamara Fixed issue where a burst size less than 32 didn't receive anything. 358d196fd0eSJohn McNamara 3597ab85000SCunming Liang* **ixgbe: Fixed VF start with PF stopped.** 3607ab85000SCunming Liang 3617ab85000SCunming Liang VF needs the PF interrupt support initialized even if not started. 3627ab85000SCunming Liang 36371f39b07SKonstantin Ananyev* **ixgbe: Fixed TX hang when RS distance exceeds HW limit.** 36471f39b07SKonstantin Ananyev 3658580bbadSJohn McNamara Fixed an issue where the TX queue can hang when a lot of highly fragmented 3668580bbadSJohn McNamara packets have to be sent. As part of that fix, ``tx_rs_thresh`` for ixgbe PMD 3678580bbadSJohn McNamara is not allowed to be greater then to 32 to comply with HW restrictions. 36871f39b07SKonstantin Ananyev 3697f92f32fSHarry van Haaren* **ixgbe: Fixed rx error statistic counter.** 3707f92f32fSHarry van Haaren 3717f92f32fSHarry van Haaren Fixed an issue that the rx error counter of ixgbe was not accurate. The 3727f92f32fSHarry van Haaren mac short packet discard count (mspdc) was added to the counter. Mac local 3737f92f32fSHarry van Haaren faults and mac remote faults are removed as they do not count packets but 3747f92f32fSHarry van Haaren errors, and jabber errors were removed as they are already accounted for 3757f92f32fSHarry van Haaren by the CRC error counter. Finally the XEC (l3 / l4 checksum error) counter 3767f92f32fSHarry van Haaren was removed due to errata, see commit 256ff05a9cae for details. 3777f92f32fSHarry van Haaren 3787f92f32fSHarry van Haaren* **ixgbe: Removed CRC bytes from byte counter statistics.** 3797f92f32fSHarry van Haaren 380d196fd0eSJohn McNamara* **i40e: Fixed base driver allocation when not using first numa node.** 381d196fd0eSJohn McNamara 382d196fd0eSJohn McNamara Fixed i40e issue that occurred when a DPDK application didn't initialize 383d196fd0eSJohn McNamara ports if memory wasn't available on socket 0. 384d196fd0eSJohn McNamara 385705b57f8SHelin Zhang* **i40e: Fixed maximum of 64 queues per port.** 386705b57f8SHelin Zhang 3878580bbadSJohn McNamara Fixed an issue in i40e where it would not support more than 64 queues per 3888580bbadSJohn McNamara port, even though the hardware actually supports it. The real number of 3898580bbadSJohn McNamara queues may vary, as long as the total number of queues used in PF, VFs, VMDq 3908580bbadSJohn McNamara and FD does not exceeds the hardware maximum. 391705b57f8SHelin Zhang 3929aace75fSXutao Sun* **i40e: Fixed statistics of packets.** 3939aace75fSXutao Sun 3949aace75fSXutao Sun Added discarding packets on VSI to the stats and rectify the old statistics. 3959aace75fSXutao Sun 3963f50f072SHelin Zhang* **i40e: Fixed issue of not freeing memzone.** 3973f50f072SHelin Zhang 3988580bbadSJohn McNamara Fixed an issue of not freeing a memzone in the call to free the memory for 3993f50f072SHelin Zhang adminq DMA. 4003f50f072SHelin Zhang 4017f92f32fSHarry van Haaren* **i40e: Removed CRC bytes from byte counter statistics.** 4027f92f32fSHarry van Haaren 403cdb6d34bSThomas Monjalon* **mlx: Fixed driver loading.** 404cdb6d34bSThomas Monjalon 405cdb6d34bSThomas Monjalon The mlx drivers were unable to load when built as a shared library, 4068580bbadSJohn McNamara due to a missing symbol in the mempool library. 407cdb6d34bSThomas Monjalon 40884d55767SOlga Shern* **mlx4: Performance improvements.** 40984d55767SOlga Shern 41084d55767SOlga Shern Fixed bugs in TX and RX flows that improves mlx4 performance. 41184d55767SOlga Shern 4128580bbadSJohn McNamara* **mlx4: Fixed TX loss after initialization.** 41384d55767SOlga Shern 4148580bbadSJohn McNamara* **mlx4: Fixed scattered TX with too many segments.** 41584d55767SOlga Shern 41684d55767SOlga Shern* **mlx4: Fixed memory registration for indirect mbuf data.** 41784d55767SOlga Shern 418d196fd0eSJohn McNamara* **vhost: Fixed Qemu shutdown.** 419d196fd0eSJohn McNamara 420d196fd0eSJohn McNamara Fixed issue with libvirt ``virsh destroy`` not killing the VM. 421d196fd0eSJohn McNamara 422fd6949c5SDavid Marchand* **virtio: Fixed crash after changing link state.** 423fd6949c5SDavid Marchand 4248580bbadSJohn McNamara Fixed IO permission in the interrupt handler. 425fd6949c5SDavid Marchand 426ce8e1218SBernard Iremonger* **virtio: Fixed crash when releasing queue.** 427ce8e1218SBernard Iremonger 428ce8e1218SBernard Iremonger Fixed issue when releasing null control queue. 429ce8e1218SBernard Iremonger 4307ab85000SCunming Liang 431d196fd0eSJohn McNamaraLibraries 432d196fd0eSJohn McNamara~~~~~~~~~ 433d196fd0eSJohn McNamara 434d196fd0eSJohn McNamara* **hash: Fixed memory allocation of Cuckoo Hash key table.** 435d196fd0eSJohn McNamara 436d196fd0eSJohn McNamara Fixed issue where an incorrect Cuckoo Hash key table size could be 437d196fd0eSJohn McNamara calculated limiting the size to 4GB. 438d196fd0eSJohn McNamara 439c31af3e1SPablo de Lara* **hash: Fixed incorrect lookup if key is all zero.** 440c31af3e1SPablo de Lara 441c31af3e1SPablo de Lara Fixed issue in hash library that occurred if an all zero 4428580bbadSJohn McNamara key was not added to the table and the key was looked up, 443c31af3e1SPablo de Lara resulting in an incorrect hit. 444c31af3e1SPablo de Lara 44503e5ff41SThomas Monjalon* **hash: Fixed thread scaling by reducing contention.** 44603e5ff41SThomas Monjalon 4478580bbadSJohn McNamara Fixed issue in the hash library where, using multiple cores with 44803e5ff41SThomas Monjalon hardware transactional memory support, thread scaling did not work, 44903e5ff41SThomas Monjalon due to the global ring that is shared by all cores. 45003e5ff41SThomas Monjalon 451d196fd0eSJohn McNamara 452d196fd0eSJohn McNamaraExamples 453d196fd0eSJohn McNamara~~~~~~~~ 454d196fd0eSJohn McNamara 4553edf8754SPablo de Lara* **l3fwd: Fixed crash with IPv6.** 4563edf8754SPablo de Lara 45780c634d1SBernard Iremonger* **vhost_xen: Fixed compile error.** 45880c634d1SBernard Iremonger 459d196fd0eSJohn McNamara 460d196fd0eSJohn McNamaraOther 461d196fd0eSJohn McNamara~~~~~ 462d196fd0eSJohn McNamara 463ba11ea53SJohn McNamara* This release drops compatibility with Linux kernel 2.6.33. The minimum 464ba11ea53SJohn McNamara kernel requirement is now 2.6.34. 465ba11ea53SJohn McNamara 466f2edfd23SThomas Monjalon 467f2edfd23SThomas MonjalonKnown Issues 468f2edfd23SThomas Monjalon------------ 469f2edfd23SThomas Monjalon 4708580bbadSJohn McNamara* Some drivers do not fill in the packet type when receiving. 471850d6bb7SZhe Tao As the l3fwd example application requires this info, the i40e vector 472850d6bb7SZhe Tao driver must be disabled to benefit of the packet type with i40e. 473850d6bb7SZhe Tao 474576b64b5SHelin Zhang* Some (possibly all) VF drivers (e.g. i40evf) do not handle any PF reset 4758580bbadSJohn McNamara events/requests in the VF driver. This means that the VF driver may not work 4768580bbadSJohn McNamara after a PF reset in the host side. The workaround is to avoid triggering any 4778580bbadSJohn McNamara PF reset events/requests on the host side. 478576b64b5SHelin Zhang 47967d48c2cSOlga Shern* 100G link report support is missing. 48067d48c2cSOlga Shern 48168748ca2SOlga Shern* **Mellanox PMDs (mlx4 & mlx5):** 48268748ca2SOlga Shern 48367d48c2cSOlga Shern * PMDs do not support CONFIG_RTE_BUILD_COMBINE_LIBS and 48467d48c2cSOlga Shern CONFIG_RTE_BUILD_SHARED_LIB simultaneously. 48568748ca2SOlga Shern 4868580bbadSJohn McNamara * There is performance degradation for small packets when the PMD is 4878580bbadSJohn McNamara compiled with ``SGE_WR_N = 4`` compared to the performance when ``SGE_WR_N 4888580bbadSJohn McNamara = 1``. If scattered packets are not used it is recommended to compile the 4898580bbadSJohn McNamara PMD with ``SGE_WR_N = 1``. 49068748ca2SOlga Shern 49168748ca2SOlga Shern * When a Multicast or Broadcast packet is sent to the SR-IOV mlx4 VF, 49268748ca2SOlga Shern it is returned back to the port. 49368748ca2SOlga Shern 49467d48c2cSOlga Shern * PMDs report "bad" L4 checksum when IP packet is received. 49567d48c2cSOlga Shern 49667d48c2cSOlga Shern * mlx5 PMD reports "bad" checksum although the packet has "good" checksum. 49767d48c2cSOlga Shern Will be fixed in upcoming MLNX_OFED release. 49867d48c2cSOlga Shern 499f2edfd23SThomas Monjalon 500f2edfd23SThomas MonjalonAPI Changes 501f2edfd23SThomas Monjalon----------- 502f2edfd23SThomas Monjalon 503a421b86aSJingjing Wu* The deprecated flow director API is removed. 5048580bbadSJohn McNamara It was replaced by ``rte_eth_dev_filter_ctrl()``. 505a421b86aSJingjing Wu 5068580bbadSJohn McNamara* The ``dcb_queue`` is renamed to ``dcb_tc`` in following dcb configuration 5078580bbadSJohn McNamara structures: ``rte_eth_dcb_rx_conf``, ``rte_eth_dcb_tx_conf``, 5088580bbadSJohn McNamara ``rte_eth_vmdq_dcb_conf``, ``rte_eth_vmdq_dcb_tx_conf``. 509cb60ede6SJingjing Wu 5108580bbadSJohn McNamara* The ``rte_eth_rx_queue_count()`` function now returns "int" instead of 5118580bbadSJohn McNamara "uint32_t" to allow the use of negative values as error codes on return. 51233cf6be0SBruce Richardson 5138580bbadSJohn McNamara* The function ``rte_eal_pci_close_one()`` is removed. 5148580bbadSJohn McNamara It was replaced by ``rte_eal_pci_detach()``. 515e32bbdb2SThomas Monjalon 5168580bbadSJohn McNamara* The deprecated ACL API ``ipv4vlan`` is removed. 5170b6fbe87SThomas Monjalon 5188580bbadSJohn McNamara* The deprecated hash function ``rte_jhash2()`` is removed. 5198580bbadSJohn McNamara It was replaced by ``rte_jhash_32b()``. 5200f201fe9SPablo de Lara 521fc27caaaSStephen Hemminger* The deprecated KNI functions are removed: 5228580bbadSJohn McNamara ``rte_kni_create()``, ``rte_kni_get_port_id()`` and ``rte_kni_info_get()``. 523fc27caaaSStephen Hemminger 524182f36e3SStephen Hemminger* The deprecated ring PMD functions are removed: 5258580bbadSJohn McNamara ``rte_eth_ring_pair_create()`` and ``rte_eth_ring_pair_attach()``. 526182f36e3SStephen Hemminger 5278580bbadSJohn McNamara* The devargs union field ``virtual`` is renamed to ``virt`` for C++ 5288580bbadSJohn McNamara compatibility. 5298580bbadSJohn McNamara 5307499ef45SChristoph Gysin 531f2edfd23SThomas MonjalonABI Changes 532f2edfd23SThomas Monjalon----------- 533f2edfd23SThomas Monjalon 5348580bbadSJohn McNamara* The EAL and ethdev structures ``rte_intr_handle`` and ``rte_eth_conf`` were 5358580bbadSJohn McNamara changed to support RX interrupt. This was already included in 2.1 under the 5368580bbadSJohn McNamara ``CONFIG_RTE_NEXT_ABI`` #define. 537d8c4ae27SThomas Monjalon 53851c764c1SThomas Monjalon* The ethdev flow director entries for SCTP were changed. 5398580bbadSJohn McNamara This was already included in 2.1 under the ``CONFIG_RTE_NEXT_ABI`` #define. 54051c764c1SThomas Monjalon 5418580bbadSJohn McNamara* The ethdev flow director structure ``rte_eth_fdir_flow_ext`` structure was 5428580bbadSJohn McNamara changed. New fields were added to support flow director filtering in VF. 54399d7e557SJingjing Wu 5448580bbadSJohn McNamara* The size of the ethdev structure ``rte_eth_hash_filter_info`` is changed 5458580bbadSJohn McNamara by adding a new element ``rte_eth_input_set_conf`` in a union. 54698f05570SHelin Zhang 5478580bbadSJohn McNamara* New fields ``rx_desc_lim`` and ``tx_desc_lim`` are added into 5488580bbadSJohn McNamara ``rte_eth_dev_info`` structure. 54980a1deb4SKonstantin Ananyev 5508580bbadSJohn McNamara* For debug builds, the functions ``rte_eth_rx_burst()``, ``rte_eth_tx_burst()`` 5518580bbadSJohn McNamara ``rte_eth_rx_descriptor_done()`` and ``rte_eth_rx_queue_count()`` will 55271594065SBruce Richardson no longer be separate functions in the DPDK libraries. Instead, they will 5538580bbadSJohn McNamara only be present in the ``rte_ethdev.h`` header file. 55471594065SBruce Richardson 5558580bbadSJohn McNamara* The maximum number of queues per port ``CONFIG_RTE_MAX_QUEUES_PER_PORT`` is 556705b57f8SHelin Zhang increased to 1024. 557705b57f8SHelin Zhang 5588580bbadSJohn McNamara* The mbuf structure was changed to support the unified packet type. 5598580bbadSJohn McNamara This was already included in 2.1 under the ``CONFIG_RTE_NEXT_ABI`` #define. 560ab351fe1SThomas Monjalon 5615eaef15cSThomas Monjalon* The dummy malloc library is removed. The content was moved into EAL in 2.1. 5625eaef15cSThomas Monjalon 5638580bbadSJohn McNamara* The LPM structure is changed. The deprecated field ``mem_location`` is 5648580bbadSJohn McNamara removed. 5654d0a3f2aSThomas Monjalon 566f71c7fc0SJasvinder Singh* librte_table LPM: A new parameter to hold the table name will be added to 567f71c7fc0SJasvinder Singh the LPM table parameter structure. 568f2edfd23SThomas Monjalon 569fc6bcc6fSFan Zhang* librte_table hash: The key mask parameter is added to the hash table 5708580bbadSJohn McNamara parameter structure for 8-byte key and 16-byte key extendable bucket 571fc6bcc6fSFan Zhang and LRU tables. 572fc6bcc6fSFan Zhang 573ba92d511SFan Zhang* librte_port: Macros to access the packet meta-data stored within the packet 574ba92d511SFan Zhang buffer has been adjusted to cover the packet mbuf structure. 575ba92d511SFan Zhang 576ca743ea8SJasvinder Singh* librte_cfgfile: Allow longer names and values by increasing the constants 5778580bbadSJohn McNamara ``CFG_NAME_LEN`` and ``CFG_VALUE_LEN`` to 64 and 256 respectively. 578ca743ea8SJasvinder Singh 5798580bbadSJohn McNamara* vhost: a new field enabled is added to the ``vhost_virtqueue`` structure. 5800c83f820SYuanhan Liu 5818580bbadSJohn McNamara* vhost: a new field ``virt_qp_nb`` is added to ``virtio_net`` structure, and 5828580bbadSJohn McNamara the ``virtqueue`` field is moved to the end of virtio_net structure. 5830c83f820SYuanhan Liu 5848580bbadSJohn McNamara* vhost: a new operation ``vring_state_changed`` is added to 5858580bbadSJohn McNamara ``virtio_net_device_ops`` structure. 5860c83f820SYuanhan Liu 5878580bbadSJohn McNamara* vhost: a few spaces are reserved both at ``vhost_virtqueue`` and 5888580bbadSJohn McNamara ``virtio_net`` structure for future extension. 5890c83f820SYuanhan Liu 590ba92d511SFan Zhang 591f2edfd23SThomas MonjalonShared Library Versions 592f2edfd23SThomas Monjalon----------------------- 593f2edfd23SThomas Monjalon 594f2edfd23SThomas MonjalonThe libraries prepended with a plus sign were incremented in this version. 595f2edfd23SThomas Monjalon 596f2edfd23SThomas Monjalon.. code-block:: diff 597f2edfd23SThomas Monjalon 598d8c4ae27SThomas Monjalon + libethdev.so.2 5990b6fbe87SThomas Monjalon + librte_acl.so.2 600ca743ea8SJasvinder Singh + librte_cfgfile.so.2 601f2edfd23SThomas Monjalon librte_cmdline.so.1 602f2edfd23SThomas Monjalon librte_distributor.so.1 603d8c4ae27SThomas Monjalon + librte_eal.so.2 6040f201fe9SPablo de Lara + librte_hash.so.2 605f2edfd23SThomas Monjalon librte_ip_frag.so.1 606f2edfd23SThomas Monjalon librte_ivshmem.so.1 607f2edfd23SThomas Monjalon librte_jobstats.so.1 608fc27caaaSStephen Hemminger + librte_kni.so.2 609f2edfd23SThomas Monjalon librte_kvargs.so.1 6104d0a3f2aSThomas Monjalon + librte_lpm.so.2 611ab351fe1SThomas Monjalon + librte_mbuf.so.2 612f2edfd23SThomas Monjalon librte_mempool.so.1 613f2edfd23SThomas Monjalon librte_meter.so.1 61453c9ada0SMarcin Kerlin + librte_pipeline.so.2 615f2edfd23SThomas Monjalon librte_pmd_bond.so.1 616182f36e3SStephen Hemminger + librte_pmd_ring.so.2 617ba92d511SFan Zhang + librte_port.so.2 618f2edfd23SThomas Monjalon librte_power.so.1 619f2edfd23SThomas Monjalon librte_reorder.so.1 620f2edfd23SThomas Monjalon librte_ring.so.1 621f2edfd23SThomas Monjalon librte_sched.so.1 622f71c7fc0SJasvinder Singh + librte_table.so.2 623f2edfd23SThomas Monjalon librte_timer.so.1 6240c83f820SYuanhan Liu + librte_vhost.so.2 625