"Network Interface Controller Drivers" document for more details on this new
driver.
+* **Updated mlx5 driver.**
+
+ Updated the mlx5 driver including the following changes:
+
+ * Enabled PMD to run on top of upstream linux kernel and rdma-core libs.
+ By that removed the dependency on specific Mellanox OFED libraries.
+ * Improved PMD latency performance.
+ * Improved PMD memory footprint.
+ * Supported vectorized Rx/Tx burst for ARMv8.
+ * Supported secondary process.
+ * Supported flow counters.
+ * Supported Rx hardware timestamp offload.
+ * Supported device removal event.
+
* **Added SoftNIC PMD.**
Added new SoftNIC PMD. This virtual device offers applications a software
fallback support for traffic management.
+* **Added support for NXP DPAA Devices.**
+
+ Added support for NXP's DPAA devices - LS104x series. This includes:
+
+ * DPAA Bus driver
+ * DPAA Mempool driver for supporting offloaded packet memory pool
+ * DPAA PMD for DPAA devices
+
+ See the "Network Interface Controller Drivers" document for more details of
+ this new driver.
+
* **nfp: Added PF support.**
Previously Netronome's NFP PMD had just support for VFs. PF support is
* Support for Flow API
* Support for Tx and Rx descriptor status functions
+* **Add bus agnostic functions to cryptodev for PMD initialisation**
+
+ Adds new PMD assist functions ``rte_cryptodev_pmd_parse_input_args()``,
+ ``rte_cryptodev_pmd_create()`` and ``rte_cryptodev_pmd_destroy()`` which
+ are bus independent for driver to manage creation and destruction of new
+ device instances.
+
* **Updated QAT crypto PMD.**
Performance enhancements:
* Coalesce writes to HEAD CSR on response processing.
* Coalesce writes to TAIL CSR on request processing.
+ Additional support for:
+
+ * AES CCM algorithm.
+
+* **Updated the AESNI MB PMD.**
+
+ The AESNI MB PMD has been updated with additional support for:
+
+ * DES CBC algorithm.
+ * DES DOCSIS BPI algorithm.
+
+ This requires the IPSec Multi-buffer library 0.47. For more details,
+ check out the AESNI MB PMD documenation.
+
+* **Updated the OpenSSL PMD.**
+
+ The OpenSSL PMD has been updated with additional support for:
+
+ * DES CBC algorithm.
+ * AES CCM algorithm.
+
+* **Added NXP DPAA SEC crypto PMD.**
+
+ A new "dpaa_sec" hardware based crypto PMD for NXP DPAA devices has been
+ added. See the "Crypto Device Drivers" document for more details on this
+ driver.
+
+* **Added MRVL crypto PMD.**
+
+ A new crypto PMD has been added, which provides several ciphering and hashing
+ algorithms. All cryptography operations use the MUSDK library crypto API.
+
* **Add new benchmarking mode to dpdk-test-crypto-perf application.**
Added new "PMD cyclecount" benchmark mode to dpdk-test-crypto-perf application
Implemented device IOTLB in Vhost-user backend, and enabled Virtio's IOMMU
feature.
+* **Added the Event Ethernet Adapter Library.**
+
+ Added the Event Ethernet Adapter library. It provices APIs for
+ eventdev applications to configure the ethdev to eventdev packet flow.
+
* **Added Membership library (rte_member).**
Added membership library. It provides an API for DPDK applications to insert a
checksums, and doesn't update checksums for output packets.
Additionally, the GSO library doesn't process IP fragmented packets.
+* **Added the Flow Classification Library.**
+
+ Added the Flow Classification library, it provides an API for DPDK
+ applications to classify an input packet by matching it against a set of flow
+ rules. It uses the librte_table API to manage the flow rules.
+
Resolved Issues
---------------
The size of internal device name is increased to 64 characters
to allow for storing longer bus specific name.
+* **Ethdev flag RTE_ETH_DEV_DETACHABLE was removed**
+
+ This flag is not necessary anymore, with the new hotplug implementation.
+ It is now removed from the ether library. Its semantic is expressed at the bus
+ and PMD level.
+
* **Service cores API updated for usability**
The service cores API has been changed, removing pointers from the API
* ``rte_mem_phy2mch`` was used in Xen dom0 to obtain the physical address;
remove this API as Xen dom0 support was removed.
+* **PCI bus API moved outside of the EAL**
+
+ The PCI bus previously implemented within the EAL has been moved.
+ A first part has been added as an RTE library providing PCI helpers to
+ parse device locations or other such utilities.
+ A second part consisting in the actual bus driver has been moved to its
+ proper subdirectory, without changing its functionalities.
+
+ As such, several PCI-related functions are not proposed by the EAL anymore:
+
+ * rte_pci_detach
+ * rte_pci_dump
+ * rte_pci_ioport_map
+ * rte_pci_ioport_read
+ * rte_pci_ioport_unmap
+ * rte_pci_ioport_write
+ * rte_pci_map_device
+ * rte_pci_probe
+ * rte_pci_probe_one
+ * rte_pci_read_config
+ * rte_pci_register
+ * rte_pci_scan
+ * rte_pci_unmap_device
+ * rte_pci_unregister
+ * rte_pci_write_config
+
+ These functions are made available either as part of ``librte_pci`` or
+ ``librte_bus_pci``.
+
* **Add return value to stats_get dev op API**
The ``stats_get`` dev op API return value has been changed to be int.
The function ``rte_cryptodev_allocate_driver()`` has been modified.
An extra parameter ``struct cryptodev_driver *crypto_drv`` has been added.
+* **Removed virtual device bus specific functions from librte_cryptodev.**
+
+ The functions ``rte_cryptodev_vdev_parse_init_params()`` and
+ ``rte_cryptodev_vdev_pmd_init()`` have been removed from librte_cryptodev
+ and have been replaced by non bus specific functions
+ ``rte_cryptodev_pmd_parse_input_args()`` and ``rte_cryptodev_pmd_create()``.
+
+* **Removed PCI device bus specific functions from librte_cryptodev.**
+
+ The functions ``rte_cryptodev_pci_generic_probe()`` and
+ ``rte_cryptodev_pci_generic_remove()`` have been removed from librte_cryptodev
+ and have been replaced by non bus specific functions
+ ``rte_cryptodev_pmd_create()`` and ``rte_cryptodev_pmd_destroy()``.
+
+* **Removed deprecated functions to manage log level or type.**
+
+ The functions ``rte_set_log_level()``, ``rte_get_log_level()``,
+ ``rte_set_log_type()`` and ``rte_get_log_type()`` have been removed.
+ They are respectively replaced by ``rte_log_set_global_level()``,
+ ``rte_log_get_global_level()``, ``rte_log_set_level()`` and
+ ``rte_log_get_level()``.
+
+* **Removed ``mbuf`` flags ``PKT_RX_VLAN_PKT`` and ``PKT_RX_QINQ_PKT``.**
+
+ The ``mbuf`` flags ``PKT_RX_VLAN_PKT`` and ``PKT_RX_QINQ_PKT`` have
+ been removed since their behavior were not properly described.
+
+* **Added ``mbuf`` flags ``PKT_RX_VLAN`` and ``PKT_RX_QINQ``.**
+
+ Two ``mbuf`` flags have been added to indicate that the VLAN
+ identifier has been saved in in the ``mbuf`` structure. For instance:
+
+ - if VLAN is not stripped and TCI is saved: ``PKT_RX_VLAN``
+ - if VLAN is stripped and TCI is saved: ``PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED``
+
+* **Modified the vlan_offload_set_t function prototype in the ethdev library.**
+
+ Changed the function prototype of ``vlan_offload_set_t``. The return value
+ has been changed from ``void`` to ``int`` so the caller to knows whether
+ the backing device supports the operation or if the operation was
+ successfully performed.
+
ABI Changes
-----------
The size of the field ``port_id`` in the ``rte_eth_dev_data`` structure
changed, as described in the `New Features` section.
+
+Removed Items
+-------------
+
+.. This section should contain removed items in this release. Sample format:
+
+ * Add a short 1-2 sentence description of the removed item in the past
+ tense.
+
+ This section is a comment. do not overwrite or remove it.
+ Also, make sure to start the actual text at the margin.
+ =========================================================
+
+* The crypto performance unit tests have been removed,
+ replaced by the dpdk-test-crypto-perf application.
+
+
Shared Library Versions
-----------------------
.. code-block:: diff
librte_acl.so.2
- librte_bitratestats.so.2
+ + librte_bitratestats.so.2
librte_cfgfile.so.2
librte_cmdline.so.2
- librte_cryptodev.so.3
+ + librte_cryptodev.so.4
librte_distributor.so.1
- librte_eal.so.5
- librte_ethdev.so.8
- librte_eventdev.so.3
+ + librte_eal.so.6
+ + librte_ethdev.so.8
+ + librte_eventdev.so.3
+ + librte_flow_classify.so.1
librte_gro.so.1
- librte_gso.so.1
+ + librte_gso.so.1
librte_hash.so.2
librte_ip_frag.so.1
librte_jobstats.so.1
librte_meter.so.1
librte_metrics.so.1
librte_net.so.1
- librte_pdump.so.2
+ + librte_pci.so.1
+ + librte_pdump.so.2
librte_pipeline.so.3
- librte_pmd_bnxt.so.2
- librte_pmd_bond.so.2
- librte_pmd_i40e.so.2
- librte_pmd_ixgbe.so.2
+ + librte_pmd_bnxt.so.2
+ + librte_pmd_bond.so.2
+ + librte_pmd_i40e.so.2
+ + librte_pmd_ixgbe.so.2
librte_pmd_ring.so.2
+ librte_pmd_softnic.so.1
- librte_pmd_vhost.so.2
+ + librte_pmd_vhost.so.2
librte_port.so.3
librte_power.so.1
librte_reorder.so.1
librte_ring.so.1
librte_sched.so.1
- librte_table.so.2
+ + librte_security.so.1
+ + librte_table.so.3
librte_timer.so.1
librte_vhost.so.3