-.. BSD LICENSE
- Copyright 2016 Broadcom Limited
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Broadcom Limited nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-bnxt poll mode driver library
-=============================
-
-The bnxt poll mode library (**librte_pmd_bnxt**) implements support for
-**Broadcom NetXtreme® C-Series**. These adapters support Standards-
-compliant 10/25/50Gbps 30MPPS full-duplex throughput.
-
-Information about this family of adapters can be found in the
-`NetXtreme® Brand section <https://www.broadcom.com/products/ethernet-communication-and-switching?technology%5B%5D=88>`_
-of the `Broadcom web site <http://www.broadcom.com/>`_.
-
-Limitations
------------
-
-With the current driver, allocated mbufs must be large enough to hold
-the entire received frame. If the mbufs are not large enough, the
-packets will be dropped. This is most limiting when jumbo frames are
-used.
-
-SR-IOV is not supported.
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright 2016-2019 Broadcom
+
+BNXT Poll Mode Driver
+=====================
+
+The BNXT PMD (**librte_pmd_bnxt**) implements support for adapters based on
+Ethernet controllers and SoCs belonging to the **Broadcom BCM5730X NetXtreme-C®
+Family of Ethernet Network Controllers**, the **Broadcom BCM574XX/BCM575XX
+NetXtreme-E® Family of Ethernet Network Controllers**, the **Broadcom BCM588XX
+Stingray Family of SmartNIC Adapters**, and the **Broadcom StrataGX® BCM5871X
+Series of Communications Processors**. A complete list with links to reference
+material is included below.
+
+
+BNXT PMD Features
+-----------------
+
+The BNXT PMD includes support for the following features:
+
+ * Multiple transmit and receive queues
+ * Queue start/stop
+ * RSS hash
+ * RSS key configuration
+ * RSS reta configuration
+ * VMDq
+ * Packet type parsing
+ * Configurable RX CRC stripping
+ * L3/L4 checksum offload
+ * LRO offload
+ * TSO offload
+ * VLAN offload
+ * SR-IOV VF
+ * Basic and extended port statistics
+ * Link state reporting
+ * Flow control
+ * Ethertype filtering
+ * N-tuple filtering
+ * Promiscuous mode
+ * Unicast and multicast MAC filtering
+ * Scatter/gather transmit and receive
+ * Jumbo frames
+ * Vector PMD
+
+BNXT Vector PMD
+---------------
+
+The BNXT PMD includes support for SSE vector mode on x86 platforms. Vector
+provides significantly improved performance over the base implementation,
+however it does not support all of the features that are supported by the
+base (non-vector) implementation. Vector mode will be selected and enabled
+automatically when the port is started if allowed by the current configuration.
+
+RX Requirements for Vector Mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Vector mode receive will be enabled if the following constrainsts are met:
+ * Packets must fit within a single mbuf (no scatter RX).
+ * LRO offload must be disabled.
+
+TX Requirements for Vector Mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Vector mode transmit will be enabled if the following constrainsts are met:
+ * Packets must be contained within a single mbuf (no gather TX).
+ * All transmit offloads other than VLAN insertion must be disabled.
+
+BNXT PMD Supported Chipsets and Adapters
+----------------------------------------
+
+Chipsets and adapters supported by the bnxt PMD include:
+
+ * **Broadcom BCM5730X NetXtreme-C® 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
+
+ * **Broadcom BCM574XX/BCM575XX NetXtreme-E® Family of Ethernet Network Controllers**
+
+ * 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
+ * M11000G - 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
+ * 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
+
+ Information about Ethernet adapters in the NetXtreme family of
+ adapters can be found in the `NetXtreme® Brand section
+ <https://www.broadcom.com/products/ethernet-connectivity/network-adapters/>`_
+ of the `Broadcom website <http://www.broadcom.com/>`_.
+
+ * **Broadcom BCM588XX Stingray Family of SmartNIC Adapters**
+
+ * PS410T - Quad-port 10 Gigabit Ethernet SmartNIC
+ * PS225 - Dual-port 25 Gigabit Ethernet SmartNIC
+ * PS250 - Dual-Port 50 Gigabit Ethernet SmartNIC
+
+ Information about the Stingray family of SmartNIC adapters can be found in the
+ `Stingray® Brand section
+ <https://www.broadcom.com/products/ethernet-connectivity/smartnic/>`_
+ of the `Broadcom website <http://www.broadcom.com/>`_.
+
+ * **Broadcom StrataGX® BCM5871X Series of Communucations Processors**
+
+ 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).
+
+ Information about the StrataGX family of adapters can be found in the
+ `StrataGX® BCM58712
+ <http://www.broadcom.com/products/embedded-and-networking-processors/communications/bcm58712>`_
+ and `StrataGX® BCM58713
+ <http://www.broadcom.com/products/embedded-and-networking-processors/communications/bcm58713>`_
+ sections of the `Broadcom website <http://www.broadcom.com/>`_.