net/i40e: support NSH packet type
[dpdk.git] / doc / guides / rel_notes / release_16_07.rst
1 DPDK Release 16.07
2 ==================
3
4 .. **Read this first.**
5
6    The text below explains how to update the release notes.
7
8    Use proper spelling, capitalization and punctuation in all sections.
9
10    Variable and config names should be quoted as fixed width text: ``LIKE_THIS``.
11
12    Build the docs and view the output file to ensure the changes are correct::
13
14       make doc-guides-html
15
16       firefox build/doc/html/guides/rel_notes/release_16_07.html
17
18
19 New Features
20 ------------
21
22 .. This section should contain new features added in this release. Sample format:
23
24    * **Add a title in the past tense with a full stop.**
25
26      Add a short 1-2 sentence description in the past tense. The description
27      should be enough to allow someone scanning the release notes to understand
28      the new feature.
29
30      If the feature adds a lot of sub-features you can use a bullet list like this.
31
32      * Added feature foo to do something.
33      * Enhanced feature bar to do something else.
34
35      Refer to the previous release notes for examples.
36
37 * **Removed mempool cache if not needed.**
38
39   The size of the mempool structure is reduced if the per-lcore cache is disabled.
40
41 * **Changed the memory allocation in mempool library.**
42
43   * Added ability to allocate a large mempool in virtually fragmented memory.
44   * Added new APIs to populate a mempool with memory.
45   * Added an API to free a mempool.
46   * Modified the API of rte_mempool_obj_iter() function.
47   * Dropped specific Xen Dom0 code.
48   * Dropped specific anonymous mempool code in testpmd.
49
50 * **Supported virtio on IBM POWER8.**
51
52   The ioports are mapped in memory when using Linux UIO.
53
54 * **Virtio support for containers.**
55
56   Add a new virtual device, named virtio-user, to support virtio for containers.
57
58   Known limitations:
59
60   * Control queue and multi-queue are not supported yet.
61   * Cannot work with --huge-unlink.
62   * Cannot work with --no-huge.
63   * Cannot work when there are more than VHOST_MEMORY_MAX_NREGIONS(8) hugepages.
64   * Root privilege is a must for sorting hugepages by physical address.
65   * Can only be used with vhost user backend.
66
67 * **Added vhost-user client mode.**
68
69   DPDK vhost-user could be the server as well as the client. It supports
70   server mode only before, now it also supports client mode. Client mode
71   is enabled when ``RTE_VHOST_USER_CLIENT`` flag is set while calling
72   ``rte_vhost_driver_register``.
73
74   When DPDK vhost-user restarts from normal or abnormal quit (say crash),
75   the client mode would allow DPDK to establish the connect again.  Note
76   that a brand new QEMU version (v2.7 or above) is needed, otherwise, the
77   reconnect won't work.
78
79   DPDK vhost-user will also try to reconnect by default when
80
81   * the first connect fails (when QEMU is not started yet)
82   * the connection is broken (when QEMU restarts)
83
84   It can be turned off if flag ``RTE_VHOST_USER_NO_RECONNECT`` is set.
85
86 * **Added NSH packet recognition in i40e.**
87
88 * **Added AES-CTR support to AESNI MB PMD.**
89
90   Now AESNI MB PMD supports 128/192/256-bit counter mode AES encryption and
91   decryption.
92
93 * **Added support of AES counter mode for Intel QuickAssist devices.**
94
95   Enabled support for the AES CTR algorithm for Intel QuickAssist devices.
96   Provided support for algorithm-chaining operations.
97
98 * **Added KASUMI SW PMD.**
99
100   A new Crypto PMD has been added, which provides KASUMI F8 (UEA1) ciphering
101   and KASUMI F9 (UIA1) hashing.
102
103 * **Improved IP Pipeline Application.**
104
105   The following features have been added to ip_pipeline application:
106
107   * Configure the MAC address in the routing pipeline and automatic routes
108     updates with change in link state.
109   * Enable RSS per network interface through the configuration file.
110   * Streamline the CLI code.
111
112 * **Added keepalive enhancements.**
113
114   Adds support for reporting of core states other than dead to
115   monitoring applications, enabling the support of broader liveness
116   reporting to external processes.
117
118 * **Added packet capture framework.**
119
120   * A new library ``librte_pdump`` is added to provide packet capture API.
121   * A new ``app/pdump`` tool is added to capture packets in DPDK.
122
123
124 Resolved Issues
125 ---------------
126
127 .. This section should contain bug fixes added to the relevant sections. Sample format:
128
129    * **code/section Fixed issue in the past tense with a full stop.**
130
131      Add a short 1-2 sentence description of the resolved issue in the past tense.
132      The title should contain the code/lib section like a commit message.
133      Add the entries in alphabetic order in the relevant sections below.
134
135
136 EAL
137 ~~~
138
139
140 Drivers
141 ~~~~~~~
142
143 * **i40e: Fixed vlan stripping from inner header.**
144
145   Previously, for tunnel packets, such as VXLAN/NVGRE, the vlan
146   tags of the inner header will be stripped without putting vlan
147   info to descriptor.
148   Now this issue is fixed by disabling vlan stripping from inner header.
149
150
151 Libraries
152 ~~~~~~~~~
153
154 * **mbuf: Fixed refcnt update when detaching.**
155
156   Fix the ``rte_pktmbuf_detach()`` function to decrement the direct
157   mbuf's reference counter. The previous behavior was not to affect
158   the reference counter. It lead a memory leak of the direct mbuf.
159
160
161 Examples
162 ~~~~~~~~
163
164
165 Other
166 ~~~~~
167
168
169 Known Issues
170 ------------
171
172 .. This section should contain new known issues in this release. Sample format:
173
174    * **Add title in present tense with full stop.**
175
176      Add a short 1-2 sentence description of the known issue in the present
177      tense. Add information on any known workarounds.
178
179
180 API Changes
181 -----------
182
183 .. This section should contain API changes. Sample format:
184
185    * Add a short 1-2 sentence description of the API change. Use fixed width
186      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
187
188 * The following counters are removed from ``rte_eth_stats`` structure:
189   ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
190   tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff.
191
192 * The extended statistics are fetched by ids with ``rte_eth_xstats_get``
193   after a lookup by name ``rte_eth_xstats_get_names``.
194
195 * The function ``rte_eth_dev_info_get`` fill the new fields ``nb_rx_queues``
196   and ``nb_tx_queues`` in the structure ``rte_eth_dev_info``.
197
198 * The vhost function ``rte_vring_available_entries`` is renamed to
199   ``rte_vhost_avail_entries``.
200
201 * All existing vhost APIs and callbacks with ``virtio_net`` struct pointer
202   as the parameter have been changed due to the ABI refactoring mentioned
203   below: it's replaced by ``int vid``.
204
205 * The function ``rte_vhost_enqueue_burst`` no longer supports concurrent enqueuing
206   packets to the same queue.
207
208
209 ABI Changes
210 -----------
211
212 .. * Add a short 1-2 sentence description of the ABI change that was announced in
213      the previous releases and made in this release. Use fixed width quotes for
214      ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
215
216 * The ``rte_port_source_params`` structure has new fields to support PCAP file.
217   It was already in release 16.04 with ``RTE_NEXT_ABI`` flag.
218
219 * The ``rte_eth_dev_info`` structure has new fields ``nb_rx_queues`` and ``nb_tx_queues``
220   to support number of queues configured by software.
221
222 * vhost ABI refactoring has been made: ``virtio_net`` structure is never
223   exported to application any more. Instead, a handle, ``vid``, has been
224   used to represent this structure internally.
225
226
227 Shared Library Versions
228 -----------------------
229
230 .. Update any library version updated in this release and prepend with a ``+`` sign.
231
232 The libraries prepended with a plus sign were incremented in this version.
233
234 .. code-block:: diff
235
236    + libethdev.so.4
237      librte_acl.so.2
238      librte_cfgfile.so.2
239      librte_cmdline.so.2
240      librte_distributor.so.1
241      librte_eal.so.2
242      librte_hash.so.2
243      librte_ip_frag.so.1
244      librte_ivshmem.so.1
245      librte_jobstats.so.1
246      librte_kni.so.2
247      librte_kvargs.so.1
248      librte_lpm.so.2
249      librte_mbuf.so.2
250    + librte_mempool.so.2
251      librte_meter.so.1
252      librte_pipeline.so.3
253      librte_pmd_bond.so.1
254      librte_pmd_ring.so.2
255    + librte_port.so.3
256      librte_power.so.1
257      librte_reorder.so.1
258      librte_ring.so.1
259      librte_sched.so.1
260      librte_table.so.2
261      librte_timer.so.1
262    + librte_vhost.so.3
263
264
265 Tested Platforms
266 ----------------
267
268 .. This section should contain a list of platforms that were tested with this
269    release.
270
271    The format is:
272
273    #. Platform name.
274
275       - Platform details.
276       - Platform details.
277
278
279 Tested NICs
280 -----------
281
282 .. This section should contain a list of NICs that were tested with this release.
283
284    The format is:
285
286    #. NIC name.
287
288       - NIC details.
289       - NIC details.