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