* **Updated Broadcom bnxt PMD.**
* Added flow offload support for Thor.
+ * Added TruFlow and AFM SRAM partitioning support.
* Implement support for tunnel offload.
- * Updated HWRM API to version 1.10.2.44
+ * Updated HWRM API to version 1.10.2.68.
+ * Added NAT support for dest IP and port combination.
+ * Added support for socket redirection.
+ * Added wildcard match support for ingress flows.
+ * Added support for inner IP header for GRE tunnel flows.
+ * Removed devargs option for stats accumulation.
+
+* **Updated Cisco enic driver.**
+
+ * Added rte_flow support for matching GTP, GTP-C and GTP-U headers.
* **Updated Intel e1000 emulated driver.**
* Added Intel iavf support on Windows.
* Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
* Added PPPoL2TPv2oUDP RSS hash based on inner IP address and TCP/UDP port.
+ * Added Intel iavf inline crypto support.
* **Updated Intel ice driver.**
+ * Added protocol agnostic flow offloading support in Flow Director.
+ * Added protocol agnostic flow offloading support in RSS hash.
* Added 1PPS out support by a devargs.
* Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
* Added DEV_RX_OFFLOAD_TIMESTAMP support.
Updated the Mellanox mlx5 driver with new features and improvements, including:
* Added implicit mempool registration to avoid data path hiccups (opt-out).
+ * Added delay drop support for Rx queue.
* Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).
+ * Added socket direct mode bonding support.
* **Updated Solarflare network PMD.**
* Added port representors support on SN1000 SmartNICs
* Added flow API transfer proxy support
+ * Added SN1000 virtual functions (VF) support
+ * Added support for flow counters without service cores
+
+* **Added power monitor API in vhost library.**
+
+ Added an API to support power monitor in vhost library.
+
+* **Updated vhost PMD.**
+
+ Add power monitor support in vhost PMD.
+
+* **Updated virtio PMD.**
+
+ * Initial support for RSS receive mode has been added to the Virtio PMD,
+ with the capability for the application to configure the hash key,
+ the RETA and the hash types.
+ Virtio hash reporting is yet to be added.
+ * Added power monitor support in virtio PMD.
+
+* **Updated Wangxun ngbe driver.**
+
+ * Added offloads and packet type on RxTx.
+ * Added VLAN and MAC filters.
+ * Added device basic statistics and extended stats.
+ * Added multi-queue and RSS.
+ * Added SRIOV.
+ * Added flow control.
+ * Added IEEE 1588.
+
+* **Added new vDPA PMD based on Xilinx devices.**
+
+ Added a new Xilinx vDPA (``sfc_vdpa``) PMD.
+ See the :doc:`../vdpadevs/sfc` guide for more details on this driver.
+
+* **Added telemetry callbacks to cryptodev library.**
+
+ Added telemetry callback functions which allow a list of crypto devices,
+ stats for a crypto device, and other device information to be queried.
+ Also added callback to get cryptodev capabilities.
+
+* **Added telemetry to security library.**
+
+ Added telemetry callback functions to query security capabilities of
+ crypto device.
* **Updated Marvell cnxk crypto PMD.**
* Added support for ZUC algorithm with 256-bit key length for CN10K.
* Added support for CN98xx dual block.
* Added inner checksum support in lookaside protocol (IPsec) for CN10K.
+ * Added AES-CBC NULL auth support in lookaside protocol (IPsec) for CN10K.
+ * Added ESN and anti-replay support in lookaside protocol (IPsec) for CN9K.
* **Added support for event crypto adapter on Marvell CN10K and CN9K.**
* Added event crypto adapter OP_FORWARD mode support.
+* **Updated Mellanox mlx5 crypto driver.**
+
+ * Added Windows support.
+
* **Updated NXP dpaa_sec crypto PMD.**
* Added DES-CBC, AES-XCBC-MAC, AES-CMAC and non-HMAC algo support.
* AESNI_GCM PMD.
* KASUMI PMD.
* SNOW3G PMD.
+ * ZUC PMD.
+ * CHACHA20_POLY1305 - A new PMD added.
* **Updated the aesni_mb crypto PMD.**
* Added support for ZUC-EEA3-256 and ZUC-EIA3-256.
+* **Added digest appended ops support for Snow3G PMD.**
+
+ * Added support for out-of-place auth-cipher operations that encrypt
+ the digest along with the rest of the raw data.
+ * Added support for partially encrypted digest when using auth-cipher
+ operations.
+
* **Updated the ACC100 bbdev PMD.**
Added support for more comprehensive CRC options.
* Added a new baseband PMD driver for NXP LA12xx Software defined radio.
* See the :doc:`../bbdevs/la12xx` for more details.
+* **Updated Mellanox compress driver.**
+
+ * Added devargs option to allow manual setting of Huffman block size.
+
+* **Updated Mellanox regex driver.**
+
+ * Added support for new ROF file format.
+
* **Updated IPsec library.**
* Added support for more AEAD algorithms AES_CCM, CHACHA20_POLY1305
* Added support for NAT-T / UDP encapsulated ESP.
* Added support for SA telemetry.
* Added support for setting a non default starting ESN value.
+ * Added support for TSO in inline crypto mode.
+
+* **Added optimized Toeplitz hash implementation.**
+
+ Added optimized Toeplitz hash implementation using Galois Fields New Instructions.
* **Added multi-process support for testpmd.**
* Added tests to validate packets hard expiry.
* Added tests to verify tunnel header verification in IPsec inbound.
* Added tests to verify inner checksum.
+ * Added tests for CHACHA20_POLY1305 PMD, including a new testcase for SGL OOP.
+
+* **Updated IPsec Security Gateway sample application with new features.**
+
+ * Added support for TSO (only for inline crypto TCP packets).
+ * Added support for telemetry.
+ * Added support for more AEAD algorithms: AES-GMAC, AES_CTR, AES_XCBC_MAC,
+ AES_CCM, CHACHA20_POLY1305
+ * Added support for event vectors for inline protocol offload mode.
* **Revised packet capture framework.**
* Pcapng format with timestamps and meta-data.
* Fixes packet capture with stripped VLAN tags.
+* **Added ASan support.**
+
+ `AddressSanitizer
+ <https://github.com/google/sanitizers/wiki/AddressSanitizer>`_ (ASan)
+ is a widely-used debugging tool to detect memory access errors.
+ It helps to detect issues like use-after-free, various kinds of buffer
+ overruns in C/C++ programs, and other similar errors, as well as
+ printing out detailed debug information whenever an error is detected.
+
Removed Items
-------------
Also, make sure to start the actual text at the margin.
=======================================================
+* eal: The lcore state ``FINISHED`` is removed from
+ the ``enum rte_lcore_state_t``.
+ The lcore state ``WAIT`` is enough to represent the same state.
+
+* eal: Made ``rte_intr_handle`` structure definition hidden.
+
* kvargs: The experimental function ``rte_kvargs_strcmp()`` has been
removed. Its usages have been replaced by a new function
``rte_kvargs_get_with_value()``.
* mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
will be removed in DPDK 22.11.
+* mbuf: The mbuf offload flags ``PKT_*`` are renamed as ``RTE_MBUF_F_*``. A
+ compatibility layer will be kept until DPDK 22.11.
* net: Renamed ``s_addr`` and ``d_addr`` fields of ``rte_ether_hdr`` structure
to ``src_addr`` and ``dst_addr``, respectively.
should be provided, and offset for immediate source bitfield is assigned
from destination one.
+* vhost: ``rte_vdpa_register_device``, ``rte_vdpa_unregister_device``,
+ ``rte_vhost_host_notifier_ctrl`` and ``rte_vdpa_relay_vring_used`` vDPA
+ driver interface are marked as internal.
+
* cryptodev: The API rte_cryptodev_pmd_is_valid_dev is modified to
rte_cryptodev_is_valid_dev as it can be used by the application as
well as PMD to check whether the device is valid or not.
* eventdev: Moved memory used by timer adapters to hugepage. This will prevent
TLB misses if any and aligns to memory structure of other subsystems.
+* fib: Added the ``rib_ext_sz`` field to ``rte_fib_conf`` and ``rte_fib6_conf``
+ so that user can specify the size of the RIB extension inside the FIB.
+
ABI Changes
-----------
to be transparent for both users (no changes in user app is required) and
PMD developers (no changes in PMD is required).
+* vhost: rename ``struct vhost_device_ops`` to ``struct rte_vhost_device_ops``.
+
+* cryptodev: Made ``rte_cryptodev``, ``rte_cryptodev_data`` private
+ structures internal to DPDK. ``rte_cryptodevs`` can't be accessed directly
+ by user any more. While it is an ABI breakage, this change is intended
+ to be transparent for both users (no changes in user app is required) and
+ PMD developers (no changes in PMD is required).
+
* security: ``rte_security_set_pkt_metadata`` and ``rte_security_get_userdata``
routines used by inline outbound and inline inbound security processing were
made inline and enhanced to do simple 64-bit set/get for PMDs that do not