米尔开发板ncsi over mctp测试

平台:米尔3093开发板
代码:2506版本
问题:测试network_adapter组件中init_protocol的ncsi cmd,在PCIe卡适配培训中有提到ncsi over mctp默认是走pcie,可以通过修改pcall传参改为走smbus,但实际测试无法成功。参考 openubmc是否支持mctp over smbus进行带外管理? 这个帖子已在sr文件中配置了Endpoint。



想问下这个pcall修改通信介质具体是怎么操作,要添加什么传参?

流程不一致:

PCIE是通过BIOS提供的phadd这些创建Endpoint

Smbus是通过在SR里面手动配置的Endpoint和mctpbinding走自发现来创建支持
smbus的Endpoiint对象, 然后通过Position去匹配自发现创建的Endpoint对象。

上层协议基本不变。

不好意思,这个上层协议基本不变是指如果我想通过smbus实现ncsi over mctp,那么只需要修改网卡CSR文件,创建Endpoint对象就可以了吗?network_adapter组件里调用get_endpoint_and_transport的代码不需要修改是吗

不需要做修改。修改csr,在csr中配置smbus的endpoint对象,network_adapter即可走mctp over smbus。

好的,谢谢。
我们在csr中配置了endpoint对象,并且通过 busctl --user introspect bmc.kepler.mctpd /bmc/kepler/Systems/1/Mctp/MctpBinding 命令发现MctpBinding_1成功赋值,但是Endpoint_1对象一直无法成功上树,并且network_adapter.lua中第700行(帖子第一张图)的打印一直没有执行,卡在了get_endpoint_and_transport接口里。




692行返回的phy_addr和网卡sr文件里Endpoint,MctpBinding里配置的phyaddr有联系吗?
697行的get_endpoint_and_transport接口是获取一个已有的endpoint信息吗,还是创建一个新的并返回?

692行的phy_addr跟你SR里面配置的phyaddr是同一个;

697行get_endpoint_and_transport接口返回的就是你在sr里面配置的Endpoint;

get_endpoint_and_transport最后要传一个position, 可以用self.get_position()获取,返回类型字符串。

Endpoint上树成功了,但是697行的调用一直不返回,想问下这个问题可能是什么原因导致的,可以通过什么方式排查下吗?position有添加。

上面提到的最后一个参数需要传position有修改吗

之前测试的时候有修改过,但是没有效果。

现在还可以复现问题吗,可以打印下phy_addr,msg_type和position吗,以及mctpd的版本号和资源树截图

这个问题之前一直无法解决,就先搁置了。现在是通过component_drivers组件在测试ncsi_over_mctp_over_smbus相关内容。