【已评审】新增rpc方法Set/GetPowerLimitException

ISSUE链接

评审背景

1、当前设置功耗封顶失败动作对外接口并未提供LogEventOnly的动作;需按标准实现LogEventOnly;
2、当前实现的NoAction与标准定义不一致,标准定义是不做任何操作,目前实现的逻辑为记录日志;

当前现状与差距/问题分析:

标准接口/规范 Redfish IPMI Web SNMP
NoAction Redfish/ipmi-DCMI 已实现,和标准不一致 已实现,和标准不一致 已实现,和标准不一致 未实现
HardPowerOff Redfish/ipmi-DCMI 已实现,和标准一致 已实现,和标准一致 已实现,和标准一致 已实现,和标准一致
LogEventOnly Redfish/ipmi-DCMI 未实现 未实现 未实现 已实现,和标准一致
Reset OEM 已实现 已实现 已实现 已实现

已有的资源协作接口属性:
(1)PowerLimitException(枚举类:NoAction、Reset、HardPowerOff)是持久化属性不能更改或新增;
(2)PowerLimitExceptionLogEvent(布尔类:true、false),在csr判断是否记录事件日志时,会判断PowerLimitExceptionLogEvent属性值,若为false则不会记录事件日志;

所有功耗封顶失败动作由两个属性决定,无法统一记录操作日志。故需实现一个设置功耗封顶失败动作的方法,统一记录操作日志。

详细描述

1、 功耗封顶失败动作变更

与标准定义实现一致,原选项NoAction由记录SEL日志变更为不做任何操作,新增LogEventOnly选项用于记录SEL日志

2、 相关北向接口变更说明

2.1 Redfish

https:// device_ip /redfish/v1/Chassis/ chassis_id /Power

字段 类型 说明
PowerLimit 对象 功率封顶参数,包括:LimitInWatts:封顶功率,null(不支持);LimitException:功率封顶失效后的动作,可以是"HardPowerOff"、“NoAction”、“Reset”、“LogEventOnly(默认)”或"null(不支持)"

2.2 IPMI OEM

Set Power Capping Configuration

请求说明

NetFn CMD Manufacturer ID Sub Command Power Capping Parameter reserved Offset Length Data
30h 93h Manufacturer ID 13h 03h 00h 00h 02h Data

响应说明

Completion Code Manufacturer ID
Completion Code Manufacturer ID
Get Power Capping Configuration

请求说明

NetFn CMD Manufacturer ID Sub Command Power Capping Parameter Read Offset Length
30h 93h Manufacturer ID 14h 03h 00h 02h

响应说明

Completion Code Manufacturer ID End of List Data
Completion Code Manufacturer ID 00h Data
Parameter Parameter Data # (Decimal Format)
Power Capping Failed Action data1-Get/Set Alert:0-disable,1-enable;data2-Get/Set Fail Action:0-NoAction,1-PowerOff,2-Reset,3-LogEventOnly:仅记录事件 3

2.3 IPMI DCMI

Set Power Limit

请求说明

NetFn CMD DC Reserved 封顶失败后期望动作 功耗封顶值 修正时间限制 Reserved Sampling period
2Ch 04h DCh 0x000000 封顶失败后期望动作:00h – 无动作,01h – 下电并且记录事件日志,02h – 重启并且记录事件日志,11h – 仅记录事件日志 功耗封顶值(瓦特),低字节优先 修正时间限制(毫秒),平台功率达到功率限制后,修正时间内将功率限制到封顶值以下,否则认为封顶失败,采取失败动作,低字节优先 0x0000 统计信息采样周期,低字节优先

响应说明

Completion Code DC
Completion Code DCh
Get Power Limit

请求说明

NetFn CMD DC Reserved
2Ch 04h DCh 0x0000

响应说明

Completion Code DC Reserved 封顶失败后期望动作 功耗封顶值 修正时间限制 Reserved Sampling period
Completion Code DCh 0x0000 封顶失败后期望动作:00h – 无动作,01h – 下电并且记录事件日志,02h – 重启并且记录事件日志,11h – 仅记录事件日志 功耗封顶值(瓦特),低字节优先 修正时间限制(毫秒),平台功率达到功率限制后,修正时间内将功率限制到封顶值以下,否则认为封顶失败,采取失败动作,低字节优先 0x0000 统计信息采样周期,低字节优先

2.4 Web

https:// device_ip /UI/Rest/System/Power

对象 字段 类型
PowerLimit LimitException String (“HardPowerOff”, “NoAction”, “Reset”,“LogEventOnly”)

2.5 SNMP

