mctpd打印MCTP over SMBus通信报文

配置基于MCTP over SMBus的Endpoint,参考:mctpd使用说明 | 文档中心 | openUBMC
CSR配置如下:

"Objects": {
        "Chip_Mctp": {
            "Address": 58,
            "AddrWidth": 1,
            "OffsetWidth": 1,
            "WriteTmout": 100,
            "ReadTmout": 100,
            "HealthStatus": 0,
            "DrvWriteDelay": 0
        },
        "Endpoint_1": {
            "TargetEid": "${Slot} |> expr(100 + $1)",
            "TargetPhyAddr": 29,
            "MessageType": 4,
            "MediumType": 2,
            "RefChip": "#/Chip_Mctp"
        },
        "MctpBinding_1": {
            "BmcSMBusEid": 8,
            "BmcSMBusPhyAddr": 16
        },

结果app.log报错:mctpd ERROR: mctp_engine.lua(306): set smbus ep failed. endpoint eid: 101, msg_type: 0
我理解这是set Endpoint EID失败,所以我想尝试打印出对应的收发报文数据进行分析
根据论坛内容我尝试了两种方法打印:

方法一:inject注入开启报文捕获

参考鲲鹏bmc调试网卡部件,如何开启打印协议通信报文 - Hardware SIG - openUBMC 论坛
注入两段代码:

local c_mctp_engine = require 'mctp_engine'
local mctp_engine = c_mctp_engine.new()
mctp_engine:enable_pcie_capture()
local c_mctp_mdb_mgmt = require 'mctp_mdb_mgmt'
local mctp_mdb_mgmt = c_mctp_mdb_mgmt.new()
mctp_mdb_mgmt:reinit_all_smbus_ep()

获取app.log相关日志:

2025-10-21 01:56:41.916167 mctpd NOTICE: mctp_engine.lua(228): mctp_engine: vdm engine reinit
2025-10-21 01:56:42.034614 mctpd ERROR: mctp_engine.lua(306): set smbus ep failed. endpoint eid: 101, msg_type: 0
2025-10-21 01:56:42.068988 mctpd NOTICE: init.lua(87): mctp_endpoints: create endpoint, phy_addr=29, eid=101, msg_type=4, medium_type=2
2025-10-21 01:56:42.070891 mctpd NOTICE: mctp_mdb_mgmt.lua(471): mctp_mdb_mgmt: register mdb endpoint: 0101010301_29, msg_type=4, eid=101, phy_addr=29, medium_type=2
2025-10-21 01:56:42.071211 mctpd NOTICE: mctp_mdb_mgmt.lua(475): mctp_mdb_mgmt: smbus endpoint status change, ep:Endpoint_1_0101010301, status:1
2025-10-21 02:24:09.230962 mctpd NOTICE: mctp_engine.lua(162): ============= PCIe capture [SEND] =============
2025-10-21 02:24:09.231499 mctpd NOTICE: mctp_engine.lua(165): 7F 00 00 03 01 10 00 70 CC 09 00 01 B4 1A 00 00
2025-10-21 02:24:09.231862 mctpd NOTICE: mctp_engine.lua(165): 00 88 0A 00
2025-10-21 02:24:09.331560 mctpd NOTICE: mctp_engine.lua(162): ============= PCIe capture [RECV] =============
2025-10-21 02:24:09.332712 mctpd NOTICE: mctp_engine.lua(165): 04 00 00 12 00 20 08 00 B4 1A 00 03 C4 08 09 01
2025-10-21 02:24:09.333090 mctpd NOTICE: mctp_engine.lua(165): 00 08 0A 00 FF 01 01 09 20 02 0F 02 03 00 00 00
2025-10-21 02:24:09.333459 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.333817 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.334155 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.334510 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.334864 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.335214 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.335898 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.336292 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.336663 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.337018 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.337376 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.337714 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.338070 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.338571 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:09.338946 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.601530 mctpd NOTICE: mctp_engine.lua(162): ============= PCIe capture [RECV] =============
2025-10-21 02:24:11.603402 mctpd NOTICE: mctp_engine.lua(165): 01 00 00 13 00 10 08 00 B4 1A 00 00 C8 08 00 01
2025-10-21 02:24:11.603936 mctpd NOTICE: mctp_engine.lua(165): 00 80 0C 00 FF 01 01 09 20 02 0F 02 03 00 00 00
2025-10-21 02:24:11.604502 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.604937 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.605312 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.605681 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.606030 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.606400 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.606755 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.607109 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.607463 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.607813 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.608177 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.608551 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.608912 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.609268 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:11.609703 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:13.970876 mctpd ERROR: mctp_engine.lua(306): set smbus ep failed. endpoint eid: 101, msg_type: 0
2025-10-21 02:24:14.340471 mctpd NOTICE: mctp_engine.lua(162): ============= PCIe capture [SEND] =============
2025-10-21 02:24:14.341010 mctpd NOTICE: mctp_engine.lua(165): 7F 00 00 03 01 10 00 70 CD 09 00 01 B4 1A 00 00
2025-10-21 02:24:14.341855 mctpd NOTICE: mctp_engine.lua(165): 00 8A 0A 00
2025-10-21 02:24:14.441534 mctpd NOTICE: mctp_engine.lua(162): ============= PCIe capture [RECV] =============
2025-10-21 02:24:14.442779 mctpd NOTICE: mctp_engine.lua(165): 04 00 00 12 00 20 08 00 B4 1A 00 03 C5 08 09 01
2025-10-21 02:24:14.443251 mctpd NOTICE: mctp_engine.lua(165): 00 0A 0A 00 FF 01 01 09 20 02 0F 02 03 00 00 00
2025-10-21 02:24:14.443693 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.444116 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.444548 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.444969 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.445391 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.445820 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.446454 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.446906 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.447332 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.447778 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.448199 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.448619 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.449050 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.449548 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-21 02:24:14.450010 mctpd NOTICE: mctp_engine.lua(165): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

但是捕获的报文都是PCIe capture,似乎没有SMBus capture的内容

方法二:mdbctl的tracemctp

【已评审】Endpoint新增调试时打印报文功能 - Interface SIG / Interface评审 - openUBMC 论坛
参考此贴,用法为:tracemctp [ObjectName] [Action],但实际只能输入tracemctp [Action]


注入mctp_mdb_mgmt:reinit_all_smbus_ep()后mdbctl还是看不到任何报文打印
而且lsprop会报错:

% lsobj Endpoint
Endpoint_0101010301_29_4
% lsprop Endpoint_0101010301_29_4
BMC.Error.Unknow: table: 0x64d04832e990

想问一下,怎么才能打印出MCTP over SMBus的通信报文

当只有一个EndPoint对象的时候就无需输入ObjectName参数了,直接tracemctp start就行了