现有IPMI命令获取的硬盘的累计上电时间为两字节,最大可表示为7.5年,不足以覆盖全部使用场景。计划对“获取指定硬盘信息”的IPMI命令的响应体中的 Data 进行变更,需要确认变更对于相关工具和测试用例造成的影响。
现有命令的响应参数如下:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code |
| 2:4 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 5 | Reserve,bit[7:1]: reserved,bit[0]取值如下:0 = last frame 1 = casecade frame |
| 6:N | Data(累计上电时间变更为4字节),其中 data(M1 + M2 + M3 + M4 + 42):data(M1 + M2 + M3 + M4 + 43) 两个字节表示累计上电时间。M1表示硬盘厂商名称,M2表示硬盘序列号,M3表示硬盘型号,M4表示硬盘固件版本,均为非固定长度数据。 |
现有命令的使用样例如下:
-
请求:
ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x3D 0x00 0x0A 0xff 0x01 0xff 0x00 0x00 0xee -
响应:
db 07 00 00 07 53 41 4d 53 55 4e 47 0e 53 36 38 31 4e 59 30 4e 37 30 32 35 33 30 1a 53 41 4d 53 55 4e 47 20 4d 5a 37 4c 48 34 38 30 48 41 48 51 2d 30 30 30 30 35 08 48 58 54 37 34 30 34 51 00 08 00 01 03 03 03 21 80 fa 06 00 00 00 00 00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 00 00 00 00 00 00 70 6f -
说明:响应体中的字段
70 6f表示硬盘累计上电时间,代表上电时间为6f70(hex)小时
变更点为:
1.当硬盘累计上电时间小于ffff(hex)时,硬盘累计上电时间返回2字节,即保持现状不变
2.当硬盘累计上电时间大于等于ffff(hex)时,硬盘累计上电时间返回4字节,即在响应体末尾增加两个字节
当硬盘累计上电时间大于等于ffff(hex)时,变更后命令的使用样例如下:
-
请求:
ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x3D 0x00 0x0A 0xff 0x01 0xff 0x00 0x00 0xee -
响应:
db 07 00 00 07 53 41 4d 53 55 4e 47 0e 53 36 38 31 4e 59 30 4e 37 30 32 35 33 30 1a 53 41 4d 53 55 4e 47 20 4d 5a 37 4c 48 34 38 30 48 41 48 51 2d 30 30 30 30 35 08 48 58 54 37 34 30 34 51 00 08 00 01 03 03 03 21 80 fa 06 00 00 00 00 00 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 00 00 00 00 00 00 70 6f ff ff -
说明:硬盘累计上电时间为
ffff6f70(hex)小时