hxmygcs
(wangxin)
1
ISSUE链接
【需求】支持高温下电后是否需要上电属性进行开关设置-fructrl-GitCode
背景
1: CPU过温后,硬件会主动下电,下电后,会根据私有对象ThermTrip的Actions的值决定一段时间后是否要上电还是不上电(默认上电);当cpu持续高温时可能造成os反复上下电,当前该策略配置在CSR里,没有提供相关接口供客户选择,影响可用性
2: 自动上电的延时时间后只能在csr里配置,没有对外的接口可以提供设置,影响可用性
评审点
基于上述背景,redfish需要新增加两个oem自定义属性,同时私有对象ThermTrip需要上到资源协作接口
评审点1:
新增redfish查询和设置高温下电后是否需要上电的接口 与 延时时间
详细描述
操作类型:查询/设置接口
uri:/redifsh/v1/Systems/:systemid
Oem/{{OemIdentifier}} 下新增属性新增如下属性
字段 |
字段说明 |
类型 |
取值举例 |
PowerOnAfterCpuThermalTrip |
CPU过温保护下电再上电策略开启状态 |
布尔值 |
true:代表需要上电 false:不需要上电 |
DelaySecondsAfterCpuThermalTrip |
CPU过温保护下电再上电间隔秒数 |
整数类型 |
正整数 |
查询/设置
Oem: {
"{{OemIdentifier}}": {
"PowerOnAfterCpuThermalTrip": true,
”DelaySecondsAfterCpuThermalTrip“:300
}
}
评审点2:
私有对象ThermTrip上到资源协作接口
详细描述
新增path
/bmc/kepler/Systems/:SystemsId/ThermTrip/:Id
新增interface
bmc.kepler.Systems.ThermTrip
私有属性Actions/TimeDelaySeconds迁移到新增interface属性下面
属性名称 |
变化类型 |
描述 |
类型 |
读写&权限 |
持久化 |
变化通知 |
取值说明 |
Actions |
属性迁移 |
高温下电后上电策略 |
U8 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
1:需要上电 0:不需要上电 |
TimeDelaySeconds |
属性迁移 |
高温下电后上电延时时间 |
U32 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
单位为秒,默认300 |
@hxmygcs 当前评审发帖需要答复和闭环以下问题:
问题1:评审点2新增的资源协作接口需要说明变更的原因,以及兼容性处理策略
问题2:评审点2中资源协作接口下的属性的说明需要明确细化,说明这里的高温下电是什么原因的下电,接口名称是不是就是 ThermalTrip 导致的下电之后的上电策略?
hxmygcs
(wangxin)
3
根据评委意见,有如下处理方案
方案一
ThermTrip不上资源协作接口
需要在/bmc/kepler/Systems/:SystemId/FruCtrl/:Id路径下
新增interface: bmc.kepler.Systems.ThermalTrip接口
新增两个资源协作接口属性PowerOnAfterCpuThermalTrip,DelaySecondsAfterCpuThermalTrip
同时新增两个私有对象属性,用来处理兼容性问题
资源协作属性
属性名称 |
变化类型 |
描述 |
类型 |
读写&权限 |
持久化 |
变化通知 |
取值说明 |
PowerOnAfterCpuThermalTrip |
属性新增 |
高温下电后上电策略 |
布尔 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
true:需要上电 false:不需要上电 |
DelaySecondsAfterCpuThermalTrip |
属性迁移 |
高温下电后上电延时时间 |
U32 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
单位为秒,默认300 |
私有属性用来处理兼容性问题
属性名称 |
变化类型 |
描述 |
类型 |
读写&权限 |
持久化 |
变化通知 |
取值说明 |
PowerOnAfterCpuThermalTripModfied |
属性新增 |
表示属性生效来源 |
布尔 |
不涉及 |
掉电持久化 |
false |
false:代表从CSR生效 true:代表从本接口下属性生效 默认false |
DelaySecondsAfterCpuThermalTripModfied |
属性新增 |
表示属性生效来源 |
布尔 |
不涉及 |
掉电持久化 |
false |
false:代表从CSR生效 true:代表从本接口下属性生效 默认false |
兼容处理方案
- 如果PowerOnAfterCpuThermalTrip没有设置过,PowerOnAfterCpuThermalTripModfied为false,生效的是ThermTrip的CSR配置
- 如果DelaySecondsAfterCpuThermalTrip没有设置过,DelaySecondsAfterCpuThermalTripModfied为false,生效的是ThermTrip的CSR配置
- 如果对应属性设置过,则将xxModified属性置为true,表示生效的是对应bmc.kepler.Systems.ThermalTrip下面的属性,而非私有对象ThermTrip的属性
方案二
私有对象ThermTrip上到资源协作接口
框架会自动处理兼容性问题,如果未设置过属性,则生效的是CSR的值,否则生效设置过后的值
详细描述
新增path
/bmc/kepler/Systems/:SystemsId/ThermalTrip/:Id
新增interface
bmc.kepler.Systems.ThermalTrip
私有属性Actions/TimeDelaySeconds迁移到新增interface属性下面
属性名称 |
变化类型 |
描述 |
类型 |
读写&权限 |
持久化 |
变化通知 |
取值说明 |
Actions |
属性迁移 |
高温下电后上电策略 |
U8 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
1:需要上电 0:不需要上电 |
TimeDelaySeconds |
属性迁移 |
高温下电后上电延时时间 |
U32 |
写权限:PowerMgmt 读权限:ReadOnly |
掉电持久化 |
false |
单位为秒,默认300 |