NCSI网卡适配

哦哦,好的,我再看下network_adapter组件的源码,之前看日志以为是bmc_network先感知到的NCSI Port,然后再由network_adapter来进行注册

用/sbin/ifconfig命令查看一下网口信息,是否有eth0

eth0接口是有的,另外在network_adapter中加了一些打印日志,发现它是在初始化NCSI Port的时候失败了,如下所示:

图片

图片

sr文件中,NCSIChanel的配置信息如下(目前是直接写死的方式):

我这个网卡只支持一个Port,为啥日志看到的打印port num = 4,这是啥情况?

范工,请问下从这些日志和配置来看,是哪里出现的问题呀? 能看出来不

这个只能看到一个Port,和Web界面上是对应的

确定是eth0作为ncsi网口吗?如果是的话,需要在初始化的时候用tcpdump抓包分析ncsi报文交互

4是默认值,只要你需要的channel通了,其他channel发了也不影响

可以确定,eth2是专用网口,eth0是NCSI共享网口

请教下这个Channel通道的值怎么确定呀?硬件设计上决定的?我现在是把NCSICHannelMgmt_1对象配成OCP1在位,NCSIChanel配置成2,因为看代码里默认的通道值是2。

这里的抓包调试有啥文档可以参考下不

写死没用,要按照vpd仓里的配置对应的Accessor和Scanner,而且得看扩展板是否支持这些寄存器

范工,你是说类似于这种吗? 这个是不是需要载板上的CPLD的支持呀?
你说的写死没用是为啥呀? 通道不是固定的吗?

嗯,得扩展板支持这些寄存器,NCSIChannel也是关联的Accessor,修改它的值相当于修改寄存器ncsi的指向,你写死就没意义了

范工,又发现点异常的地方,观察到eth2这个接口在初始化的时候,是即把它当做NCSI网口,又给当做了专用网口?这里是sr的配置存在问题吗?

这个ncsi网口vlan的配置,不代表现在是ncsi网口,这个配置要切到ncsi网口才会生效,现在截图里面还是在专用网口上

哦哦,好的。我现在的疑问是为啥network_adapter组件没有识别到这个NCSI网口并初始化成功呀?

在network_adapter组件中imu_cmd.get_info_from_pmu这个接口会失败,所以我也是写死在代码里(能直接写死吗,这里),让其强制返回网口的BDF值,但是NCSI功能初始化还是失败。

如果配置Accessor_NCSI这些对象,则network_adapter组件没法检测到网卡

另外devmon这个组件在通过PMU查询网卡信息时,也是失败的

1970-01-01 02:11:41.148191 devmon ERROR: imu.cpp(82): [IMU-I2C-TRACE] ===== IMU->I2C->PMU PCIe Info Request Start =====

1970-01-01 02:11:41.148460 devmon ERROR: imu.cpp(89): [IMU-DEBUG] Getting info from IMU: is_local=false, socket_id=0, bus=2, device=0, function=0, address=0x00, read_len=4

1970-01-01 02:11:41.153749 devmon ERROR: imu.cpp(128): [IMU-I2C-TRACE] Step 1: Preparing PMU PCI request for I2C transmission

1970-01-01 02:11:41.153944 devmon ERROR: imu.cpp(155): [IMU-I2C-TRACE] Step 2: PMU request constructed - 9 bytes

1970-01-01 02:11:41.154081 devmon ERROR: imu.cpp(156): [IMU-I2C-TRACE] PMU Request Header: db 07 00

1970-01-01 02:11:41.154195 devmon ERROR: imu.cpp(157): [IMU-I2C-TRACE] PMU Request Payload: 40 00 00 20 00 03

1970-01-01 02:11:41.154395 devmon ERROR: imu.cpp(163): [IMU-DEBUG] Sending PMU PCI request via ME channel: cpu_id=0x40, addr1=0x00, addr2=0x00, addr3=0x20, addr4=0x00, read_len=3

1970-01-01 02:11:41.154524 devmon ERROR: imu.cpp(165): [IMU-DEBUG] Request data: db 07 00 40 00 00 20 00 03

1970-01-01 02:11:41.154608 devmon ERROR: imu.cpp(167): [IMU-I2C-TRACE] Step 3: Sending to IPMB(ME) → I2C → PMU

1970-01-01 02:11:41.154711 devmon ERROR: imu.cpp(169): [IMU-I2C-TRACE] IPMB Channel: ME (channel_type=0x01)

1970-01-01 02:11:41.154825 devmon ERROR: imu.cpp(171): [IMU-I2C-TRACE] IPMI NetFn: 0x2e (OEM), Cmd: 0x44

1970-01-01 02:11:41.154893 devmon ERROR: imu.cpp(172): [IMU-I2C-TRACE] Timeout: 5000ms

1970-01-01 02:11:41.155069 devmon ERROR: ipmb.cpp(96): Sending IPMI request: Channel=1(ME), NetFn=0x2e, Cmd=0x44, DataLen=9, Timeout=5000ms

1970-01-01 02:11:41.155209 devmon ERROR: ipmb.cpp(101): [ME-DEBUG] IPMI request data: db 07 00 40 00 00 20 00 03

1970-01-01 02:11:41.156508 devmon ERROR: ipmb.cpp(143): [ME-DEBUG] Sending to ipmi_core: NetFn=0x2e, Cmd=0x44, Instance=0, LUN=0

与此同时,busctl命令拿这个信息也是直接报错

对了,范工,还有个地方就是IMU那边的串口日志输出是这样的:

这个是需要修改sr里面的配置吗?

因为你的NCSIChannel得对应修改寄存器的指向,才能让ncsi通,1-NCSI连至CPU;2-NCSI连至OCP1;3-NCSI连至OCP2;4-NCSI连至PCIe网卡