X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_19_11.rst;h=7ad0ee8006a30c18106588d9fd4699efee46a78b;hb=92c083915ade012771dfe588e448987ff9da0bc0;hp=148b635d2f261eb8d3e02c97e62720952cb5df95;hpb=46971b273ec7f469ca67a865453e1dd36274c5e1;p=dpdk.git diff --git a/doc/guides/rel_notes/release_19_11.rst b/doc/guides/rel_notes/release_19_11.rst index 148b635d2f..7ad0ee8006 100644 --- a/doc/guides/rel_notes/release_19_11.rst +++ b/doc/guides/rel_notes/release_19_11.rst @@ -56,31 +56,78 @@ New Features Also, make sure to start the actual text at the margin. ========================================================= -* **FreeBSD now supports `--base-virtaddr` EAL option.** +* **Added support for --base-virtaddr EAL option to FreeBSD.** - FreeBSD version now also supports setting base virtual address for mapping - pages and resources into its address space. + The FreeBSD version of DPDK now also supports setting base virtual address + for mapping pages and resources into its address space. * **Added Lock-free Stack for aarch64.** - The lock-free stack implementation is enabled for aarch64 platforms. + Enabled the lock-free stack implementation for aarch64 platforms. -* **Added support of dynamic fields and flags in mbuf.** +* **Extended pktmbuf mempool private structure.** + + rte_pktmbuf_pool_private structure was extended to include flags field + for future compatibility. + As per 19.11 release this field is reserved and should be set to 0 + by the user. + ++* **Changed mempool allocation behavior.** + + Changed the mempool allocation behaviour so that objects no longer cross + pages by default. Note, this may consume more memory when using small memory + pages. + +* **Added support for dynamic fields and flags in mbuf.** This new feature adds the ability to dynamically register some room for a field or a flag in the mbuf structure. This is typically used for specific offload features, where adding a static field or flag in the mbuf is not justified. -* **Updated the enic driver.** +* **Added support for hairpin queues.** - * Added support for Geneve with options offload. - * Added flow API implementation based on VIC Flow Manager API. + On supported NICs, we can now setup hairpin queues which will offload packets + from the wire, back to the wire. + +* **Added flow tag in rte_flow.** + + The ``SET_TAG`` action and ``TAG`` item have been added to support transient + flow tag. + +* **Extended metadata support in rte_flow.** + + Flow metadata has been extended to both Rx and Tx. + + * Tx metadata can also be set by SET_META action of rte_flow. + * Rx metadata is delivered to the host via a dynamic field of ``rte_mbuf`` + with ``PKT_RX_DYNF_METADATA``. + +* **Added ethdev API to set supported packet types.** + + * Added new API ``rte_eth_dev_set_ptypes`` which allows an application to + inform a PMD about a reduced range of packet types to handle. + * This scheme will allow PMDs to avoid lookup of internal ptype table on Rx + and thereby improve Rx performance if the application wishes to do so. + +* **Added Rx offload flag to enable or disable RSS update.** + + * Added new Rx offload flag ``DEV_RX_OFFLOAD_RSS_HASH`` which can be used to + enable/disable PMDs write to ``rte_mbuf::hash::rss``. + * PMDs notify the validity of ``rte_mbuf::hash:rss`` to the application + by enabling ``PKT_RX_RSS_HASH`` flag in ``rte_mbuf::ol_flags``. + +* **Added Rx/Tx packet burst mode "get" API.** + + Added two new functions ``rte_eth_rx_burst_mode_get`` and + ``rte_eth_tx_burst_mode_get`` that allow an application + to retrieve the mode information about Rx/Tx packet burst + such as Scalar or Vector, and Vector technology like AVX2. * **Added Hisilicon hns3 PMD.** Added the new ``hns3`` net driver for the inbuilt Hisilicon Network - Subsystem 3(HNS3) network engine found in the Hisilicon Kunpeng 920 SoC. + Subsystem 3 (HNS3) network engine found in the Hisilicon Kunpeng 920 SoC. See the :doc:`../nics/hns3` guide for more details on this new driver. * **Added NXP PFE PMD.** @@ -88,6 +135,21 @@ New Features Added the new PFE driver for the NXP LS1012A platform. See the :doc:`../nics/pfe` NIC driver guide for more details on this new driver. +* **Updated Broadcom bnxt driver.** + + Updated Broadcom bnxt driver with new features and improvements, including: + + * Added support for hot firmware upgrade. + * Added support for error recovery. + * Added support for querying and using COS classification in hardware. + * Added LRO support Thor devices. + * Update HWRM API to version 1.10.1.6 + +* **Updated the enic driver.** + + * Added support for Geneve with options offload. + * Added flow API implementation based on VIC Flow Manager API. + * **Updated iavf PMD.** Enable AVX2 data path for iavf PMD. @@ -108,15 +170,6 @@ New Features Added support for the ``RTE_ETH_DEV_CLOSE_REMOVE`` flag. -* **Added RX/TX packet burst mode get API.** - - Added two new functions ``rte_eth_rx_burst_mode_get`` and - ``rte_eth_tx_burst_mode_get`` that allow an application - to retrieve the mode information about RX/TX packet burst - such as Scalar or Vector, and Vector technology like AVX2. - Another new function ``rte_eth_burst_mode_option_name`` is - provided for burst mode options stringification. - * **Updated the Intel ice driver.** Updated the Intel ice driver with new features and improvements, including: @@ -131,11 +184,7 @@ New Features - Supported new packet type like PPPoE for switch filter. * Supported input set change and symmetric hash by rte_flow RSS action. * Added support for GTP Tx checksum offload. - -* **Added cryptodev asymmetric session-less operation.** - - Added session-less option to cryptodev asymmetric structure. It works the same - way as symmetric crypto, corresponding xform is used directly by the crypto op. + * Added new device IDs to support E810_XXV devices. * **Updated the Huawei hinic driver.** @@ -144,7 +193,7 @@ New Features * Enabled SR-IOV - Partially supported at this point, VFIO only. * Supported VLAN filter and VLAN offload. * Supported Unicast MAC filter and Multicast MAC filter. - * Supported Flow director for LACP, VRRP, BGP and so on. + * Supported Flow API for LACP, VRRP, BGP and so on. * Supported FW version get. * **Updated Mellanox mlx5 driver.** @@ -156,35 +205,57 @@ New Features * Added support for VLAN set PCP offload command. * Added support for VLAN set VID offload command. * Added support for matching on packets withe Geneve tunnel header. + * Added hairpin support. + * Added ConnectX6-DX support. + * Flow engine selected based on RDMA Core library version. + DV flow engine selected if version is rdma-core-24.0 or higher. + Verbs flow engine selected otherwise. * **Updated the AF_XDP PMD.** Updated the AF_XDP PMD. The new features include: * Enabled zero copy between application mempools and UMEM by enabling the - XDP_UMEM_UNALIGNED_CHUNKS UMEM flag. + ``XDP_UMEM_UNALIGNED_CHUNKS UMEM`` flag. + +* **Added cryptodev asymmetric session-less operation.** + + Added a session-less option to the cryptodev asymmetric structure. It works + the same way as symmetric crypto, and the corresponding transform is used + directly by the crypto operation. * **Added Marvell NITROX symmetric crypto PMD.** Added a symmetric crypto PMD for Marvell NITROX V security processor. - See the :doc:`../cryptodevs/nitrox` guide for more details on this new + See the :doc:`../cryptodevs/nitrox` guide for more details on this new PMD. * **Added asymmetric support to Marvell OCTEON TX crypto PMD.** - Added support for asymmetric operations in Marvell OCTEON TX cypto PMD. + Added support for asymmetric operations to Marvell OCTEON TX crypto PMD. Supports RSA and modexp operations. -* **Added Marvell OCTEON TX2 crypto PMD** +* **Added Marvell OCTEON TX2 crypto PMD.** - Added a new PMD driver for h/w crypto offload block on ``OCTEON TX2`` SoC. + Added a new PMD driver for hardware crypto offload block on ``OCTEON TX2`` + SoC. See :doc:`../cryptodevs/octeontx2` for more details * **Updated NXP crypto PMDs for PDCP support.** - PDCP support is added to DPAA_SEC and DPAA2_SEC PMDs using rte_security APIs. - Support is added for all sequence number sizes for control and user plane. - Test application is updated for unit testing. + Added PDCP support to the DPAA_SEC and DPAA2_SEC PMDs using rte_security + APIs. Support has been added for all sequence number sizes for control and + user plane. Test and test-crypto-perf applications have been updated for + unit testing. + +* **Updated the AESNI-MB PMD.** + + * Added support for intel-ipsec-mb version 0.53. + +* **Updated the AESNI-GCM PMD.** + + * Added support for intel-ipsec-mb version 0.53. + * Added support for in-place chained mbufs with AES-GCM algorithm. * **Enabled Single Pass GCM acceleration on QAT GEN3.** @@ -196,7 +267,8 @@ New Features * **Updated the Intel QuickAssist Technology (QAT) asymmetric crypto PMD.** * Added support for asymmetric session-less operations. - * Added support for RSA algorithm with pair (n, d) private key representation. + * Added support for RSA algorithm with pair ``(n, d)`` private key + representation. * Added support for RSA algorithm with quintuple private key representation. * **Updated the Intel QuickAssist Technology (QAT) compression PMD.** @@ -206,15 +278,19 @@ New Features * **Added external buffers support for dpdk-test-compress-perf tool.** - Added a command line option to dpdk-test-compress-perf tool to allocate - and use memory zones as external buffers instead of keeping the data directly - in mbuf areas. + Added a command line option to the ``dpdk-test-compress-perf`` tool to + allocate and use memory zones as external buffers instead of keeping the + data directly in mbuf areas. * **Updated the IPSec library.** - Added SA Database API to ``librte_ipsec``. A new test-sad application is also - introduced to evaluate and perform custom functional and performance tests - for IPsec SAD implementation. + * Added Security Associations (SA) Database API to ``librte_ipsec``. A new + test-sad application has also been introduced to evaluate and perform + custom functional and performance tests for an IPsec SAD implementation. + + * Support fragmented packets in inline crypto processing mode with fallback + ``lookaside-none`` session. Corresponding changes are also added in the + IPsec Security Gateway application. * **Introduced FIFO for NTB PMD.** @@ -226,10 +302,45 @@ New Features Added eBPF JIT support for arm64 architecture to improve the eBPF program performance. -* **Updated testpmd.** +* **Added RIB and FIB (Routing/Forwarding Information Base) libraries.** + + Added Routing and Forwarding Information Base (RIB/FIB) libraries. RIB and + FIB can replace the LPM (Longest Prefix Match) library with better control + plane (RIB) performance. The data plane (FIB) can be extended with new + algorithms. + +* **Updated testpmd with a command for ptypes.** * Added a console command to testpmd app, ``show port (port_id) ptypes`` which gives ability to print port supported ptypes in different protocol layers. + * Packet type detection disabled by default for the supported PMDs. + +* **Added new l2fwd-event sample application.** + + Added an example application ``l2fwd-event`` that adds event device support to + the traditional l2fwd example. It demonstrates usage of poll and event mode IO + mechanism under a single application. + +* **Added build support for Link Time Optimization.** + + LTO is an optimization technique used by the compiler to perform whole + program analysis and optimization at link time. In order to do that + compilers store their internal representation of the source code that + the linker uses at the final stage of the compilation process. + + See :doc:`../prog_guide/lto` for more information: + +* **Added IOVA as VA support for KNI.** + + * Added IOVA = VA support for KNI. KNI can operate in IOVA = VA mode when + ``iova-mode=va`` EAL option is passed to the application or when bus IOVA + scheme is selected as RTE_IOVA_VA. This mode only works on Linux Kernel + versions >= 4.9.0. + + * Due to IOVA to KVA address translations, based on the KNI use case there + can be a performance impact. For mitigation, forcing IOVA to PA via EAL + ``--iova-mode=pa`` option can be used, IOVA_DC bus iommu scheme can also + result in IOVA as PA. Removed Items @@ -244,13 +355,18 @@ Removed Items Also, make sure to start the actual text at the margin. ========================================================= +* Removed library-level ABI versions. These have been replaced with a single + project-level ABI version for non-experimental libraries and an ABI version of + ``0`` for experimental libraries. Review the :doc:`../contributing/abi_policy` + and :doc:`../contributing/abi_versioning` guides for more information. + * Removed duplicated set of commands for Rx offload configuration from testpmd:: port config all crc-strip|scatter|rx-cksum|rx-timestamp| hw-vlan|hw-vlan-filter|hw-vlan-strip|hw-vlan-extend on|off - The testpmd commands set that can be used instead - in order to enable or disable Rx offloading on all Rx queues of a port is:: + The testpmd command set that can be used instead in order to enable or + disable Rx offloading on all Rx queues of a port is:: port config rx_offload crc_strip|scatter| ipv4_cksum|udp_cksum|tcp_cksum|timestamp| @@ -262,9 +378,14 @@ Removed Items * Exception Path * L3 Forwarding in a Virtualization Environment + * Load Balancer + * Netmap Compatibility * Quota and Watermark * vhost-scsi +* Removed arm64-dpaa2-* build config. arm64-dpaa-* can now build for both + dpaa and dpaa2 platforms. + API Changes ----------- @@ -281,6 +402,31 @@ API Changes Also, make sure to start the actual text at the margin. ========================================================= +* eal: made the ``lcore_config`` struct and global symbol private. + +* eal: removed the ``rte_cpu_check_supported`` function, replaced by + ``rte_cpu_is_supported`` since dpdk v17.08. + +* eal: removed the ``rte_malloc_virt2phy`` function, replaced by + ``rte_malloc_virt2iova`` since v17.11. + +* eal: made the ``rte_config`` struct and ``rte_eal_get_configuration`` + function private. + +* mem: hid the internal ``malloc_heap`` structure and the + ``rte_malloc_heap.h`` header. + +* vfio: removed ``rte_vfio_dma_map`` and ``rte_vfio_dma_unmap`` that have + been marked as deprecated in release 19.05. + ``rte_vfio_container_dma_map`` and ``rte_vfio_container_dma_unmap`` can + be used as substitutes. + +* pci: removed the following functions deprecated since dpdk v17.11: + + - ``eal_parse_pci_BDF`` replaced by ``rte_pci_addr_parse`` + - ``eal_parse_pci_DomBDF`` replaced by ``rte_pci_addr_parse`` + - ``rte_eal_compare_pci_addr`` replaced by ``rte_pci_addr_cmp`` + * The network structure ``esp_tail`` has been prefixed by ``rte_``. * The network definitions of PPPoE ethertypes have been prefixed by ``RTE_``. @@ -311,10 +457,26 @@ API Changes * ethdev: changed ``rte_eth_dev_owner_delete`` return value from ``void`` to ``int`` to provide a way to report various error conditions. +* ethdev: The deprecated function ``rte_eth_dev_count`` was removed. + The function ``rte_eth_dev_count_avail`` is a drop-in replacement. + If the intent is to iterate over ports, ``RTE_ETH_FOREACH_*`` macros + are better port iterators. + +* ethdev: ``RTE_FLOW_ITEM_TYPE_META`` data endianness altered to host one. + Due to the new dynamic metadata field in mbuf is host-endian either, there + is a minor compatibility issue for applications in case of 32-bit values + supported. + +* ethdev: the tx_metadata mbuf field is moved to dynamic one. + ``PKT_TX_METADATA`` flag is replaced with ``PKT_TX_DYNF_METADATA``. + ``DEV_TX_OFFLOAD_MATCH_METADATA`` offload flag is removed, now metadata + support in PMD is engaged on dynamic field registration. + * event: The function ``rte_event_eth_tx_adapter_enqueue`` takes an additional input as ``flags``. Flag ``RTE_EVENT_ETH_TX_ADAPTER_ENQUEUE_SAME_DEST`` which has been introduced in this release is used when used when all the packets - enqueued in the tx adapter are destined for the same Ethernet port & Tx queue. + enqueued in the Tx adapter are destined for the same Ethernet port ans Tx + queue. * sched: The pipe nodes configuration parameters such as number of pipes, pipe queue sizes, pipe profiles, etc., are moved from port level structure @@ -337,6 +499,34 @@ ABI Changes Also, make sure to start the actual text at the margin. ========================================================= +* policy: Please note the revisions to the :doc:`../contributing/abi_policy` + introducing major ABI versions, with DPDK 19.11 becoming the first major + version ``v20``. ABI changes to add new features continue to be permitted in + subsequent releases, with the condition that ABI compatibility with the major + ABI version is maintained. + +* net: The Ethernet address and other header definitions have changed + attributes. They have been modified to be aligned on 2-byte boundaries. + These changes should not impact normal usage because drivers naturally + align the Ethernet header on receive and all known encapsulations + preserve the alignment of the header. + +* security: The field ``replay_win_sz`` has been moved from the ipsec library + based ``rte_ipsec_sa_prm`` structure to security library based structure + ``rte_security_ipsec_xform``, which specify the anti-replay window size + to enable sequence replay attack handling. + +* ipsec: The field ``replay_win_sz`` has been removed from the structure + ``rte_ipsec_sa_prm`` as it has been added to the security library. + +* ethdev: Added 32-bit fields for maximum LRO aggregated packet size, in + struct ``rte_eth_dev_info`` for the port capability and in struct + ``rte_eth_rxmode`` for the port configuration. + Application should use the new field in struct ``rte_eth_rxmode`` to configure + the requested size. + PMD should use the new field in struct ``rte_eth_dev_info`` to report the + supported port capability. + Shared Library Versions ----------------------- @@ -370,16 +560,17 @@ The libraries prepended with a plus sign were incremented in this version. librte_compressdev.so.1 librte_cryptodev.so.8 librte_distributor.so.1 - librte_eal.so.11 + + librte_eal.so.12 librte_efd.so.1 + librte_ethdev.so.13 + librte_eventdev.so.8 + + librte_fib.so.1 librte_flow_classify.so.1 librte_gro.so.1 librte_gso.so.1 librte_hash.so.2 librte_ip_frag.so.1 - librte_ipsec.so.1 + + librte_ipsec.so.2 librte_jobstats.so.1 librte_kni.so.2 librte_kvargs.so.1 @@ -391,7 +582,7 @@ The libraries prepended with a plus sign were incremented in this version. librte_meter.so.3 librte_metrics.so.1 librte_net.so.1 - librte_pci.so.1 + + librte_pci.so.2 librte_pdump.so.3 librte_pipeline.so.3 librte_pmd_bnxt.so.2 @@ -405,11 +596,12 @@ The libraries prepended with a plus sign were incremented in this version. librte_port.so.3 librte_power.so.1 librte_rawdev.so.1 + + librte_rib.so.1 librte_rcu.so.1 librte_reorder.so.1 librte_ring.so.2 + librte_sched.so.4 - librte_security.so.2 + + librte_security.so.3 librte_stack.so.1 librte_table.so.3 librte_timer.so.1