Negotiation failure和Link Training
经典报错:Negotiation failure
![]()
本文并未找到明确的答案,只是围绕这个问题发散了一定距离,求路过的大佬解惑。
Nvidia官方手册,没啥有用信息
root@nvos:/home/admin# nv set interface sw1p1 link auto-negotiate on/off
root@nvos:/home/admin# nv config apply
没有IB协议,只能猜一猜。
Auto-Negotiation在PCS层
IEEE802.3dj D2.2_Clause175.7
- 自动协商支持:对于使用 1.6GBASE-CR8 或 1.6GBASE-KR8 PMD 的 PCS,必须支持 Clause 73 定义的自动协商过程。
只提到了1.6GBASE-CR8 和 1.6GBASE-KR8涉及Auto-Negotiation,并没有提及光模块。查询原因如下:1.光链路是“单向广播式”(发了就不管),电链路是“双向协作式”(必须握手调参)
特性 光链路(如 DR8) 电链路(如 CR8/KR8) 信号路径 单向、低串扰、无反射(理想信道) 双向耦合、存在反射/串扰/损耗(非理想信道) 链路建立方式 发送端发光 → 接收端检测光功率 + 帧同步 需双向交互:协商 → 训练 → 均衡调整 控制复杂度 开环(Open-loop):无需反馈调节 闭环(Closed-loop):依赖接收端反馈调发射端 2.电接口:通过 Auto-Negotiation(Clause 73) 动态协商速率。
光接口:通过 管理命令(如 CMIS)静态配置速率,或根本不支持切换。
IEEE802.3-2022_Clause 73
“Auto-Negotiation, as defined in this clause, is specified for use with Ethernet PHYs operating over a backplane and for use with certain Ethernet PHYs operating over a copper cable assembly.While implementation of Auto-Negotiation is mandatory for Backplane Ethernet PHYs, the use ofAuto-Negotiation is optional. Parallel detection shall be provided for legacy devices that do not supportAuto-Negotiation.”
Auto-Negotiation 是为“背板以太网(Backplane Ethernet PHYs)”和“部分铜缆以太网 PHY”设计的;它对背板 PHY 是强制的(mandatory),对铜缆 PHY 是可选但常见的;而光 PHY(fiber)完全不在 Clause 73 的适用范围内。
AI解释
IEEE 802.3 Clause 73 明确定义 Auto-Negotiation 仅用于背板和铜缆以太网 PHY,目的是解决电信号在非理想介质(PCB/铜缆)中传输时所需的速率协商、FEC 启用和链路训练协调问题。而光模块工作在高质量、固定速率的光纤链路上,无需动态协商,也不在 Clause 73 的适用范围内,因此不涉及 Auto-Negotiation。
这是 IEEE 标准基于物理层特性差异做出的合理分层设计:
🔹 电接口 → 复杂协商(AN + Training)
🔹 光接口 → 简单直连(Plug-and-Play)
对照翻译:
Name Description 1.6TBASE-KR8 使用 1.6TBASE-R 编码,通过 8 条电气背板通道 实现 1.6 Tb/s 传输(参见 Clause 178) 1.6TBASE-CR8 使用 1.6TBASE-R 编码,通过 8 条双轴铜缆(twinaxial copper cable) 实现 1.6 Tb/s 传输(参见 Clause 179) 1.6TBASE-DR8 使用 1.6TBASE-R 编码,通过 8 根单模光纤 实现 1.6 Tb/s,距离 ≥500m(Clause 180) 1.6TBASE-DR8-2 同上,但距离 ≥2 km(Clause 182)
类型 介质 应用场景 特点 KR8 电气背板(Backplane) 交换机内部模块间互连 高频信号完整性要求高,需 PCB 走线优化 CR8 双轴铜缆(Twinax Copper Cable) 短距设备互联(如服务器 ↔ 交换机)
CR: Cable, Short Reach成本低、功耗低、支持热插拔,典型长度 ≤ 2 米 DR8 / DR8-2 单模光纤(SMF) 数据中心内/跨机房长距离连接 支持 500m ~ 2km,适用于数据中心互联(DCI)
1.6TBASE-R指编码方式:
- 是一种基于 PAM4的编码方案。
- 每个 lane 速率高达 212 Gb/s。
- 包含前向纠错(FEC)、时钟恢复、均衡等机制。
不理解,光接口不也有Training吗?Link Training?
Link Training
① InfiniBand Link Training
② End-to-End Link Training(AN)
③IEEE Inter-sublayer Link Training
InfiniBand Link Training
Nvidia Q3400-R_Link Training
IB太私密,看不到具体协议内容,只能从交换机行为log做粗略推断,求IB协议原文。

