numam-dpdk/doc/guides/rel_notes/deprecation.rst
Ziye Yang 2e14846d15 doc: announce ABI change for PCI class
The purpose of this patch is used to add a new field
"class" in rte_pci_id structure. The new class field includes
class_id, subcalss_id, programming interface of a pci device.
With this field, we can identify pci device by its class info,
which can be more flexible instead of probing the device by
vendor_id OR device_id OR subvendor_id OR subdevice_id.
For example, we can probe all nvme devices by class field, which
can be quite convenient.

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
2016-04-05 17:33:14 +02:00

57 lines
2.7 KiB
ReStructuredText

ABI and API Deprecation
=======================
See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
API and ABI deprecation notices are to be posted here.
Deprecation Notices
-------------------
* The EAL function pci_config_space_set is deprecated in release 16.04
and will be removed from 16.07.
Macros CONFIG_RTE_PCI_CONFIG, CONFIG_RTE_PCI_EXTENDED_TAG and
CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE will be removed.
The /sys entries extended_tag and max_read_request_size created by igb_uio
will be removed.
* ABI changes are planned for struct rte_pci_id, i.e., add new field ``class``.
This new added ``class`` field can be used to probe pci device by class
related info. This change should impact size of struct rte_pci_id and struct
rte_pci_device. The release 16.04 does not contain these ABI changes, but
release 16.07 will.
* The following fields have been deprecated in rte_eth_stats:
ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff
* ABI changes are planned for adding four new flow types. This impacts
RTE_ETH_FLOW_MAX. The release 2.2 does not contain these ABI changes,
but release 2.3 will. [postponed]
* ABI change is planned for the rte_mempool structure to allow mempool
cache support to be dynamic depending on the mempool being created
needing cache support. Saves about 1.5M of memory per rte_mempool structure
by removing the per lcore cache memory. Change will occur in DPDK 16.07
release and will skip the define RTE_NEXT_ABI in DPDK 16.04 release. The
code affected is app/test/test_mempool.c and librte_mempool/rte_mempool.[ch].
The rte_mempool.local_cache will be converted from an array to a pointer to
allow for dynamic allocation of the per lcore cache memory.
* The rte_mempool struct will be changed in 16.07 to facilitate the new
external mempool manager functionality.
The ring element will be replaced with a more generic 'pool' opaque pointer
to allow new mempool handlers to use their own user-defined mempool
layout. Also newly added to rte_mempool is a handler index.
The existing API will be backward compatible, but there will be new API
functions added to facilitate the creation of mempools using an external
handler. The 16.07 release will contain these changes.
* The rte_mempool allocation will be changed in 16.07:
allocation of large mempool in several virtual memory chunks, new API
to populate a mempool, new API to free a mempool, allocation in
anonymous mapping, drop of specific dom0 code. These changes will
induce a modification of the rte_mempool structure, plus a
modification of the API of rte_mempool_obj_iter(), implying a breakage
of the ABI.