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 C30D5A04FD; Thu, 10 Nov 2022 05:55:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6EA0A400EF; Thu, 10 Nov 2022 05:55:12 +0100 (CET) Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by mails.dpdk.org (Postfix) with ESMTP id B7ABF400D4 for ; Thu, 10 Nov 2022 05:55:10 +0100 (CET) Received: by mail-qt1-f173.google.com with SMTP id jr19so411655qtb.7 for ; Wed, 09 Nov 2022 20:55:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=zOUKwoju7uL6XnBAwS8ahcVO4cbH7i2dWxfpBUTBcb8=; b=Te6yKdSqQLO1e9pC8DdpgfjhYYwXJlm8aJnlR2v5ziaZVn7ioPgKapsFa3p53eeO5H A/3yD0SlLdwWtn5htDTNOnM0ZldC4M4gZB7+vdVQWyVOcJVkK884RbKn7/FnYMC1H7Vd WAHkXWLNY50VbkoOE+uu2j4F8oKIxRq7G3xcM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zOUKwoju7uL6XnBAwS8ahcVO4cbH7i2dWxfpBUTBcb8=; b=7o9JKIqAxPb8IVZscp+q+55qAMW3pkJnlyh3eJ2+QH2bAhICThQ6xl0HJhYMEhiIx+ aDMVDOEiTvHv/xw4+XB4dDQ0AyTED0qlfkSM1eo47v0Way8eukNMYxllMYzKmcHDgds/ nIgLQ0rjC57zg0dokLaq19gTM5HFBFpRgwNlzB0FA7uP3RLLWFciU142xmk8qmjCcegE cAGjZwKSejBgy+t23oKVXA0f9RybAgcU+DvBiMqE+Sho5wq7T9876Ci3GU5VP5+YGOpu fwZCJBOJGgCSnWakaREDXafe57gJU/surRszdp9YszD3aCM2laQjMIuwFjYa52uuGx0K /mcw== X-Gm-Message-State: ANoB5pm9pwMcCEuDyALX/jq+xPrAVoNV2gFyxGfPE9hdOAJiRI8FNqH3 b+ggbjgIEqL7wrtI9KWS/EHcp8tef/tMmSJ0SDx/WNFLlFqrnftSaGtg3JEARU595ozrotWGe/y HOHDD72EbB+RD7yiaTbV05+CRZy6TjVhQM4h7vbYhb+i2wjOasEz29wmy6GfP8fA= X-Google-Smtp-Source: AA0mqf5pPqkp242/t74GWk0lZvFYhvSrwsAD7oVShjz2LvV9oy3gNV/QhDY4Xa8CBh5ninEGT1aLbA== X-Received: by 2002:a05:622a:1016:b0:3a5:b17e:55a0 with SMTP id d22-20020a05622a101600b003a5b17e55a0mr4540494qte.437.1668056109223; Wed, 09 Nov 2022 20:55:09 -0800 (PST) Received: from localhost.localdomain ([2605:a601:a780:1400:5566:ef14:8cbd:2023]) by smtp.gmail.com with ESMTPSA id cb11-20020a05622a1f8b00b0038d9555b580sm10753053qtb.44.2022.11.09.20.55.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 20:55:08 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Kalesh AP Subject: [PATCH v2] doc: update broadcom documentation Date: Wed, 9 Nov 2022 20:55:03 -0800 Message-Id: <20221110045503.85690-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000e7a45505ed169354" 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 --000000000000e7a45505ed169354 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update Broadcom NIC documentation. Signed-off-by: Ajit Khaparde Reviewed-by: Kalesh AP --- v1->v2: Updated commit message & incorrect information in the documentation. --- doc/guides/nics/bnxt.rst | 477 +++++++++++++++++++++++---------------- 1 file changed, 283 insertions(+), 194 deletions(-) diff --git a/doc/guides/nics/bnxt.rst b/doc/guides/nics/bnxt.rst index b047f0ca64..136cc4b5e1 100644 --- a/doc/guides/nics/bnxt.rst +++ b/doc/guides/nics/bnxt.rst @@ -5,12 +5,10 @@ BNXT Poll Mode Driver ===================== The Broadcom BNXT PMD (**librte_net_bnxt**) implements support for adapters -based on Ethernet controllers and SoCs belonging to the Broadcom -BCM5741X/BCM575XX NetXtreme-E® Family of Ethernet Network Controllers, -the Broadcom BCM588XX Stingray Family of Smart NIC Adapters, and the Broadcom -StrataGX® BCM5873X Series of Communications Processors. +based on Ethernet controllers belonging to the Broadcom +BCM5741X/BCM575XX NetXtreme-E® Family of Ethernet Network Controllers. -A complete list with links to reference material is in the Appendix section. +A complete list is in the Supported Network Adapters section. CPU Support ----------- @@ -104,8 +102,8 @@ Trusted VF By default, VFs are *not* allowed to perform privileged operations, such as modifying the VF’s MAC address in the guest. These security measures are designed to prevent possible attacks. -However, when a DPDK application can be trusted (e.g., OVS-DPDK, here), these -operations performed by a VF would be legitimate and can be allowed. +However, when a DPDK application can be trusted (e.g., OVS-DPDK, `here `_), these +operations performed by a VF would be legitimate and better be allowed. To enable VF to request "trusted mode," a new trusted VF concept was introduced in Linux kernel 4.4 and allowed VFs to become “trusted” and perform some @@ -122,12 +120,12 @@ Note that control commands, e.g., ethtool, will work via the kernel PF driver, Operations supported by trusted VF: * MAC address configuration +* Promiscuous mode setting * Flow rule creation Operations *not* supported by trusted VF: * Firmware upgrade -* Promiscuous mode setting Running on PF ~~~~~~~~~~~~~ @@ -240,7 +238,8 @@ filtering on MAC address used to accept packets. .. code-block:: console testpmd> show port (port_id) macs - testpmd> mac_addr (add|remove) (port_id) (XX:XX:XX:XX:XX:XX) + testpmd> mac_addr add port_id XX:XX:XX:XX:XX:XX + testpmd> mac_addr remove port_id XX:XX:XX:XX:XX:XX Multicast MAC Filter ^^^^^^^^^^^^^^^^^^^^ @@ -251,7 +250,8 @@ filtering on multicast MAC address used to accept packets. .. code-block:: console testpmd> show port (port_id) mcast_macs - testpmd> mcast_addr (add|remove) (port_id) (XX:XX:XX:XX:XX:XX) + testpmd> mcast_addr add port_id XX:XX:XX:XX:XX:XX + testpmd> mcast_addr remove port_id XX:XX:XX:XX:XX:XX Application adds (or removes) Multicast addresses to enable (or disable) allowlist filtering to accept packets. @@ -640,63 +640,36 @@ hardware. For example, applications can offload packet classification only DPDK offers the Generic Flow API (rte_flow API) to configure hardware to perform flow processing. -Listed below are the rte_flow APIs BNXT PMD supports: - -* rte_flow_validate -* rte_flow_create -* rte_flow_destroy -* rte_flow_flush - -Host Based Flow Table Management -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Starting with 20.05 BNXT PMD supports host based flow table management. This is -a new mechanism that should allow higher flow scalability than what is currently -supported. This new approach also defines a new rte_flow parser, and mapper -which currently supports basic packet classification in the receive path. - -The feature uses a newly implemented control-plane firmware interface which -optimizes flow insertions and deletions. - -This feature is currently supported on Whitney+, Stingray and Thor devices. - -Notes ------ - -- On stopping a device port, all the flows created on a port by the - application will be flushed from the hardware and any tables maintained - by the PMD. After stopping the device port, all flows on the port become - invalid and are not represented in the system anymore. - Instead of destroying or flushing such flows an application should discard - all references to these flows and re-create the flows as required after the - port is restarted. - -- While an application is free to use the group id attribute to group flows - together using a specific criteria, the BNXT PMD currently associates this - group id to a VNIC id. One such case is grouping of flows which are filtered - on the same source or destination MAC address. This allows packets of such - flows to be directed to one or more queues associated with the VNIC id. - This implementation is supported only when TRUFLOW functionality is disabled. - -- An application can issue a VXLAN decap offload request using rte_flow API - either as a single rte_flow request or a combination of two stages. - The PMD currently supports the two stage offload design. - In this approach the offload request may come as two flow offload requests - Flow1 & Flow2. The match criteria for Flow1 is O_DMAC, O_SMAC, O_DST_IP, - O_UDP_DPORT and actions are COUNT, MARK, JUMP. The match criteria for Flow2 - is O_SRC_IP, O_DST_IP, VNI and inner header fields. - Flow1 and Flow2 flow offload requests can come in any order. If Flow2 flow - offload request comes first then Flow2 can’t be offloaded as there is - no O_DMAC information in Flow2. In this case, Flow2 will be deferred until - Flow1 flow offload request arrives. When Flow1 flow offload request is - received it will have O_DMAC information. Using Flow1’s O_DMAC, driver - creates an L2 context entry in the hardware as part of offloading Flow1. - Flow2 will now use Flow1’s O_DMAC to get the L2 context id associated with - this O_DMAC and other flow fields that are cached already at the time - of deferring Flow2 for offloading. Flow2 that arrive after Flow1 is offloaded - will be directly programmed and not cached. - -- PMD supports thread-safe rte_flow operations. +TruFlow® +^^^^^^^^ + +To fully support the generic flow offload, TruFlow was introduced in BNXT PMD. +Before TruFlow, hardware flow processing resources were mapped to and handled +by firmware. With TruFlow, hardware flow processing resources are mapped to +and handled by driver. + +Alleviating the limitations of firmware-based feature development, TruFlow +not only increases the flow offload feature velocity but also improves the +control plane performance (i.e., higher flow update rate). + +Flow APIs, Items, and Actions +----------------------------- + +BNXT PMD supports thread-safe rte_flow operations for rte_flow APIs and rich +set of flow items (i.e., matching patterns) and actions. Refer to the +"Supported APIs" section for the list of rte_flow APIs as well as flow items +and actions. + +Flow Persistency +---------------- + +On stopping a device port, all the flows created on a port by the +application will be flushed from the hardware and any tables maintained +by the PMD. After stopping the device port, all flows on the port become +invalid and are not represented in the system anymore. +Instead of destroying or flushing such flows an application should discard +all references to these flows and re-create the flows as required after the +port is restarted. Note: A VNIC represents a virtual interface in the hardware. It is a resource in the RX path of the chip and is used to setup various target actions such as @@ -704,6 +677,7 @@ RSS, MAC filtering etc. for the physical function in use. Virtual Function Port Representors ---------------------------------- + The BNXT PMD supports the creation of VF port representors for the control and monitoring of BNXT virtual function devices. Each port representor corresponds to a single virtual function of that device that is connected to a @@ -726,48 +700,6 @@ Note that currently hot-plugging of representor ports is not supported so all the required representors must be specified on the creation of the PF or the trusted VF. -Representors on Stingray SoC ----------------------------- -A representor created on X86 host typically represents a VF running in the same -X86 domain. But in case of the SoC, the application can run on the CPU complex -inside the SoC. The representor can be created on the SoC to represent a PF or a -VF running in the x86 domain. Since the representator creation requires passing -the bus:device.function of the PCI device endpoint which is not necessarily in the -same host domain, additional dev args have been added to the PMD. - -* rep_is_vf - false to indicate VF representor -* rep_is_pf - true to indicate PF representor -* rep_based_pf - Physical index of the PF -* rep_q_r2f - Logical COS Queue index for the rep to endpoint direction -* rep_q_f2r - Logical COS Queue index for the endpoint to rep direction -* rep_fc_r2f - Flow control for the representor to endpoint direction -* rep_fc_f2r - Flow control for the endpoint to representor direction - -The sample command line with the new ``devargs`` looks like this:: - - -a 0000:06:02.0,representor=[1],rep-based-pf=8,\ - rep-is-pf=1,rep-q-r2f=1,rep-fc-r2f=0,rep-q-f2r=1,rep-fc-f2r=1 - -.. code-block:: console - - dpdk-testpmd -l1-4 -n2 -a 0008:01:00.0,\ - representor=[0], rep-based-pf=8,rep-is-pf=0,rep-q-r2f=1,rep-fc-r2f=1,\ - rep-q-f2r=0,rep-fc-f2r=1 --log-level="pmd.*",8 -- -i --rxq=3 --txq=3 - -Number of flows supported -------------------------- -The number of flows that can be support can be changed using the devargs -parameter ``max_num_kflows``. The default number of flows supported is 16K each -in ingress and egress path. - -Selecting EM vs EEM -------------------- -Broadcom devices can support filter creation in the onchip memory or the -external memory. This is referred to as EM or EEM mode respectively. -The decision for internal/external EM support is based on the ``devargs`` -parameter ``max_num_kflows``. If this is set by the user, external EM is used. -Otherwise EM support is enabled with flows created in internal memory. - Application Support ------------------- @@ -850,36 +782,30 @@ DPDK implements a light-weight library to allow PMDs to be bonded together and p Vector Processing ----------------- -The BNXT PMD provides vectorized burst transmit/receive function implementations -on x86-based platforms using SSE (Streaming SIMD Extensions) and AVX2 (Advanced -Vector Extensions 2) instructions, and on Arm-based platforms using Arm Neon -Advanced SIMD instructions. Vector processing support is currently implemented -only for Intel/AMD and Arm CPU architectures. - -Vector processing provides significantly improved performance over scalar -processing. This improved performance is derived from a number of optimizations: +Vector mode provides significantly improved performance over scalar mode, using +SIMD (Single Instruction Multiple Data) instructions to operate on multiple packets +in parallel. -* Using SIMD instructions to operate on multiple packets in parallel. -* Using SIMD instructions to do more work per instruction than is possible - with scalar instructions, for example by leveraging 128-bit and 256-bi - load/store instructions or by using SIMD shuffle and permute operations. -* Batching +The BNXT PMD provides vectorized burst transmit/receive function implementations +on x86-based platforms and ARM-based platforms. The BNXT PMD supports SSE (Streaming +SIMD Extensions) and AVX2 (Advanced Vector Extensions 2) instructions for x86-based +platforms, and NEON instructions for ARM-based platforms. -  * TX: transmit completions are processed in bulk. -  * RX: bulk allocation of mbufs is used when allocating rxq buffers. +The BNXT Vector PMD is enabled in DPDK builds by default. However, the vector mode is +disabled when applying SIMD instructions does not improve the performance due to +non-uniform packet handling. TX and RX vector mode can be enabled independently +from each other, and the decision to disable vector mode is made at run-time when +the port is started. -* Simplifications enabled by not supporting chained mbufs in vector mode. -* Simplifications enabled by not supporting some stateless offloads in vector - mode: +The vector mode is disabled with TX and RX offloads. However, a limited set of offloads +can be enabled in a vector mode. Listed below are the TX and RX offloads with which the +vector mode can be enabled: -  * TX: only the following reduced set of transmit offloads is supported in - vector mode:: +  * TX offloads supported in vector mode   RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE -  * RX: only the following reduced set of receive offloads is supported in - vector mode (note that jumbo MTU is allowed only when the MTU setting - does not require `RTE_ETH_RX_OFFLOAD_SCATTER` to be enabled):: +  * RX offloads supported in vector mode   RTE_ETH_RX_OFFLOAD_VLAN_STRIP   RTE_ETH_RX_OFFLOAD_KEEP_CRC @@ -891,82 +817,245 @@ processing. This improved performance is derived from a number of optimizations:   RTE_ETH_RX_OFFLOAD_RSS_HASH   RTE_ETH_RX_OFFLOAD_VLAN_FILTER -The BNXT Vector PMD is enabled in DPDK builds by default. The decision to enable -vector processing is made at run-time when the port is started; if no transmit -offloads outside the set supported for vector mode are enabled then vector mode -transmit will be enabled, and if no receive offloads outside the set supported -for vector mode are enabled then vector mode receive will be enabled. Offload -configuration changes that impact the decision to enable vector mode are allowed -only when the port is stopped. +Note that the offload configuration changes impacting the vector mode enablement are +allowed only when the port is stopped. -Note that TX (or RX) vector mode can be enabled independently from RX (or TX) -vector mode. +Performance Report +------------------ -Appendix --------- +Broadcom DPDK performance has been reported since 19.08 release. The reports +provide not only the performance results but also test scenarios including test +topology and detailed configurations. See the reports at `DPDK performance link +`. -Supported Chipsets and Adapters -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Supported Network Adapters +-------------------------- -BCM5730x NetXtreme-C® Family of Ethernet Network Controllers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Listed below are BCM57400 and BCM57500 NetXtreme-E® family of Ethernet network +adapters. More information can be found in the +`NetXtreme® Brand section `_ of the `Broadcom website `_. -Information about Ethernet adapters in the NetXtreme family of adapters can be -found in the `NetXtreme® Brand section `_ of the `Broadcom website `_. +BCM57400 NetXtreme-E® Family of Ethernet Network Controllers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* ``M150c ... Single-port 40/50 Gigabit Ethernet Adapter`` -* ``P150c ... Single-port 40/50 Gigabit Ethernet Adapter`` -* ``P225c ... Dual-port 10/25 Gigabit Ethernet Adapter`` +PCIe NICs +^^^^^^^^^ -BCM574xx/575xx NetXtreme-E® Family of Ethernet Network Controllers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +* ``P210P .... Dual-port 10 Gigabit Ethernet Adapter`` +* ``P210TP ... Dual-port 10 Gigabit Ethernet Adapter`` +* ``P225P .... Dual-port 25 Gigabit Ethernet Adapter`` +* ``P150P .... Single-port 50 Gigabit Ethernet Adapter`` -Information about Ethernet adapters in the NetXtreme family of adapters can be -found in the `NetXtreme® Brand section `_ of the `Broadcom website `_. +OCP 2.0 NICs +^^^^^^^^^^^^ -* ``M125P .... Single-port OCP 2.0 10/25 Gigabit Ethernet Adapter`` -* ``M150P .... Single-port OCP 2.0 50 Gigabit Ethernet Adapter`` -* ``M150PM ... Single-port OCP 2.0 Multi-Host 50 Gigabit Ethernet Adapter`` -* ``M210P .... Dual-port OCP 2.0 10 Gigabit Ethernet Adapter`` -* ``M210TP ... Dual-port OCP 2.0 10 Gigabit Ethernet Adapter`` -* ``M1100G ... Single-port OCP 2.0 10/25/50/100 Gigabit Ethernet Adapter`` -* ``N150G .... Single-port OCP 3.0 50 Gigabit Ethernet Adapter`` -* ``M225P .... Dual-port OCP 2.0 10/25 Gigabit Ethernet Adapter`` -* ``N210P .... Dual-port OCP 3.0 10 Gigabit Ethernet Adapter`` -* ``N210TP ... Dual-port OCP 3.0 10 Gigabit Ethernet Adapter`` -* ``N225P .... Dual-port OCP 3.0 10/25 Gigabit Ethernet Adapter`` -* ``N250G .... Dual-port OCP 3.0 50 Gigabit Ethernet Adapter`` -* ``N410SG ... Quad-port OCP 3.0 10 Gigabit Ethernet Adapter`` -* ``N410SGBT . Quad-port OCP 3.0 10 Gigabit Ethernet Adapter`` -* ``N425G .... Quad-port OCP 3.0 10/25 Gigabit Ethernet Adapter`` -* ``N1100G ... Single-port OCP 3.0 10/25/50/100 Gigabit Ethernet Adapter`` -* ``N2100G ... Dual-port OCP 3.0 10/25/50/100 Gigabit Ethernet Adapter`` -* ``N2200G ... Dual-port OCP 3.0 10/25/50/100/200 Gigabit Ethernet Adapter`` -* ``P150P .... Single-port 50 Gigabit Ethernet Adapter`` -* ``P210P .... Dual-port 10 Gigabit Ethernet Adapter`` -* ``P210TP ... Dual-port 10 Gigabit Ethernet Adapter`` -* ``P225P .... Dual-port 10/25 Gigabit Ethernet Adapter`` +* ``M210P .... Dual-port 10 Gigabit Ethernet Adapter`` +* ``M210TP ... Dual-port 10 Gigabit Ethernet Adapter`` +* ``M125P .... Single-port 25 Gigabit Ethernet Adapter`` +* ``M225P .... Dual-port 25 Gigabit Ethernet Adapter`` +* ``M150P .... Single-port 50 Gigabit Ethernet Adapter`` +* ``M150PM ... Single-port Multi-Host 50 Gigabit Ethernet Adapter`` + +OCP 3.0 NICs +^^^^^^^^^^^^ + +* ``N210P .... Dual-port 10 Gigabit Ethernet Adapter`` +* ``N210TP ... Dual-port 10 Gigabit Ethernet Adapter`` +* ``N225P ... Dual-port 10 Gigabit Ethernet Adapter`` + +BCM57500 NetXtreme-E® Family of Ethernet Network Controllers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +PCIe NICs +^^^^^^^^^ * ``P410SG ... Quad-port 10 Gigabit Ethernet Adapter`` * ``P410SGBT . Quad-port 10 Gigabit Ethernet Adapter`` -* ``P425G .... Quad-port 10/25 Gigabit Ethernet Adapter`` -* ``P1100G ... Single-port 10/25/50/100 Gigabit Ethernet Adapter`` -* ``P2100G ... Dual-port 10/25/50/100 Gigabit Ethernet Adapter`` -* ``P2200G ... Dual-port 10/25/50/100/200 Gigabit Ethernet Adapter`` +* ``P425G .... Quad-port 25 Gigabit Ethernet Adapter`` +* ``P1100G ... Single-port 100 Gigabit Ethernet Adapter`` +* ``P2100G ... Dual-port 100 Gigabit Ethernet Adapter`` +* ``P2200G ... Dual-port 200 Gigabit Ethernet Adapter`` -BCM588xx NetXtreme-S® Family of SmartNIC Network Controllers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +OCP 2.0 NICs +^^^^^^^^^^^^ -Information about the Stingray family of SmartNIC adapters can be found in the -`Stingray® Brand section `_ of the `Broadcom website `_. +* ``M1100G ... Single-port OCP 2.0 10/25/50/100 Gigabit Ethernet Adapter`` + +OCP 3.0 NICs +^^^^^^^^^^^^ + +* ``N410SG ... Quad-port 10 Gigabit Ethernet Adapter`` +* ``N410SGBT . Quad-port 10 Gigabit Ethernet Adapter`` +* ``N425G .... Quad-port 25 Gigabit Ethernet Adapter`` +* ``N150G .... Single-port 50 Gigabit Ethernet Adapter`` +* ``N250G .... Dual-port 50 Gigabit Ethernet Adapter`` +* ``N1100G ... Single-port 100 Gigabit Ethernet Adapter`` +* ``N2100G ... Dual-port 100 Gigabit Ethernet Adapter`` +* ``N2200G ... Dual-port 200 Gigabit Ethernet Adapter`` + +Supported Firmware Versions +--------------------------- + +Shown below are Ethernet Network Adapters and their supported firmware versions +(refer to section “Supported Network Adapters” for the list of adapters): + +* ``BCM57400 NetXtreme-E® Family`` ... Firmware 219.0.0 or later +* ``BCM57500 NetXtreme-E® Family`` ... Firmware 219.0.0 or later -* ``PS225 ... Dual-port 25 Gigabit Ethernet SmartNIC`` +Shown below are DPDK LTS releases and their supported firmware versions: +* ``DPDK Release 19.11`` ... Firmware 219.0.103 or later +* ``DPDK Release 20.11`` ... Firmware 219.0.103 or later +* ``DPDK Release 21.11`` ... Firmware 221.0.101 or later -BCM5873x StrataGX® Family of Communications Processors -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Supported APIs +-------------- -These ARM-based processors target a broad range of networking applications, -including virtual CPE (vCPE) and NFV appliances, 10G service routers and -gateways, control plane processing for Ethernet switches, and network-attached -storage (NAS). +rte_eth APIs +~~~~~~~~~~~~ + +Listed below are the rte_eth functions supported: +* ``rte_eth_allmulticast_disable`` +* ``rte_eth_allmulticast_enable`` +* ``rte_eth_allmulticast_get`` +* ``rte_eth_dev_close`` +* ``rte_eth_dev_conf_get`` +* ``rte_eth_dev_configure`` +* ``rte_eth_dev_default_mac_addr_set`` +* ``rte_eth_dev_flow_ctrl_get`` +* ``rte_eth_dev_flow_ctrl_set`` +* ``rte_eth_dev_fw_version_get`` +* ``rte_eth_dev_get_eeprom`` +* ``rte_eth_dev_get_eeprom`` +* ``rte_eth_dev_get_eeprom_length`` +* ``rte_eth_dev_get_eeprom_length`` +* ``rte_eth_dev_get_module_eeprom`` +* ``rte_eth_dev_get_module_info`` +* ``rte_eth_dev_get_mtu`` +* ``rte_eth_dev_get_name_by_port rte_eth_dev_get_port_by_name`` +* ``rte_eth_dev_get_supported_ptypes`` +* ``rte_eth_dev_get_vlan_offload`` +* ``rte_eth_dev_info_get`` +* ``rte_eth_dev_infos_get`` +* ``rte_eth_dev_mac_addr_add`` +* ``rte_eth_dev_mac_addr_remove`` +* ``rte_eth_dev_macaddr_get`` +* ``rte_eth_dev_macaddrs_get`` +* ``rte_eth_dev_owner_get`` +* ``rte_eth_dev_rss_hash_conf_get`` +* ``rte_eth_dev_rss_hash_update`` +* ``rte_eth_dev_rss_reta_query`` +* ``rte_eth_dev_rss_reta_update`` +* ``rte_eth_dev_rx_intr_disable`` +* ``rte_eth_dev_rx_intr_enable`` +* ``rte_eth_dev_rx_queue_start`` +* ``rte_eth_dev_rx_queue_stop`` +* ``rte_eth_dev_set_eeprom`` +* ``rte_eth_dev_set_link_down`` +* ``rte_eth_dev_set_link_up`` +* ``rte_eth_dev_set_mc_addr_list`` +* ``rte_eth_dev_set_mtu`` +* ``rte_eth_dev_set_vlan_ether_type`` +* ``rte_eth_dev_set_vlan_offload`` +* ``rte_eth_dev_set_vlan_pvid`` +* ``rte_eth_dev_start`` +* ``rte_eth_dev_stop`` +* ``rte_eth_dev_supported_ptypes_get`` +* ``rte_eth_dev_tx_queue_start`` +* ``rte_eth_dev_tx_queue_stop`` +* ``rte_eth_dev_udp_tunnel_port_add`` +* ``rte_eth_dev_udp_tunnel_port_delete`` +* ``rte_eth_dev_vlan_filter`` +* ``rte_eth_led_off`` +* ``rte_eth_led_on`` +* ``rte_eth_link_get`` +* ``rte_eth_link_get_nowait`` +* ``rte_eth_macaddr_get`` +* ``rte_eth_macaddrs_get`` +* ``rte_eth_promiscuous_disable`` +* ``rte_eth_promiscuous_enable`` +* ``rte_eth_promiscuous_get`` +* ``rte_eth_rx_burst_mode_get`` +* ``rte_eth_rx_queue_info_get`` +* ``rte_eth_rx_queue_setup`` +* ``rte_eth_stats_get`` +* ``rte_eth_stats_reset`` +* ``rte_eth_timesync_adjust_time`` +* ``rte_eth_timesync_disable`` +* ``rte_eth_timesync_enable`` +* ``rte_eth_timesync_read_rx_timestamp`` +* ``rte_eth_timesync_read_time`` +* ``rte_eth_timesync_read_tx_timestamp`` +* ``rte_eth_timesync_write_time`` +* ``rte_eth_tx_burst_mode_get`` +* ``rte_eth_tx_queue_info_get`` +* ``rte_eth_tx_queue_setup`` +* ``rte_eth_xstats_get`` +* ``rte_eth_xstats_get_names`` + +rte_flow APIs +~~~~~~~~~~~~~ + +Listed below are the rte_flow functions supported: +* ``rte_flow_ops_get`` +* ``rte_flow_validate`` +* ``rte_flow_create`` +* ``rte_flow_destroy`` +* ``rte_flow_flush`` +* ``rte_flow_tunnel_action_decap_release`` +* ``rte_flow_tunnel_decap_set`` +* ``rte_flow_tunnel_item_release`` +* ``rte_flow_tunnel_match`` + +rte_flow Items +~~~~~~~~~~~~~~ + +Refer to “Table 1.2 rte_flow items availability in networking drivers” in +`Overview of Networking Drivers `. + +Listed below are the rte_flow items supported: + +* ``any`` +* ``eth`` +* ``gre`` +* ``icmp`` +* ``icmp6`` +* ``ipv4`` +* ``ipv6`` +* ``pf`` +* ``phy_port`` +* ``port_id`` +* ``port_representor`` +* ``represented_port`` +* ``tcp`` +* ``udp`` +* ``vf`` +* ``vlan`` +* ``vxlan`` + +rte_flow Actions +~~~~~~~~~~~~~~~~ -* ``StrataGX BCM58732 ... Octal-Core 3.0GHz 64-bit ARM®v8 Cortex®-A72 based SoC`` +Refer to “Table 1.3 rte_flow actions availability in networking drivers” in +`Overview of Networking Drivers `. + +Listed below are the rte_flow actions supported: + +* ``count`` +* ``dec_ttl`` +* ``drop`` +* ``of_pop_vlan`` +* ``of_push_vlan`` +* ``of_set_vlan_pcp`` +* ``of_set_vlan_vid`` +* ``pf`` +* ``phy_port`` +* ``port_id`` +* ``port_representor`` +* ``represented_port`` +* ``rss`` +* ``set_ipv4_dst`` +* ``set_ipv4_src`` +* ``set_tp_dst`` +* ``set_tp_src`` +* ``vf`` +* ``vxlan_decap`` +* ``vxlan_encap`` -- 2.37.1 (Apple Git-137.1) --000000000000e7a45505ed169354 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 pZEyqKnwS1lKCzjX7mV5W955rFsFxChdAKfw0HilwtqdY24mhy62+GeaEkD0gYIj1tCmw9gnQToc K+0s7xEunfR9pBrzmOwS3OQbcP0nJ8SmQ8R+reroH6LYuFpaqK1rgQIDAQABo4IB2zCCAdcwDgYD VR0PAQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0cDovL3NlY3Vy ZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3J0MEEG CCsGAQUFBzABhjVodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWdu MmNhMjAyMDBNBgNVHSAERjBEMEIGCisGAQQBoDIBKAowNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93 d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADBJBgNVHR8EQjBAMD6gPKA6 hjhodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwLmNy bDAlBgNVHREEHjAcgRphaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEF BQcDBDAfBgNVHSMEGDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUbrcTuh0mr2qP xYdtyDgFeRIiE/gwDQYJKoZIhvcNAQELBQADggEBALrc1TljKrDhXicOaZlzIQyqOEkKAZ324i8X OwzA0n2EcPGmMZvgARurvanSLD3mLeeuyq1feCcjfGM1CJFh4+EY7EkbFbpVPOIdstSBhbnAJnOl aC/q0wTndKoC/xXBhXOZB8YL/Zq4ZclQLMUO6xi/fFRyHviI5/IrosdrpniXFJ9ukJoOXtvdrEF+ KlMYg/Deg9xo3wddCqQIsztHSkR4XaANdn+dbLRQpctZ13BY1lim4uz5bYn3M0IxyZWkQ1JuPHCK aRJv0SfR88PoI4RB7NCEHqFwARTj1KvFPQi8pK/YISFydZYbZrxQdyWDidqm4wSuJfpE6i0cWvCd u50xggJtMIICaQIBATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNh MTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwM2Vrj 4nZK0WWosNswDQYJYIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIPKi9huJSr2npncTYWlp z5LYoOAsA2DkfeEexFoyFoLVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF MQ8XDTIyMTExMDA0NTUxMFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUD BAEWMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsG CWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQAuP6sZ7Y7U/+umnX8LMZWunpzu7r4mIrV3XriO mQK+crZ15Ld9RzNRc97HV8IW4nLRQlnHzFQRdtax56L9r8TBm+L+6wvfDralR6/NxC+8t9cjozyu 8VGYk4DLM+e7JLv6CxjP7A5FPS4Kj119GHLiCn1zuIN8rDKIw/QX4ZkmTeJWyovf7dXkOogI26u7 0Pu8hGJ6Geqmurmeq2/uvQD4jCQoUezWrxlduM1lZLmKJPsYKREfQRzGP6QKEoMyPeaXv12lYuCL 9WFSczMSZY14EVQ2UUCGhNGbXqdOu098XUiruzAtvSlpQQ3pe0fjAFqjBHA96FMoTkak3QmdcYsU --000000000000e7a45505ed169354--