【待评审】IPMI接口以支持通过BT通道发送Redfish请求,及非固件/日志类文件传输功能

背景

一些互联网客户需要用基于uREST的定制工具在带内进行配置及固件升级,由于OS内核会频繁升级导致驱动失效,客户要求提供不依赖驱动的带内使用的工具。
由于客户同时采购arm、X86机型,所以要求提供同一套定制工具

触发原因

目前功能不满足

关联issue

无ISSUE

决策点

IPMI命令字:NetFn:0x30 Cmd:0x9A
名称:Send a request to redfish through the BT channel
变化类型:新增IPMI命令
应用场景:通过BT通道向redfish发送请求
操作权限:BasicSetting

请求说明:

字节顺序 域内容
NetFn 30h
Cmd 9ah
1:3 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4 Sub command,子命令=78h
5 Resp Status,请求状态,请求是否已发送完成
6:9 TAG,传输标签(一个redfish请求分为多包,tag相同的为同一个请求,由uRest工具中使用URI + 时间戳 Hash得出)
10:11 RESERVED,预留字节
12:15 OFFSET,content内容的长度
16:N CONTENT,请求数据

响应说明:

字节顺序 域内容
1 Completion Code
2 Resp Status,响应状态
3:6 TAG,传输标签
7:8 RESERVED,预留字节
9:12 OFFSET,标识数据的长度如果分多包发送,则为0,content不填;如果一包发送结束,则数据返回数据的长度
13:N CONTENT,单包数据

Resp Status定义:

Resp Status # Resp Status Data
请求响应状态 0x01 data1: 请求状态
0 - 响应已完成
1 - 响应未完成

IPMI命令字:NetFn:0x30 Cmd:0x9A
名称:Get redfish response content through BT channel
变化类型:新增IPMI命令
应用场景:通过BT通道获取redfish响应内容
操作权限:BasicSetting

请求说明:

字节顺序 域内容
NetFn 30h
Cmd 9ah
1:3 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4 Sub command,子命令=79h
5:8 TAG,传输标签(一个redfish请求分为多包,tag相同的为同一个请求,由uRest工具中使用URI + 时间戳 Hash得出)
9:10 RESERVED,预留字节
11:14 OFFSET,需要读取数据的偏移

响应说明:

字节顺序 域内容
1 Completion Code
2 Resp Status,响应状态
3:6 TAG,传输标签
7:8 RESERVED,预留字节
9:12 OFFSET,返回数据的长度
13:N CONTENT,返回数据

Resp Status定义:

Resp Status # Resp Status Data
请求响应状态 0x01 data1: 请求状态
0 - 响应已完成
1 - 响应未完成

IPMI命令字:NetFn:0x30 Cmd:0x9a
名称:File Download
变化类型:新增IPMI命令
应用场景:通过BT通道使用ipmi命令下载文件接口,用于下载/tmp目录下任意文件,文件大小最大为10m
操作权限:BasicSetting

请求说明:

字节顺序 域内容
NetFn 30h
Cmd 9ah
1:3 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4 Sub command,子命令=77h
5 Operation,见Operation表
6 Length,本帧数据长度
7:N 根据Operatoration阶段传入不同数据,Write Preapare :传入文件路径(仅支持/tmp路径下的文件) Write Data: Offset to Read 数据段相对于File开始位置的偏移

响应说明:

字节顺序 域内容
1 Completion Code
2:4 Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
5 7:1 -Reserved、1 -No More Data Flag、00h Still have data 、01h No More Data
6:N 当Operation为Read Prepare 时:文件大小、当Operation为Read Data 时:Faile data、当Operation为Read Finish 时:返回本文件的校验和(sha256)

1、请完成自检,确保没有错别字等低级错误
2、发送redfish请求/获取redfish响应命令中的TAG使用了4字节,计算方式是什么,请求中的TAG和响应中的TAG是什么关系,这些都明确写出来
3、文件传输当前社区已有类似的IPMI命令,支持传输的文件类型都是白名单管理的,为什么还要再定义一个命令,从带内传输给BMC和从BMC传输到带内,前者是主动写,后者是主动读,IPMI命令的请求应该是有区别的

1.已自检,请检视。
2.发送redfish请求/获取redfish响应命令中的TAG使用了4字节,计算方式是在uREST工具由URI + 时间戳 Hash得出
3.新增命令主要是为了供客户使用将任意文件上传到tmp目录或者下载tmp目录中的任意文件,不涉及内存目录中

请确认是否设计完成,可以在SIG组正式评审

@jiaoxinchao 请确认下述问题:

  1. 该命令是否已经在昆仑使用,30h 9Ah 的整体命令集有哪些(全量命令)?