配置网卡时带外管理信息异常咨询

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

仿照其他卡的写法后,配置温度带外管理信息:

是能正常获取温度的

如法炮制配置mac地址:

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

调试发现,mac地址获取异常,打印:

企业微信截图_17605223495473

2025-10-15 17:58:03.425647 network_adapter ERROR: init.lua(86): unable to validate request_data when accessing property: MacAddrNCSI
2025-10-15 17:58:03.426536 network_adapter ERROR: tasks.lua(108): task [NetworkPort.next_tick.155] error: …pps/network_adapter/lualib/device/class/network_port.lua:322: attempt to index local ‘s’ (a nil value)
定位到代码:

报错提示s变量为空,即私有属性self.ncsi_config_obj中无MacAddrNCSI函数

分析代码发现该私有属性来源与

network_adapter.lua中私有属性self.ncsi_config_obj相同,并且在测试改函数名(把新添加lua文件中ChipTemp名改为ChipTemp2后网卡温度获取不到)后发现,self.ncsi_config_obj内容为在hardware_config下新添加lua文件内容

不明白为什么配置获取网卡温度是正常的,mac地址就异常了

网讯的mac地址是网讯私有协议获取的,要根据协议规定自己拼装data

310行增加你的model特殊判断,让它走310行的分支

1 个赞

走这个分支已解决问题。原理是什么呢?

ncsi标准协议需要extra_cmd这个参数,博通和网讯的ncsi私有协议不需要这个参数么?是有什么背景可以说说嘛

extra_cmd是melloax网卡私有协议特有的