背景
当前 PCIe 设备管理需要感知占用PCIe槽位的卡,在硬件在位情况下,是否成功加载,以支持 PCIe 不建链告警功能。对于PCIe设备,有PCIeDevice对象,在加载时可以通过这个对象判断;对于非PCIe,仅占用槽位的设备,需要新增 PCIeSlotOccupant 资源协作接口和路径。
关联ISSUE
整体方案
在 pcie_device 组件中新增 PCIeSlotOccupant 资源协作路径和接口,用于管理 PCIe 槽位的非PCIe设备。依赖 mdb_interface 仓新增接口定义,pcie_device 组件通过 model.json 配置实现。
不建链告警检测原理:OS 启动后(SMBIOS 就绪后延迟 10 分钟),遍历所有配置了 TianChi 连接器的 PCIe 卡槽位(PcieAddrInfo.ComponentType 为 8),结合 BusinessConnector 判断硬件在位(TianChi 连接器 Presence 为真),同时检查设备对象存在状态(PCIeDevice 对象存在且 DeviceType 为 8、PCIeSlotOccupant 对象存在、UBInterfaceCard 对象存在,三者满足其一即可)。若硬件在位但没有加载对应的对象,则上报 0x08000067 告警;若硬件不在位或相关槽位有设备对象,则消除告警。
评审点
-
新增资源协作路径
/bmc/kepler/Chassis/${ChassisId}/PCIeSlotOccupants/${Id} -
新增资源协作接口
bmc.kepler.Chassis.PCIeSlotOccupant
详细描述
评审点1:新增资源协作路径 /bmc/kepler/Chassis/${ChassisId}/PCIeSlotOccupants/${Id}
路径描述:用于管理 PCIe 槽位的软件占用状态,区分物理在位、非管理型占用等场景,归属 PCIe 设备管理功能域。
实现接口
| 实现接口 | 实现接口描述 | CSR配置影响 | 持久化影响 | 其他影响 | ||
|---|---|---|---|---|---|---|
bmc.kepler.Chassis.PCIeSlotOccupant |
实现 SlotId 和 Type 属性,提供槽位占用信息查询功能 | 新增 SlotId 属性 CSR 配置 | 不涉及持久化,无兼容性问题 | 需 pcie_device 组件实现 PCIeSlotOccupant 类 |
评审点2:新增资源协作接口 bmc.kepler.Chassis.PCIeSlotOccupant
接口描述:定义 PCIe 槽位占用信息,包括槽位号和占用类型,用于感知 PCIe 槽位上的占位对象,支持 PCIe 不建链告警功能。
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 | ||
|---|---|---|---|---|---|---|---|---|---|---|
| SlotId | y | True | false | 槽位号,表示 PCIe 槽位编号 | Read: ReadOnly | CSR | false | |||
| Type | s | True | false | 设备占用PCIe槽位的类型,枚举值包括:""(默认)、"PhysicalSlotOccupant"、"Unmanaged",默认值为空字符串 |
Read: ReadOnly | false |
Type 枚举值说明:
-
"PhysicalSlotOccupant":物理槽位占用,不是PCIe设备。 -
"Unmanaged":该槽位是正常的PCIe设备但不作为PCIe设备管理。
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 | ||
|---|---|---|---|---|---|---|
/bmc/kepler/Chassis/${ChassisId}/PCIeSlotOccupants/${Id} |
对外提供 PCIe 槽位占用信息查询功能 | 新增 SlotId 属性 CSR 配置 | 不涉及持久化,无兼容性问题 | 需 pcie_device 组件实现 PCIeSlotOccupant 类 |
是否准备好AI预审
是
评审结论
同意以下变更:
-
新增资源协作路径
/bmc/kepler/Chassis/${ChassisId}/PCIeSlotOccupants/${Id},详情见详细描述 -
新增资源协作接口
bmc.kepler.Chassis.PCIeSlotOccupant,详情见详细描述
遗留问题
- 名称改为PCIeSlotOccupant,体现出针对槽位
闭环情况:已修改