+* eal: To be more inclusive in choice of naming, the DPDK project
+ will replace uses of master/slave in the API's and command line arguments.
+
+ References to master/slave in relation to lcore will be renamed
+ to initial/worker. The function ``rte_get_master_lcore()``
+ will be renamed to ``rte_get_initial_lcore()``.
+ For the 20.11 release, both names will be present and the
+ old function will be marked with the deprecated tag.
+ The old function will be removed in a future version.
+
+ The iterator for worker lcores will also change:
+ ``RTE_LCORE_FOREACH_SLAVE`` will be replaced with
+ ``RTE_LCORE_FOREACH_WORKER``.
+
+ The ``master-lcore`` argument to testpmd will be replaced
+ with ``initial-lcore``. The old ``master-lcore`` argument
+ will produce a runtime notification in 20.11 release, and
+ be removed completely in a future release.
+
+* eal: The terms blacklist and whitelist to describe devices used
+ by DPDK will be replaced in the 20.11 relase.
+ This will apply to command line arguments as well as macros.
+
+ The macro ``RTE_DEV_BLACKLISTED`` will be replaced with ``RTE_DEV_EXCLUDED``
+ and ``RTE_DEV_WHITELISTED`` will be replaced with ``RTE_DEV_INCLUDED``
+ ``RTE_BUS_SCAN_BLACKLIST`` and ``RTE_BUS_SCAN_WHITELIST`` will be
+ replaced with ``RTE_BUS_SCAN_EXCLUDED`` and ``RTE_BUS_SCAN_INCLUDED``
+ respectively. Likewise ``RTE_DEVTYPE_BLACKLISTED_PCI`` and
+ ``RTE_DEVTYPE_WHITELISTED_PCI`` will be replaced with
+ ``RTE_DEVTYPE_EXCLUDED`` and ``RTE_DEVTYPE_INCLUDED``.
+
+ The old macros will be marked as deprecated in 20.11 and any
+ usage will cause a compile warning. They will be removed in
+ a future release.
+
+ The command line arguments to ``rte_eal_init`` will change from
+ ``-b, --pci-blacklist`` to ``-x, --exclude`` and
+ ``-w, --pci-whitelist`` to ``-i, --include``.
+ The old command line arguments will continue to be accepted in 20.11
+ but will cause a runtime warning message. The old arguments will
+ be removed in a future release.
+
+* 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``.
+
+* 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.
+
+* 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
+ used by iterators, and arrays holding these values are sized with this
+ ``.*MAX.*`` value. So extending this enum/define increases the ``.*MAX.*``
+ value which increases the size of the array and depending on how/where the
+ array is used this may break the ABI.
+ ``RTE_ETH_FLOW_MAX`` is one sample of the mentioned case, adding a new flow
+ type will break the ABI because of ``flex_mask[RTE_ETH_FLOW_MAX]`` array
+ usage in following public struct hierarchy:
+ ``rte_eth_fdir_flex_conf -> rte_fdir_conf -> rte_eth_conf (in the middle)``.
+ Need to identify this kind of usages and fix in 20.11, otherwise this blocks
+ us extending existing enum/define.
+ One solution can be using a fixed size array instead of ``.*MAX.*`` value.
+
+* mbuf: Some fields will be converted to dynamic API in DPDK 20.11
+ in order to reserve more space for the dynamic fields, as explained in
+ `this presentation <https://www.youtube.com/watch?v=Ttl6MlhmzWY>`_.
+ The following static fields will be moved as dynamic:
+
+ - ``timestamp``
+ - ``userdata`` / ``udata64``
+ - ``seqn``
+
+ As a consequence, the layout of the ``struct rte_mbuf`` will be re-arranged,
+ avoiding impact on vectorized implementation of the driver datapaths,
+ while evaluating performance gains of a better use of the first cache line.