2015-08-11 11:57:42 +00:00
|
|
|
ABI and API Deprecation
|
|
|
|
=======================
|
2015-07-08 02:08:25 +00:00
|
|
|
|
2015-08-11 12:49:52 +00:00
|
|
|
See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
|
2015-07-18 19:08:58 +00:00
|
|
|
API and ABI deprecation notices are to be posted here.
|
2015-02-02 17:40:22 +00:00
|
|
|
|
2015-07-08 02:08:25 +00:00
|
|
|
|
2015-02-02 17:40:22 +00:00
|
|
|
Deprecation Notices
|
|
|
|
-------------------
|
2015-07-08 02:08:25 +00:00
|
|
|
|
2017-04-04 16:40:37 +00:00
|
|
|
* eal: the following functions are deprecated starting from 17.05 and will
|
|
|
|
be removed in 17.08:
|
|
|
|
|
|
|
|
- ``rte_set_log_level``, replaced by ``rte_log_set_global_level``
|
|
|
|
- ``rte_get_log_level``, replaced by ``rte_log_get_global_level``
|
|
|
|
- ``rte_set_log_type``, replaced by ``rte_log_set_level``
|
|
|
|
- ``rte_get_log_type``, replaced by ``rte_log_get_level``
|
|
|
|
|
2017-05-10 15:46:10 +00:00
|
|
|
* devargs: An ABI change is planned for 17.08 for the structure ``rte_devargs``.
|
|
|
|
The current version is dependent on bus-specific device identifier, which will
|
|
|
|
be made generic and abstracted, in order to make the EAL bus-agnostic.
|
|
|
|
|
|
|
|
Accompanying this evolution, device command line parameters will thus support
|
|
|
|
explicit bus definition in a device declaration.
|
|
|
|
|
doc: announce iomem and ioport removal from igb_uio
In igb_uio, iomem is mapped, and both ioport and io mem are recorded
into uio framework (then into sysfs files), which is duplicated with
what Linux has already provided for user space, and makes the code
too complex.
For iomem, DPDK user space code never opens or reads files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/. Instead,
/sys/pci/bus/devices/xxxx:xx:xx.x/resourceY are used to map device
memory.
For ioport, non-x86 platforms cannot read from files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/ directly, because
non-x86 platforms need to map port region for access in user space,
see non-x86 version pci_uio_ioport_map(). x86 platforms can use the
the same way as uio_pci_generic.
This will remove iomem and ioport mapping in igb_uio kernel module,
and adjusts the iomem implementation in both igb_uio and
uio_pci_generic:
- for x86 platform, get ports info from /proc/ioports;
- for non-x86 platform, map and get ports info by pci_uio_ioport_map().
Note: this will affect those applications who are using files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/ and
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/.
Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Remy Horton <remy.horton@intel.com>
2016-09-22 05:44:05 +00:00
|
|
|
* 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
|
2017-02-09 16:06:46 +00:00
|
|
|
targets release 17.05.
|
doc: announce iomem and ioport removal from igb_uio
In igb_uio, iomem is mapped, and both ioport and io mem are recorded
into uio framework (then into sysfs files), which is duplicated with
what Linux has already provided for user space, and makes the code
too complex.
For iomem, DPDK user space code never opens or reads files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/. Instead,
/sys/pci/bus/devices/xxxx:xx:xx.x/resourceY are used to map device
memory.
For ioport, non-x86 platforms cannot read from files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/ directly, because
non-x86 platforms need to map port region for access in user space,
see non-x86 version pci_uio_ioport_map(). x86 platforms can use the
the same way as uio_pci_generic.
This will remove iomem and ioport mapping in igb_uio kernel module,
and adjusts the iomem implementation in both igb_uio and
uio_pci_generic:
- for x86 platform, get ports info from /proc/ioports;
- for non-x86 platform, map and get ports info by pci_uio_ioport_map().
Note: this will affect those applications who are using files under
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/ and
/sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/.
Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Remy Horton <remy.horton@intel.com>
2016-09-22 05:44:05 +00:00
|
|
|
|
2017-02-13 12:01:48 +00:00
|
|
|
* 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 to ``rte_*`` naming convention
|
|
|
|
and exported from librte_eal.
|
|
|
|
|
2017-04-11 11:07:34 +00:00
|
|
|
* The VDEV subsystem will be converted as driver of the new bus model.
|
2017-02-13 16:20:34 +00:00
|
|
|
It will imply some EAL API changes in 17.05.
|
|
|
|
|
|
|
|
* ``eth_driver`` is planned to be removed in 17.05. This currently serves as
|
2016-11-10 11:17:58 +00:00
|
|
|
a placeholder for PMDs to register themselves. Changes for ``rte_bus`` will
|
|
|
|
provide a way to handle device initialization currently being done in
|
2017-02-13 16:20:34 +00:00
|
|
|
``eth_driver``. Similarly, ``rte_pci_driver`` is planned to be removed from
|
|
|
|
``rte_cryptodev_driver`` in 17.05.
|
2016-11-10 11:17:58 +00:00
|
|
|
|
2017-02-13 14:26:44 +00:00
|
|
|
* ethdev: An API change is planned for 17.05 for the function
|
|
|
|
``_rte_eth_dev_callback_process``. In 17.05 the function will return an ``int``
|
2016-10-18 13:38:08 +00:00
|
|
|
instead of ``void`` and a fourth parameter ``void *ret_param`` will be added.
|
|
|
|
|
2017-01-05 15:25:36 +00:00
|
|
|
* 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``.
|
|
|
|
|
mbuf: add new Rx flags for stripped VLAN
The behavior of PKT_RX_VLAN_PKT was not very well defined, resulting in
PMDs not advertising the same flags in similar conditions.
Following discussion in [1], introduce 2 new flags PKT_RX_VLAN_STRIPPED
and PKT_RX_QINQ_STRIPPED that are better defined:
PKT_RX_VLAN_STRIPPED: a vlan has been stripped by the hardware and its
tci is saved in mbuf->vlan_tci. This can only happen if vlan stripping
is enabled in the RX configuration of the PMD.
For now, the old flag PKT_RX_VLAN_PKT is kept but marked as deprecated.
It should be removed from applications and PMDs in a future revision.
This patch also updates the drivers. For PKT_RX_VLAN_PKT:
- e1000, enic, i40e, mlx5, nfp, vmxnet3: done, PKT_RX_VLAN_PKT already
had the same meaning than PKT_RX_VLAN_STRIPPED, minor update is
required.
- fm10k: done, PKT_RX_VLAN_PKT already had the same meaning than
PKT_RX_VLAN_STRIPPED, and vlan stripping is always enabled on fm10k.
- ixgbe: modification done (vector and normal), the old flag was set
when a vlan was recognized, even if vlan stripping was disabled.
- the other drivers do not support vlan stripping.
For PKT_RX_QINQ_PKT, it was only supported on i40e, and the behavior was
already correct, so we can reuse the same bit value for
PKT_RX_QINQ_STRIPPED.
[1] http://dpdk.org/ml/archives/dev/2016-April/037837.html,
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-06-15 11:48:07 +00:00
|
|
|
* 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
|
2017-02-13 11:05:26 +00:00
|
|
|
their behavior will be kept until 17.02 and will be removed in 17.05.
|
mempool: deprecate specific get and put functions
This commit introduces the API calls:
rte_mempool_generic_put(mp, obj_table, n, is_mp)
rte_mempool_generic_get(mp, obj_table, n, is_mc)
Deprecates the API calls:
rte_mempool_mp_put_bulk(mp, obj_table, n)
rte_mempool_sp_put_bulk(mp, obj_table, n)
rte_mempool_mp_put(mp, obj)
rte_mempool_sp_put(mp, obj)
rte_mempool_mc_get_bulk(mp, obj_table, n)
rte_mempool_sc_get_bulk(mp, obj_table, n)
rte_mempool_mc_get(mp, obj_p)
rte_mempool_sc_get(mp, obj_p)
We also check cookies in one place now.
Signed-off-by: Lazaros Koromilas <l@nofutznetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-06-28 23:47:36 +00:00
|
|
|
|
2016-12-21 14:51:19 +00:00
|
|
|
* 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.
|
2017-04-05 16:03:23 +00:00
|
|
|
|
|
|
|
* 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 by ``rte_cryptodev_scheduler_mode_get``
|
|
|
|
- ``rte_crpytodev_scheduler_mode_set``, replaced by ``rte_cryptodev_scheduler_mode_set``
|