变更声明
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 命令,请在正式生效前完成以下操作:
-
检查系统锁定状态下的行为预期:
确认您的业务流程中,是否需要在“系统锁定”状态下修改开机延迟上电时间。如果需要,建议调整业务逻辑,先解锁系统 → 修改配置 → 再锁定系统。
-
增强错误处理机制:
如果您通过 IPMI 或 SDK 调用
SetBootOptionPowerOnDelay0命令,请确保代码能够正确处理命令失败的情况(例如:检查Completion Code)。- 如果返回错误,建议捕获该异常,并向上层用户提示“当前系统已锁定,无法修改此配置,请先解锁系统”。
-
测试验证:
在测试环境中,启用“系统锁定”功能,然后尝试通过 IPMI 工具修改开机延迟。验证是否如预期般被拒绝,确保上层管理软件没有因此产生未预期的崩溃或数据不一致。