1 ABI and API Deprecation
2 =======================
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.
11 * The ethdev library file will be renamed from libethdev.* to librte_ethdev.*
12 in release 16.11 in order to have a more consistent namespace.
14 * In 16.11 ABI changes are planned: the ``rte_eth_dev`` structure will be
15 extended with new function pointer ``tx_pkt_prep`` allowing verification
16 and processing of packet burst to meet HW specific requirements before
17 transmit. Also new fields will be added to the ``rte_eth_desc_lim`` structure:
18 ``nb_seg_max`` and ``nb_mtu_seg_max`` providing information about number of
19 segments limit to be transmitted by device for TSO/non-TSO packets.
21 * The ethdev hotplug API is going to be moved to EAL with a notification
22 mechanism added to crypto and ethdev libraries so that hotplug is now
23 available to both of them. This API will be stripped of the device arguments
24 so that it only cares about hotplugging.
26 * Structures embodying pci and vdev devices are going to be reworked to
27 integrate new common rte_device / rte_driver objects (see
28 http://dpdk.org/ml/archives/dev/2016-January/031390.html).
29 ethdev and crypto libraries will then only handle those objects so that they
30 do not need to care about the kind of devices that are being used, making it
31 easier to add new buses later.
33 * ABI changes are planned for 16.11 in the ``rte_mbuf`` structure: some fields
34 may be reordered to facilitate the writing of ``data_off``, ``refcnt``, and
35 ``nb_segs`` in one operation, because some platforms have an overhead if the
36 store address is not naturally aligned. Other mbuf fields, such as the
37 ``port`` field, may be moved or removed as part of this mbuf work.
39 * The mbuf flags PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated and
40 are respectively replaced by PKT_RX_VLAN_STRIPPED and
41 PKT_RX_QINQ_STRIPPED, that are better described. The old flags and
42 their behavior will be kept in 16.07 and will be removed in 16.11.
44 * mempool: The functions ``rte_mempool_count`` and ``rte_mempool_free_count``
45 will be removed in 17.02.
46 They are replaced by ``rte_mempool_avail_count`` and
47 ``rte_mempool_in_use_count`` respectively.
49 * mempool: The functions for single/multi producer/consumer are deprecated
50 and will be removed in 17.02.
51 It is replaced by ``rte_mempool_generic_get/put`` functions.
53 * The vhost-cuse will be removed in 16.11. Since v2.1, a large majority of
54 development effort has gone to vhost-user, such as multiple-queue, live
55 migration, reconnect etc. Therefore, vhost-user should be used instead.
57 * API will change for ``rte_port_source_params`` and ``rte_port_sink_params``
58 structures. The member ``file_name`` data type will be changed from
59 ``char *`` to ``const char *``. This change targets release 16.11.