X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_20_11.rst;h=8814ae74a3ef97e69085aff2fb458ab2ad0cd7ec;hb=b64c2295f7fcfae9273c1501819826e59449e185;hp=6431efe56b56ac146f03aee51cc1c58935c5da0e;hpb=f150dd8839dd6c7a386cc98a5b0025684a31bdc1;p=dpdk.git diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index 6431efe56b..8814ae74a3 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -55,6 +55,139 @@ 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. + +* **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. + +* **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. + +* **Updated Cisco enic driver.** + + * Added support for VF representors with single-queue Tx/Rx and flow API + * Added support for egress PORT_ID action + * 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: + + * Added SR-IOV PF support + +* **Updated Virtio driver.** + + * Added support for Vhost-vDPA backend to Virtio-user PMD. + * 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. + +* **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 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.** + + * Started supporting user order instead of bit mask: + Now the user can create any structure of rte_flow + using flow performance application with any order, + moreover the app also now starts to support inner + items matching as well. + * Added header modify actions. + * Added flag action. + * Added raw encap/decap actions. + * Added VXLAN encap/decap actions. + * Added ICMP and ICMP6 matching items. + * Added option to set port mask for insertion/deletion: + ``--portmask=N`` + where N represents the hexadecimal bitmask of ports used. + +* **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 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 + flexibility through API and feature alignment with the P4 language. + + * The packet headers, meta-data, actions, tables and pipelines are + dynamically defined instead of selected from pre-defined set. + * The actions and the pipeline are defined with instructions. + * 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. + Removed Items ------------- @@ -68,6 +201,12 @@ Removed Items Also, make sure to start the actual text at the margin. ======================================================= +* vhost: Dequeue zero-copy support has been removed. + +* kernel: The module ``igb_uio`` has been moved to the git repository + ``dpdk-kmods`` in a new directory ``linux/igb_uio``. + +* Removed Python 2 support since it was EOL'd in January 2020. API Changes ----------- @@ -84,13 +223,96 @@ API Changes Also, make sure to start the actual text at the margin. ======================================================= -* rawdev: Added a structure size parameter to the function - ``rte_rawdev_info_get()``, +* build macros: The macros defining ``RTE_MACHINE_CPUFLAG_*`` are removed. + The information provided by these macros is available through standard + compiler macros. + +* eal: The ``rte_logs`` struct and global symbol was made private + and is no longer part of the API. + +* eal: Made the ``rte_dev_event`` structure private to the EAL as no public API + used it. + +* eal: ``rte_cio_rmb()`` and ``rte_cio_wmb()`` were deprecated since 20.08 + and are removed in this release. + +* mem: Removed the unioned field ``phys_addr`` from + the structures ``rte_memseg`` and ``rte_memzone``. + The field ``iova`` is remaining from the old unions. + +* mempool: Removed the unioned fields ``phys_addr`` and ``physaddr`` from + the structures ``rte_mempool_memhdr`` and ``rte_mempool_objhdr``. + The field ``iova`` is remaining from the old unions. + The flag name ``MEMPOOL_F_NO_PHYS_CONTIG`` is removed, + while the aliased flag ``MEMPOOL_F_NO_IOVA_CONTIG`` is kept. + +* mbuf: Removed the functions ``rte_mbuf_data_dma_addr*`` + and the macros ``rte_pktmbuf_mtophys*``. + The same functionality is still available with the functions and macros + having ``iova`` in their names instead of ``dma_addr`` or ``mtophys``. + +* mbuf: Removed the unioned field ``buf_physaddr`` from ``rte_mbuf``. + The field ``buf_iova`` is remaining from the old union. + +* mbuf: Removed the unioned field ``refcnt_atomic`` from + the structures ``rte_mbuf`` and ``rte_mbuf_ext_shared_info``. + The field ``refcnt`` is remaining from the old unions. + +* pci: Removed the ``rte_kernel_driver`` enum defined in rte_dev.h and + replaced with a private enum in the PCI subsystem. + +* pci: Removed the PCI resources map API from the public API + (``pci_map_resource`` and ``pci_unmap_resource``) and moved it to the + PCI bus driver along with the PCI resources lists and associated structures + (``pci_map``, ``pci_msix_table``, ``mapped_pci_resource`` and + ``mapped_pci_res_list``). + +* ethdev: Removed the ``kdrv`` field in the ethdev ``rte_eth_dev_data`` + structure as it gave no useful abstracted information to the applications. + +* ethdev: ``rte_eth_rx_descriptor_done()`` API has been deprecated. + +* Renamed internal ethdev APIs: + + * ``_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. + +* 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()``, allowing limited driver type-checking and ABI compatibility. * rawdev: Changed the return type of the function ``rte_dev_info_get()`` + and the function ``rte_rawdev_queue_conf_get()`` from ``void`` to ``int`` allowing the return of error codes from drivers. +* rawdev: The running of a drivers ``selftest()`` function can now be done + using the ``rawdev_autotest`` command in the ``dpdk-test`` binary. This + command now calls the self-test function for each rawdev found on the + system, and does not require a specific command per device type. + 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. + ABI Changes ----------- @@ -107,6 +329,21 @@ ABI Changes Also, make sure to start the actual text at the margin. ======================================================= +* ``ethdev`` changes + + * Following device operation function pointers moved + from ``struct eth_dev_ops`` to ``struct rte_eth_dev``: + + * ``eth_rx_queue_count_t rx_queue_count;`` + * ``eth_rx_descriptor_done_t rx_descriptor_done;`` + * ``eth_rx_descriptor_status_t rx_descriptor_status;`` + * ``eth_tx_descriptor_status_t tx_descriptor_status;`` + + * ``struct eth_dev_ops`` is no more accessible by applications, + which was already internal data structure. + + * ``ethdev`` internal functions are marked with ``__rte_internal`` tag. + Known Issues ------------