New upstream version 18.11
[deb_dpdk.git] / doc / guides / rel_notes / deprecation.rst
index e2dbee3..b48486d 100644 (file)
@@ -11,20 +11,19 @@ API and ABI deprecation notices are to be posted here.
 Deprecation Notices
 -------------------
 
-* eal: certain structures will change in EAL on account of upcoming external
-  memory support. Aside from internal changes leading to an ABI break, the
-  following externally visible changes will also be implemented:
-
-  - ``rte_memseg_list`` will change to include a boolean flag indicating
-    whether a particular memseg list is externally allocated. This will have
-    implications for any users of memseg-walk-related functions, as they will
-    now have to skip externally allocated segments in most cases if the intent
-    is to only iterate over internal DPDK memory.
-  - ``socket_id`` parameter across the entire DPDK will gain additional meaning,
-    as some socket ID's will now be representing externally allocated memory. No
-    changes will be required for existing code as backwards compatibility will
-    be kept, and those who do not use this feature will not see these extra
-    socket ID's.
+* linux: Linux kernel version 3.2 (which is the current minimum required
+  version for the DPDK) is not maintained anymore. Therefore the planned
+  minimum required kernel version for DPDK 19.02 will be the next oldest
+  Long Term Stable (LTS) version which is 3.16, but compatibility for
+  recent distribution kernels will be kept.
+
+* kvargs: The function ``rte_kvargs_process`` will get a new parameter
+  for returning key match count. It will ease handling of no-match case.
+
+* eal: function ``rte_bsf64`` in ``rte_bitmap.h`` has been renamed to
+  ``rte_bsf64_safe`` and moved to ``rte_common.h``. A new ``rte_bsf64`` function
+  will be added in the next release in ``rte_common.h`` that follows convention
+  set by existing ``rte_bsf32`` function.
 
 * eal: both declaring and identifying devices will be streamlined in v18.11.
   New functions will appear to query a specific port from buses, classes of
@@ -44,11 +43,22 @@ Deprecation Notices
   - ``eal_parse_pci_DomBDF`` replaced by ``rte_pci_addr_parse``
   - ``rte_eal_compare_pci_addr`` replaced by ``rte_pci_addr_cmp``
 
+* dpaa2: removal of ``rte_dpaa2_memsegs`` structure which has been replaced
+  by a pa-va search library. This structure was earlier being used for holding
+  memory segments used by dpaa2 driver for faster pa->va translation. This
+  structure would be made internal (or removed if all dependencies are cleared)
+  in future releases.
+
 * mbuf: The opaque ``mbuf->hash.sched`` field will be updated to support generic
   definition in line with the ethdev TM and MTR APIs. Currently, this field
   is defined in librte_sched in a non-generic way. The new generic format
   will contain: queue ID, traffic class, color. Field size will not change.
 
+* sched: Some API functions will change prototype due to the above
+  deprecation note for mbuf->hash.sched, e.g. ``rte_sched_port_pkt_write()``
+  and ``rte_sched_port_pkt_read()`` will likely have an additional parameter
+  of type ``struct rte_sched_port``.
+
 * mbuf: the macro ``RTE_MBUF_INDIRECT()`` will be removed in v18.08 or later and
   replaced with ``RTE_MBUF_CLONED()`` which is already added in v18.05. As
   ``EXT_ATTACHED_MBUF`` is newly introduced in v18.05, ``RTE_MBUF_INDIRECT()``
@@ -56,12 +66,6 @@ Deprecation Notices
   experimental API ``rte_pktmbuf_attach_extbuf()`` is used. Removal of the macro
   is to fix this semantic inconsistency.
 
-* ethdev: In v18.11 ``DEV_RX_OFFLOAD_CRC_STRIP`` offload flag will be removed, default
-  behavior without any flag will be changed to CRC strip.
-  To keep CRC ``DEV_RX_OFFLOAD_KEEP_CRC`` flag is required.
-  ``KEEP_CRC``: Keep CRC in packet
-  No flag: Strip CRC from packet
-
 * ethdev: the legacy filter API, including
   ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
   as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR,
@@ -70,17 +74,30 @@ Deprecation Notices
   Target release for removal of the legacy API will be defined once most
   PMDs have switched to rte_flow.
 
-* ethdev: In v18.11 ``rte_eth_dev_attach()`` and ``rte_eth_dev_detach()``
-  will be removed.
-  Hotplug functions ``rte_eal_hotplug_add()`` and ``rte_eal_hotplug_remove()``
-  should be used instread.
-  Function ``rte_eth_dev_get_port_by_name()`` may be used to find
-  identifier of the added port.
+* ethdev: Maximum and minimum MTU values vary between hardware devices. In
+  hardware agnostic DPDK applications access to such information would allow
+  a more accurate way of validating and setting supported MTU values on a per
+  device basis rather than using a defined default for all devices. To
+  resolve this, the following members will be added to ``rte_eth_dev_info``.
+  Note: these can be added to fit a hole in the existing structure for amd64
+  but not for 32-bit, as such ABI change will occur as size of the structure
+  will increase.
 
-* eal: In v18.11 ``rte_eal_dev_attach()`` and ``rte_eal_dev_detach()``
-  will be removed.
-  Hotplug functions ``rte_eal_hotplug_add()`` and ``rte_eal_hotplug_remove()``
-  should be used directly.
+  - Member ``uint16_t min_mtu`` the minimum MTU allowed.
+  - Member ``uint16_t max_mtu`` the maximum MTU allowed.
+
+* security: New field ``uint64_t opaque_data`` is planned to be added into
+  ``rte_security_session`` structure. That would allow upper layer to easily
+  associate/de-associate some user defined data with the security session.
+
+* cryptodev: several API and ABI changes are planned for rte_cryptodev
+  in v19.02:
+
+  - The size and layout of ``rte_cryptodev_sym_session`` will change
+    to fix existing issues.
+  - The size and layout of ``rte_cryptodev_qp_conf`` and syntax of
+    ``rte_cryptodev_queue_pair_setup`` will change to to allow to use
+    two different mempools for crypto and device private sessions.
 
 * pdump: As we changed to use generic IPC, some changes in APIs and structure
   are expected in subsequent release.
@@ -88,10 +105,3 @@ Deprecation Notices
   - ``rte_pdump_set_socket_dir`` will be removed;
   - The parameter, ``path``, of ``rte_pdump_init`` will be removed;
   - The enum ``rte_pdump_socktype`` will be removed.
-
-* ethdev: flow API function ``rte_flow_copy()`` will be deprecated in v18.11
-  in favor of ``rte_flow_conv()`` (which will appear in that version) and
-  subsequently removed for v19.02.
-
-  This is due to a lack of flexibility and reliance on a type unusable with
-  C++ programs (struct rte_flow_desc).