节点名称 节点OID示例 描述 类型 权限
powerCappingFailureAction 1.3.6.1.4.1.2011.2.235.1.1.23.3.0 When power capping failed, host system action.eventlog(1),eventlogAndPowerOff (2),eventlogAndReset (3),NoAction(4),Default value is eventlog(1). INTEGER read-write

3、 新增资源协作接口方法SetPowerLimitException

path:/bmc/kepler/Systems/:SystemId/PowerStrategy
interface:bmc.kepler.Systems.PowerStrategy

方法名称 变化类型 读写权限 请求签名 请求参数 响应签名 响应参数 接口说明 接口约束
SetPowerLimitException 新增方法 PowerMgmt s Action 设置功耗封顶失败动作的资源协作方法 请求参数Action取值范围:NoAction、LogEventOnly、Reset、HardPowerOff

4、 新增资源协作接口方法GetPowerLimitException

path:/bmc/kepler/Systems/:SystemId/PowerStrategy
interface:bmc.kepler.Systems.PowerStrategy

方法名称 变化类型 读写权限 请求签名 请求参数 响应签名 响应参数 接口说明 接口约束
GetPowerLimitException 新增方法 ReadOnly s Action 获取功耗封顶失败动作的资源协作方法 响应参数Action取值范围:NoAction、LogEventOnly、Reset、HardPowerOff

评审结论

1、 同意功耗封顶失败动作实现变更为标准定义实现一致

NoAction由记日志变更为不做任何操作;新增LogEventOnly为记SEL日志

2、 同意功耗封顶接口变更

接口 变更
Redfish 接口 /redfish/v1/Chassis/1/Power 资源下 PowerControl 中的 PowerLimit 对象的 LimitException 属性值 NoAction 由记录 SEL 日志变更为不做任何操作,同时新增属性值 LogEventOnly 用于记录 SEL 日志;
IPMI OEM 接口 0x30 0x93 的 Sub Command 0x13&0x14 中的 Power Capping Parameter(Byte 5)中的 Power Capping Failed Action(3)的属性值 0x00h(NoAction)由记录 SEL 日志变更为不做任何操作,同时新增属性值 0x03h(LogEventOnly)用于记录 SEL 日志;
IPMI DCMI 接口 ipmitool dcmi power get_limit 中的封顶失败后期望动作(Byte 5)的属性值 0x00h(NoAction)由记录 SEL 日志变更为不做任何操作,同时新增属性值 0x11h(LogEventOnly)用于记录 SEL 日志;
Web 接口 /Rest/System/Power 中的 PowerLimit 对象的 LimitException 属性值 NoAction 由记录 SEL 日志变更为不做任何操作,新增 LogEventOnly 用于记录 SEL 日志;
SNMP 接口 powerManagement 模块(OID:1.3.6.1.4.1.2011.2.235.1.1.23)中的节点 powerCappingFailureAction(OID:1.3.6.1.4.1.2011.2.235.1.1.23.3.0)新增属性值 4(NoAction)

3、同意新增资源协作接口方法SetPowerLimitException和GetPowerLimitException

path:/bmc/kepler/Systems/:SystemId/PowerStrategy
interface:bmc.kepler.Systems.PowerStrategy

方法名称 变化类型 权限 请求签名 请求参数 响应签名 响应参数 说明 约束
SetPowerLimitException 新增方法 PowerMgmt s Action,取值范围:NoAction、LogEventOnly、Reset、HardPowerOff 设置功耗封顶失败动作的资源协作方法
方法名称 变化类型 权限 请求签名 请求参数 响应签名 响应参数 说明 约束
GetPowerLimitException 新增方法 ReadOnly s Action,取值范围:NoAction、LogEventOnly、Reset、HardPowerOff 获取功耗封顶失败动作的资源协作方法

遗留问题

问题:新版本的openUBMC社区组件 + 老版本的SDK 的兼容情况;
结论:web/redfish/snmp接口实现在rackmount仓,如果是新版本rackmount+老版本SDK,由于资源协作接口方法不存在,需要在北向接口中增加兼容处理,即当方法调用失败后,转为设置属性,支持设置为HardPowerOff、Reset、NoAction,但不支持设置为LogEventOnly,且NoAction会记录日志

@Kunlun-Luxiaomu 请审视该接口变更影响

1、当前已发货的互联网以及运营商客户都没有定制该选项,暂无风险。

2、封顶后的动作为NoAction时不记录事件日志,但仍需记录维护日志。

当前在功耗封顶失败状态属性变更时,存在限频60S打印一次的Notice级别的维护日志