CX6 PFC / DCQCN sysfs 目录文件简述
1. PFC / QoS 相关目录
路径:
/sys/class/net/enp9s0f0np0/qos/当前文件:
buffer_size maxrate prio2buffer tc_numprio2buffer
描述 priority 到 buffer 的映射关系。
示例:
Priority Buffer 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1含义:
priority 0-7 当前全部映射到 buffer 1。buffer_size
描述端口 buffer 大小以及 PFC xoff/xon 水位。
示例:
Buffer Size xoff_threshold xon_threshold 1 214272 121824 101808含义:
buffer 1 已配置有效缓存。 xoff_threshold:触发 pause 的水位。 xon_threshold :恢复发送的水位。注意:
该文件能看到 PFC buffer 水位,但不能直接证明 PFC 已 enable。 PFC enable mask 需要通过 mlnx_qos 或 dcb pfc 查看。maxrate
描述每个 traffic class / priority 的限速配置。
示例:
0 0 0 0 0 0 0 0含义:
当前未配置 max rate 限速。 0 通常表示不限速。tc_num
描述当前 traffic class 数量或相关配置状态。
示例:
0含义:
当前未看到显式 TC 配置。 具体 TC / ETS / PFC 配置建议结合 mlnx_qos 查看。2. DCQCN / ECN 相关目录
路径:
/sys/class/net/enp9s0f0np0/ecn/子目录:
roce_np roce_rp3.roce_np:Notification Point
路径:
/sys/class/net/enp9s0f0np0/ecn/roce_np/作用:
接收端收到 ECN-marked RoCE packet 后,生成 CNP 通知发送端降速。主要文件:
enable/ cnp_dscp cnp_802p_prio min_time_between_cnpsenable/0~enable/7
描述 NP 对每个 priority 是否启用。
当前状态:
enable/0 = 1 enable/1 = 1 enable/2 = 1 enable/3 = 1 enable/4 = 1 enable/5 = 1 enable/6 = 1 enable/7 = 1含义:
NP 对 priority 0-7 全部启用。cnp_dscp
描述 CNP packet 使用的 DSCP 值。
当前值:
48含义:
CNP 控制包使用 DSCP 48。cnp_802p_prio
描述 CNP packet 使用的 802.1p priority。
当前值:
6含义:
CNP 控制包使用 priority 6。min_time_between_cnps
描述连续发送 CNP 的最小间隔。
当前值:
4含义:
两次 CNP 之间的最小间隔为 4。4.roce_rp:Reaction Point
路径:
/sys/class/net/enp9s0f0np0/ecn/roce_rp/作用:
发送端收到 CNP 后,根据 DCQCN 算法降低发送速率,并逐步恢复。主要文件:
enable/ rpg_ai_rate rpg_hai_rate rpg_min_rate rpg_max_rate rpg_min_dec_fac rpg_gd rpg_threshold rpg_time_reset rpg_byte_reset rate_reduce_monitor_period rate_to_set_on_first_cnp initial_alpha_value dce_tcp_g dce_tcp_rtt clamp_tgt_rate clamp_tgt_rate_after_time_incenable/0~enable/7
描述 RP 对每个 priority 是否启用。
当前状态:
enable/0 = 1 enable/1 = 1 enable/2 = 1 enable/3 = 1 enable/4 = 1 enable/5 = 1 enable/6 = 1 enable/7 = 1含义:
RP 对 priority 0-7 全部启用。 发送端收到 CNP 后,会执行 DCQCN 降速逻辑。5.roce_rp关键参数简述
| 文件 | 作用 |
|---|---|
rpg_ai_rate | 正常恢复阶段的加速速率 |
rpg_hai_rate | 快速恢复阶段的加速速率 |
rpg_min_rate | 降速后的最小发送速率 |
rpg_max_rate | 最大发送速率,0 通常表示不限速 |
rpg_min_dec_fac | 收到 CNP 后的最小降速因子 |
rpg_gd | DCQCN alpha 更新相关参数 |
rpg_threshold | 进入速率调整阶段的阈值 |
rpg_time_reset | 基于时间的恢复周期 |
rpg_byte_reset | 基于字节数的恢复周期 |
rate_reduce_monitor_period | 降速监控周期 |
rate_to_set_on_first_cnp | 首次收到 CNP 后设置的目标速率 |
initial_alpha_value | 初始 alpha 值 |
dce_tcp_g | alpha 更新权重参数 |
dce_tcp_rtt | RTT 相关参数 |
clamp_tgt_rate | 是否限制目标速率 |
clamp_tgt_rate_after_time_inc | 时间恢复后是否限制目标速率 |
6. 当前结论
当前 CX6 上:
DCQCN NP 已启用:priority 0-7 全部为 1 DCQCN RP 已启用:priority 0-7 全部为 1 CNP DSCP = 48 CNP priority = 6 PFC/QoS buffer 已暴露 priority 0-7 当前全部映射到 buffer 1 buffer 1 配置了 xoff/xon 水位但仍需注意:
/sys/class/net/enp9s0f0np0/qos/ 只能看到 buffer 和映射信息, 不能直接确认 PFC enable mask。 PFC 是否真正启用,需要继续查看: mlnx_qos -i enp9s0f0np0 或: dcb pfc show dev enp9s0f0np0