eal: introduce internal wrappers for file operations
[dpdk.git] / doc / guides / rel_notes / deprecation.rst
index 0b5d90f..0bee924 100644 (file)
@@ -23,27 +23,29 @@ Deprecation Notices
 * eal: The function ``rte_eal_remote_launch`` will return new error codes
   after read or write error on the pipe, instead of calling ``rte_panic``.
 
 * eal: The function ``rte_eal_remote_launch`` will return new error codes
   after read or write error on the pipe, instead of calling ``rte_panic``.
 
-* 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
-  device and device drivers. Device declaration will be made coherent with the
-  new scheme of device identification.
-  As such, ``rte_devargs`` device representation will change.
-
-  - The enum ``rte_devtype`` was used to identify a bus and will disappear.
-  - Functions previously deprecated will change or disappear:
-
-    + ``rte_eal_devargs_type_count``
-
 * eal: The ``rte_logs`` struct and global symbol will be made private to
   remove it from the externally visible ABI and allow it to be updated in the
   future.
 
 * eal: The ``rte_logs`` struct and global symbol will be made private to
   remove it from the externally visible ABI and allow it to be updated in the
   future.
 
+* rte_atomicNN_xxx: These APIs do not take memory order parameter. This does
+  not allow for writing optimized code for all the CPU architectures supported
+  in DPDK. DPDK will adopt C11 atomic operations semantics and provide wrappers
+  using C11 atomic built-ins. These wrappers must be used for patches that
+  need to be merged in 20.08 onwards. This change will not introduce any
+  performance degradation.
+
+* rte_smp_*mb: These APIs provide full barrier functionality. However, many
+  use cases do not require full barriers. To support such use cases, DPDK will
+  adopt C11 barrier semantics and provide wrappers using C11 atomic built-ins.
+  These wrappers must be used for patches that need to be merged in 20.08
+  onwards. This change will not introduce any performance degradation.
+
 * igb_uio: In the view of reducing the kernel dependency from the main tree,
   as a first step, the Technical Board decided to move ``igb_uio``
   kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory
   in 20.11.
   Minutes of Technical Board Meeting of `2019-11-06
 * igb_uio: In the view of reducing the kernel dependency from the main tree,
   as a first step, the Technical Board decided to move ``igb_uio``
   kernel module to the dpdk-kmods repository in the /linux/igb_uio/ directory
   in 20.11.
   Minutes of Technical Board Meeting of `2019-11-06
-  <http://mails.dpdk.org/archives/dev/2019-November/151763.html>`_.
+  <https://mails.dpdk.org/archives/dev/2019-November/151763.html>`_.
 
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
 
 * lib: will fix extending some enum/define breaking the ABI. There are multiple
   samples in DPDK that enum/define terminated with a ``.*MAX.*`` value which is
@@ -59,16 +61,14 @@ Deprecation Notices
   us extending existing enum/define.
   One solution can be using a fixed size array instead of ``.*MAX.*`` value.
 
   us extending existing enum/define.
   One solution can be using a fixed size array instead of ``.*MAX.*`` value.
 
-* 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.
-
-* mempool: starting from v20.05, the API of rte_mempool_populate_iova()
-  and rte_mempool_populate_virt() will change to return 0 instead
-  of -EINVAL when there is not enough room to store one object. The ABI
-  will be preserved until 20.11.
+* ethdev: Split the ``struct eth_dev_ops`` struct to hide it as much as possible
+  will be done in 20.11.
+  Currently the ``struct eth_dev_ops`` struct is accessible by the application
+  because some inline functions, like ``rte_eth_tx_descriptor_status()``,
+  access the struct directly.
+  The struct will be separate in two, the ops used by inline functions will be
+  moved next to Rx/Tx burst functions, rest of the ``struct eth_dev_ops`` struct
+  will be moved to header file for drivers to hide it from applications.
 
 * ethdev: the legacy filter API, including
   ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
 
 * ethdev: the legacy filter API, including
   ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
@@ -93,6 +93,18 @@ Deprecation Notices
   In 19.11 PMDs will still update the field even when the offload is not
   enabled.
 
   In 19.11 PMDs will still update the field even when the offload is not
   enabled.
 
+* ethdev: ``rx_descriptor_done`` dev_ops and ``rte_eth_rx_descriptor_done``
+  will be deprecated in 20.11 and will be removed in 21.11.
+  Existing ``rte_eth_rx_descriptor_status`` and ``rte_eth_tx_descriptor_status``
+  APIs can be used as replacement.
+
+* traffic manager: All traffic manager API's in ``rte_tm.h`` were mistakenly made
+  ABI stable in the v19.11 release. The TM maintainer and other contributors have
+  agreed to keep the TM APIs as experimental in expectation of additional spec
+  improvements. Therefore, all APIs in ``rte_tm.h`` will be marked back as
+  experimental in v20.11 DPDK release. For more details, please see `the thread
+  <https://mails.dpdk.org/archives/dev/2020-April/164970.html>`_.
+
 * cryptodev: support for using IV with all sizes is added, J0 still can
   be used but only when IV length in following structs ``rte_crypto_auth_xform``,
   ``rte_crypto_aead_xform`` is set to zero. When IV length is greater or equal
 * cryptodev: support for using IV with all sizes is added, J0 still can
   be used but only when IV length in following structs ``rte_crypto_auth_xform``,
   ``rte_crypto_aead_xform`` is set to zero. When IV length is greater or equal
@@ -112,3 +124,17 @@ Deprecation Notices
   to set new power environment if power environment was already initialized.
   In this case the function will return -1 unless the environment is unset first
   (using ``rte_power_unset_env``). Other function usage scenarios will not change.
   to set new power environment if power environment was already initialized.
   In this case the function will return -1 unless the environment is unset first
   (using ``rte_power_unset_env``). Other function usage scenarios will not change.
+
+* python: Since the beginning of 2020, Python 2 has officially reached
+  end-of-support: https://www.python.org/doc/sunset-python-2/.
+  Python 2 support will be completely removed in 20.11.
+  In 20.08, explicit deprecation warnings will be displayed when running
+  scripts with Python 2.
+
+* pci: Remove ``RTE_KDRV_NONE`` based device driver probing.
+  In order to optimize the DPDK PCI enumeration management, ``RTE_KDRV_NONE``
+  based device driver probing will be removed in v20.08.
+  The legacy virtio is the only consumer of ``RTE_KDRV_NONE`` based device
+  driver probe scheme. The legacy virtio support will be available through
+  the existing VFIO/UIO based kernel driver scheme.
+  More details at https://patches.dpdk.org/patch/69351/