116162eb058016d64ebd8ee8a03f6c76c2333841
[dpdk.git] / doc / guides / rel_notes / release_2_2.rst
1 DPDK Release 2.2
2 ================
3
4 New Features
5 ------------
6
7 * **Added e1000 Rx interrupt support.**
8
9 * **Added igb TSO support for both PF and VF.**
10
11 * **RSS enhancement on Intel x550 NIC**
12
13   * Support 512 entries RSS redirection table.
14   * Support per VF RSS redirection table.
15
16 * **Flow director enhancement on Intel x550 NIC**
17
18   * Add 2 new flow director modes on x550.
19   * One is MAC VLAN mode, the other is tunnel mode.
20
21 * **Added i40e vector RX/TX.**
22
23 * **Added i40e flow control support.**
24
25 * **Added fm10k TSO support for both PF and VF.**
26
27 * **New NIC Boulder Rapid support.**
28
29   Boulder Rapid is a new NIC of Intel's fm10k family.
30
31 * **Enhanced support for the Chelsio CXGBE driver.**
32
33   *  Added support for Jumbo Frames.
34   *  Optimize forwarding performance for Chelsio T5 40GbE cards.
35
36 * **Added support for Mellanox ConnectX-4 adapters (mlx5).**
37
38   The mlx5 poll-mode driver implements support for Mellanox ConnectX-4 EN
39   and Mellanox ConnectX-4 Lx EN families of 10/25/40/50/100 Gb/s adapters.
40
41   Like mlx4, this PMD is only available for Linux and is disabled by default
42   due to external dependencies (libibverbs and libmlx5).
43
44 * **Added vhost-user multiple queue support.**
45
46 * **Added port hotplug support to xenvirt.**
47
48
49 Resolved Issues
50 ---------------
51
52 EAL
53 ~~~
54
55 * **eal/linux: Fixed epoll timeout.**
56
57   Fixed issue where the ``rte_epoll_wait()`` function didn't return when the
58   underlying call to ``epoll_wait()`` timed out.
59
60
61 Drivers
62 ~~~~~~~
63
64 * **igb: Fixed IEEE1588 frame identification in I210.**
65
66   Fixed issue where the flag PKT_RX_IEEE1588_PTP was not being set
67   in Intel I210 NIC, as EtherType in RX descriptor is in bits 8:10 of
68   Packet Type and not in the default bits 0:2.
69
70 * **ixgbe: Fixed issue with X550 DCB.**
71
72   Fixed a DCB issue with x550 where for 8 TCs (Traffic Classes), if a packet
73   with user priority 6 or 7 was injected to the NIC, then the NIC would only
74   put 3 packets into the queue. There was also a similar issue for 4 TCs.
75
76 * **ixgbe: Removed burst size restriction of vector RX.**
77
78   Fixed issue where a burst size less than 32 didn't receive anything.
79
80 * **i40e: Fixed base driver allocation when not using first numa node.**
81
82   Fixed i40e issue that occurred when a DPDK application didn't initialize
83   ports if memory wasn't available on socket 0.
84
85 * **vhost: Fixed Qemu shutdown.**
86
87   Fixed issue with libvirt ``virsh destroy`` not killing the VM.
88
89 * **virtio: Fixed crash after changing link state.**
90
91   Fixed io permission in the interrupt handler.
92
93 * **virtio: Fixed crash when releasing queue.**
94
95   Fixed issue when releasing null control queue.
96
97
98 Libraries
99 ~~~~~~~~~
100
101 * **hash: Fixed memory allocation of Cuckoo Hash key table.**
102
103   Fixed issue where an incorrect Cuckoo Hash key table size could be
104   calculated limiting the size to 4GB.
105
106
107 Examples
108 ~~~~~~~~
109
110
111 Other
112 ~~~~~
113
114
115 Known Issues
116 ------------
117
118
119 API Changes
120 -----------
121
122 * The deprecated flow director API is removed.
123   It was replaced by rte_eth_dev_filter_ctrl().
124
125 * The function rte_eal_pci_close_one() is removed.
126   It was replaced by rte_eal_pci_detach().
127
128 * The deprecated ACL API ipv4vlan is removed.
129
130 * The deprecated hash function rte_jhash2() is removed.
131   It was replaced by rte_jhash_32b().
132
133 * The deprecated KNI functions are removed:
134   rte_kni_create(), rte_kni_get_port_id() and rte_kni_info_get().
135
136 * The deprecated ring PMD functions are removed:
137   rte_eth_ring_pair_create() and rte_eth_ring_pair_attach().
138
139 * The devargs union field virtual is renamed to virt for C++ compatibility.
140
141
142 ABI Changes
143 -----------
144
145 * The EAL and ethdev structures rte_intr_handle and rte_eth_conf were changed
146   to support Rx interrupt. It was already done in 2.1 for CONFIG_RTE_NEXT_ABI.
147
148 * The ethdev flow director entries for SCTP were changed.
149   It was already done in 2.1 for CONFIG_RTE_NEXT_ABI.
150
151 * The mbuf structure was changed to support unified packet type.
152   It was already done in 2.1 for CONFIG_RTE_NEXT_ABI.
153
154 * The dummy malloc library is removed. The content was moved into EAL in 2.1.
155
156 * The LPM structure is changed. The deprecated field mem_location is removed.
157
158 * librte_table LPM: A new parameter to hold the table name will be added to
159   the LPM table parameter structure.
160
161 * librte_port: Macros to access the packet meta-data stored within the packet
162   buffer has been adjusted to cover the packet mbuf structure.
163
164 * librte_cfgfile: Allow longer names and values by increasing the constants
165   CFG_NAME_LEN and CFG_VALUE_LEN to 64 and 256 respectively.
166
167
168 Shared Library Versions
169 -----------------------
170
171 The libraries prepended with a plus sign were incremented in this version.
172
173 .. code-block:: diff
174
175    + libethdev.so.2
176    + librte_acl.so.2
177    + librte_cfgfile.so.2
178      librte_cmdline.so.1
179      librte_distributor.so.1
180    + librte_eal.so.2
181    + librte_hash.so.2
182      librte_ip_frag.so.1
183      librte_ivshmem.so.1
184      librte_jobstats.so.1
185    + librte_kni.so.2
186      librte_kvargs.so.1
187    + librte_lpm.so.2
188    + librte_mbuf.so.2
189      librte_mempool.so.1
190      librte_meter.so.1
191      librte_pipeline.so.1
192      librte_pmd_bond.so.1
193    + librte_pmd_ring.so.2
194    + librte_port.so.2
195      librte_power.so.1
196      librte_reorder.so.1
197      librte_ring.so.1
198      librte_sched.so.1
199    + librte_table.so.2
200      librte_timer.so.1
201      librte_vhost.so.1