Skip to content

Trex cannot effectively use 400G network cards #1185

@da1234cao

Description

@da1234cao

Environment Introduction

I have a Mellanox connectx-7 NIC which is 400Gbps.

root@~# mlxlink -d 0000:c1:00.0

Operational Info
----------------
State                              : Active 
Physical state                     : LinkUp 
Speed                              : 400G 
Width                              : 4x 
FEC                                : Standard_RS-FEC - (544,514) 
Loopback Mode                      : No Loopback 
Auto Negotiation                   : ON 

Supported Info
--------------
Enabled Link Speed (Ext.)          : 0x0001bff2 (400G_4X,400G_8X,200G_2X,200G_4X,100G_1X,100G_2X,100G_4X,50G_1X,50G_2X,40G,25G,10G,1G) 
Supported Cable Speed (Ext.)       : 0x00012800 (400G_4X,200G_2X,100G_1X) 

Troubleshooting Info
--------------------
Status Opcode                      : 0 
Group Opcode                       : N/A 
Recommendation                     : No issue was observed 

Tool Information
----------------
Firmware Version                   : 28.43.1014 
amBER Version                      : 3.3 
MFT Version                        : mft 4.29.0-131 

Problem Description

However, the output information of trex indicates that its speed is 200G.

port : 1 
------------
link         :  link : Link Up - speed 200000 Mbps - full-duplex

I looked at the source code and I think the problem might be here.

When the network card is larger than 200G, the maximum is 200G.

// src/trex_port_attr.h
virtual uint32_t get_link_speed() { return m_link.link_speed < RTE_ETH_SPEED_NUM_200G? m_link.link_speed: RTE_ETH_SPEED_NUM_200G; } // L1 Mbps

In actual use, with a 400G network card, Trex can only send about 217G.

Currently, is there any way I can bypass the 200G limit and let Trex fully utilize the 400G capacity of the network card?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions