[7:3]: reserved [2:0]: power restore policy 011b = no change (just get present policy support) 010b = chassis always powers up 001b = restore previous state 000b = stay powered off 其他 = reserved
当传入 011b(即值为 3)时,表示仅查询 BMC 支持的电源恢复策略选项,不进行任何更改。
规范响应说明(返回数据)
字节顺序
域内容
第1字节
Completion Code
第2字节
Power Restore Policy Support (bitfield) [7:3]: reserved [2] = supports always powering up [1] = supports restoring to last state [0] = supports staying powered off
注意:此返回值是支持能力的位图(bitmask),而非当前生效策略。
例如:
00000111b(即 7)表示 BMC 同时支持三种策略:
保持断电
恢复上次状态
重新上电
BMC 实现分析
根据提供的代码实现:
elseif restore_policy == POWER_RESTORE_POLICY_NO_CHANGED then
log:debug("power restore policy is not changed")
rsp.CompletionCode = 0x00
-- 根据标准规范,应返回支持的通电开机策略
rsp.RestorePolicy = 7
return rsp