xref: /dpdk/doc/guides/rel_notes/release_2_2.rst (revision f8dbaebbf1c9efcbb2e2354b341ed62175466a57)
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