1 ABI and API Deprecation
2 =======================
4 See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
5 API and ABI deprecation notices are to be posted here.
11 * eal: both declaring and identifying devices will be streamlined in v18.05.
12 New functions will appear to query a specific port from buses, classes of
13 device and device drivers. Device declaration will be made coherent with the
14 new scheme of device identification.
15 As such, ``rte_devargs`` device representation will change.
17 - removal of ``name`` and ``args`` fields.
18 - The enum ``rte_devtype`` was used to identify a bus and will disappear.
19 - The ``rte_devargs_list`` will be made private.
20 - Functions previously deprecated will change or disappear:
22 + ``rte_eal_devargs_add``
23 + ``rte_eal_devargs_type_count``
24 + ``rte_eal_parse_devargs_str``, replaced by ``rte_eal_devargs_parse``
25 + ``rte_eal_devargs_parse`` will change its format and use.
26 + all ``rte_devargs`` related functions will be renamed, changing the
27 ``rte_eal_devargs_`` prefix to ``rte_devargs_``.
29 * pci: Several exposed functions are misnamed.
30 The following functions are deprecated starting from v17.11 and are replaced:
32 - ``eal_parse_pci_BDF`` replaced by ``rte_pci_addr_parse``
33 - ``eal_parse_pci_DomBDF`` replaced by ``rte_pci_addr_parse``
34 - ``rte_eal_compare_pci_addr`` replaced by ``rte_pci_addr_cmp``
36 * eal: The semantics of the return value for the ``rte_lcore_has_role`` function
37 are planned to change in v18.05. The function currently returns 0 and <0 for
38 success and failure, respectively. This will change to 1 and 0 for true and
39 false, respectively, to make use of the function more intuitive.
41 * eal: new ``numa_node_count`` member will be added to ``rte_config`` structure
44 * eal: due to internal data layout reorganization, there will be changes to
45 several structures and functions as a result of coming changes to support
46 memory hotplug in v18.05.
47 ``rte_eal_get_physmem_layout`` will be deprecated and removed in subsequent
49 ``rte_mem_config`` contents will change due to switch to memseg lists.
50 ``rte_memzone`` member ``memseg_id`` will no longer serve any useful purpose
53 * eal: a new set of mbuf mempool ops name APIs for user, platform and best
54 mempool names have been defined in ``rte_mbuf`` in v18.02. The uses of
55 ``rte_eal_mbuf_default_mempool_ops`` shall be replaced by
56 ``rte_mbuf_best_mempool_ops``.
57 The following function is now redundant and it is target to be deprecated
60 - ``rte_eal_mbuf_default_mempool_ops``
62 * mempool: several API and ABI changes are planned in v18.05.
63 The following functions, introduced for Xen, which is not supported
64 anymore since v17.11, are hard to use, not used anywhere else in DPDK.
65 Therefore they will be deprecated in v18.05 and removed in v18.08:
67 - ``rte_mempool_xmem_create``
68 - ``rte_mempool_xmem_size``
69 - ``rte_mempool_xmem_usage``
71 The following changes are planned:
73 - removal of ``get_capabilities`` mempool ops and related flags.
74 - substitute ``register_memory_area`` with ``populate`` ops.
75 - addition of new ops to customize required memory chunk calculation,
76 customize objects population and allocate contiguous
77 block of objects if underlying driver supports it.
79 * ethdev: a new Tx and Rx offload API was introduced on 17.11.
80 In the new API, offloads are divided into per-port and per-queue offloads.
81 Offloads are disabled by default and enabled per application request.
82 The old offloads API is target to be deprecated on 18.05. This includes:
84 - removal of ``ETH_TXQ_FLAGS_NO*`` flags.
85 - removal of ``txq_flags`` field from ``rte_eth_txconf`` struct.
86 - removal of the offloads bit-field from ``rte_eth_rxmode`` struct.
88 * ethdev: the legacy filter API, including
89 ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
90 as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR,
91 HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in
92 PMDs that implement the latter.
93 Target release for removal of the legacy API will be defined once most
94 PMDs have switched to rte_flow.
96 * i40e: The default flexible payload configuration which extracts the first 16
97 bytes of the payload for RSS will be deprecated starting from 18.02. If
98 required the previous behavior can be configured using existing flow
99 director APIs. There is no ABI/API break. This change will just remove a
100 global configuration setting and require explicit configuration.
102 * librte_meter: The API will change to accommodate configuration profiles.
103 Most of the API functions will have an additional opaque parameter.
105 * ring: The alignment constraints on the ring structure will be relaxed
106 to one cache line instead of two, and an empty cache line padding will
107 be added between the producer and consumer structures. The size of the
108 structure and the offset of the fields will remain the same on
109 platforms with 64B cache line, but will change on other platforms.