doc: add QAT compression guide
[dpdk.git] / doc / guides / rel_notes / release_18_08.rst
1 DPDK Release 18.08
2 ==================
3
4 .. **Read this first.**
5
6    The text in the sections 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:
11    ``LIKE_THIS``.
12
13    Build the docs and view the output file to ensure the changes are correct::
14
15       make doc-guides-html
16
17       xdg-open build/doc/html/guides/rel_notes/release_18_08.html
18
19
20 New Features
21 ------------
22
23 .. This section should contain new features added in this release.
24    Sample format:
25
26    * **Add a title in the past tense with a full stop.**
27
28      Add a short 1-2 sentence description in the past tense.
29      The description should be enough to allow someone scanning
30      the release notes to understand the new feature.
31
32      If the feature adds a lot of sub-features you can use a bullet list
33      like this:
34
35      * Added feature foo to do something.
36      * Enhanced feature bar to do something else.
37
38      Refer to the previous release notes for examples.
39
40      This section is a comment. Do not overwrite or remove it.
41      Also, make sure to start the actual text at the margin.
42      =========================================================
43
44 * **Added support for Hyper-V netvsc PMD.**
45
46   The new ``netvsc`` poll mode driver provides native support for
47   networking on Hyper-V. See the :doc:`../nics/netvsc` NIC driver guide
48   for more details on this new driver.
49
50 * **Added Flow API support for CXGBE PMD.**
51
52   Flow API support has been added to CXGBE Poll Mode Driver to offload
53   flows to Chelsio T5/T6 NICs.
54
55 * **Added ixgbe preferred Rx/Tx parameters.**
56
57   Rather than applications providing explicit Rx and Tx parameters such as
58   queue and burst sizes, they can request that the EAL instead uses preferred
59   values provided by the PMD, falling back to defaults within the EAL if the
60   PMD does not provide any. The provision of such tuned values now includes
61   the ixgbe PMD.
62
63 * **Added descriptor status check support for fm10k.**
64
65   ``rte_eth_rx_descritpr_status`` and ``rte_eth_tx_descriptor_status``
66   are supported by fm10K.
67
68 * **Updated the enic driver.**
69
70   * Add support for mbuf fast free offload.
71   * Add low cycle count Tx handler for no-offload Tx (except mbuf fast free).
72   * Add low cycle count Rx handler for non-scattered Rx.
73   * Minor performance improvements to scattered Rx handler.
74   * Add handlers to add/delete VxLAN port number.
75   * Add devarg to specify ingress VLAN rewrite mode.
76
77 * **Added a new compression PMD using Intel's QuickAssist (QAT) device family.**
78
79   Added the new ``QAT`` compression driver, for compression and decompression
80   operations in software. See the :doc:`../compressdevs/qat_comp` compression
81   driver guide for details on this new driver.
82
83
84 API Changes
85 -----------
86
87 .. This section should contain API changes. Sample format:
88
89    * Add a short 1-2 sentence description of the API change.
90      Use fixed width quotes for ``function_names`` or ``struct_names``.
91      Use the past tense.
92
93    This section is a comment. Do not overwrite or remove it.
94    Also, make sure to start the actual text at the margin.
95    =========================================================
96
97 * Path to runtime config file has changed. The new path is determined as
98   follows:
99
100   - If DPDK is running as root, ``/var/run/dpdk/<prefix>/config``
101   - If DPDK is not running as root:
102
103     * If ``$XDG_RUNTIME_DIR`` is set, ``${XDG_RUNTIME_DIR}/dpdk/<prefix>/config``
104     * Otherwise, ``/tmp/dpdk/<prefix>/config``
105
106 * cryptodev: In struct ``struct rte_cryptodev_info``, field ``rte_pci_device *pci_dev``
107   has been replaced with field ``struct rte_device *device``.
108   Value 0 is accepted in ``sym.max_nb_sessions``, meaning that a device
109   supports an unlimited number of sessions.
110   Two new fields of type ``uint16_t`` have been added:
111   ``min_mbuf_headroom_req`` and ``min_mbuf_tailroom_req``.
112   These parameters specify the recommended headroom and tailroom for mbufs
113   to be processed by the PMD.
114
115 * cryptodev: Following functions were deprecated and are removed in 18.08:
116
117   - ``rte_cryptodev_queue_pair_start``
118   - ``rte_cryptodev_queue_pair_stop``
119   - ``rte_cryptodev_queue_pair_attach_sym_session``
120   - ``rte_cryptodev_queue_pair_detach_sym_session``
121
122 * cryptodev: Following functions were deprecated and are replaced by
123   other functions in 18.08:
124
125   - ``rte_cryptodev_get_header_session_size`` is replaced with
126     ``rte_cryptodev_sym_get_header_session_size``
127   - ``rte_cryptodev_get_private_session_size`` is replaced with
128     ``rte_cryptodev_sym_get_private_session_size``
129
130 * cryptodev: Feature flag ``RTE_CRYPTODEV_FF_MBUF_SCATTER_GATHER`` is
131   replaced with the following more explicit flags:
132
133   - ``RTE_CRYPTODEV_FF_IN_PLACE_SGL``
134   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT``
135   - ``RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT``
136   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT``
137   - ``RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT``
138
139 * cryptodev: Renamed cryptodev experimental APIs:
140
141   Used user_data instead of private_data in following APIs to avoid confusion
142   with the existing session parameter ``sess_private_data[]`` and related APIs.
143
144   - ``rte_cryptodev_sym_session_set_private_data()`` changed to
145     ``rte_cryptodev_sym_session_set_user_data()``
146   - ``rte_cryptodev_sym_session_get_private_data()`` changed to
147     ``rte_cryptodev_sym_session_get_user_data()``
148
149 * compressdev: Feature flag ``RTE_COMP_FF_MBUF_SCATTER_GATHER`` is
150   replaced with the following more explicit flags:
151
152   - ``RTE_COMP_FF_OOP_SGL_IN_SGL_OUT``
153   - ``RTE_COMP_FF_OOP_SGL_IN_LB_OUT``
154   - ``RTE_COMP_FF_OOP_LB_IN_SGL_OUT``
155
156
157 ABI Changes
158 -----------
159
160 .. This section should contain ABI changes. Sample format:
161
162    * Add a short 1-2 sentence description of the ABI change
163      that was announced in the previous releases and made in this release.
164      Use fixed width quotes for ``function_names`` or ``struct_names``.
165      Use the past tense.
166
167    This section is a comment. Do not overwrite or remove it.
168    Also, make sure to start the actual text at the margin.
169    =========================================================
170
171
172 Removed Items
173 -------------
174
175 .. This section should contain removed items in this release. Sample format:
176
177    * Add a short 1-2 sentence description of the removed item
178      in the past tense.
179
180    This section is a comment. Do not overwrite or remove it.
181    Also, make sure to start the actual text at the margin.
182    =========================================================
183
184
185 Shared Library Versions
186 -----------------------
187
188 .. Update any library version updated in this release
189    and prepend with a ``+`` sign, like this:
190
191      librte_acl.so.2
192    + librte_cfgfile.so.2
193      librte_cmdline.so.2
194
195    This section is a comment. Do not overwrite or remove it.
196    =========================================================
197
198 The libraries prepended with a plus sign were incremented in this version.
199
200 .. code-block:: diff
201
202      librte_acl.so.2
203      librte_bbdev.so.1
204      librte_bitratestats.so.2
205      librte_bpf.so.1
206      librte_bus_dpaa.so.1
207      librte_bus_fslmc.so.1
208      librte_bus_pci.so.1
209      librte_bus_vdev.so.1
210    + librte_bus_vmbus.so.1
211      librte_cfgfile.so.2
212      librte_cmdline.so.2
213      librte_common_octeontx.so.1
214      librte_compressdev.so.1
215    + librte_cryptodev.so.5
216      librte_distributor.so.1
217      librte_eal.so.7
218      librte_ethdev.so.9
219      librte_eventdev.so.4
220      librte_flow_classify.so.1
221      librte_gro.so.1
222      librte_gso.so.1
223      librte_hash.so.2
224      librte_ip_frag.so.1
225      librte_jobstats.so.1
226      librte_kni.so.2
227      librte_kvargs.so.1
228      librte_latencystats.so.1
229      librte_lpm.so.2
230      librte_mbuf.so.4
231      librte_mempool.so.4
232      librte_meter.so.2
233      librte_metrics.so.1
234      librte_net.so.1
235      librte_pci.so.1
236      librte_pdump.so.2
237      librte_pipeline.so.3
238      librte_pmd_bnxt.so.2
239      librte_pmd_bond.so.2
240      librte_pmd_i40e.so.2
241      librte_pmd_ixgbe.so.2
242      librte_pmd_dpaa2_cmdif.so.1
243      librte_pmd_dpaa2_qdma.so.1
244      librte_pmd_ring.so.2
245      librte_pmd_softnic.so.1
246      librte_pmd_vhost.so.2
247      librte_port.so.3
248      librte_power.so.1
249      librte_rawdev.so.1
250      librte_reorder.so.1
251      librte_ring.so.2
252      librte_sched.so.1
253      librte_security.so.1
254      librte_table.so.3
255      librte_timer.so.1
256      librte_vhost.so.3
257
258
259 Known Issues
260 ------------
261
262 .. This section should contain new known issues in this release. Sample format:
263
264    * **Add title in present tense with full stop.**
265
266      Add a short 1-2 sentence description of the known issue
267      in the present tense. Add information on any known workarounds.
268
269    This section is a comment. Do not overwrite or remove it.
270    Also, make sure to start the actual text at the margin.
271    =========================================================
272
273
274 Tested Platforms
275 ----------------
276
277 .. This section should contain a list of platforms that were tested
278    with this release.
279
280    The format is:
281
282    * <vendor> platform with <vendor> <type of devices> combinations
283
284      * List of CPU
285      * List of OS
286      * List of devices
287      * Other relevant details...
288
289    This section is a comment. Do not overwrite or remove it.
290    Also, make sure to start the actual text at the margin.
291    =========================================================