13. ABI and API Deprecation¶
See the guidelines document for details of the ABI policy. API and ABI deprecation notices are to be posted here.
13.1. Deprecation Notices¶
eal: the following functions are deprecated starting from 17.05 and will be removed in 17.08:
rte_set_log_level
, replaced byrte_log_set_global_level
rte_get_log_level
, replaced byrte_log_get_global_level
rte_set_log_type
, replaced byrte_log_set_level
rte_get_log_type
, replaced byrte_log_get_level
igb_uio: iomem mapping and sysfs files created for iomem and ioport in igb_uio will be removed, because we are able to detect these from what Linux has exposed, like the way we have done with uio-pci-generic. This change targets release 17.05.
vfio: Some functions are planned to be exported outside librte_eal in 17.05. VFIO APIs like
vfio_setup_device
,vfio_get_group_fd
can be used by subsystem other than EAL/PCI. For that, these need to be exported symbols. Such APIs are planned to be renamed according torte_*
naming convention and exported from librte_eal.The VDEV subsystem will be converted as driver of the new bus model. It will imply some EAL API changes in 17.05.
eth_driver
is planned to be removed in 17.05. This currently serves as a placeholder for PMDs to register themselves. Changes forrte_bus
will provide a way to handle device initialization currently being done ineth_driver
. Similarly,rte_pci_driver
is planned to be removed fromrte_cryptodev_driver
in 17.05.ethdev: An API change is planned for 17.05 for the function
_rte_eth_dev_callback_process
. In 17.05 the function will return anint
instead ofvoid
and a fourth parametervoid *ret_param
will be added.ethdev: for 17.05 it is planned to deprecate the following nine rte_eth_dev_* functions and move them into the ixgbe PMD:
rte_eth_dev_bypass_init
,rte_eth_dev_bypass_state_set
,rte_eth_dev_bypass_state_show
,rte_eth_dev_bypass_event_store
,rte_eth_dev_bypass_event_show
,rte_eth_dev_wd_timeout_store
,rte_eth_dev_bypass_wd_timeout_show
,rte_eth_dev_bypass_ver_show
,rte_eth_dev_bypass_wd_reset
.The following fields will be removed from
struct eth_dev_ops
:bypass_init_t
,bypass_state_set_t
,bypass_state_show_t
,bypass_event_set_t
,bypass_event_show_t
,bypass_wd_timeout_set_t
,bypass_wd_timeout_show_t
,bypass_ver_show_t
,bypass_wd_reset_t
.The functions will be renamed to the following, and moved to the
ixgbe
PMD:rte_pmd_ixgbe_bypass_init
,rte_pmd_ixgbe_bypass_state_set
,rte_pmd_ixgbe_bypass_state_show
,rte_pmd_ixgbe_bypass_event_set
,rte_pmd_ixgbe_bypass_event_show
,rte_pmd_ixgbe_bypass_wd_timeout_set
,rte_pmd_ixgbe_bypass_wd_timeout_show
,rte_pmd_ixgbe_bypass_ver_show
,rte_pmd_ixgbe_bypass_wd_reset
.The mbuf flags PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated and are respectively replaced by PKT_RX_VLAN_STRIPPED and PKT_RX_QINQ_STRIPPED, that are better described. The old flags and their behavior will be kept until 17.02 and will be removed in 17.05.
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.crypto/scheduler: the following two functions are deprecated starting from 17.05 and will be removed in 17.08:
rte_crpytodev_scheduler_mode_get
, replaced byrte_cryptodev_scheduler_mode_get
rte_crpytodev_scheduler_mode_set
, replaced byrte_cryptodev_scheduler_mode_set