zijin dpu 2.5 网络适配器-端口属性的链接状态没有显示

问题描述

zijin dpu 2.5,安装了光模块和做端口了互联,在网络适配器-端口属性页面,状态没有显示,资源树上查看网卡port的LinkStatus属性为“N/A”。LinkStatusNumeric正常读到1,端口属性可以看到光模块信息,光模块温度能正常获取到。

环境信息

  • 软件版本:OpenUBMC2512

  • 硬件配置:zijin dpu 2.5

重现步骤

  1. 安装zijin dpu 2.5

  2. 在dpu上安装光模块和接上网线

  3. 查看网络适配器-端口属性页面的状态

期望结果

端口属性页面的状态显示为连接或者断开

实际结果

端口属性页面的状态无显示

尝试过的解决方案

拔插光模块和网线

分析结论

[详细总结您对此问题的分析结论]

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

总结

  • 现象LinkStatus 属性为 “N/A”,导致前端状态无显示。
  • 原因:底层 GetLinkStatus 函数因 os_link_status 为空且 link_status 未匹配到 "Disconnected",返回了 null(即 “N/A”)。
  • 期望:该值应正确反映物理连接状态(如 "Connected""Disconnected"),前端才能正常展示。
点击此处查看详细分析解答

根据您提供的上下文信息,您遇到的问题(Zijin DPU 2.5 网络适配器-端口属性页面状态无显示)的核心原因可以总结如下:

问题定位

  • 在端口属性页面中,“状态”字段应为“连接”或“断开”,但实际为空。
  • 通过 bmcctl 查看底层属性时,发现 LinkStatus 属性值为 “N/A”,而 LinkStatusNumeric 值为 1(通常表示物理链路已连接)。
  • 您已安装光模块并做了端口互联,光模块温度也能正常读取,说明物理链路和环境基本正常。

根本原因分析(基于上下文)

  1. LinkStatus 取值规则
    根据上下文中的文档片段(topic_id 4506),GetLinkStatus 函数的逻辑如下:

    • 对于非 NPU 设备(Zijin DPU 2.5 属于非 NPU 卡),GetLinkStatus 会先判断 os_link_status(操作系统端链路状态)是否非空。
    • os_link_status 为空,则进一步判断 link_status 的值:
      • 如果 link_status == "Disconnected",则返回 "NoLink"
      • 否则返回 null(在某些实现中,null 可能被映射为前端显示的 “N/A” 或空)。
  2. 您观察到的现象与逻辑相符

    • LinkStatus 显示为 “N/A”,很可能就是上述逻辑中返回 null 的结果。
    • LinkStatusNumeric 为 1,表明物理链路实际已连接,但 link_status 底层可能并未被正确识别为 "Connected""Disconnected" 等有效状态,导致 GetLinkStatus 回退为 null
  3. 前端显示问题

    • Web 前端界面中的“状态”字段通常直接读取 LinkStatus 属性对应的 Redfish 或 BMC 接口值。
    • LinkStatus 为 “N/A” 或 null 时,前端无法将其映射为“连接”或“断开”,因此显示为空。

建议排查方向(基于上下文给出的线索)

  • 检查 os_link_status 的获取机制os_link_status 通常是操作系统内核上报的链路状态。如果该值为空,会导致上述回退逻辑触发。可能需要确认操作系统端(如 DPU 上的宿主 OS)是否正确上报了链路状态。
  • 检查底层 link_status 的获取协议与周期:根据上下文(资源协作接口表),LinkStatus 通过 oem_smbus 协议每 10s 获取一次。需确认该协议是否能正确从 DPU 硬件读取到有效状态(如 “Connected” 或 “Disconnected”)。
  • 参考非 NPU 卡的处理逻辑:上文提到的 GetLinkStatus Lua 脚本中,针对非 NPU 卡的处理直接返回 null(当 os_link_status 为空且 link_status 不是 "Disconnected" 时)。或许需要修改此逻辑,使其在 link_status 为其他有效值(如 "Connected")时返回 "LinkUp" 或相应字符串。

总结

  • 现象LinkStatus 属性为 “N/A”,导致前端状态无显示。
  • 原因:底层 GetLinkStatus 函数因 os_link_status 为空且 link_status 未匹配到 "Disconnected",返回了 null(即 “N/A”)。
  • 期望:该值应正确反映物理连接状态(如 "Connected""Disconnected"),前端才能正常展示。

建议重点排查 os_link_status 的来源和 link_status 的报值是否正确,并考虑调整 GetLinkStatus 逻辑以兼容非 NPU 卡下物理链路已连接时的场景。

一键日志:

Atlas800IA3_2102315QYP10RC100007_20260513-0557.tar.gz (6.4 MB)

您好,芯片型号CTCloud11JA4的网络适配器,当前network_adapter组件仓没有支持获取网口连接状态和光模块信息的命令,所以Web页面上没有显示。

从一键收集日志看,资源树属性LinkStatusNumeric,和Web页面"门限传感器"下面光模块温度读值来自于硬件信号,是在CSR里面配置的,所以有对应显示。

更新network_adapter 组件可以解决是吗?还是需要配置CSR?