【待评审】IpmbEth 资源协作接口新增实例、活动平面及诊断信息查询能力

背景

IPMB over Ethernet 通道支持同一 IPMI 通道下配置多个实例,并支持在 SMM1、SMM2 两个通信平面之间进行活动端口选择。现有资源协作接口无法标识具体实例、无法对外呈现当前活动通信平面,也缺少一次性导出通道运行信息的诊断能力。

本次在已有资源协作接口 bmc.kepler.Managers.IpmbEth 中新增 InstanceActivePortId 两个属性和 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 中新增属性 InstanceActivePortId
  • 评审点2:在已有资源协作接口 bmc.kepler.Managers.IpmbEth 中新增方法 DumpIpmbEth

详细描述

评审点1:新增资源树协作接口属性

  • 场景:新增资源树协作接口属性,用于标识 IPMBEth 通道实例及承载当前活动通信平面。
  • path/bmc/kepler/Managers/${ManagerId}/IpmbEth/${Id}(已有)
  • interfacebmc.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}(已有)
  • interfacebmc.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:子通道实例号。