背景
在装备生产加工中,调用load脚本升级bmc、csr后,BMC会自动重启,脚本中通常采用固定等待的方式判断BMC是否启动完成,若当等待时间结束后,BMC还未启动完成,就会导致脚本报错退出。天池架构下存在多产品共用CSR加载包的场景,又因产品差异,BMC启动时间基线不一致,为解决此类问题,需要提供一条ipmi命令,支持查询BMC启动完成状态
当前redfish接口已支持获取bmc的启动状态,实现逻辑是,获取BMC系统的运行时间和CSR配置的启动时间比较,当大于CSR配置的启动时间,认为BMC启动完成;当小于CSR配置的启动时间或接口请求失败时认为未启动完成
关联ISSUE
暂无
整体方案
新增ipmi命令,支持查询BMC的启动状态,优化新产品的装备脚本,根据CSR配置的StartupDuration,判断bmc是否启动完成
评审点
Get BMC Configuration ipmi命令新增Parameter Selector 0x4F,查询BMC启动状态命令
详细描述
命令名称: Get BMC Configuration (已有的命令新增Parameter Selector )
命令说明: 获取BMC的启动状态
命令权限: ReadOnly
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令样式:
-
请求:
ipmitool raw 0x30 0x90 <ManufacturerID> <SubCmd> <Parameter Selector> <Data Length> <Parameter Data> -
响应:
<ManufacturerID> <Result>
命令请求参数:
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30 |
| Cmd | 93 |
| 1:3 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 4 | Sub command, 子命令=5bh |
| 5:6 | Parameter Selector,0x004F |
| 7:8 | Data Length,低字节在前。0x0000 |
| 9:N | Parameter Data |
命令响应参数:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code, |
| 1:3 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 4 | Data :BMC启动状态 0:BMC未完成启动 1:BMC启动完成 |
命令示例:
-
请求:
ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x5b 0x4F 0x00 0x00 0x00 -
响应:
db 07 00 01
BMC配置参数表
| 功能描述 | parameter selector | parameter data-get | parameter data-set |
|---|---|---|---|
| BMC启动状态 | 0x4F | 请求: Data Length:0 响应: Data Length:1 data1:bmc启动状态 0-BMC启动未完成 1-BMC启动完成 |
不支持 |
评审结论
同意在Get BMC Configuration 命令Parameter Selector 新增枚举值0x4F,用于查询BMC启动状态
遗留问题
无