From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D978042350; Fri, 13 Oct 2023 06:27:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 30F5F402E4; Fri, 13 Oct 2023 06:27:38 +0200 (CEST) Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.196]) by mails.dpdk.org (Postfix) with ESMTP id 41840402CB for ; Fri, 13 Oct 2023 06:27:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=3HcKB j2e0WzBT74x5N8hBFn2lrBi4+kTdBUnWx7e2M0=; b=j6sJmAuBPM6HkSLN6bMKW sYraJOmeaeXlcWUbluTsNX9yx8/qkniyvP8HpSrOBYvEBRIat0sHWrPJ7JgNi+tY eWge5PqTj4VhM6QFGYddEQbUvRAii+9Sq0LVXyf+LJDu3CNErJDMYnZer2vN2Ub5 w30eORx84S50lHrkIOp0ug= Received: from u2204.. (unknown [49.76.95.19]) by zwqz-smtp-mta-g3-1 (Coremail) with SMTP id _____wDnd_AsxyhlkACrAQ--.46395S5; Fri, 13 Oct 2023 12:27:31 +0800 (CST) From: Trevor Tao To: dev@dpdk.org Cc: Trevor Tao Subject: [PATCH v2 3/3] doc: add a relax rx mode requirement option Date: Fri, 13 Oct 2023 04:27:22 +0000 Message-Id: <20231013042722.429592-4-taozj888@163.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231013042722.429592-1-taozj888@163.com> References: <20231013042722.429592-1-taozj888@163.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: _____wDnd_AsxyhlkACrAQ--.46395S5 X-Coremail-Antispam: 1Uf129KBjvAXoW3ZFWrZw1DtF45Zr13uryxGrg_yoW8GFWxJo Z2qr45Cw40qr15CrWjgr9rGrWxWrnagr95Xr1ru398GasFqa1UG34rZa15W3ZxtF4jgFn8 KFyDJas0yrs7XF4fn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvj4R4rWwDUUUU X-Originating-IP: [49.76.95.19] X-CM-SenderInfo: hwdr6yqyyyqiywtou0bp/xtbBohQIx1aEJ0jE+wAAs7 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add an option to enable the RX mode requirement relax in release notes and l3fwd sample guide. Signed-off-by: Trevor Tao --- doc/guides/rel_notes/release_23_11.rst | 251 +++++++++++++++++++++--- doc/guides/sample_app_ug/l3_forward.rst | 4 +- 2 files changed, 230 insertions(+), 25 deletions(-) diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst index f09ecd50fe..3f1d5039c3 100644 --- a/doc/guides/rel_notes/release_23_11.rst +++ b/doc/guides/rel_notes/release_23_11.rst @@ -20,26 +20,14 @@ DPDK Release 23.11 ninja -C build doc xdg-open build/doc/guides/html/rel_notes/release_23_11.html -* Build Requirements: From DPDK 23.11 onwards, - building DPDK will require a C compiler which supports the C11 standard, - including support for C11 standard atomics. - - More specifically, the requirements will be: - * Support for flag "-std=c11" (or similar) - * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag +New Features +------------ - Please note: + * **Added support for models with multiple I/O in mldev library.** - * C11, including standard atomics, is supported from GCC version 5 onwards, - and is the default language version in that release - (Ref: https://gcc.gnu.org/gcc-5/changes.html) - * C11 is the default compilation mode in Clang from version 3.6, - which also added support for standard atomics - (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) + Added support in mldev library for models with multiple inputs and outputs. -New Features ------------- .. This section should contain new features added in this release. Sample format: @@ -72,18 +60,177 @@ New Features Also, make sure to start the actual text at the margin. ======================================================= -* build: Enabling deprecated libraries is now done using the new - ``enable_deprecated_libraries`` build option. +* **Build requirements increased for C11.** + + From DPDK 23.11 onwards, + building DPDK will require a C compiler which supports the C11 standard, + including support for C11 standard atomics. + + More specifically, the requirements will be: -* build: Optional libraries can now be selected with the new ``enable_libs`` - build option similarly to the existing ``enable_drivers`` build option. + * Support for flag "-std=c11" (or similar) + * __STDC_NO_ATOMICS__ is *not defined* when using c11 flag -* eal: Introduced a new API for atomic operations. This new API serves as a - wrapper for transitioning to standard atomic operations as described in the - C11 standard. This API implementation points at the compiler intrinsics by - default. The implementation using C11 standard atomic operations is enabled + Please note: + + * C11, including standard atomics, is supported from GCC version 5 onwards, + and is the default language version in that release + (Ref: https://gcc.gnu.org/gcc-5/changes.html) + * C11 is the default compilation mode in Clang from version 3.6, + which also added support for standard atomics + (Ref: https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html) + +* **Added new build options.** + + * Enabling deprecated libraries is now done using + the new ``enable_deprecated_libraries`` build option. + * Optional libraries can now be selected with the new ``enable_libs`` + build option similarly to the existing ``enable_drivers`` build option. + +* **Introduced a new API for atomic operations.** + + This new API serves as a wrapper for transitioning + to standard atomic operations as described in the C11 standard. + This API implementation points at the compiler intrinsics by default. + The implementation using C11 standard atomic operations is enabled via the ``enable_stdatomic`` build option. +* **Added support for power intrinsics with AMD processors.** + +* **Added support for allow/block list in vmbus bus driver.*** + + The ``vmbus`` bus driver now supports -a and -b EAL options for selecting + devices. + +* **Added mbuf recycling support.** + + Added ``rte_eth_recycle_rx_queue_info_get`` and ``rte_eth_recycle_mbufs`` + functions which allow the user to copy used mbufs from the Tx mbuf ring + into the Rx mbuf ring. This feature supports the case that the Rx Ethernet + device is different from the Tx Ethernet device with respective driver + callback functions in ``rte_eth_recycle_mbufs``. + +* **Added amd-pstate driver support to the power management library.** + + Added support for amd-pstate driver which works on AMD EPYC processors. + +* **Added a flow action type for P4-defined actions.** + + For P4-programmable devices, hardware pipeline can be configured through + a new "PROG" action type and its associated custom arguments. + Such P4 pipeline, not using the standard blocks of the flow API, + can be managed with ``RTE_FLOW_ITEM_TYPE_FLEX`` and ``RTE_FLOW_ACTION_TYPE_PROG``. + +* **Added flow group set miss actions.** + + Introduced ``rte_flow_group_set_miss_actions()`` API to explicitly set + a group's miss actions, which are the actions to be performed on packets + that didn't match any of the flow rules in the group. + +* **Updated Marvell cnxk net driver.** + + * Added support for ``RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT`` flow item. + * Added support for ``RTE_FLOW_ACTION_TYPE_AGE`` flow action. + +* **Updated Solarflare net driver.** + + * Added support for transfer flow action ``INDIRECT`` with subtype ``VXLAN_ENCAP``. + * Supported packet replay (multi-count / multi-delivery) in transfer flows. + +* **Updated Netronome/Corigine nfp driver.** + + * Added inline IPsec offload based on the security framework. + +* **Updated Wangxun ngbe driver.** + + * Added 100M and auto-neg support in YT PHY fiber mode. + +* **Added support for TLS and DTLS record processing.** + + Added TLS and DTLS record transform for security session + and added enhancements to ``rte_crypto_op`` fields + to handle all datapath requirements of TLS and DTLS. + The support was added for TLS 1.2, TLS 1.3 and DTLS 1.2. + +* **Added out of place processing support for inline ingress security session.** + + Similar to out of place processing support for lookaside security session, + added the same support for inline ingress security session. + +* **Added security Rx inject API.** + + Added Rx inject API to allow applications to submit packets + for protocol offload and have them injected back to ethdev Rx + so that further ethdev Rx actions (IP reassembly, packet parsing and flow lookups) + can happen based on inner packet. + + The API when implemented by an ethdev, application would be able to process + packets that are received without/failed inline offload processing + (such as fragmented ESP packets with inline IPsec offload). + The API when implemented by a cryptodev, can be used for injecting packets + to ethdev Rx after IPsec processing and take advantage of ethdev Rx actions + for the inner packet which cannot be accelerated in inline protocol offload mode. + +* **Updated cryptodev scheduler driver.** + + * Added support for DOCSIS security protocol + through the ``rte_security`` API callbacks. + +* **Updated ipsec_mb crypto driver.** + + * Added support for digest encrypted to AESNI_MB asynchronous crypto driver. + +* **Updated Intel QuickAssist Technology driver.** + + * Enabled support for QAT 2.0c (4944) devices in QAT crypto driver. + +* **Updated Marvell cnxk crypto driver.** + + * Added SM2 algorithm support in asymmetric crypto operations. + +* **Updated Intel vRAN Boost baseband driver.** + + * Added support for the new Intel vRAN Boost v2 device variant (GNR-D) + within the unified driver. + +* **Added new eventdev Ethernet Rx adapter create API.** + + Added new function ``rte_event_eth_rx_adapter_create_ext_with_params()`` + for creating Rx adapter instance for the applications desire to + control both the event port allocation and event buffer size. + +* **Added event DMA adapter library.** + + * Added the Event DMA Adapter Library. This library extends the event-based + model by introducing APIs that allow applications to enqueue/dequeue DMA + operations to/from dmadev as events scheduled by an event device. + +* **Added eventdev support to link queues to port with link profile.** + + Introduced event link profiles that can be used to associated links between + event queues and an event port with a unique identifier termed as link profile. + The profile can be used to switch between the associated links in fast-path + without the additional overhead of linking/unlinking and waiting for unlinking. + + * Added ``rte_event_port_profile_links_set``, ``rte_event_port_profile_unlink`` + ``rte_event_port_profile_links_get`` and ``rte_event_port_profile_switch`` + functions to enable this feature. + +* **Updated Marvell cnxk eventdev driver.** + + * Added support for ``remaining_ticks_get`` timer adapter PMD callback + to get the remaining ticks to expire for a given event timer. + * Added link profiles support, up to two link profiles are supported. + +* **Added dispatcher library.** + + Added dispatcher library which purpose is to help decouple different + parts (modules) of an eventdev-based application. + +* **Added a command option ``--relax-rx-mode`` in l3fwd example.** + + Added a command option ``--relax-rx-mode`` in l3fwd example + to relax the rx RSS/Offload mode requirement if needed. Removed Items ------------- @@ -99,10 +246,23 @@ Removed Items * eal: Removed deprecated ``RTE_FUNC_PTR_OR_*`` macros. +* ethdev: Removed deprecated macro ``RTE_ETH_DEV_BONDED_SLAVE``. + * flow_classify: Removed flow classification library and examples. * kni: Removed the Kernel Network Interface (KNI) library and driver. +* cryptodev: Removed the arrays of algorithm strings ``rte_crypto_cipher_algorithm_strings``, + ``rte_crypto_auth_algorithm_strings``, ``rte_crypto_aead_algorithm_strings`` and + ``rte_crypto_asym_xform_strings``. + +* cryptodev: Removed explicit SM2 xform parameter in asymmetric xform. + +* security: Removed deprecated field ``reserved_opts`` + from struct ``rte_security_ipsec_sa_options``. + +* mldev: Removed functions ``rte_ml_io_input_size_get`` and ``rte_ml_io_output_size_get``. + API Changes ----------- @@ -125,6 +285,38 @@ API Changes except ``rte_thread_setname()`` and ``rte_ctrl_thread_create()`` which are replaced with ``rte_thread_set_name()`` and ``rte_thread_create_control()``. +* eal: Removed ``RTE_CPUFLAG_NUMFLAGS`` to avoid misusage and theoretical ABI + compatibility issue when adding new cpuflags. + +* bonding: Replaced master/slave to main/member. The data structure + ``struct rte_eth_bond_8023ad_slave_info`` was renamed to + ``struct rte_eth_bond_8023ad_member_info`` in DPDK 23.11. + The following functions were removed in DPDK 23.11. + The old functions: + ``rte_eth_bond_8023ad_slave_info``, + ``rte_eth_bond_active_slaves_get``, + ``rte_eth_bond_slave_add``, + ``rte_eth_bond_slave_remove``, and + ``rte_eth_bond_slaves_get`` + will be replaced by: + ``rte_eth_bond_8023ad_member_info``, + ``rte_eth_bond_active_members_get``, + ``rte_eth_bond_member_add``, + ``rte_eth_bond_member_remove``, and + ``rte_eth_bond_members_get``. + +* cryptodev: The elliptic curve asymmetric private and public keys can be maintained + per session. These keys are moved from per packet ``rte_crypto_ecdsa_op_param`` and + ``rte_crypto_sm2_op_param`` to generic EC xform ``rte_crypto_ec_xform``. + +* security: Structures ``rte_security_ops`` and ``rte_security_ctx`` were moved to + internal library headers not visible to application. + +* mldev: Updated the structure ``rte_ml_model_info`` to support input and output + with arbitrary shapes. + Updated ``rte_ml_op``, ``rte_ml_io_quantize`` and ``rte_ml_io_dequantize`` + to support an array of ``rte_ml_buff_seg``. + ABI Changes ----------- @@ -141,6 +333,17 @@ ABI Changes Also, make sure to start the actual text at the margin. ======================================================= +* ethdev: Added ``recycle_tx_mbufs_reuse`` and ``recycle_rx_descriptors_refill`` + fields to ``rte_eth_dev`` structure. + +* ethdev: Structure ``rte_eth_fp_ops`` was affected to add + ``recycle_tx_mbufs_reuse`` and ``recycle_rx_descriptors_refill`` + fields, to move ``rxq`` and ``txq`` fields, to change the size of + ``reserved1`` and ``reserved2`` fields. + +* security: struct ``rte_security_ipsec_sa_options`` was updated + due to inline out-of-place feature addition. + Known Issues ------------ diff --git a/doc/guides/sample_app_ug/l3_forward.rst b/doc/guides/sample_app_ug/l3_forward.rst index 1cc2c1dd1d..00283f070c 100644 --- a/doc/guides/sample_app_ug/l3_forward.rst +++ b/doc/guides/sample_app_ug/l3_forward.rst @@ -126,6 +126,8 @@ Where, * ``--parse-ptype:`` Optional, set to use software to analyze packet type. Without this option, hardware will check the packet type. +* ``--relax-rx-mode:`` Optional, set to enable rx mode relax when RSS/offload is not fully supported by the hardware. When the IPv4 cksum offload is relaxed, it is calculated by the software instead. Without this option, the RSS and cksum offload will be forced. + * ``--per-port-pool:`` Optional, set to use independent buffer pools per port. Without this option, single buffer pool is used for all ports. * ``--mode:`` Optional, Packet transfer mode for I/O, poll or eventdev. @@ -140,7 +142,7 @@ Where, * ``--event-vector-tmo:`` Optional, Max timeout to form vector in nanoseconds if event vectorization is enabled. -* ``--alg=:`` optional, ACL classify method to use, one of: +* ``--alg=:`` Optional, ACL classify method to use, one of: ``scalar|sse|avx2|neon|altivec|avx512x16|avx512x32`` * ``-E:`` Optional, enable exact match, -- 2.34.1