"Network Interface Controller Drivers" document for more details on this new
driver.
+* **Updated mlx4 driver.**
+
+ Updated the mlx4 driver including the following changes:
+
+ * Isolated mode (rte_flow) can now be enabled anytime, not only during
+ initial device configuration.
+ * Flow rules now support up to 4096 priority levels usable at will by
+ applications.
+ * Enhanced error message to help debugging invalid/unsupported flow rules.
+ * Flow rules matching all multicast and promiscuous traffic are now allowed.
+ * No more software restrictions on flow rules with the RSS action, their
+ configuration is much more flexible.
+ * Significantly reduced memory footprint for Rx and Tx queue objects.
+ * While supported, UDP RSS is temporarily disabled due to a remaining issue
+ with its support in the Linux kernel.
+ * The new RSS implementation does not automatically spread traffic according
+ to the inner packet of VXLAN frames anymore, only the outer one (like
+ other PMDs).
+ * Partial (Tx only) support for secondary processes was broken and had to be
+ removed.
+ * Refactored driver to get rid of dependency on the components provided by
+ Mellanox OFED and instead rely on the current and public rdma-core
+ package and Linux version from now on.
+ * Removed compile-time limitation on number of device instances the PMD
+ can support.
+
* **Updated mlx5 driver.**
Updated the mlx5 driver including the following changes:
See the "Network Interface Controller Drivers" document for more details of
this new driver.
+* **Updated support for Cavium OCTEONTX Device.**
+
+ Updated support for Cavium's OCTEONTX device(CN83xx). This includes:
+
+ * OCTEONTX Mempool driver for supporting offloaded packet memory pool
+ * OCTEONTX Ethdev PMD
+ * OCTEONTX Eventdev-Ethdev Rx adapter
+
+ 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
that displays more detailed breakdown of CPU cycles used by hardware
acceleration.
+* **Added the Security Offload Library.**
+
+ Added an experimental library - rte_security. It provide security APIs for
+ protocols like IPSec using inline ipsec offload to ethernet device or full
+ protocol offload with lookaside crypto device.
+
+ See the "Security_Library" section of the DPDK Programmers Guide document,
+ for more information.
+
+* **Updated DPAA2_SEC crypto driver.**
+
+ Updated dpaa2_sec crypto PMD to support rte_security lookaside protocol
+ offload for IPSec.
+
+* **Updated IXGBE ethernet driver.**
+
+ Updated ixgbe ethernet PMD to support rte_security inline IPSec offload.
+
+* **Updated ipsec-secgw application**
+
+ Updated ipsec-secgw sample application to support rte_security actions for
+ ipsec inline and full protocol offload using lookaside crypto offload.
+
* **Added IOMMU support to libvhost-user**
Implemented device IOTLB in Vhost-user backend, and enabled Virtio's IOMMU
- feature.
+ feature. The feature is disabled by default, and can be enabled by setting
+ RTE_VHOST_USER_IOMMU_SUPPORT flag at vhost device registration time.
+
+* **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.
+
+* **Updated DPAA2 Event PMD.**
+
+ Added support for eventdev ethernet adapter for DPAA2.
* **Added Membership library (rte_member).**
* Added ``flags`` param in ``rte_mempool_xmem_size`` and
``rte_mempool_xmem_usage``.
-* Xen dom0 in EAL was removed, as well as xenvirt PMD and vhost_xen.
-
* ``rte_mem_phy2mch`` was used in Xen dom0 to obtain the physical address;
remove this API as Xen dom0 support was removed.
+* **Some data type, structure members and functions related to physical address
+ are deprecated and have new alias with IOVA wording.**
+
+ * ``phys_addr_t`` can be often replaced by ``rte_iova_t`` of same size.
+ * ``RTE_BAD_PHYS_ADDR`` is often replaced by ``RTE_BAD_IOVA`` of same value.
+ * ``rte_memseg.phys_addr`` is aliased with ``rte_memseg.iova_addr``.
+ * ``rte_mem_virt2phy()`` can often be replaced by ``rte_mem_virt2iova``.
+ * ``rte_malloc_virt2phy`` is aliased with ``rte_malloc_virt2iova``.
+ * ``rte_memzone.phys_addr`` is aliased with ``rte_memzone.iova``.
+ * ``rte_mempool_objhdr.physaddr`` is aliased with ``rte_mempool_objhdr.iova``.
+ * ``rte_mempool_memhdr.phys_addr`` is aliased with ``rte_mempool_memhdr.iova``.
+ * ``rte_mempool_virt2phy()`` can be replaced by ``rte_mempool_virt2iova()``.
+ * ``rte_mempool_populate_phys*()`` are aliased with ``rte_mempool_populate_iova*()``
+ * ``rte_mbuf.buf_physaddr`` is aliased with ``rte_mbuf.buf_iova``.
+ * ``rte_mbuf_data_dma_addr*()`` are aliased with ``rte_mbuf_data_iova*()``.
+ * ``rte_pktmbuf_mtophys*`` are aliased with ``rte_pktmbuf_iova*()``.
+
+* **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``.
+
+* **Moved vdev bus APIs outside of the EAL**
+
+ Moved the following APIs from ``librte_eal`` to ``librte_bus_vdev``:
+ * ``rte_vdev_init``
+ * ``rte_vdev_register``
+ * ``rte_vdev_uninit``
+ * ``rte_vdev_unregister``
+
* **Add return value to stats_get dev op API**
The ``stats_get`` dev op API return value has been changed to be int.
and have been replaced by non bus specific functions
``rte_cryptodev_pmd_parse_input_args()`` and ``rte_cryptodev_pmd_create()``.
+* ``rte_cryptodev_create_vdev`` was removed to avoid the dependency on vdev
+ in librte_cryptodev; instead, users can call rte_vdev_init() directly.
+
* **Removed PCI device bus specific functions from librte_cryptodev.**
The functions ``rte_cryptodev_pci_generic_probe()`` and
``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.
+* **New parameter added to rte_eth_dev.**
+
+ New parameter ``security_ctx`` added to ``rte_eth_dev`` to support security
+ operations like IPSec inline.
+
+* **New parameter added to rte_cryptodev.**
+
+ New parameter ``security_ctx`` added to ``rte_cryptodev`` to support security
+ operations like lookaside crypto.
+
Removed Items
-------------
Also, make sure to start the actual text at the margin.
=========================================================
+* Xen dom0 in EAL was removed, as well as xenvirt PMD and vhost_xen.
+
* The crypto performance unit tests have been removed,
replaced by the dpdk-test-crypto-perf application.
librte_acl.so.2
+ librte_bitratestats.so.2
+ + librte_bus_vdev.so.1
librte_cfgfile.so.2
librte_cmdline.so.2
+ librte_cryptodev.so.4
librte_latencystats.so.1
librte_lpm.so.2
librte_mbuf.so.3
- librte_mempool.so.2
+ + librte_mempool.so.3
librte_meter.so.1
librte_metrics.so.1
librte_net.so.1
+ + librte_pci.so.1
+ librte_pdump.so.2
librte_pipeline.so.3
+ librte_pmd_bnxt.so.2