【已评审】支持资源协作接口提供IIC总线访问bus的切换标识

关联Issuse

支持资源协作接口提供IIC总线访问bus的切换标识

评审背景

支持OEM命令读写IIC总线,当前标准IPMI命令Master Write-Read Command 在请求中 BusId 仅3bit,也就是取值范围是 [0, 7],但是对于一般的服务器硬件,管理芯片出来的IIC总线超出这个值,因此需要支持一个标记标识当前的 BusId 启用是否超过8使能,如果使能则进行一次左移(即取值范围是 [8, 15])

评审点

方案一

bmc.kepler.IpmiCore接口 新增属性(BusSwitchEnabled) 用于支持IIC总线访问bus切换时BusID是否超过8

详细描述

资源path:/bmc/kepler/IpmiCore
资源interface:bmc.kepler.IpmiCore

属性名称 取值类型 默认值 操作权限 说明 持久化 信号
BusSwitchEnabled 布尔 false 写:UserMgmt 读:ReadOnly BusId 启用是否超过8使能(false-disable,true-enable) 不持久化

方案二 (推荐)

新增MasterWriteRead对象,在/bmc/kepler/IpmiService路径下新增接口bmc.kepler.IpmiService.MasterWriteRead和属性BusSwitchEnabled

详细描述

资源path:/bmc/kepler/IpmiService
资源interface:bmc.kepler.IpmiService.MasterWriteRead

属性名称 取值类型 默认值 操作权限 说明 持久化 信号
BusSwitchEnabled 布尔 false 写:UserMgmt 读:ReadOnly BusId 启用是否超过8使能(false-disable,true-enable) 不持久化

优点:新增资源协作接口,职责单一,易维护;扩展性好,后续如果有新增的i2c读写相关属性或操作,可复用该接口

评审结论

通过,采用方案二,同意新增接口 bmc.kepler.IpmiService.MasterWriteRead,以及增加属性 BusSwitchEnabled

  1. 这里为啥要发送变更信号?
  2. 操作权限怎么是角色?这个属性读也要管理员权限?
  3. 两个方案要进行比较,并且提供出推荐方案

1、发送信号变更初衷是想要通过监听变化记录可定位日志,现在看确实不需要
2、操作权限这里本意是要求管理员权限的,已修改为用户管理权限,且读写均要求管理员权限是客户需求
3、方案二,在IpmiService下新增对象,一方面是新增接口职责单一,后续新增i2c相关读写的功能,易维护,扩展性好,为主推方案;而方案一,IpmiCore路径下已有通道权限、路由等其他功能,继续新增属性,功能复杂,不易维护和扩展