nmcli 不直接配置 pfc,但可完成其依赖的 vlan 优先级映射、mtu 设置及接口持久化;需配合 dcbtool 等工具启用 dcb/pfc,并验证物理网卡驱动支持与参数一致性。

nmcli 本身不直接配置 PFC(Priority Flow Control)参数,因为 PFC 是底层网卡驱动和硬件队列策略相关的功能,需通过内核接口(如 /sys/class/net/<iface>/queues/</iface>)、DCB 工具(dcbtool)或厂商专用工具(如 Mellanox 的 mlnx_qos、Broadcom 的 ethtool --set-pause 配合 DCB)实现。但 nmcli 可配合完成 PFC 所依赖的关键网络基础配置:VLAN 标签映射、MTU 设置、以及确保 NetworkManager 接管并持久化相关接口——这对 RoCE 等无损以太网场景至关重要。
确认网卡与驱动支持 PFC
先验证物理网卡是否具备 PFC 能力:
- 运行
ethtool -i enp129s0f0查看驱动类型(如mlx5_core、qed、i40e),主流 RoCE 网卡基本都支持 - 检查 DCB 状态:
cat /sys/class/net/enp129s0f0/dcb/pfc/enabled,若为0表示未启用,需后续开启 - PFC 依赖 DCB 协议,确保内核已加载
dcb模块:lsmod | grep dcb
用 nmcli 配置 VLAN Egress 优先级映射(PCP 模式必需)
华为 OceanDisk 等 RoCE 存储要求将业务流量打上特定 VLAN Tag 并绑定到 PFC 优先级(如优先级 3)。nmcli 可创建并固化 VLAN 子接口及其出向优先级映射:
- 创建 VLAN 接口(ID=55):
nmcli connection add type vlan con-name enp129s0f0.55 dev enp129s0f0 id 55 - 设置静态 IP 和 MTU:
nmcli connection modify enp129s0f0.55 ipv4.method manual ipv4.addresses 192.168.5.5/24 ipv4.gateway 192.168.5.254 ipv4.dns 192.168.5.10 mtu 5500 - 关键一步:写入 egress 优先级映射(等效于 ifcfg 文件中的
vlan_egress_priority_map):nmcli connection modify enp129s0f0.55 +vlan.egress-priority-map "0:3,1:3,2:3,3:3,4:3,5:3,6:3,7:3" - 启用连接:
nmcli connection up enp129s0f0.55
同步配置物理网口基础参数(MTU 与禁用 IPv6)
PFC 和 RoCE 要求端到端 MTU 一致(推荐 5500),且避免 IPv6 自动配置干扰:
- 修改物理口连接(非 VLAN 子口):
nmcli connection modify enp129s0f0 mtu 5500 ipv6.method ignore - 禁用 IPv6 初始化(防止触发 RA 导致冲突):
nmcli connection modify enp129s0f0 ipv6.ignore-auto-routes yes ipv6.ignore-auto-dns yes - 确保该物理口不分配 IP(RoCE 流量走 VLAN 子口):
nmcli connection modify enp129s0f0 ipv4.method disabled
启用 PFC 并验证(需额外工具)
nmcli 不负责开启 PFC,但上述配置是前提。启用后需手动或脚本调用:
- 启用 DCB:
dcbtool -d enp129s0f0 dcb on - 启用 PFC 并设置优先级 3 为开启:
dcbtool -d enp129s0f0 pfc set enable on,off,off,off,off,off,on,off(第 4 位对应优先级 3) - 验证:
dcbtool -d enp129s0f0 pfc get应显示pfc enabled: yes且priority 3: on - 确认 RoCE 流量实际使用该优先级:
cat /sys/class/infiniband/*/ports/*/pkey_tbl | grep -A1 "0x8001"(需 RDMA 驱动就绪)
真正起作用的 PFC 控制在 DCB 层,nmcli 的角色是把网络拓扑、VLAN 映射、MTU 这些“政策性配置”可靠落地,并确保重启后不失效。只要 VLAN 子口的 egress map 和物理口 MTU 正确,PFC 就能按预期对 RoCE 流量生效。











