【已评审】新增获取硬盘NVMe-MI标准协议信息资源协作接口

【已评审】新增获取硬盘NVMe-MI标准协议信息资源树方法

关联issue

支持硬盘获取NVMe-MI标准协议信息

评审背景

某客户定制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,并在接口下新增GetSmartInfoSendNvmeMICommandGetTelemetryDataGetIdentifyData方法,
详细信息如下:

  • 方法名称: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