网卡配置获取温度是正常的,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地址获取异常
关键日志信息
查看日志,确认报错如下:
定位过程
- 根据异常日志,定位到代码:
- 报错提示s变量为空,即私有属性self.ncsi_config_obj中无MacAddrNCSI函数。
- 分析代码发现该私有属性来源与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行的分支。