背景
IPMB over Ethernet 通道支持同一 IPMI 通道下配置多个实例,并支持在 SMM1、SMM2 两个通信平面之间进行活动端口选择。现有资源协作接口无法标识具体实例、无法对外呈现当前活动通信平面,也缺少一次性导出通道运行信息的诊断能力。
本次在已有资源协作接口 bmc.kepler.Managers.IpmbEth 中新增 Instance、ActivePortId 两个属性和 DumpIpmbEth 方法,用于区分 IPMBEth 实例、查询当前活动通信平面,以及导出通道、端口和子通道的运行快照。
关联 ISSUE
暂无 ISSUE。
整体方案
- 在已有资源路径
/bmc/kepler/Managers/${ManagerId}/IpmbEth/${Id}上复用接口bmc.kepler.Managers.IpmbEth,不新增资源路径和接口。 - 新增属性
Instance,用于标识 IPMBEth 通道实例。 - 新增属性
ActivePortId,由 IPMBEth 管理服务实时更新,用于表示当前活动通信平面:1表示 SMM1 平面,2表示 SMM2 平面。 - 新增方法
DumpIpmbEth,返回 JSON 数组字符串,提供各 IPMBEth 通道的实例、活动端口、物理端口、MAC 地址、链路故障持续时间及子通道信息。
评审点
- 评审点1:在已有资源协作接口
bmc.kepler.Managers.IpmbEth中新增属性Instance、ActivePortId。 - 评审点2:在已有资源协作接口
bmc.kepler.Managers.IpmbEth中新增方法DumpIpmbEth。
详细描述
评审点1:新增资源树协作接口属性
- 场景:新增资源树协作接口属性,用于标识 IPMBEth 通道实例及承载当前活动通信平面。
- path:
/bmc/kepler/Managers/${ManagerId}/IpmbEth/${Id}(已有) - interface:
bmc.kepler.Managers.IpmbEth(已有) - 变化类型:新增属性
- 新增属性:
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|
| Instance | y | true | false | IPMBEth 通道实例号 | ReadOnly | CSR | 无需持久化 | false |
| ActivePortId | y | true | true | IPMBEth 当前活动通信平面,默认值为 1;1 表示 SMM1 平面,2 表示 SMM2 平面,仅取值 1 或 2 | ReadOnly | app实时更新 | 无需持久化 | true |
评审点2:新增资源树协作接口方法
- 场景:新增资源树协作接口方法,用于导出 IPMBEth 通道、端口和子通道的运行信息。
- path:
/bmc/kepler/Managers/${ManagerId}/IpmbEth/${Id}(已有) - interface:
bmc.kepler.Managers.IpmbEth(已有) - 变化类型:新增方法
- 新增方法:
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
| DumpIpmbEth | 无 | 无请求参数 | s | IpmbEthInfo:JSON 数组字符串,包含 IPMBEth 通道、端口和子通道运行信息 | 导出各 IPMBEth 通道的运行信息,供问题定位和诊断使用 | BasicSetting |
响应参数详细描述
IpmbEthInfo 中每个通道对象包含以下字段:
| 字段 | 含义 |
|---|---|
| ch_id | IPMI 通道 ID |
| instance | IPMBEth 通道实例号 |
| slave_addr | 通道当前从地址 |
| active_port_id | 当前活动端口 ID,取值为 1 或 2 |
| port_infos | 物理端口信息 |
| sub_chs | 子通道信息 |
port_infos 的元素包含:
port_id:端口 ID。eth_name:绑定的网口名称。ipmbeth_idx:IPMBEth 索引。driver_port_id:驱动端口 ID。src_mac:源 MAC 地址。dest_mac:目的 MAC 地址。linking_fault_duration:链路故障持续时间。
sub_chs 的元素包含:
dest_addr:目的地址。ch_type:子通道类型。instance:子通道实例号。