14. ABI and API Deprecation
See the guidelines document for details of the ABI policy. API and ABI deprecation notices are to be posted here.
14.1. Deprecation Notices
- eal: several API and ABI changes are planned for
rte_devargs
in v18.02. The format of device command line parameters will change. The bus will need to be explicitly stated in the device declaration. The enumrte_devtype
was used to identify a bus and will disappear. The structurerte_devargs
will change. Therte_devargs_list
will be made private. The following functions are deprecated starting from 17.08 and will either be modified or removed in 18.02:rte_eal_devargs_add
rte_eal_devargs_type_count
rte_eal_parse_devargs_str
, replaced byrte_eal_devargs_parse
- pci: Several exposed functions are misnamed.
The following functions are deprecated starting from v17.11 and are replaced:
eal_parse_pci_BDF
replaced byrte_pci_addr_parse
eal_parse_pci_DomBDF
replaced byrte_pci_addr_parse
rte_eal_compare_pci_addr
replaced byrte_pci_addr_cmp
- ethdev: a new Tx and Rx offload API was introduced on 17.11.
In the new API, offloads are divided into per-port and per-queue offloads.
Offloads are disabled by default and enabled per application request.
The old offloads API is target to be deprecated on 18.05. This includes:
- removal of
ETH_TXQ_FLAGS_NO*
flags. - removal of
txq_flags
field fromrte_eth_txconf
struct. - removal of the offloads bit-field from
rte_eth_rxmode
struct.
- removal of
- 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, HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in PMDs that implement the latter. Target release for removal of the legacy API will be defined once most PMDs have switched to rte_flow. - i40e: The default flexible payload configuration which extracts the first 16 bytes of the payload for RSS will be deprecated starting from 18.02. If required the previous behavior can be configured using existing flow director APIs. There is no ABI/API break. This change will just remove a global configuration setting and require explicit configuration.
- librte_meter: The API will change to accommodate configuration profiles. Most of the API functions will have an additional opaque parameter.