【变更声明】设置延迟上电IPMI命令的配置锁定策略变更

变更声明

openUBMC 计划调整 BIOS IPMI 命令 SetBootOptionPowerOnDelay0 的系统锁定策略(System Locked Policy)。本次变更旨在加强系统安全性,防止在系统处于锁定状态(System Lock)时,通过 IPMI 接口非法修改开机延迟上电配置。本声明旨在提前通知社区相关用户,以便在正式生效前完成测试与适配工作。

评审链接

【已评审】更改设置延迟上电IPMI命令的配置锁定策略 - Interface SIG / Interface评审 - openUBMC 论坛

受影响的版本

  • openUBMC 26.09 及后续版本。

变更描述

规格变化

不涉及

外观变化

不涉及

外部接口变化

变更点1:IPMI 命令 NetFn=0x00 Cmd=0x08 (SetBootOptionPowerOnDelay0) 的系统锁定策略变更

相关命令: NetFn=0x00, Cmd=0x08 (SetBootOptionPowerOnDelay0)

变化点: 系统锁定策略 (sysLockedPolicy)

变更前

在系统锁定状态下,该命令的执行策略为 “Allowed”。即当 BMC 系统处于锁定状态(System Lock Enabled)时,依然允许通过 IPMI 接口发送 SetBootOptionPowerOnDelay0 命令修改开机延迟配置。


BiosIpmiCmds.SetBootOptionPowerOnDelay0 = {
     name = 'SetBootOptionPowerOnDelay0',
     prio = types.Priority.Default,
     netfn = 0x00,
     cmd = 0x08,
     role = types.Role.Operator,
     privilege = privilege.BasicSetting,
     ...
     sysLockedPolicy = 'Allowed'  -- 变更前:允许在锁定状态下执行
}

变更后

在系统锁定状态下,该命令的执行策略变更为 “Forbidden”。即当 BMC 系统处于锁定状态(System Lock Enabled)时,拒绝执行 SetBootOptionPowerOnDelay0 命令,IPMI 接口将返回错误码(如 Invalid Field Request 或 Insufficient Privileges),从而防止配置被篡改。


BiosIpmiCmds.SetBootOptionPowerOnDelay0 = {
     name = 'SetBootOptionPowerOnDelay0',
     prio = types.Priority.Default,
     netfn = 0x00,
     cmd = 0x08,
     role = types.Role.Operator,
     privilege = privilege.BasicSetting,
     ...
     sysLockedPolicy = 'Forbidden' -- 变更后:禁止在锁定状态下执行
}

安装方式变化

不涉及

兼容性说明

BMC固件兼容性此变更仅涉及 BMC 固件内部逻辑,不涉及数据库或文件系统兼容性问题。

openUBMC 和 BMC SDK 兼容性:

  • 如果上层管理工具(如 iBMC SDK、Redfish Agent、IPMI Tool)在系统锁定状态下调用此 IPMI 命令,旧版本代码可能未处理该命令在锁定状态下的失败返回码。

  • 本次变更后,当系统锁定且尝试调用此命令时,IPMI 服务将返回错误状态。上层工具需要能够正确解析并处理此错误(例如:忽略错误、提示用户解锁系统、或重试解锁后重试)。

BMC与上层网管的兼容性:

  • 如果上层网管软件在系统锁定期间轮询或配置开机延迟参数,可能会因命令执行失败而导致配置同步异常或日志中出现 IPMI 错误记录。建议上层网管软件在配置 BIOS 相关 IPMI 命令时,增加对系统锁定状态的处理逻辑。

文档影响

不涉及

建议动作

如您的实现或工具链依赖上述 IPMI 命令,请在正式生效前完成以下操作:

  1. 检查系统锁定状态下的行为预期:

    确认您的业务流程中,是否需要在“系统锁定”状态下修改开机延迟上电时间。如果需要,建议调整业务逻辑,先解锁系统 → 修改配置 → 再锁定系统。

  2. 增强错误处理机制:

    如果您通过 IPMI 或 SDK 调用 SetBootOptionPowerOnDelay0 命令,请确保代码能够正确处理命令失败的情况(例如:检查 Completion Code)。

    • 如果返回错误,建议捕获该异常,并向上层用户提示“当前系统已锁定,无法修改此配置,请先解锁系统”。
  3. 测试验证:

    在测试环境中,启用“系统锁定”功能,然后尝试通过 IPMI 工具修改开机延迟。验证是否如预期般被拒绝,确保上层管理软件没有因此产生未预期的崩溃或数据不一致。