【已评审】新增IPMI命令支持BIOS获取节点配置数据

背景

CPU BIOS启动时,需要通过IPMI接口从BMC获取服务器UBM的部署位置,服务器是否通过UB设备组集群、是否为UB控制节点信息,因此需要扩展IPMI接口,支持bios查询

关联ISSUE

暂无

整体方案

上层网管通过redfish北向接口将服务器UBM的部署位置,服务器是否通过UB设备组集群、是否为UB控制节点信息下发到BMC并保存,CPU BIOS启动时通过IPMI接口获取上述信息

评审点

评审点1:新增查询节点管控模式ipmi命令

命令名称: GetNodeControlModel
命令权限: ReadOnly
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

  • 请求:ipmitool raw 0x30 0x94 <ManufacturerID> <SubCmd> <Parameter Selector> <Read Offset> <Length>

  • 响应:<ManufacturerID> <End of List> <Cluster Mode> <Control Mode> <Control Permission>

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 94h
1:3 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
4 SubCmd,固定为 6Ah
5:6 Parameter Selector, 新增0x0009
7:8 Read Offset, 读取的数据偏移
9 Length,读取长度3

命令响应参数:

字节顺序 域取值说明
1 Completion Code,如果有特殊的/特定的完成码则需要单独说明,比如:80h = 命令的长度和参数不匹配、81h = 命令的参数无法支持
2:4 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
5 End of List 表示当前数据是否结束。当参数数据比较长的时候,可能需要分多次读取,通过此字段可以判断数据是否读完。 [7:1]:reserved [0]:End of list 0=last data 1=middle data
6:N Data,具体参数见下表

评审点2:新增设置节点管控模式ipmi命令

命令名称: SetNodeControlModel
命令权限: BasicSetting
是否锁定之后可以访问:
是否有敏感数据:
命令样式:

  • 请求:ipmitool raw 0x30 0x94 <ManufacturerID> <SubCmd> <Parameter Selector> <Write Offset> <Length> <Parameter Data>

  • 响应:<ManufacturerID>

命令请求参数:

字节顺序 域取值说明
NetFn 30h
Cmd 94h
1:3 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。
4 SubCmd,固定为 6Bh
5:6 Parameter Selector, 新增0x0009
7 [7:1]:reserved [0]:级联标志 0=是最后一帧数据 1=后面还有数据
8:9 Write Offset, 写入的数据偏移
10 Length,写入长度(最大为250bytes)
11~N Parameter Data,参数见下表格

命令响应参数:

字节顺序 域取值说明
1 Completion Code,如果有特殊的/特定的完成码则需要单独说明,比如:80h = 命令的长度和参数不匹配、81h = 命令的参数无法支持
2:4 Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。

参数表格

功能描述 parameter selector parameter data-get parameter data-set
定制节点管控模式 0x0009 请求:
Read Offset:0x0000
Length:3
响应:
Byte0: Cluster Mode, 0:单机,1:集群
Byte1:Control Mode, 0:带内,1:带外
Byte2 :Control Permission 0:非管控节点,1:管控节点
请求:Write Offset: 0x0000 ;Data: Byte0: 0x00 定制所有管控模式 length:4 ;0x01 定制Cluster Mode length:2 ;0x02 定制Control Mode length:2 ;0x03 定制Control Permission length:2

评审结论

1.评审点1的查询命令与评审点2的设置命令,复用已有的查询和配置超节点扩展信息的IPMI命令( Parameter Selector 为 0x0008),见议题【已评审】扩展IPMI命令用于查询和配置超节点属性 - Interface SIG / Interface评审 - openUBMC 论坛

属性定义如下:

属性名称 Type 属性说明 Length 数据类型 取值范围 默认值
UBMDeployMode(原属性:UBManagedBy) 0x04 计算服务器UBM部署位置:带内物理机、带内虚拟机、带外物理机(运行在独立的CPU上) 1 integer 0:带内物理机
1:带外
2:带内虚拟机
0
IsUBFabricMode 0x06 计算服务器是否通过UB设备组集群 1 integer 0:单机,1:集群 0
IsUBControlNode 0x07 是否为UB控制节点 1 integer 0:非管控节,1:管控节点 0

遗留问题