背景
一些互联网客户需要用基于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) |