net/bnxt: add driver for Broadcom NetXtreme-C devices
[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 * **Added new driver for Broadcom NetXtreme-C devices.**
51
52   Added the new bnxt driver for Broadcom NetXtreme-C devices. See the
53   "Network Interface Controller Drivers" document for more details on this
54   new driver.
55
56 * **Added mailbox interrupt support for ixgbe and igb VFs.**
57
58   When the physical NIC link comes down or up, the PF driver will send a
59   mailbox message to notify each VF. To handle this link up/down event,
60   add mailbox interrupts support to receive the message and allow the app to
61   register a callback for it.
62
63 * **Updated the i40e base driver.**
64
65   Updated the i40e base driver, which includes support for new devices IDs.
66
67 * **Supported virtio on IBM POWER8.**
68
69   The ioports are mapped in memory when using Linux UIO.
70
71 * **Virtio support for containers.**
72
73   Add a new virtual device, named virtio-user, to support virtio for containers.
74
75   Known limitations:
76
77   * Control queue and multi-queue are not supported yet.
78   * Cannot work with --huge-unlink.
79   * Cannot work with --no-huge.
80   * Cannot work when there are more than VHOST_MEMORY_MAX_NREGIONS(8) hugepages.
81   * Root privilege is a must for sorting hugepages by physical address.
82   * Can only be used with vhost user backend.
83
84 * **Added vhost-user client mode.**
85
86   DPDK vhost-user could be the server as well as the client. It supports
87   server mode only before, now it also supports client mode. Client mode
88   is enabled when ``RTE_VHOST_USER_CLIENT`` flag is set while calling
89   ``rte_vhost_driver_register``.
90
91   When DPDK vhost-user restarts from normal or abnormal quit (say crash),
92   the client mode would allow DPDK to establish the connect again.  Note
93   that a brand new QEMU version (v2.7 or above) is needed, otherwise, the
94   reconnect won't work.
95
96   DPDK vhost-user will also try to reconnect by default when
97
98   * the first connect fails (when QEMU is not started yet)
99   * the connection is broken (when QEMU restarts)
100
101   It can be turned off if flag ``RTE_VHOST_USER_NO_RECONNECT`` is set.
102
103 * **Added NSH packet recognition in i40e.**
104
105 * **Added AES-CTR support to AESNI MB PMD.**
106
107   Now AESNI MB PMD supports 128/192/256-bit counter mode AES encryption and
108   decryption.
109
110 * **Added support of AES counter mode for Intel QuickAssist devices.**
111
112   Enabled support for the AES CTR algorithm for Intel QuickAssist devices.
113   Provided support for algorithm-chaining operations.
114
115 * **Added KASUMI SW PMD.**
116
117   A new Crypto PMD has been added, which provides KASUMI F8 (UEA1) ciphering
118   and KASUMI F9 (UIA1) hashing.
119
120 * **Added multi-writer support for RTE Hash with Intel TSX.**
121
122   The following features/modifications have been added to rte_hash library:
123
124   * Enabled application developers to use an extra flag for rte_hash creation
125     to specify default behavior (multi-thread safe/unsafe) with rte_hash_add_key
126     function.
127   * Changed Cuckoo search algorithm to breadth first search for multi-writer
128     routine and split Cuckoo Search and Move operations in order to reduce
129     transactional code region and improve TSX performance.
130   * Added a hash multi-writer test case for test app.
131
132 * **Improved IP Pipeline Application.**
133
134   The following features have been added to ip_pipeline application:
135
136   * Configure the MAC address in the routing pipeline and automatic routes
137     updates with change in link state.
138   * Enable RSS per network interface through the configuration file.
139   * Streamline the CLI code.
140
141 * **Added keepalive enhancements.**
142
143   Adds support for reporting of core states other than dead to
144   monitoring applications, enabling the support of broader liveness
145   reporting to external processes.
146
147 * **Added packet capture framework.**
148
149   * A new library ``librte_pdump`` is added to provide packet capture API.
150   * A new ``app/pdump`` tool is added to capture packets in DPDK.
151
152
153 Resolved Issues
154 ---------------
155
156 .. This section should contain bug fixes added to the relevant sections. Sample format:
157
158    * **code/section Fixed issue in the past tense with a full stop.**
159
160      Add a short 1-2 sentence description of the resolved issue in the past tense.
161      The title should contain the code/lib section like a commit message.
162      Add the entries in alphabetic order in the relevant sections below.
163
164
165 EAL
166 ~~~
167
168
169 Drivers
170 ~~~~~~~
171
172 * **i40e: Fixed vlan stripping from inner header.**
173
174   Previously, for tunnel packets, such as VXLAN/NVGRE, the vlan
175   tags of the inner header will be stripped without putting vlan
176   info to descriptor.
177   Now this issue is fixed by disabling vlan stripping from inner header.
178
179
180 Libraries
181 ~~~~~~~~~
182
183 * **mbuf: Fixed refcnt update when detaching.**
184
185   Fix the ``rte_pktmbuf_detach()`` function to decrement the direct
186   mbuf's reference counter. The previous behavior was not to affect
187   the reference counter. It lead a memory leak of the direct mbuf.
188
189
190 Examples
191 ~~~~~~~~
192
193
194 Other
195 ~~~~~
196
197
198 Known Issues
199 ------------
200
201 .. This section should contain new known issues in this release. Sample format:
202
203    * **Add title in present tense with full stop.**
204
205      Add a short 1-2 sentence description of the known issue in the present
206      tense. Add information on any known workarounds.
207
208
209 API Changes
210 -----------
211
212 .. This section should contain API changes. Sample format:
213
214    * Add a short 1-2 sentence description of the API change. Use fixed width
215      quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
216
217 * The following counters are removed from ``rte_eth_stats`` structure:
218   ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
219   tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff.
220
221 * The extended statistics are fetched by ids with ``rte_eth_xstats_get``
222   after a lookup by name ``rte_eth_xstats_get_names``.
223
224 * The function ``rte_eth_dev_info_get`` fill the new fields ``nb_rx_queues``
225   and ``nb_tx_queues`` in the structure ``rte_eth_dev_info``.
226
227 * The vhost function ``rte_vring_available_entries`` is renamed to
228   ``rte_vhost_avail_entries``.
229
230 * All existing vhost APIs and callbacks with ``virtio_net`` struct pointer
231   as the parameter have been changed due to the ABI refactoring mentioned
232   below: it's replaced by ``int vid``.
233
234 * The function ``rte_vhost_enqueue_burst`` no longer supports concurrent enqueuing
235   packets to the same queue.
236
237 * The function ``rte_eth_dev_set_mtu`` adds a new return value ``-EBUSY``, which
238   indicates the operation is forbidden because the port is running.
239
240
241 ABI Changes
242 -----------
243
244 .. * Add a short 1-2 sentence description of the ABI change that was announced in
245      the previous releases and made in this release. Use fixed width quotes for
246      ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
247
248 * The ``rte_port_source_params`` structure has new fields to support PCAP file.
249   It was already in release 16.04 with ``RTE_NEXT_ABI`` flag.
250
251 * The ``rte_eth_dev_info`` structure has new fields ``nb_rx_queues`` and ``nb_tx_queues``
252   to support number of queues configured by software.
253
254 * vhost ABI refactoring has been made: ``virtio_net`` structure is never
255   exported to application any more. Instead, a handle, ``vid``, has been
256   used to represent this structure internally.
257
258
259 Shared Library Versions
260 -----------------------
261
262 .. Update any library version updated in this release and prepend with a ``+`` sign.
263
264 The libraries prepended with a plus sign were incremented in this version.
265
266 .. code-block:: diff
267
268    + libethdev.so.4
269      librte_acl.so.2
270      librte_cfgfile.so.2
271      librte_cmdline.so.2
272      librte_distributor.so.1
273      librte_eal.so.2
274      librte_hash.so.2
275      librte_ip_frag.so.1
276      librte_ivshmem.so.1
277      librte_jobstats.so.1
278      librte_kni.so.2
279      librte_kvargs.so.1
280      librte_lpm.so.2
281      librte_mbuf.so.2
282    + librte_mempool.so.2
283      librte_meter.so.1
284      librte_pipeline.so.3
285      librte_pmd_bond.so.1
286      librte_pmd_ring.so.2
287    + librte_port.so.3
288      librte_power.so.1
289      librte_reorder.so.1
290      librte_ring.so.1
291      librte_sched.so.1
292      librte_table.so.2
293      librte_timer.so.1
294    + librte_vhost.so.3
295
296
297 Tested Platforms
298 ----------------
299
300 .. This section should contain a list of platforms that were tested with this
301    release.
302
303    The format is:
304
305    #. Platform name.
306
307       - Platform details.
308       - Platform details.
309
310
311 Tested NICs
312 -----------
313
314 .. This section should contain a list of NICs that were tested with this release.
315
316    The format is:
317
318    #. NIC name.
319
320       - NIC details.
321       - NIC details.