+* **Reworked memory subsystem.**
+
+ Memory subsystem has been reworked to support new functionality.
+
+ On Linux, support for reserving/unreserving hugepage memory at runtime has been
+ added, so applications no longer need to pre-reserve memory at startup. Due to
+ reorganized internal workings of memory subsystem, any memory allocated
+ through ``rte_malloc()`` or ``rte_memzone_reserve()`` is no longer guaranteed
+ to be IOVA-contiguous.
+
+ This functionality has introduced the following changes:
+
+ * ``rte_eal_get_physmem_layout()`` was removed.
+ * A new flag for memzone reservation (``RTE_MEMZONE_IOVA_CONTIG``) was added
+ to ensure reserved memory will be IOVA-contiguous, for use with device
+ drivers and other cases requiring such memory.
+ * New callbacks for memory allocation/deallocation events, allowing users (or
+ drivers) to be notified of new memory being allocated or deallocated
+ * New callbacks for validating memory allocations above a specified limit,
+ allowing user to permit or deny memory allocations.
+ * A new command-line switch ``--legacy-mem`` to enable EAL behavior similar to
+ how older versions of DPDK worked (memory segments that are IOVA-contiguous,
+ but hugepages are reserved at startup only, and can never be released).
+ * A new command-line switch ``--single-file-segments`` to put all memory
+ segments within a segment list in a single file.
+ * A set of convenience function calls to look up and iterate over allocated
+ memory segments.
+ * ``-m`` and ``--socket-mem`` command-line arguments now carry an additional
+ meaning and mark pre-reserved hugepages as "unfree-able", thereby acting as
+ a mechanism guaranteeing minimum availability of hugepage memory to the
+ application.
+
+ Reserving/unreserving memory at runtime is not currently supported on FreeBSD.
+
+* **Added bucket mempool driver.**
+
+ Added a bucket mempool driver which provides a way to allocate contiguous
+ block of objects.
+ The number of objects in the block depends on how many objects fit in the
+ ``RTE_DRIVER_MEMPOOL_BUCKET_SIZE_KB`` memory chunk which is a build time option.
+ The number may be obtained using ``rte_mempool_ops_get_info()`` API.
+ Contiguous blocks may be allocated using ``rte_mempool_get_contig_blocks()`` API.
+
+* **Added support for port representors.**
+
+ Added DPDK port representors (also known as "VF representors" in the specific
+ context of VFs), which are to DPDK what the Ethernet switch device driver
+ model (**switchdev**) is to Linux, and which can be thought as a software
+ "patch panel" front-end for applications. DPDK port representors are
+ implemented as additional virtual Ethernet device (**ethdev**) instances,
+ spawned on an as-needed basis through configuration parameters passed to the
+ driver of the underlying device using devargs.
+
+* **Added support for VXLAN and NVGRE tunnel endpoint.**
+
+ New actions types have been added to support encapsulation and decapsulation
+ operations for a tunnel endpoint. The new action types are
+ ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_ENCAP``, ``RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_DECAP``,
+ ``RTE_FLOW_ACTION_TYPE_JUMP``. A new item type ``RTE_FLOW_ACTION_TYPE_MARK`` has been
+ added to match a flow against a previously marked flow. A shared counter has also been
+ introduced to the flow API to count a group of flows.
+
+* **Added PMD-recommended Tx and Rx parameters.**
+
+ Applications can now query drivers for device-tuned values of
+ ring sizes, burst sizes, and number of queues.
+
+* **Added RSS hash and key update to CXGBE PMD.**
+
+ Added support for updating the RSS hash and key to the CXGBE PMD.
+
+* **Added CXGBE VF PMD.**
+
+ CXGBE VF Poll Mode Driver has been added to run DPDK over Chelsio
+ T5/T6 NIC VF instances.
+
+* **Updated mlx5 driver.**
+
+ Updated the mlx5 driver including the following changes:
+
+ * Introduced Multi-packet Rx to enable 100Gb/sec with 64B frames.
+ * Support for being run by non-root users given a reduced set of capabilities
+ ``CAP_NET_ADMIN``, ``CAP_NET_RAW`` and ``CAP_IPC_LOCK``.
+ * Support for TSO and checksum for generic UDP and IP tunnels.
+ * Support for inner checksum and RSS for GRE, VXLAN-GPE, MPLSoGRE
+ and MPLSoUDP tunnels.
+ * Accommodate the new memory hotplug model.
+ * Support for non virtually contiguous mempools.
+ * Support for MAC adding along with allmulti and promiscuous modes from VF.
+ * Support for Mellanox BlueField SoC device.
+ * Support for PMD defaults for queue number and depth to improve the out
+ of the box performance.
+
+* **Updated mlx4 driver.**
+
+ Updated the mlx4 driver including the following changes:
+
+ * Support for to being run by non-root users given a reduced set of capabilities
+ ``CAP_NET_ADMIN``, ``CAP_NET_RAW`` and ``CAP_IPC_LOCK``.
+ * Supported CRC strip toggling.
+ * Accommodate the new memory hotplug model.
+ * Support non virtually contiguous mempools.
+ * Dropped support for Mellanox OFED 4.2.
+
+* **Updated Solarflare network PMD.**
+
+ Updated the sfc_efx driver including the following changes:
+
+ * Added support for Solarflare XtremeScale X2xxx family adapters.
+ * Added support for NVGRE, VXLAN and GENEVE filters in flow API.
+ * Added support for DROP action in flow API.
+ * Added support for equal stride super-buffer Rx mode (X2xxx only).
+ * Added support for MARK and FLAG actions in flow API (X2xxx only).
+
+* **Added Ethernet poll mode driver for AMD XGBE devices.**
+
+ Added the new ``axgbe`` ethernet poll mode driver for AMD XGBE devices.
+ See the :doc:`../nics/axgbe` nic driver guide for more details on this
+ new driver.
+
+* **Updated szedata2 PMD.**
+
+ Added support for new NFB-200G2QL card.
+ A new API was introduced in the libsze2 library which the szedata2 PMD depends
+ on, thus the new version of the library was needed.
+ New versions of the packages are available and the minimum required version
+ is 4.4.1.
+
+* **Added support for Broadcom NetXtreme-S (BCM58800) family of controllers (aka Stingray).**
+
+ Added support for the Broadcom NetXtreme-S (BCM58800) family of controllers
+ (aka Stingray). The BCM58800 devices feature a NetXtreme E-Series advanced
+ network controller, a high-performance ARM CPU block, PCI Express (PCIe)
+ Gen3 interfaces, key accelerators for compute offload and a high-speed
+ memory subsystem including L3 cache and DDR4 interfaces, all interconnected
+ by a coherent Network-on-chip (NOC) fabric.
+
+ The ARM CPU subsystem features eight ARMv8 Cortex-A72 CPUs at 3.0 GHz,
+ arranged in a multi-cluster configuration.
+
+* **Added vDPA in vhost-user lib.**
+
+ Added support for selective datapath in the vhost-user lib. vDPA stands for vhost
+ Data Path Acceleration. It supports virtio ring compatible devices to serve
+ the virtio driver directly to enable datapath acceleration.
+
+* **Added IFCVF vDPA driver.**
+
+ Added IFCVF vDPA driver to support Intel FPGA 100G VF devices. IFCVF works
+ as a HW vhost data path accelerator, it supports live migration and is
+ compatible with virtio 0.95 and 1.0. This driver registers the ifcvf vDPA driver
+ to vhost lib, when virtio connects. With the help of the registered vDPA
+ driver the assigned VF gets configured to Rx/Tx directly to VM's virtio
+ vrings.
+
+* **Added support for vhost dequeue interrupt mode.**
+
+ Added support for vhost dequeue interrupt mode to release CPUs to others
+ when there is no data to transmit. Applications can register an epoll event
+ file descriptor to associate Rx queues with interrupt vectors.
+
+* **Added support for virtio-user server mode.**
+
+ In a container environment if the vhost-user backend restarts, there's no way
+ for it to reconnect to virtio-user. To address this, support for server mode
+ has been added. In this mode the socket file is created by virtio-user, which the
+ backend connects to. This means that if the backend restarts, it can reconnect
+ to virtio-user and continue communications.
+
+* **Added crypto workload support to vhost library.**
+
+ New APIs have been introduced in the vhost library to enable virtio crypto support
+ including session creation/deletion handling and translating virtio-crypto
+ requests into DPDK crypto operations. A sample application has also been introduced.
+
+* **Added virtio crypto PMD.**
+
+ Added a new Poll Mode Driver for virtio crypto devices, which provides
+ AES-CBC ciphering and AES-CBC with HMAC-SHA1 algorithm-chaining. See the
+ :doc:`../cryptodevs/virtio` crypto driver guide for more details on
+ this new driver.
+
+* **Added AMD CCP Crypto PMD.**
+
+ Added the new ``ccp`` crypto driver for AMD CCP devices. See the
+ :doc:`../cryptodevs/ccp` crypto driver guide for more details on
+ this new driver.
+
+* **Updated AESNI MB PMD.**
+
+ The AESNI MB PMD has been updated with additional support for:
+
+ * AES-CMAC (128-bit key).
+
+* **Added the Compressdev Library, a generic compression service library.**
+
+ Added the Compressdev library which provides an API for offload of compression and
+ decompression operations to hardware or software accelerator devices.
+
+* **Added a new compression poll mode driver using Intels ISA-L.**
+
+ Added the new ``ISA-L`` compression driver, for compression and decompression
+ operations in software. See the :doc:`../compressdevs/isal` compression driver
+ guide for details on this new driver.
+
+* **Added the Event Timer Adapter Library.**
+
+ The Event Timer Adapter Library extends the event-based model by introducing
+ APIs that allow applications to arm/cancel event timers that generate
+ timer expiry events. This new type of event is scheduled by an event device
+ along with existing types of events.
+
+* **Added OcteonTx TIM Driver (Event timer adapter).**
+
+ The OcteonTx Timer block enables software to schedule events for a future
+ time, it is exposed to an application via the Event timer adapter library.
+
+ See the :doc:`../eventdevs/octeontx` guide for more details
+
+* **Added Event Crypto Adapter Library.**
+
+ Added the Event Crypto Adapter Library. This library extends the
+ event-based model by introducing APIs that allow applications to
+ enqueue/dequeue crypto operations to/from cryptodev as events scheduled
+ by an event device.
+
+* **Added Ifpga Bus, a generic Intel FPGA Bus library.**
+
+ Added the Ifpga Bus library which provides support for integrating any Intel
+ FPGA device with the DPDK framework. It provides Intel FPGA Partial Bit
+ Stream AFU (Accelerated Function Unit) scan and drivers probe.
+
+* **Added IFPGA (Intel FPGA) Rawdev Driver.**
+
+ Added a new Rawdev driver called IFPGA (Intel FPGA) Rawdev Driver, which cooperates
+ with OPAE (Open Programmable Acceleration Engine) shared code to provide common FPGA
+ management ops for FPGA operation.
+
+ See the :doc:`../rawdevs/ifpga` programmer's guide for more details.
+
+* **Added DPAA2 QDMA Driver (in rawdev).**
+
+ The DPAA2 QDMA is an implementation of the rawdev API, that provide a means
+ of initiating a DMA transaction from CPU. The initiated DMA is performed
+ without the CPU being involved in the actual DMA transaction.
+
+ See the :doc:`../rawdevs/dpaa2_qdma` guide for more details.
+
+* **Added DPAA2 Command Interface Driver (in rawdev).**
+
+ The DPAA2 CMDIF is an implementation of the rawdev API, that provides
+ communication between the GPP and NXP's QorIQ based AIOP Block (Firmware).
+ Advanced IO Processor i.e. AIOP are clusters of programmable RISC engines
+ optimized for flexible networking and I/O operations. The communication
+ between GPP and AIOP is achieved via using DPCI devices exposed by MC for
+ GPP <--> AIOP interaction.
+
+ See the :doc:`../rawdevs/dpaa2_cmdif` guide for more details.
+
+* **Added device event monitor framework.**
+
+ Added a general device event monitor framework to EAL, for device dynamic
+ management to facilitate device hotplug awareness and associated
+ actions. The list of new APIs is:
+
+ * ``rte_dev_event_monitor_start`` and ``rte_dev_event_monitor_stop`` for
+ the event monitor enabling and disabling.
+ * ``rte_dev_event_callback_register`` and ``rte_dev_event_callback_unregister``
+ for registering and un-registering user callbacks.
+
+ Linux uevent is supported as a backend of this device event notification framework.
+
+* **Added support for procinfo and pdump on eth vdev.**
+
+ For ethernet virtual devices (like TAP, PCAP, etc.), with this feature, we can get
+ stats/xstats on shared memory from a secondary process, and also pdump packets on
+ those virtual devices.
+
+* **Enhancements to the Packet Framework Library.**
+
+ Design and development of new API functions for Packet Framework library that
+ implement a common set of actions such as traffic metering, packet
+ encapsulation, network address translation, TTL update, etc., for pipeline
+ table and input ports to speed up application development. The API functions
+ includes creating action profiles, registering actions to the profiles,
+ instantiating action profiles for pipeline table and input ports, etc.
+
+* **Added the BPF Library.**
+
+ The BPF Library provides the ability to load and execute
+ Enhanced Berkeley Packet Filters (eBPF) within user-space DPDK applications.
+ It also introduces a basic framework to load/unload BPF-based filters
+ on Eth devices (right now only via SW RX/TX callbacks).
+ It also adds a dependency on libelf.
+