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