// 此模板仅供参考,如果不适用可以修改
问题描述
BMC网口环回装备测试失败,目前此问题在一台环境上复制概率高,另外一台正常
出现问题后,重测会失败,bmc重启后再测试会成功
出现问题的环境也是概率性失败,目前没有发现固定规律
环境信息
重现步骤
-
使能DFT,命令ipmicmd -k “f 0 30 90 20 db 07 00 01” smi 0,返回0f 31 00 90 00表示成功,否则失败
-
获取测试项个数,命令ipmicmd -k “f 0 30 90 40 02” smi 0 ,返回0f 31 00 90 00表示成功,否则失败,返回第二个字节为测试项个数,测试项个数为0则报失败
-
获取每个测试项的内容,命令ipmicmd -k “f 0 30 90 41 00 20 02 $testitem” smi 0,返回0f 31 00 90 00表示成功,否则失败
-
解析返回的DFT ID、DEVICE ID、测试项名字,把DFT ID为0x4a的保存下来,如果所有的测试项DFT ID都不为0x4a则报错
-
启动DFT ID为0x4a的测试项测试,命令ipmicmd -k “f 0 30 90 42 00 20 02 01 $obtain_testitem” smi 0
期望结果
DFT ID为0x4a的测试项成功
实际结果
DFT ID为0x4a的测试项失败
尝试过的解决方案
之前这个帖子讨论过类似的问题,不过没有结论,目前有类似的问题出现,需要再看下
分析结论
- 装备持续测试了差不多一个小时 :问题是问了装备的人,正常调用了一次 ,这里有就个问题,闭源会不会持续测试1个小时的环回
- 出问题失败的时候,和log: bmc_core ERROR: net_dft.c(189): recv timout failed! 对齐,一开始只是有 net_dft.c(197): [self_loop_test:197]recv failed! errno:2, read_length:60,但不会失败,timeout 后,用例开始失败
3. 下面是正常日志:
答案内容由AI生成,仅供参考:
总结
- 直接现象:DFT ID 0x4A(MGMT Test)在 eth2 上反复执行并失败。
- 日志关键线索:自环测试启动时 MAC 地址为空。
- 最可能的根因:物理环回连接问题或网口 MAC 初始化失败。
- 优先排查方向:1)环回头是否插好;2)
bmc_network 是否成功为 eth2 分配 MAC;3)CSR 配置中 DftEth 测试项的参数是否匹配。
如果上述排查后问题仍然存在,建议完整提供以下信息以便进一步分析:
bmc_network 的完整启动日志(从系统上电到测试开始);
- 环回头的型号及连接照片;
- DFT 模式使能后的全部测试项列表(
ipmicmd -k "f 0 30 90 41 00 20 02 ..." 的输出)。
点击此处查看详细分析解答
根据您的问题描述和提供的日志信息,可以确认 BMC网口环回测试失败 这一现象,失败项为 DFT ID 为 0x4A(对应日志中的 Id:74,测试项名为 MGMT Test)。以下基于上下文中的知识图谱和文档内容进行分析和诊断建议。
日志关键信息分析
从您提供的日志(文档片段 1)中可提取以下重点:
| 时间 |
日志内容 |
关键信息 |
02:07:32.357349 |
dft eth test: Id:74 Slot:1 DeviceNum:0 [repeated 33 times] |
测试项 Id:74(即 0x4A)重复执行 33 次 |
02:07:32.358138 |
dft eth test: eth_name user eth2 |
测试发生在 eth2 网口上 |
02:07:32.358547 |
dft eth start: eth_name:eth2 eth_mac:f0:c8:b5:ac:f0:87 test_type:0 |
测试启动时使用的 MAC 地址为 f0:c8:b5:ac:f0:87 |
02:07:32.359738 |
bmc self loop test start mac is: ,eth is eth2 |
MAC 地址为空(mac is: 后无内容) |
02:07:32.360335 |
test status: Testing, test result:Failed |
最终测试结果为 Failed |
结论:测试过程中出现了 MAC 地址为空的情况,这可能是导致环回测试失败的直接原因。自环测试要求网口能够正确识别并回环发送/接收数据包,MAC 地址缺失会使底层通信无法正常建立。
可能的根本原因
根据上下文中的实体关系与社区专家建议,以下因素需重点排查:
1. 物理环回连接未正确建立
- 知识图谱中
guanmaoning(社区专家)曾建议 验证物理环回设置(guanmaoning suggests verifying physical loopback setup)。
- 环回测试需要专用的环回头或网线将发送端和接收端短接,若物理连接松动或环回头损坏,测试必然失败。
2. MAC 地址初始化异常
- 日志显示
bmc self loop test start mac is: ,eth is eth2,MAC 地址为空。
- 知识图谱中
eth2 在正常状态下有明确的 MAC 地址(如 00:00:00:00:00:01 或 20:22:01:18:4c:54),而当前测试中 MAC 为空,说明:
- 可能是 网口设备驱动未正确注册;
- 或 DFT 测试前的网络初始化步骤未完成(例如
bmc_network 组件未成功为 eth2 分配 MAC)。
- 您使用的软件版本为
OpenUBMC LTS SP1,建议检查该版本的 bmc_network 组件(版本 1.70.42/1.110.45)的启动日志,确认网络接口初始化是否完整。
3. DFT 测试流程中的逻辑缺陷
- 重现步骤中要求 使能 DFT 并 获取测试项个数,日志显示成功获取了 25 个测试项(
get dft item type = 2 num is 25),说明 DFT 模式已正确进入。
- 但测试启动命令中使用了
$obtain_testitem 参数,若该参数未正确解析或传入的测试项 ID 与固件期望不符,也可能导致启动失败。日志中 Id:74 与期望的 0x4A 一致,因此 ID 匹配没有问题。
4. 软件版本间的兼容性问题
- 知识图谱中提及
openUBMC 不包含 testchip 命令(openUBMC does not include the testchip command that was previously used in iBMC v2),而您的测试步骤全部使用 ipmicmd 命令,理论上无冲突。
- 但请注意:
OpenUBMC LTS SP1 可能对 DFT 测试项有特定的 CSR 配置要求(如 Dft3V3Vlot 类中的 Id、Slot、DeviceNum 等属性),需确认 eth2 对应的测试项 CSR 配置是否正确。
诊断建议(基于社区专家 huangzhiyu 的建议)
-
使用 mdbctl 追踪端点数据
huangzhiyu 曾建议使用 mdbctl 来查看端点对象的状态。您可以运行:
mdbctl lsprop /bmc/kepler/Managers/1/EthernetInterfaces/EthGroup/1
检查 LoopbackIpv4Addr 和 LoopbackIpv6Addr 是否已正确设置(根据文档片段 8,新增的资源协作接口属性)。
-
使用 tracemctp 诊断 MCTP 通信
若您的环境涉及 MCTP 传输,huangzhiyu 推荐使用 tracemctp 抓取底层报文,确认环回数据是否在 PHY 层被正确回环。
-
验证物理环回头的连接
按照 guanmaoning 的建议,检查环回头是否牢固插入 eth2 口,并确认环回头型号与您的硬件兼容(例如 1GE 或 10GE 环回头可能不同)。
-
检查 MAC 地址初始化日志
查看 bmc_network 组件的日志(/var/log/bmc_network 或通过 journalctl -u bmc.kepler.bmc_network),确认 eth2 的 MAC 地址是否在接口启动时被正确设置。若发现 MAC 一直为空,可能需要检查 general_hardware 组件中网卡驱动的注册流程。
总结
- 直接现象:DFT ID 0x4A(MGMT Test)在 eth2 上反复执行并失败。
- 日志关键线索:自环测试启动时 MAC 地址为空。
- 最可能的根因:物理环回连接问题或网口 MAC 初始化失败。
- 优先排查方向:1)环回头是否插好;2)
bmc_network 是否成功为 eth2 分配 MAC;3)CSR 配置中 DftEth 测试项的参数是否匹配。
如果上述排查后问题仍然存在,建议完整提供以下信息以便进一步分析:
bmc_network 的完整启动日志(从系统上电到测试开始);
- 环回头的型号及连接照片;
- DFT 模式使能后的全部测试项列表(
ipmicmd -k "f 0 30 90 41 00 20 02 ..." 的输出)。
grlxw
(xijie)
3
和另一个帖子一样,可能是测试的时候流量大或网络硬件驱动原因导致帧被截断或覆盖,只收到部分数据。可以排除软件问题。