不插光模块,恢复出厂后,异常显示光模块信息

问题描述

ocp网卡port2没有插光模块,bmc恢复出厂后,ocp 网卡 port2显示光模块信息, 预期不显示

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:2025-1230SP1

  • 硬件配置:通用问题

重现步骤

  1. 恢复出厂前port2网口信息, 设置还原点;

  2. 执行恢复出厂, 恢复出厂后

3,一键收集
dump_KL2280V3-151_20121203-0618.tar.gz (8.0 MB)

期望结果

预期恢复出厂前后光模块信息都不显示

实际结果

异常显示

尝试过的解决方案

分析结论

初步分析备份还原点的时候光模块信息备份了默认值, 导致恢复出厂之后异常显式

答案内容由AI生成,仅供参考:

总结

项目 结论
问题本质 UI异常显示,非真实检测到光模块
底层状态 实际光模块数量为 0,硬件无模块在位
根本原因 恢复出厂时保留了光模块信息的默认结构模板
修复方向 清理对象树、控制UI渲染条件、强化恢复逻辑
技术支持 已有方案可参考 openUBMC 社区网卡适配指南与 devmon 对象管理机制

:white_check_mark: 推荐提交 Bug 至 openUBMC 社区,关联 PR 改进恢复出厂行为对 OpticalModule 节点的处理逻辑。

点击此处查看详细分析解答

不插光模块,恢复出厂后异常显示光模块信息的问题分析与说明

问题描述

OCP网卡Port2未插入光模块 的情况下,执行BMC恢复出厂设置后,系统界面仍显示该端口存在光模块信息,而预期应为不显示任何光模块相关信息。


环境信息

项目 内容
操作系统 Ubuntu 24.04(通用问题,非特定OS依赖)
软件版本 2025-1230SP1
硬件配置 通用问题,涉及 Mellanox 网卡 MCX623430MS-CDAB

故障重现步骤

  1. 恢复出厂前查看 Port2 的网口信息,并设置还原点;
  2. 执行 BMC 恢复出厂操作;
  3. 查看恢复后的 Port2 网口信息;
  4. 发现尽管未插光模块,但界面仍显示“光模块信息”字段。

期望结果:无论是否插光模块,恢复出厂后,未插入光模块的端口应不显示光模块相关数据。
实际结果:Port2 显示了光模块信息(如“接收丢失状态:否”、“发送错误状态:否”等),属于异常显示


涉及硬件与组件

网络适配器型号

  • 型号MCX623430MS-CDAB
  • 厂商Mellanox
  • 芯片型号:CX6-DX
  • 接口类型:2×100GE,支持光口介质
  • 安装位置:PCIE Riser11
  • 固件版本:22.43.2566

所属系统组件

  • Network Adapter App:负责管理网络适配器状态及光模块监控。
  • network_adapter.lua:核心Lua脚本,用于初始化和管理网络适配器。
  • optical module count:系统指标,在日志中多次报告为 0,表示无光模块在位。

日志与诊断分析

根据系统日志:

2025-12-16 00:18:18.819563 network_adapter NOTICE: network_adapter.lua(1313): optical module cnt is 0

表明系统底层检测到的光模块数量为零,即没有任何物理光模块被识别。

同时,知识库中多个实体和关系确认:

  • Optical Module Countnetwork_adapter 组件报告,且值为 0
  • light module information 被错误地显示于 Ocp Netcard Port2,即使其未连接光纤模块。

根本原因分析

:white_check_mark: 初步分析(来自知识库内容)

初步分析备份还原点的时候光模块信息备份了默认值,导致恢复出厂之后异常显示。”

这意味着:

  1. 在创建还原点时,系统可能缓存或记录了光模块信息的默认结构(而非真实状态)
  2. 恢复出厂时,并未清除这些“静态模板”字段,而是将其重新加载到UI中;
  3. 尽管硬件上无光模块,network_adapter.lua 也报告 optical module cnt is 0,但由于前端或Redfish接口仍渲染了历史模板数据,造成虚假信息展示

可能的技术路径

  • 系统使用 vpd(Vital Product Data)仓或 hardware_config 配置文件定义网卡能力。
  • 在配置文件中,若未明确指定Presence=0或隐藏光模块字段,则即使无模块,UI也会显示默认空模板。
  • 恢复出厂逻辑未重置UI状态树中的光模块节点,则保留原有结构。

相关技术支持证据

  1. Maoyuhao 技术专家指出

    光模块信息可以通过带外协议获取或由 BMA 上报,且 BMA 显示优先级更高。
    若需定位问题,建议关闭 BMA 后检查带外数据源。

  2. OpenUBMC 版本更新记录(25.09)新增功能

    :white_check_mark: 支持光模块关键信息记录和闪断检测
    :white_check_mark: 新增网卡 Flash recovery 故障检测机制

    表示系统已具备更完善的光模块状态管理能力,当前问题属于状态同步与UI渲染一致性问题,而非底层驱动缺失。

  3. 资源协作接口规范(bmc.kepler.Metric)定义

    /bmc/kepler/systems/1/NetworkAdapters/.../OpticalModule
    

    该路径仅应在光模块在位时创建。若恢复出厂后此路径仍存在,说明对象树未正确清理。


解决方案建议

:white_check_mark: 短期建议(规避)

  1. 清除默认模板缓存

    • 在恢复出厂逻辑中,强制清除所有 OpticalModule 路径下的对象;
    • 确保 network_adapter 在初始化时基于实时探测重建对象树。
  2. 检查配置文件

    • 检查 hardware_config/MCX623430MS-CDAB.lua 是否在无模块时仍生成默认 optical module 结构;
    • 添加判断逻辑:仅当 Presence == 1 时才构建光模块信息节点。
  3. 前端显示控制

    • Web UI 或 Redfish 接口应查询 Presence 字段:
      "Presence": 0  // 表示无模块,不展示卡片
      
    • 如文档《openUBMC 182x大板管理特性设计说明书》所述:

      Port 1/2/3 不显示光模块相关信息或显示“无光模块”


:white_check_mark: 长期建议(根治)

建议 说明
统一状态源 所有光模块信息应统一来源于 metric_analyzernetwork_adapter 的实时探测,避免使用缓存快照
增强恢复逻辑 恢复出厂时重置 D-Bus 对象树,清除所有动态设备节点
日志追踪增强 network_adapter.lua 中增加调试日志,记录光模块对象的创建与销毁
UI/后端一致性校验 引入自动化测试验证:无模块 → UI不显示光模块信息

总结

项目 结论
问题本质 UI异常显示,非真实检测到光模块
底层状态 实际光模块数量为 0,硬件无模块在位
根本原因 恢复出厂时保留了光模块信息的默认结构模板
修复方向 清理对象树、控制UI渲染条件、强化恢复逻辑
技术支持 已有方案可参考 openUBMC 社区网卡适配指南与 devmon 对象管理机制

:white_check_mark: 推荐提交 Bug 至 openUBMC 社区,关联 PR 改进恢复出厂行为对 OpticalModule 节点的处理逻辑。

恢复出厂设置后,网卡版本降低,旧版本network_adapter组件bma模块对于光模块在位信息默认设置为了1,导致web界面错误显示光模块在位,但是由于其余值均为空或默认值,因此并不显示光模块信息。新版本已经修复了该问题,network_adapter组件bma模块根据带内传来的IsSffExist属性进行更新。