+* **Added support for representing buses in EAL**
+
+ The ``rte_bus`` structure was introduced into the EAL. This allows for
+ devices to be represented by buses they are connected to. A new bus can be
+ added to DPDK by extending the ``rte_bus`` structure and implementing the
+ scan and probe functions. Once a new bus is registered using the provided
+ APIs, new devices can be detected and initialized using bus scan and probe
+ callbacks.
+
+ With this change, devices other than PCI or VDEV type can be represented
+ in the DPDK framework.
+
+* **Added generic EAL API for I/O device memory read/write operations.**
+
+ This API introduces 8 bit, 16 bit, 32 bit and 64 bit I/O device
+ memory read/write operations along with "relaxed" versions.
+
+ Weakly-ordered architectures like ARM need an additional I/O barrier for
+ device memory read/write access over PCI bus. By introducing the EAL
+ abstraction for I/O device memory read/write access, the drivers can access
+ I/O device memory in an architecture-agnostic manner. The relaxed version
+ does not have an additional I/O memory barrier, which is useful in accessing
+ the device registers of integrated controllers which is implicitly strongly
+ ordered with respect to memory access.
+
+* **Added generic flow API (rte_flow).**
+
+ This API provides a generic means to configure hardware to match specific
+ ingress or egress traffic, alter its behavior and query related counters
+ according to any number of user-defined rules.
+
+ In order to expose a single interface with an unambiguous behavior that is
+ common to all poll-mode drivers (PMDs) the ``rte_flow`` API is slightly
+ higher-level than the legacy filtering framework, which it encompasses and
+ supersedes (including all functions and filter types) .
+
+ See the :doc:`../prog_guide/rte_flow` documentation for more information.
+
+* **Added firmware version get API.**
+
+ Added a new function ``rte_eth_dev_fw_version_get()`` to fetch the firmware
+ version for a given device.
+
+* **Added APIs for MACsec offload support to the ixgbe PMD.**
+
+ Six new APIs have been added to the ixgbe PMD for MACsec offload support.
+ The declarations for the APIs can be found in ``rte_pmd_ixgbe.h``.
+
+* **Added I219 NICs support.**
+
+ Added support for I219 Intel 1GbE NICs.
+
+* **Added VF Daemon (VFD) for i40e. - EXPERIMENTAL**
+
+ This is an EXPERIMENTAL feature to enhance the capability of the DPDK PF as
+ many VF management features are not currently supported by the kernel PF
+ driver. Some new private APIs are implemented directly in the PMD without an
+ abstraction layer. They can be used directly by some users who have the
+ need.
+
+ The new APIs to control VFs directly from PF include:
+
+ * Set VF MAC anti-spoofing.
+ * Set VF VLAN anti-spoofing.
+ * Set TX loopback.
+ * Set VF unicast promiscuous mode.
+ * Set VF multicast promiscuous mode.
+ * Set VF MTU.
+ * Get/reset VF stats.
+ * Set VF MAC address.
+ * Set VF VLAN stripping.
+ * Vf VLAN insertion.
+ * Set VF broadcast mode.
+ * Set VF VLAN tag.
+ * Set VF VLAN filter.
+
+ VFD also includes VF to PF mailbox message management from an application.
+ When the PF receives mailbox messages from the VF the PF should call the
+ callback provided by the application to know if they're permitted to be
+ processed.
+
+ As an EXPERIMENTAL feature, please be aware it can be changed or even
+ removed without prior notice.
+
+* **Updated the i40e base driver.**
+
+ Updated the i40e base driver, including the following changes:
+
+ * Replace existing legacy ``memcpy()`` calls with ``i40e_memcpy()`` calls.
+ * Use ``BIT()`` macro instead of bit fields.
+ * Add clear all WoL filters implementation.
+ * Add broadcast promiscuous control per VLAN.
+ * Remove unused ``X722_SUPPORT`` and ``I40E_NDIS_SUPPORT`` macros.
+
+* **Updated the enic driver.**
+
+ * Set new Rx checksum flags in mbufs to indicate unknown, good or bad checksums.
+ * Fix set/remove of MAC addresses. Allow up to 64 addresses per device.
+ * Enable TSO on outer headers.
+
+* **Added Solarflare libefx-based network PMD.**
+
+ Added a new network PMD which supports Solarflare SFN7xxx and SFN8xxx family
+ of 10/40 Gbps adapters.
+
+* **Updated the mlx4 driver.**
+
+ * Addressed a few bugs.
+
+* **Added support for Mellanox ConnectX-5 adapters (mlx5).**
+
+ Added support for Mellanox ConnectX-5 family of 10/25/40/50/100 Gbps
+ adapters to the existing mlx5 PMD.
+
+* **Updated the mlx5 driver.**
+
+ * Improve Tx performance by using vector logic.
+ * Improve RSS balancing when number of queues is not a power of two.
+ * Generic flow API support for Ethernet, IPv4, IPv4, UDP, TCP, VLAN and
+ VXLAN pattern items with DROP and QUEUE actions.
+ * Support for extended statistics.
+ * Addressed several data path bugs.
+ * As of MLNX_OFED 4.0-1.0.1.0, the Toeplitz RSS hash function is not
+ symmetric anymore for consistency with other PMDs.
+
+* **virtio-user with vhost-kernel as another exceptional path.**
+
+ Previously, we upstreamed a virtual device, virtio-user with vhost-user as
+ the backend as a way of enabling IPC (Inter-Process Communication) and user
+ space container networking.
+
+ Virtio-user with vhost-kernel as the backend is a solution for the exception
+ path, such as KNI, which exchanges packets with the kernel networking stack.
+ This solution is very promising in:
+
+ * Maintenance: vhost and vhost-net (kernel) is an upstreamed and extensively
+ used kernel module.
+ * Features: vhost-net is designed to be a networking solution, which has
+ lots of networking related features, like multi-queue, TSO, multi-seg
+ mbuf, etc.
+ * Performance: similar to KNI, this solution would use one or more
+ kthreads to send/receive packets from user space DPDK applications,
+ which has little impact on user space polling thread (except that
+ it might enter into kernel space to wake up those kthreads if
+ necessary).
+
+* **Added virtio Rx interrupt support.**
+
+ Added a feature to enable Rx interrupt mode for virtio pci net devices as
+ bound to VFIO (noiommu mode) and driven by virtio PMD.
+
+ With this feature, the virtio PMD can switch between polling mode and
+ interrupt mode, to achieve best performance, and at the same time save
+ power. It can work on both legacy and modern virtio devices. In this mode,
+ each ``rxq`` is mapped with an excluded MSIx interrupt.
+
+ See the :ref:`Virtio Interrupt Mode <virtio_interrupt_mode>` documentation
+ for more information.
+
+* **Added ARMv8 crypto PMD.**
+
+ A new crypto PMD has been added, which provides combined mode cryptographic
+ operations optimized for ARMv8 processors. The driver can be used to enhance
+ performance in processing chained operations such as cipher + HMAC.
+
+* **Updated the QAT PMD.**
+
+ The QAT PMD has been updated with additional support for:
+
+ * DES algorithm.
+ * Scatter-gather list (SGL) support.
+
+* **Updated the AESNI MB PMD.**
+
+ * The Intel(R) Multi Buffer Crypto for IPsec library used in
+ AESNI MB PMD has been moved to a new repository, in GitHub.
+ * Support has been added for single operations (cipher only and
+ authentication only).
+
+* **Updated the AES-NI GCM PMD.**
+
+ The AES-NI GCM PMD was migrated from the Multi Buffer library to the ISA-L
+ library. The migration entailed adding additional support for:
+
+ * GMAC algorithm.
+ * 256-bit cipher key.
+ * Session-less mode.
+ * Out-of place processing
+ * Scatter-gather support for chained mbufs (only out-of place and destination
+ mbuf must be contiguous)
+
+* **Added crypto performance test application.**
+
+ Added a new performance test application for measuring performance
+ parameters of PMDs available in the crypto tree.
+
+* **Added Elastic Flow Distributor library (rte_efd).**
+
+ Added a new library which uses perfect hashing to determine a target/value
+ for a given incoming flow key.
+
+ The library does not store the key itself for lookup operations, and
+ therefore, lookup performance is not dependent on the key size. Also, the
+ target/value can be any arbitrary value (8 bits by default). Finally, the
+ storage requirement is much smaller than a hash-based flow table and
+ therefore, it can better fit in CPU cache and scale to millions of flow
+ keys.
+
+ See the :ref:`Elastic Flow Distributor Library <Efd_Library>` documentation in
+ the Programmers Guide document, for more information.
+