xref: /dpdk/doc/guides/rel_notes/deprecation.rst (revision 89f0711f9ddfb5822da9d34f384b92f72a61c4dc)
1ABI and API Deprecation
2=======================
3
4See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
5API and ABI deprecation notices are to be posted here.
6
7
8Deprecation Notices
9-------------------
10
11* eal: several API and ABI changes are planned for ``rte_devargs`` in v18.02.
12  The format of device command line parameters will change. The bus will need
13  to be explicitly stated in the device declaration. The enum ``rte_devtype``
14  was used to identify a bus and will disappear.
15  The structure ``rte_devargs`` will change.
16  The ``rte_devargs_list`` will be made private.
17  The following functions are deprecated starting from 17.08 and will either be
18  modified or removed in 18.02:
19
20  - ``rte_eal_devargs_add``
21  - ``rte_eal_devargs_type_count``
22  - ``rte_eal_parse_devargs_str``, replaced by ``rte_eal_devargs_parse``
23
24* pci: Several exposed functions are misnamed.
25  The following functions are deprecated starting from v17.11 and are replaced:
26
27  - ``eal_parse_pci_BDF`` replaced by ``rte_pci_addr_parse``
28  - ``eal_parse_pci_DomBDF`` replaced by ``rte_pci_addr_parse``
29  - ``rte_eal_compare_pci_addr`` replaced by ``rte_pci_addr_cmp``
30
31* ethdev: a new Tx and Rx offload API was introduced on 17.11.
32  In the new API, offloads are divided into per-port and per-queue offloads.
33  Offloads are disabled by default and enabled per application request.
34  The old offloads API is target to be deprecated on 18.05. This includes:
35
36  - removal of ``ETH_TXQ_FLAGS_NO*`` flags.
37  - removal of ``txq_flags`` field from ``rte_eth_txconf`` struct.
38  - removal of the offloads bit-field from ``rte_eth_rxmode`` struct.
39
40* ethdev: the legacy filter API, including
41  ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
42  as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR,
43  HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in
44  PMDs that implement the latter.
45  Target release for removal of the legacy API will be defined once most
46  PMDs have switched to rte_flow.
47
48* i40e: The default flexible payload configuration which extracts the first 16
49  bytes of the payload for RSS will be deprecated starting from 18.02. If
50  required the previous behavior can be configured using existing flow
51  director APIs. There is no ABI/API break. This change will just remove a
52  global configuration setting and require explicit configuration.
53
54* librte_meter: The API will change to accommodate configuration profiles.
55  Most of the API functions will have an additional opaque parameter.
56
57* ring: The alignment constraints on the ring structure will be relaxed
58  to one cache line instead of two, and an empty cache line padding will
59  be added between the producer and consumer structures. The size of the
60  structure and the offset of the fields will remain the same on
61  platforms with 64B cache line, but will change on other platforms.
62