网卡配置获取温度是正常的,mac地址异常问题分析
更新时间: 2026/05/28
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:NA;
  • 涉及功能:网卡适配,ncsi, 网络功能;
  • 触发条件:按照melloax网卡的extra_cmd拼接博通和网讯的ncsi data。
  • 业务表现:预期网卡配置获取温度是正常的,mac地址也正常;实际网卡配置获取温度是正常的,mac地址异常问题。

问题复现步骤

在新适配一张网讯网卡,由于之前没有适配过网讯网卡,需要在network_adapter中hardware_config下新添加lua文件做model

  • 仿照其他卡的写法后,配置温度带外管理信息,是能正常获取温度的

  • 如法炮制配置mac地址,其中请求体的data字段参照网讯网卡文档,mac地址获取对应命令为0x13,网卡温度获取对应命令为0x14

  • 调试发现,mac地址获取异常

关键日志信息

查看日志,确认报错如下:

定位过程

  1. 根据异常日志,定位到代码:
  2. 报错提示s变量为空,即私有属性self.ncsi_config_obj中无MacAddrNCSI函数。
  3. 分析代码发现该私有属性来源与network_adapter.lua中私有属性self.ncsi_config_obj相同,并且在测试改函数名(把新添加lua文件中ChipTemp名改为ChipTemp2后网卡温度获取不到)后发现,self.ncsi_config_obj内容为在hardware_config下新添加lua文件内容。

问题原因

网讯的mac地址是网讯私有协议获取的,要根据协议规定自己拼装data。extra_cmd是melloax网卡私有协议特有的,博通和网讯的ncsi需要跳过。

解决方案

310行增加网讯的model特殊判断,不要走310行的分支。