This adds the ConnectX-8 device id to the list of supported Nvidia devices that run the MLX5 PMDs. The devices is still in development stage.
Signed-off-by: Raslan Darawsheh <rasl...@nvidia.com> --- doc/guides/cryptodevs/mlx5.rst | 6 ++++-- doc/guides/nics/mlx5.rst | 28 +++++++++++++------------- doc/guides/platform/mlx5.rst | 3 ++- doc/guides/rel_notes/release_25_03.rst | 1 + drivers/common/mlx5/mlx5_common.h | 1 + drivers/crypto/mlx5/mlx5_crypto.c | 4 ++++ drivers/net/mlx5/mlx5.c | 5 +++++ 7 files changed, 31 insertions(+), 17 deletions(-) diff --git a/doc/guides/cryptodevs/mlx5.rst b/doc/guides/cryptodevs/mlx5.rst index d9ce9257d1..9abbd3abda 100644 --- a/doc/guides/cryptodevs/mlx5.rst +++ b/doc/guides/cryptodevs/mlx5.rst @@ -15,8 +15,8 @@ NVIDIA MLX5 Crypto Driver The MLX5 crypto driver library (**librte_crypto_mlx5**) provides support for **NVIDIA ConnectX-6**, -**NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-7**, **NVIDIA BlueField-2**, -and **NVIDIA BlueField-3** family adapters. +**NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-7**, **NVIDIA ConnectX-8**, +**NVIDIA BlueField-2**, and **NVIDIA BlueField-3** family adapters. Overview -------- @@ -214,6 +214,7 @@ Supported NICs * NVIDIA\ |reg| ConnectX\ |reg|-6 200G MCX654106A-HCAT (2x200G) * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx * NVIDIA\ |reg| ConnectX\ |reg|-7 +* NVIDIA\ |reg| ConnectX\ |reg|-8 * NVIDIA\ |reg| BlueField\ |reg|-2 SmartNIC * NVIDIA\ |reg| BlueField\ |reg|-3 SmartNIC @@ -240,6 +241,7 @@ FW Prerequisites - xx.31.0328 for ConnectX-6. - xx.32.0108 for ConnectX-6 Dx and BlueField-2. - xx.36.xxxx for ConnectX-7 and BlueField-3. +- 40.44.1036 for ConnectX-8. - xx.37.3010 for BlueField-3 and newer for AES-GCM. Linux Prerequisites diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 690b46a974..8c2d147209 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -17,9 +17,10 @@ NVIDIA MLX5 Ethernet Driver The mlx5 Ethernet poll mode driver library (**librte_net_mlx5**) provides support for **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx** , **NVIDIA ConnectX-5**, **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**, -**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and -**NVIDIA BlueField-3** families of 10/25/40/50/100/200/400 Gb/s adapters -as well as their virtual functions (VF) in SR-IOV context. +**NVIDIA ConnectX-7**, **NVIDIA ConnectX-8**, **NVIDIA BlueField**, +**NVIDIA BlueField-2** and **NVIDIA BlueField-3** families of +10/25/40/50/100/200/400 Gb/s adapters as well as their virtual +functions (VF) in SR-IOV context. Supported NICs -------------- @@ -34,6 +35,7 @@ The following NVIDIA device families are supported by the same mlx5 driver: - ConnectX-6 Dx - ConnectX-6 Lx - ConnectX-7 + - ConnectX-8 - BlueField - BlueField-2 - BlueField-3 @@ -67,6 +69,7 @@ Below are detailed device names: * NVIDIA\ |reg| ConnectX\ |reg|-6 Dx EN 200G MCX623105AN-VDAT (1x200G) * NVIDIA\ |reg| ConnectX\ |reg|-6 Lx EN 25G MCX631102AN-ADAT (2x25G) * NVIDIA\ |reg| ConnectX\ |reg|-7 200G CX713106AE-HEA_QP1_Ax (2x200G) +* NVIDIA\ |reg| ConnectX\ |reg|-8 400G C900-9X81Q-00CN-STQ_Ax (2x400G) * NVIDIA\ |reg| BlueField\ |reg|-2 25G MBF2H332A-AEEOT_A1 (2x25Gg * NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00CV-AA0 (2x200) * NVIDIA\ |reg| BlueField\ |reg|-3 200GbE 900-9D3B6-00SV-AA0 (2x200) @@ -633,8 +636,7 @@ Limitations - CRC: - ``RTE_ETH_RX_OFFLOAD_KEEP_CRC`` cannot be supported with decapsulation - for some NICs (such as ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField-2, - and BlueField-3). + for ConnectX-6 Dx, BlueField-2, and above. The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support. - TX mbuf fast free: @@ -1110,9 +1112,9 @@ for an additional list of options shared with other mlx5 drivers. Supported on: - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx, - ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3. + ConnectX-6 Lx, ConnectX-7, ConnectX-8, BlueField, BlueField-2, and BlueField-3. - POWER9 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx, - ConnectX-6 Lx, ConnectX-7 BlueField, BlueField-2, and BlueField-3. + ConnectX-6 Lx, ConnectX-7, ConnectX-8, BlueField, BlueField-2, and BlueField-3. - ``rxq_pkt_pad_en`` parameter [int] @@ -1125,9 +1127,9 @@ for an additional list of options shared with other mlx5 drivers. Supported on: - x86_64 with ConnectX-4, ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx, - ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3. + ConnectX-6 Lx, ConnectX-7, ConnectX-8, BlueField, BlueField-2, and BlueField-3. - POWER8 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx, - ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3. + ConnectX-6 Lx, ConnectX-7, ConnectX-8, BlueField, BlueField-2, and BlueField-3. - ``delay_drop`` parameter [int] @@ -1364,9 +1366,8 @@ for an additional list of options shared with other mlx5 drivers. - ``txq_mpw_en`` parameter [int] - A nonzero value enables Enhanced Multi-Packet Write (eMPW) for ConnectX-5, - ConnectX-6, ConnectX-6 Dx, ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2 - BlueField-3. eMPW allows the Tx burst function to pack up multiple packets + A nonzero value enables Enhanced Multi-Packet Write (eMPW) for NICs starting + ConnectX-5, and BlueField. eMPW allows the Tx burst function to pack up multiple packets in a single descriptor session in order to save PCI bandwidth and improve performance at the cost of a slightly higher CPU usage. When ``txq_inline_mpw`` is set along with ``txq_mpw_en``, @@ -1410,8 +1411,7 @@ for an additional list of options shared with other mlx5 drivers. - ``tx_vec_en`` parameter [int] - A nonzero value enables Tx vector on ConnectX-5, ConnectX-6, ConnectX-6 Dx, - ConnectX-6 Lx, ConnectX-7, BlueField, BlueField-2, and BlueField-3 NICs + A nonzero value enables Tx vector with ConnectX-5 NICs and above. if the number of global Tx queues on the port is less than ``txqs_max_vec``. The parameter is deprecated and ignored. diff --git a/doc/guides/platform/mlx5.rst b/doc/guides/platform/mlx5.rst index 9799709a61..ab3107209a 100644 --- a/doc/guides/platform/mlx5.rst +++ b/doc/guides/platform/mlx5.rst @@ -17,7 +17,7 @@ NVIDIA MLX5 Common Driver The mlx5 common driver library (**librte_common_mlx5**) provides support for **NVIDIA ConnectX-4**, **NVIDIA ConnectX-4 Lx**, **NVIDIA ConnectX-5**, **NVIDIA ConnectX-6**, **NVIDIA ConnectX-6 Dx**, **NVIDIA ConnectX-6 Lx**, -**NVIDIA ConnectX-7**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and +**NVIDIA ConnectX-7**, **NVIDIA ConnectX-8**, **NVIDIA BlueField**, **NVIDIA BlueField-2** and **NVIDIA BlueField-3** families of 10/25/40/50/100/200 Gb/s adapters. Information and documentation for these adapters can be found on the @@ -145,6 +145,7 @@ The following dependencies are not part of DPDK and must be installed separately - ConnectX-6 Dx: **22.27.0090** and above. - ConnectX-6 Lx: **26.27.0090** and above. - ConnectX-7: **28.33.2028** and above. + - ConnectX-8: **40.44.1036** and above. - BlueField: **18.25.1010** and above. - BlueField-2: **24.28.1002** and above. - BlueField-3: **32.36.3126** and above. diff --git a/doc/guides/rel_notes/release_25_03.rst b/doc/guides/rel_notes/release_25_03.rst index ca67c17c5c..fc90ed9444 100644 --- a/doc/guides/rel_notes/release_25_03.rst +++ b/doc/guides/rel_notes/release_25_03.rst @@ -122,6 +122,7 @@ New Features * Optimized port probing in large scale. This feature enhances the efficiency of probing VF/SFs on a large scale by significantly reducing the probing time. + * Added support for NVIDIA ConnectX-8 adapters * **Updated Wangxun ngbe driver.** diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index 0b9a8e8547..e7bd4c6ec4 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -153,6 +153,7 @@ enum { PCI_DEVICE_ID_MELLANOX_CONNECTX6LX = 0x101f, PCI_DEVICE_ID_MELLANOX_CONNECTX7 = 0x1021, PCI_DEVICE_ID_MELLANOX_BLUEFIELD3 = 0Xa2dc, + PCI_DEVICE_ID_MELLANOX_CONNECTX8 = 0x1023, }; /* Maximum number of simultaneous unicast MAC addresses. */ diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index bf9cbd4a6a..2319c6920d 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -485,6 +485,10 @@ static const struct rte_pci_id mlx5_crypto_pci_id_map[] = { RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX, PCI_DEVICE_ID_MELLANOX_CONNECTXVF) }, + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX, + PCI_DEVICE_ID_MELLANOX_CONNECTX8) + }, { .vendor_id = 0 } diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 91fd9346a9..e2ebe7a6f9 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -3767,6 +3767,11 @@ static const struct rte_pci_id mlx5_pci_id_map[] = { RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX, PCI_DEVICE_ID_MELLANOX_BLUEFIELD3) }, + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX, + PCI_DEVICE_ID_MELLANOX_CONNECTX8) + }, + { .vendor_id = 0 } -- 2.39.5 (Apple Git-154)