【已评审】新增获取硬盘NVMe-MI标准协议信息资源树方法
关联issue
评审背景
某客户定制redfish接口发送标准NVMe-MI协议命令获取硬盘信息,组件需要提供资源协作接口进行报文收发
资源树新增方法
评审点: 是否新增方法GetSmartInfo,SendNvmeMICommand,GetTelemetryData,GetIdentifyData
资源树路径: /bmc/kepler/Systems/:SystemId/Storage/Drives/:Id
资源树接口: bmc.kepler.Systems.Storage.Drive.NVMe
新增方法:
| 方法名称 | 变化类型 | req签名 | req说明 | rsp签名 | rsp说明 | 权限 | 方法说明 | 接口约束 |
|---|---|---|---|---|---|---|---|---|
| GetSmartInfo | 新增方法 | q | Vendor: 指定smart信息为标准协议还是自定义,标准格式传0,自定义传厂商自定义标识 |
ay | MessageResponse: 响应报文, 小端字节序排列 |
BasicSetting | 通过标准NVMe-mi协议获取SMART/Health Information | |
| SendNvmeMICommand | 新增方法 | yuuay | Opcode: 该字段指定要处理的 NVMe-MI 命令的操作码 Dword0: 该字段为特定命令的 Dword 0 Dword1: 该字段为特定命令的 Dword 1 RequestData: 预留请求字节, 小端字节序排列 |
yuay | Status: 该字段为命令的响应码 NVMeResponse: 该字段为特定命令响应 ResponseData: 预留响应字节, 小端字节序排列 |
UserMgmt | 按照标准NVMe-mi协议发送NVMe-MI Command格式命令,请求参数可以参照协议第5章Management Interface Command Set的请求报文填充 | |
| GetTelemetryData | 新增方法 | s | DataType: 指定收集硬盘host或controller的日志,取值范围:Host/Controller |
u | TaskId: 任务标识 |
BasicSetting | 通过标准NVMe-mi协议获取Telemetry Host/Controller-initiated | |
| GetIdentifyData | 新增方法 | y | CNSValue: 指定Controller or Namespace Structure决定该命令返回的数据结构,参考协议的Identify – CNS Values图表定义 |
ay | MessageResponse: 响应报文, 小端字节序排列 |
BasicSetting | 通过标准NVMe-mi协议获取Identify command信息 |
附件:
SendNvmeMICommand:NVMe-MI Command Request格式
评审结论
1、同意在/bmc/kepler/Systems/:SystemId/Storage/Drives/:Id路径下新增接口bmc.kepler.Systems.Storage.Drive.NVMe,并在接口下新增GetSmartInfo,SendNvmeMICommand,GetTelemetryData,GetIdentifyData方法,
详细信息如下:
- 方法名称:GetSmartInfo
- req签名:q
- rsp签名:ay
- 权限:BasicSetting
- 说明:通过标准NVMe-MI协议获取SMART/Health Information
- 方法名称:SendNvmeMICommand
- req签名:yuuay
- rsp签名:yuay
- 权限:UserMgmt
- 说明:按照标准NVMe-MI协议发送NVMe-MI Command格式命令,请求参数可以参照协议第5章Management Interface Command Set的请求报文填充
- 方法名称:GetTelemetryData
- req签名:s
- rsp签名:u
- 权限:BasicSetting
- 说明:通过标准NVMe-MI协议获取Telemetry Host/Controller-initiated
- 方法名称:GetIdentifyData
- req签名:y
- rsp签名:ay
- 权限:BasicSetting
- 说明:通过标准NVMe-MI协议获取Identify command信息
遗留问题
1、补充参数说明,需要从协议文档获取属性定义的,如Opcode, CNSValue
– 已补充相关参数需按照标准协议填写
2、SendNvmeMICommand权限确定合理性
– 已确定该命令有设置操作,需将权限从BasicSetting限调整至UserMgmt

