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