+* service cores: no longer marked as experimental.
+
+ The service cores functions are no longer marked as experimental, and have
+ become part of the normal DPDK API and ABI. Any future ABI changes will be
+ announced at least one release before the ABI change is made. There are no
+ ABI breaking changes planned.
+
+* eal: ``rte_lcore_has_role()`` return value changed.
+
+ This function now returns true or false, respectively,
+ rather than 0 or <0 for success or failure.
+ It makes use of the function more intuitive.
+
+* mempool: capability flags and related functions have been removed.
+
+ Flags ``MEMPOOL_F_CAPA_PHYS_CONTIG`` and
+ ``MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS`` were used by octeontx mempool
+ driver to customize generic mempool library behaviour.
+ Now the new driver callbacks ``calc_mem_size`` and ``populate`` may be
+ used to achieve it without specific knowledge in the generic code.
+
+* mempool: xmem functions have been deprecated:
+
+ - ``rte_mempool_xmem_create``
+ - ``rte_mempool_xmem_size``
+ - ``rte_mempool_xmem_usage``
+ - ``rte_mempool_populate_iova_tab``
+
+* mbuf: The control mbuf API has been removed in v18.05. The impacted
+ functions and macros are:
+
+ - ``rte_ctrlmbuf_init()``
+ - ``rte_ctrlmbuf_alloc()``
+ - ``rte_ctrlmbuf_free()``
+ - ``rte_ctrlmbuf_data()``
+ - ``rte_ctrlmbuf_len()``
+ - ``rte_is_ctrlmbuf()``
+ - ``CTRL_MBUF_FLAG``
+
+ The packet mbuf API should be used as a replacement.
+
+* meter: updated to accommodate configuration profiles.
+
+ The meter API is changed to support meter configuration profiles. The
+ configuration profile represents the set of configuration parameters
+ for a given meter object, such as the rates and sizes for the token
+ buckets. These configuration parameters were previously the part of meter
+ object internal data strcuture. The separation of the configuration
+ parameters from meter object data structure results in reducing its
+ memory footprint which helps in better cache utilization when large number
+ of meter objects are used.
+
+* ethdev: The function ``rte_eth_dev_count``, often mis-used to iterate
+ over ports, is deprecated and replaced by ``rte_eth_dev_count_avail``.
+ There is also a new function ``rte_eth_dev_count_total`` to get the
+ total number of allocated ports, available or not.
+ The hotplug-proof applications should use ``RTE_ETH_FOREACH_DEV`` or
+ ``RTE_ETH_FOREACH_DEV_OWNED_BY`` as port iterators.
+
+* ethdev, in struct ``struct rte_eth_dev_info``, field ``rte_pci_device *pci_dev``
+ replaced with field ``struct rte_device *device``.
+
+* **Changes to semantics of rte_eth_dev_configure() parameters.**
+
+ If both the ``nb_rx_q`` and ``nb_tx_q`` parameters are zero,
+ ``rte_eth_dev_configure`` will now use PMD-recommended queue sizes, or if
+ recommendations are not provided by the PMD the function will use ethdev
+ fall-back values. Previously setting both of the parameters to zero would
+ have resulted in ``-EINVAL`` being returned.
+
+* **Changes to semantics of rte_eth_rx_queue_setup() parameters.**
+
+ If the ``nb_rx_desc`` parameter is zero, ``rte_eth_rx_queue_setup`` will
+ now use the PMD-recommended Rx ring size, or in the case where the PMD
+ does not provide a recommendation, will use an ethdev-provided
+ fall-back value. Previously, setting ``nb_rx_desc`` to zero would have
+ resulted in an error.
+
+* **Changes to semantics of rte_eth_tx_queue_setup() parameters.**
+
+ If the ``nb_tx_desc`` parameter is zero, ``rte_eth_tx_queue_setup`` will
+ now use the PMD-recommended Tx ring size, or in the case where the PMD
+ does not provide a recoomendation, will use an ethdev-provided
+ fall-back value. Previously, setting ``nb_tx_desc`` to zero would have
+ resulted in an error.
+
+* ethdev: several changes were made to the flow API.
+
+ * Unused DUP action was removed.
+ * Actions semantics in flow rules: list order now matters ("first
+ to last" instead of "all simultaneously"), repeated actions are now
+ all performed, and they do not individually have (non-)terminating
+ properties anymore.
+ * Flow rules are now always terminating unless a PASSTHRU action is
+ present.
+ * C99-style flexible arrays were replaced with standard pointers in RSS
+ action and in RAW pattern item structures due to compatibility issues.
+ * The RSS action was modified to not rely on external
+ ``struct rte_eth_rss_conf`` anymore to instead expose its own and more
+ appropriately named configuration fields directly
+ (``rss_conf->rss_key`` => ``key``,
+ ``rss_conf->rss_key_len`` => ``key_len``,
+ ``rss_conf->rss_hf`` => ``types``,
+ ``num`` => ``queue_num``), and the addition of missing RSS parameters
+ (``func`` for RSS hash function to apply and ``level`` for the
+ encapsulation level).
+ * The VLAN pattern item (``struct rte_flow_item_vlan``) was modified to
+ include inner EtherType instead of outer TPID. Its default mask was also
+ modified to cover the VID part (lower 12 bits) of TCI only.
+ * A new transfer attribute was added to ``struct rte_flow_attr`` in order
+ to clarify the behavior of some pattern items.
+ * PF and VF pattern items are now only accepted by PMDs that implement
+ them (bnxt and i40e) when the transfer attribute is also present for
+ consistency.
+ * Pattern item PORT was renamed PHY_PORT to avoid confusion with DPDK port
+ IDs.
+ * An action counterpart to the PHY_PORT pattern item was added in order to
+ redirect matching traffic to a specific physical port.
+ * PORT_ID pattern item and actions were added to match and target DPDK
+ port IDs at a higher level than PHY_PORT.
+
+* ethdev: change flow APIs regarding count action:
+ * ``rte_flow_create()`` API count action now requires the ``struct rte_flow_action_count``.
+ * ``rte_flow_query()`` API parameter changed from action type to action structure.
+