| 参数名 | 日志值 | 说明 |
|---|---|---|
link_training_kr_algo | disable-lt | 控制是否启用 IEEE 802.3 Clause 72/73 定义的 KR(Backplane)链路训练算法。disable-lt 表示禁用。 |
link_training_xdr_c2c_algo | disable-lt | NVIDIA 自定义的 XDR Chip-to-Chip 链路训练算法开关,disable-lt 表示禁用。 |
link_training_num_iterations | 5 | 链路训练最大尝试次数(迭代轮数)。 |
link_training_ber_window | 1000 | BER(误码率)评估窗口大小,单位通常为比特数或微秒。 |
link_training_ber_target_mag | 0 | 目标 BER 的数量级(如 -12 表示 1e-12),0 为无效/默认值。 |
link_training_ber_target_coef | 0 | BER 目标的系数部分(如 1.0 × 10^mag),0 表示未设置。 |
link_training_prbs_type | prbs31 | 使用 PRBS31(2³¹−1 周期)作为训练/测试码型,用于 SerDes 校准和误码检测。 |
link_serdes_eq_mode | disabled | SerDes 均衡模式,disabled 表示关闭自适应均衡。 |
link_serdes_eq_timeout | 0 | SerDes 均衡超时时间(单位:毫秒),0 表示无超时或使用默认值。 |
这个功能应该还没做好,可能只把上层应用做完了,物理层的测试工具在慢慢迭代:
OIF-CMIS-05.3_Inter-sublayer Link Training
Link Training (unidirectional, electrical): Algorithms aiming at achieving a desired level of data transmission performance over a host interface electrical link, usually by signal shaping, i.e. by tuning transmit signal characteristics based on information gathered in the receiving end.
链路训练(单向,电气):指在主机接口的电气链路上,为实现预期的数据传输性能而采用的一系列算法,通常通过信号整形来实现,即根据接收端收集的信息,调整发送端的信号特性。
CMIS-LT [9] provides specifications in support of host to module electrical link training. More precisely, CMIS-LT specifies both data structures and mechanisms to emulate a bidirectional message exchange between the electrical link endpoints of a host lane for the purpose of link training (LT). Note that the activities and behaviors of the acting link endpoints that reside in both host and module and that actively use those facilities are specified elsewhere.
CMIS-LT [9] 提供了支持主机与光模块之间电气链路训练(Link Training, LT)的规范。更具体地说,CMIS-LT 规定了用于在主机通道(host lane)的电气链路两端之间模拟双向消息交换的数据结构和机制,以实现链路训练(LT)的目的。需要注意的是,实际位于主机和模块中的链路端点所执行的具体活动和行为(即主动使用这些设施的过程)在其他文档中另行规定。
Inter-sublayer Link Training≠ Auto-Negotiation
1. ILT(Inter-sublayer Link Training)
是一种 子层间协调机制,用于在 PCS ↔ PMA ↔ PMD 等子层之间有序启动链路。
主要作用:确保各子层按正确顺序初始化
协调多通道(lane)的对齐与时序
支持路径上多个 ISL(Inter-Sublayer Link)的同步启动
2. Auto-Negotiation(Clause 73)
是 链路两端设备之间 的协商协议
目的:协商速率、FEC、双工模式等
使用 DME 编码在物理线路上发送协商报文
| 接口类型 | “Training” 指什么? | 是否依赖 Auto-Negotiation? |
|---|---|---|
| 电接口(KR/CR) | 端到端链路训练(End-to-End Link Training) —— 主机 ↔ 对端设备之间通过 AN 协商后,进行 SerDes 均衡器调优 | ✅ 是,AN 是训练的前提 |
| 光接口(DR/FR/LR 等) | 主机 ↔ 光模块之间的电接口训练(Host-to-Module Electrical Training) —— 仅发生在板内 Host 与可插拔模块之间,不涉及远端设备 | ❌ 否,与 AN 无关,由 CMIS 或 ILT 控制 |
| 特性 | 电接口 Training(KR/CR) | 光接口中的 Training(DR/FR) |
|---|---|---|
| 作用范围 | 端到端(Device A ↔ Device B) | 本地(Host ASIC ↔ 本机光模块) |
| 是否需要 AN | ✅ 必须先完成 Clause 73 AN | ❌ 与 AN 无关 |
| 标准依据 | Clause 72, 73, 92–95, 178–179 | Clause 116 (ILT), CMIS MSA |
| 训练对象 | PCB/铜缆信道 | 主板到模块插座的电走线 |
| 远端参与? | ✅ 远端设备必须配合 | ❌ 远端完全不知情 |
ILT 是“内部子层协调”,AN 是“外部设备协商” —— 两者层级不同,目的不同。
大白话:光模块的“Training”是给自己用的(调主板到模块的电口),电模块的“Training”是给对端用的(调整个链路的信号质量)。
在 InfiniBand 协议中,链路建立需经历以下状态机:
Polling → LinkUp → Initialize → Armed → Active
physical-state: LinkUp→ 物理信号 OK(光功率正常)logical-state: Initialize→ 卡在初始化阶段,通常因为:- 对端设备未启用 IB 模式
- 速率不匹配(本端 XDR,对端 HDR/NDR)
- 光模块不兼容(非 IB 认证模块,但
physical-state: LinkUp光模块应该是被认可的) - 子网管理器(SM)未启动(但 SM 不影响物理链路训练)
光模块适配交换机报Negotiation failure Checklist
极性
固定信息(协议符合性还有IB设备的软件排他判定,DDDD)
模块状态机/告警/SI等
高BER
......
参考
oif2025.370.01
OIF-CMIS-05.3
IEEE P802.3dj™/D2.2
IEEE Std 802.3™‐2022
q3200-ra-q3400-ra-xdr-800gb-s-infiniband-switch-systems-user-manual








