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.
-
-* ABI changes are planned for struct rte_port_source_params in order to
- support PCAP file reading feature. The release 16.04 contains this ABI
- change wrapped by RTE_NEXT_ABI macro. Release 16.07 will contain this
- change, and no backwards compatibility is planned.
+* 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.
+
+* ``eth_driver`` is planned to be removed in 17.02. This currently serves as
+ a placeholder for PMDs to register themselves. Changes for ``rte_bus`` will
+ provide a way to handle device initialization currently being done in
+ ``eth_driver``.
+
+* ethdev: an API change is planned for 17.02 for the function
+ ``_rte_eth_dev_callback_process``. In 17.02 the function will return an ``int``
+ instead of ``void`` and a fourth parameter ``void *ret_param`` will be added.
+
+* ABI changes are planned for 17.05 in the ``rte_mbuf`` structure: some fields
+ may be reordered to facilitate the writing of ``data_off``, ``refcnt``, and
+ ``nb_segs`` in one operation, because some platforms have an overhead if the
+ store address is not naturally aligned. Other mbuf fields, such as the
+ ``port`` field, may be moved or removed as part of this mbuf work. A
+ ``timestamp`` will also be added.
+
+* 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.
+
+* mempool: The functions ``rte_mempool_count`` and ``rte_mempool_free_count``
+ will be removed in 17.05.
+ They are replaced by ``rte_mempool_avail_count`` and
+ ``rte_mempool_in_use_count`` respectively.
+
+* mempool: The functions for single/multi producer/consumer are deprecated
+ and will be removed in 17.05.
+ It is replaced by ``rte_mempool_generic_get/put`` functions.
+
+* 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.
+
+* distributor: library API will be changed to incorporate a burst-oriented
+ API. This will include a change to ``rte_distributor_create``
+ to specify which type of instance to create (single or burst), and
+ additional calls for ``rte_distributor_poll_pkt_burst`` and
+ ``rte_distributor_return_pkt_burst``, among others.