Winyao
News

USB 3.2 Type-C 转 10G SFP+ 网卡项目启动

08/24/2026

实战教程 / RDMA

Broadcom BCM57416 双口 10G RJ45 网卡
Windows 与 Linux 下 RDMA 配置完整手册

覆盖 Windows Server 2012R2-2022 与 RHEL / Rocky / Ubuntu,含 NVM 硬件开关、SMB Direct、perftest 真流量验收

网卡型号 BCM57416 NetXtreme-E 双口 10G RJ45 RDMA 协议 RoCE v1 / v2 适用系统 Windows / Linux
核心结论:BCM57416 的 RDMA 走 RoCE,硬件层必须先靠 UEFI HII / CCM / niccli 把 NVRAM 里的 support_rdma 打开,操作系统里的设置只是第二层开关。双口分别对应 scope 0 和 scope 1。

零、前置共识(两系统通用)

BCM57416 属于 Broadcom NetXtreme-E 系列,其 RDMA 实现为 RoCE(v1 / v2),由 L2 驱动 bnxt_en + RoCE 驱动 bnxt_re 成对工作。

层级作用说明
UEFI HII / CCM / niccli NVRAMsupport_rdma 全局 + per-PF硬件总开关;双口分别对应 --scope 0 与 --scope 1
NVRAM dcbx_mode / lldp_nearest_bridge把 ETS/PFC 下发到硬件出厂默认 0x0,Windows 下不设则 QoS 只在 OS 里"看起来绿"
操作系统内开关第二层启用仅当上一层已开才生效
注意:很多"命令全跑通但跑不出带宽"的案例,根因都在 NVM 这一层。

一、Windows 篇

全部在 Administrator PowerShell 中执行;Get-NetAdapterRdma 是 Windows 下 RDMA 的官方入口。

1.1 查看当前 RDMA 状态(三步诊断)

# ① 确认双口名称(后面所有命令都用这个 Name) Get-NetAdapter | Where-Object {$_.InterfaceDescription -match "Broadcom"} # ② 核心判定命令 Get-NetAdapterRdma # ③ 微软标准四联体检 Get-NetAdapter Get-NetAdapterRSS Get-NetAdapterRdma Get-NetAdapterHardwareInfo

判读标准:Get-NetAdapterRdma 输出中双口 Enabled = True 表示已就绪;任意一口 False 则进入 1.2 节。

1.2 开启 RDMA

# 替换为你机器上真实的接口名 Enable-NetAdapterRdma -Name "SLOT 5 Port 1" Enable-NetAdapterRdma -Name "SLOT 5 Port 2" # 全局兜底 Set-NetOffloadGlobalSetting -NetworkDirect Enabled
Advanced 项生产推荐值
Network Direct FunctionalityEnabled / 1
Network Direct TechnologyRoCEv2(v1 仅老环境兼容)

1.3 关闭 RDMA

Disable-NetAdapterRdma -Name "SLOT 5 Port 1" Disable-NetAdapterRdma -Name "SLOT 5 Port 2"

1.4 NVRAM 硬件层校验(关键)

niccli -i 1 nvm --getoption support_rdma --scope 0 niccli -i 1 nvm --getoption support_rdma --scope 1 niccli -i 1 nvm --setoption support_rdma --scope 0 --value 1 niccli -i 1 nvm --setoption support_rdma --scope 1 --value 1

1.5 SMB Direct 真流量验收

Get-SmbMultichannelConnection | fl *RDMA* # 成功标志: ClientRdmaCapable : True 且 ServerRdmaCapable : True
编号画面红框标注
W-1Get-NetAdapterRdma 输出双口 Enabled = True
W-2设备管理器 Advanced 页Network Direct Technology = RoCEv2
W-3niccli support_rdma 两行返回均为 1
W-4Get-SmbMultichannelConnection两条 *RdmaCapable : True

二、Linux 篇(RHEL 系 / Ubuntu / Proxmox 通用)

2.1 查看状态

lsmod | grep -E 'bnxt_en|bnxt_re' rdma link ibv_devices ibv_devinfo -d bnxt_re0

2.2 开启 RDMA

# ① 用户态工具 sudo dnf install -y libibverbs-utils infiniband-diags perftest rdma-core # ② NVM 双口写入 sudo niccli -i 1 nvm --setoption support_rdma --scope 0 --value 1 sudo niccli -i 1 nvm --setoption support_rdma --scope 1 --value 1 sudo reboot # ③ 重载驱动 sudo modprobe bnxt_en sudo modprobe bnxt_re sudo systemctl enable --now rdma
版本坑:RHEL 7.x / 老 inbox bnxt_en 必须先 rpm -e kmod-bnxt_en 再装同源新包,版本不匹配会触发 Couldn't start port。

2.3 关闭 RDMA

sudo modprobe -r bnxt_re echo "blacklist bnxt_re" | sudo tee /etc/modprobe.d/blacklist-bnxt_re.conf sudo dracut -f sudo reboot

2.4 无损网络配套

sudo dcbtool sc eno1np0 pfc up:3 e:1 sudo ip link set eno1np0 mtu 9000

2.5 真流量验收

# 服务端 ib_write_bw -d bnxt_re0 -x 3 -F --report_gbits -p 1800 # 客户端(换真实 IP) ib_write_bw -d bnxt_re0 -x 3 -F --report_gbits -p 1800 192.168.10.11
编号画面红框标注
L-1lsmod | grep bnxtbnxt_re 行存在
L-2rdma link双口 state ACTIVE
L-3ibv_devinfoPORT_ACTIVE / Ethernet
L-4ib_write_bw 收尾稳定 Gb/s 数值

三、Windows 与 Linux 运维速查表

维度WindowsLinux
查看命令Get-NetAdapterRdmardma link + ibv_devices
开启Enable-NetAdapterRdmamodprobe bnxt_en && modprobe bnxt_re
关闭Disable-NetAdapterRdmamodprobe -r bnxt_re + blacklist
NVM 工具niccli.exeniccli / bnxtnvm
业务验证Get-SmbMultichannelConnectionib_write_bw / rping

四、排障 FAQ

Q1:命令都对,但 ibv_devinfo 一直 PORT_DOWN?
八成是 NVM 里 dcbx_mode 还是 0x0,补写后冷重启一次。

Q2:Ubuntu 24.04 + Kernel 6.8 启动极慢、FW STALL?
bnxt_re 与新内核兼容问题,不需要 RDMA 直接 blacklist。

Q3:Windows SMB 静默回退 TCP?
检查 SmbServerNetworkInterface 是否仍标记 RDMA Capable;2012 R2 需补 KB2919355。

Q4:对端是 Mellanox?
BCM57416 两端统一锁 RoCEv2 + DSCP 26 / Pri 3,不要混 v1。