pci: remove deprecated specific config
[dpdk.git] / doc / guides / rel_notes / deprecation.rst
1 ABI and API Deprecation
2 =======================
3
4 See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
5 API and ABI deprecation notices are to be posted here.
6
7
8 Deprecation Notices
9 -------------------
10
11 * The ethdev hotplug API is going to be moved to EAL with a notification
12   mechanism added to crypto and ethdev libraries so that hotplug is now
13   available to both of them. This API will be stripped of the device arguments
14   so that it only cares about hotplugging.
15
16 * Structures embodying pci and vdev devices are going to be reworked to
17   integrate new common rte_device / rte_driver objects (see
18   http://dpdk.org/ml/archives/dev/2016-January/031390.html).
19   ethdev and crypto libraries will then only handle those objects so that they
20   do not need to care about the kind of devices that are being used, making it
21   easier to add new buses later.
22
23 * ABI changes are planned for struct rte_pci_id, i.e., add new field ``class``.
24   This new added ``class`` field can be used to probe pci device by class
25   related info. This change should impact size of struct rte_pci_id and struct
26   rte_pci_device. The release 16.04 does not contain these ABI changes, but
27   release 16.07 will.
28
29 * The following fields have been deprecated in rte_eth_stats:
30   ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
31   tx_pause_xon, rx_pause_xon, tx_pause_xoff, rx_pause_xoff
32
33 * The xstats API and rte_eth_xstats struct will be changed to allow retrieval
34   of values without any string copies or parsing.
35   No backwards compatibility is planned, as it would require code duplication
36   in every PMD that supports xstats.
37
38 * ABI changes are planned for adding four new flow types. This impacts
39   RTE_ETH_FLOW_MAX. The release 2.2 does not contain these ABI changes,
40   but release 2.3 will. [postponed]
41
42 * ABI change is planned for the rte_mempool structure to allow mempool
43   cache support to be dynamic depending on the mempool being created
44   needing cache support. Saves about 1.5M of memory per rte_mempool structure
45   by removing the per lcore cache memory. Change will occur in DPDK 16.07
46   release and will skip the define RTE_NEXT_ABI in DPDK 16.04 release. The
47   code affected is app/test/test_mempool.c and librte_mempool/rte_mempool.[ch].
48   The rte_mempool.local_cache will be converted from an array to a pointer to
49   allow for dynamic allocation of the per lcore cache memory.
50
51 * ABI will change for rte_mempool struct to move the cache-related fields
52   to the more appropriate rte_mempool_cache struct. The mempool API is
53   also changed to enable external cache management that is not tied to EAL
54   threads. Some mempool get and put calls are removed in favor of a more
55   compact API. The ones that remain are backwards compatible and use the
56   per-lcore default cache if available. This change targets release 16.07.
57
58 * The rte_mempool struct will be changed in 16.07 to facilitate the new
59   external mempool manager functionality.
60   The ring element will be replaced with a more generic 'pool' opaque pointer
61   to allow new mempool handlers to use their own user-defined mempool
62   layout. Also newly added to rte_mempool is a handler index.
63   The existing API will be backward compatible, but there will be new API
64   functions added to facilitate the creation of mempools using an external
65   handler. The 16.07 release will contain these changes.
66
67 * The rte_mempool allocation will be changed in 16.07:
68   allocation of large mempool in several virtual memory chunks, new API
69   to populate a mempool, new API to free a mempool, allocation in
70   anonymous mapping, drop of specific dom0 code. These changes will
71   induce a modification of the rte_mempool structure, plus a
72   modification of the API of rte_mempool_obj_iter(), implying a breakage
73   of the ABI.
74
75 * A librte_vhost public structures refactor is planned for DPDK 16.07
76   that requires both ABI and API change.
77   The proposed refactor would expose DPDK vhost dev to applications as
78   a handle, like the way kernel exposes an fd to user for locating a
79   specific file, and to keep all major structures internally, so that
80   we are likely to be free from ABI violations in future.