X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_20_11.rst;h=fafad676ff1f8a827ab5487d2206b5b5faac057a;hb=805b8faa6bb7515a48da5648969f3128a95d3d70;hp=b5d7648f8c7f6a317d5afdbdfd9c6c503b5dab97;hpb=1ca5e67408528b9870bb40f400c5f934aa91dcce;p=dpdk.git diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index b5d7648f8c..fafad676ff 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -55,11 +55,59 @@ New Features Also, make sure to start the actual text at the margin. ======================================================= +* **Added write combining store APIs.** + + Added ``rte_write32_wc`` and ``rte_write32_wc_relaxed`` APIs + that enable write combining stores (depending on architecture). + The functions are provided as a generic stubs and + x86 specific implementation. + +* **Added prefetch with intention to write APIs.** + + Added new prefetch function variants e.g. ``rte_prefetch0_write``, + which allow the programmer to prefetch a cache line and also indicate + the intention to write. + +* **Added the rte_cldemote API.** + + Added a hardware hint CLDEMOTE, which is similar to prefetch in reverse. + CLDEMOTE moves the cache line to the more remote cache, where it expects + sharing to be efficient. Moving the cache line to a level more distant from + the processor helps to accelerate core-to-core communication. + This API is specific to x86 and implemented as a stub for other + architectures. + +* **Updated CRC modules of the net library.** + + * Added runtime selection of the optimal architecture-specific CRC path. + * Added optimized implementations of CRC32-Ethernet and CRC16-CCITT + using the AVX512 and VPCLMULQDQ instruction sets. + +* **Added the FEC API, for a generic FEC query and config.** + + Added the FEC API which provides functions for query FEC capabilities and + current FEC mode from device. Also, API for configuring FEC mode is also provided. + +* **Added thread safety to rte_flow functions.** + + Added ``RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE`` device flag to indicate + whether PMD supports thread safe operations. If PMD doesn't set the flag, + rte_flow API level functions will protect the flow operations with mutex. + +* **Added flow-based traffic sampling support.** + + Added new action: ``RTE_FLOW_ACTION_TYPE_SAMPLE`` to duplicate the matching + packets with specified ratio, and apply with own set of actions with a fate + action. When the ratio is set to 1 then the packets will be 100% mirrored. + * **Updated Broadcom bnxt driver.** Updated the Broadcom bnxt driver with new features and improvements, including: * Added support for 200G PAM4 link speed. + * Added support for RSS hash level selection. + * Updated HWRM structures to 1.10.1.70 version. + * Added TRUFLOW support for Stingray devices. * **Updated Cisco enic driver.** @@ -68,6 +116,11 @@ New Features * Added support for non-zero priorities for group 0 flows * Added support for VXLAN decap combined with VLAN pop +* **Added hns3 FEC PMD, for supporting query and config FEC mode.** + + Added the FEC PMD which provides functions for query FEC capabilities and + current FEC mode from device. Also, PMD for configuring FEC mode is also provided. + * **Updated Solarflare network PMD.** Updated the Solarflare ``sfc_efx`` driver with changes including: @@ -80,12 +133,34 @@ New Features * Changed default link speed to unknown. * Added support for 200G link speed. +* **Updated Intel i40e driver.** + + Updated the Intel i40e driver to use write combining stores. + +* **Updated Intel ixgbe driver.** + + Updated the Intel ixgbe driver to use write combining stores. + +* **Updated Intel ice driver.** + + Updated the Intel ice driver to use write combining stores. + +* **Updated Intel qat driver.** + + Updated the Intel qat driver to use write combining stores. + +* **Updated Memif PMD.** + + * Added support for abstract socket address. + * Changed default socket address type to abstract. + * **Added Ice Lake (Gen4) support for Intel NTB.** Added NTB device support (4th generation) for Intel Ice Lake platform. -* **Added UDP/IPv4 GRO support for non-VxLAN packets.** +* **Added UDP/IPv4 GRO support for VxLAN and non-VxLAN packets.** + For VxLAN packets, added inner UDP/IPv4 support. For non-VxLAN packets, added UDP/IPv4 support. * **Extended flow-perf application.** @@ -99,11 +174,98 @@ New Features * Added flag action. * Added raw encap/decap actions. * Added VXLAN encap/decap actions. - * Added ICMP and ICMP6 matching items. + * Added ICMP(code/type/identifier/sequence number) and ICMP6(code/type) matching items. * Added option to set port mask for insertion/deletion: ``--portmask=N`` where N represents the hexadecimal bitmask of ports used. +* **Added raw data-path APIs for cryptodev library.** + + Cryptodev is added with raw data-path APIs to accelerate external + libraries or applications which need to avail fast cryptodev + enqueue/dequeue operations but does not necessarily depends on + mbufs and cryptodev operation mempools. + +* **Updated the aesni_mb crypto PMD.** + + * Added support for AES-ECB 128, 192 and 256. + * Added support for ZUC-EEA3/EIA3 algorithms. + * Added support for SNOW3G-UEA2/UIA2 algorithms. + * Added support for KASUMI-F8/F9 algorithms. + * Added support for Chacha20-Poly1305. + * Added support for AES-256 CCM algorithm. + +* **Updated the aesni_gcm crypto PMD.** + + * Added SGL support for AES-GMAC. + +* **Added Broadcom BCMFS symmetric crypto PMD.** + + Added a symmetric crypto PMD for Broadcom FlexSparc crypto units. + See :doc:`../cryptodevs/bcmfs` guide for more details on this new PMD. + +* **Updated DPAA2_SEC crypto PMD.** + + * Added DES-CBC support for cipher_only, chain and ipsec protocol. + * Added support for non-HMAC auth algorithms + (MD5, SHA1, SHA224, SHA256, SHA384, SHA512). + +* **Updated Marvell NITROX symmetric crypto PMD.** + + * Added AES-GCM support. + * Added cipher only offload support. + +* **Updated the OCTEON TX2 crypto PMD.** + + * Updated the OCTEON TX2 crypto PMD lookaside protocol offload for IPsec with + IPv6 support. + +* **Updated QAT crypto PMD.** + + * Added Raw Data-path APIs support. + +* **Added Intel ACC100 bbdev PMD.** + + Added a new ``acc100`` bbdev driver for the Intel\ |reg| ACC100 accelerator + also known as Mount Bryce. See the + :doc:`../bbdevs/acc100` BBDEV guide for more details on this new driver. + +* **Updated rte_security library to support SDAP.** + + ``rte_security_pdcp_xform`` in ``rte_security`` lib is updated to enable + 5G NR processing of SDAP header in PMDs. + +* **Added Marvell OCTEON TX2 regex PMD.** + + Added a new PMD driver for hardware regex offload block for OCTEON TX2 SoC. + + See the :doc:`../regexdevs/octeontx2` for more details. + +* **Updated Software Eventdev driver.** + + Added performance tuning arguments to allow tuning the scheduler for + better throughtput in high core count use cases. + +* **Updated ioat rawdev driver** + + The ioat rawdev driver has been updated and enhanced. Changes include: + + * Added support for Intel\ |reg| Data Streaming Accelerator hardware. + For more information, see https://01.org/blogs/2019/introducing-intel-data-streaming-accelerator + * Added support for the fill operation via the API ``rte_ioat_enqueue_fill()``, + where the hardware fills an area of memory with a repeating pattern. + * Added a per-device configuration flag to disable management + of user-provided completion handles. + * Renamed the ``rte_ioat_do_copies()`` API to ``rte_ioat_perform_ops()``, + and renamed the ``rte_ioat_completed_copies()`` API to ``rte_ioat_completed_ops()`` + to better reflect the APIs' purposes, and remove the implication that + they are limited to copy operations only. + [Note: The old API is still provided but marked as deprecated in the code] + * Added a new API ``rte_ioat_fence()`` to add a fence between operations. + This API replaces the ``fence`` flag parameter in the ``rte_ioat_enqueue_copies()`` function, + and is clearer as there is no ambiguity as to whether the flag should be + set on the last operation before the fence or the first operation after it. + * **Updated the pipeline library for alignment with the P4 language.** Added new Software Switch (SWX) pipeline type that provides more @@ -115,6 +277,26 @@ New Features * Extern objects and functions can be plugged into the pipeline. * Transaction-oriented table updates. +* **Add new AVX512 specific classify algorithms for ACL library.** + + * Added new ``RTE_ACL_CLASSIFY_AVX512X16`` vector implementation, + which can process up to 16 flows in parallel. Requires AVX512 support. + + * Added new ``RTE_ACL_CLASSIFY_AVX512X32`` vector implementation, + which can process up to 32 flows in parallel. Requires AVX512 support. + +* **Added support to update subport bandwidth dynamically.** + + * Added new API ``rte_sched_port_subport_profile_add`` to add new + subport bandwidth profile to subport porfile table at runtime. + + * Added support to update subport rate dynamically. + +* **Updated FIPS validation sample application.** + + * Added scatter gather support. + * Added NIST GCMVS complaint GMAC test method support. + Removed Items ------------- @@ -199,13 +381,61 @@ API Changes * ethdev: ``rte_eth_rx_descriptor_done()`` API has been deprecated. -* Renamed internal ethdev APIs: +* ethdev: Renamed basic statistics per queue. An underscore is inserted + between the queue number and the rest of the xstat name: + + * ``rx_qN*`` -> ``rx_qN_*`` + * ``tx_qN*`` -> ``tx_qN_*`` + +* ethdev: Renamed internal functions: * ``_rte_eth_dev_callback_process()`` -> ``rte_eth_dev_callback_process()`` * ``_rte_eth_dev_reset`` -> ``rte_eth_dev_internal_reset()`` +* ethdev: Modified field type of ``base`` and ``nb_queue`` in struct + ``rte_eth_dcb_tc_queue_mapping`` from ``uint8_t`` to ``uint16_t``. + As the data of ``uint8_t`` will be truncated when queue number under + a TC is greater than 256. + * vhost: Moved vDPA APIs from experimental to stable. +* vhost: Add a new function ``rte_vhost_crypto_driver_start`` to be called + instead of ``rte_vhost_driver_start`` by crypto applications. + +* cryptodev: The structure ``rte_crypto_sym_vec`` is updated to support both + cpu_crypto synchrounous operation and asynchronous raw data-path APIs. + +* cryptodev: ``RTE_CRYPTO_AEAD_LIST_END`` from ``enum rte_crypto_aead_algorithm``, + ``RTE_CRYPTO_CIPHER_LIST_END`` from ``enum rte_crypto_cipher_algorithm`` and + ``RTE_CRYPTO_AUTH_LIST_END`` from ``enum rte_crypto_auth_algorithm`` + are removed to avoid future ABI breakage while adding new algorithms. + +* scheduler: Renamed functions ``rte_cryptodev_scheduler_slave_attach``, + ``rte_cryptodev_scheduler_slave_detach`` and + ``rte_cryptodev_scheduler_slaves_get`` to + ``rte_cryptodev_scheduler_worker_attach``, + ``rte_cryptodev_scheduler_worker_detach`` and + ``rte_cryptodev_scheduler_workers_get`` accordingly. + +* scheduler: Renamed the configuration value + ``RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES`` to + ``RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS``. + +* security: ``hfn_ovrd`` field in ``rte_security_pdcp_xform`` is changed from + ``uint32_t`` to ``uint8_t`` so that a new field ``sdap_enabled`` can be added + to support SDAP. + +* ipsec: ``RTE_SATP_LOG2_NUM`` has been dropped from ``enum`` and + subsequently moved ``rte_ipsec`` lib from experimental to stable. + +* baseband/fpga_lte_fec: Renamed function ``fpga_lte_fec_configure`` to + ``rte_fpga_lte_fec_configure`` and structure ``fpga_lte_fec_conf`` to + ``rte_fpga_lte_fec_conf``. + +* baseband/fpga_5gnr_fec: Renamed function ``fpga_5gnr_fec_configure`` to + ``rte_fpga_5gnr_fec_configure`` and structure ``fpga_5gnr_fec_conf`` to + ``rte_fpga_5gnr_fec_conf``. + * rawdev: Added a structure size parameter to the functions ``rte_rawdev_queue_setup()``, ``rte_rawdev_queue_conf_get()``, ``rte_rawdev_info_get()`` and ``rte_rawdev_configure()``, @@ -222,11 +452,25 @@ API Changes Following this change, the ``ioat_rawdev_autotest`` command has been removed as no longer needed. +* raw/ioat: As noted above, the ``rte_ioat_do_copies()`` and + ``rte_ioat_completed_copies()`` functions have been renamed to + ``rte_ioat_perform_ops()`` and ``rte_ioat_completed_ops()`` respectively. + * stack: the experimental tag has been dropped from the stack library, and its interfaces are considered stable as of DPDK 20.11. * bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``. +* acl: ``RTE_ACL_CLASSIFY_NUM`` enum value has been removed. + This enum value was not used inside DPDK, while it prevented to add new + classify algorithms without causing an ABI breakage. + +* sched: Added ``subport_profile_id`` as argument + to function ``rte_sched_subport_config``. + +* sched: Removed ``tb_rate``, ``tc_rate``, ``tc_period`` and ``tb_size`` + from ``struct rte_sched_subport_params``. + ABI Changes ----------- @@ -243,6 +487,8 @@ ABI Changes Also, make sure to start the actual text at the margin. ======================================================= +* eal: Removed the not implemented function ``rte_dump_registers()``. + * ``ethdev`` changes * Following device operation function pointers moved @@ -258,6 +504,15 @@ ABI Changes * ``ethdev`` internal functions are marked with ``__rte_internal`` tag. +* eventdev: Following structures are modified to support DLB/DLB2 PMDs + and future extensions: + + * ``rte_event_dev_info`` + * ``rte_event_dev_config`` + * ``rte_event_port_conf`` + +* sched: Added new fields to ``struct rte_sched_subport_port_params``. + Known Issues ------------