背景
SSU(Smart Storage Unit)模组是独立计算/存储单元,每个SSU有自己的硬盘、GE网口(支持平面切换)、UB高速口、CPU、内存等。本次议题申报通过2个北向接口(Redfish/IPMI)对外暴露SSU的设备信息(硬盘、GE MAC地址、定位灯、UB端口速率、CPU/内存摘要、CPU温度、硬盘温度),支持GE口平面切换和UB端口速率配置,并体现SSU与主机系统的组成关系。
关联ISSUE
- 支持SSU模组GE MAC查询 — Redfish从设备树GEPort节点获取GE MAC地址
- 支持SSU模组GE口切换 — 新增IPMI接口执行GE口平面切换
- 支持SSU模组端口速率配置 — 支持Redfish接口设置UB端口速率
整体方案
Redfish接口(通过SSU:id区分):
- 复用标准Chassis资源
/redfish/v1/Chassis/SSU:id管理SSU物理容器(含电子标签、定位灯、硬盘/网卡子资源) - 复用标准ComputerSystem资源
/redfish/v1/Systems/SSU:id管理SSU计算系统(含CPU/内存/网络/日志/BIOS子资源) - 复用标准Drive资源
/redfish/v1/Chassis/SSU:id/Drives/:DriveId管理SSU硬盘(含OEM硬盘温度) - 复用标准NetworkAdapter资源
/redfish/v1/Chassis/SSU:id/NetworkAdapters/:NetworkAdapterId管理SSU网卡(含Controllers和Ports子资源) - 复用标准Port资源管理GE/UB网口(含MAC地址查询),支持PATCH端口速率切换
- 复用标准Processor资源
/redfish/v1/Systems/SSU:id/Processors/:ProcessorId管理SSU处理器(含OEM CPU温度)
IPMI接口(独立OEM命令):
7. 新增OEM IPMI命令执行SSU GE口平面切换
8. 新增OEM IPMI命令获取SSU配置(GE口当前平面)
评审点
Redfish接口
- 复用标准Chassis资源管理SSU物理容器(含ChassisCollection、电子标签属性,Links含Processors/Drives及count)
- 复用标准ComputerSystem资源管理SSU计算系统(含ProcessorSummary/MemorySummary/Processors/Memory/EthernetInterfaces/NetworkInterfaces/LogServices/Bios)
- 复用标准Drive资源管理SSU硬盘(含DriveCollection、OEM硬盘温度)
- 复用标准NetworkAdapter资源管理SSU网卡(含NetworkAdapterCollection,Controllers下Links含Ports引用)
- 复用标准Port资源管理GE/UB网口(含PortCollection),支持PATCH端口速率切换
- 复用标准Processor资源管理SSU处理器(含ProcessorCollection、OEM CPU温度)
IPMI接口
- 新增SSU GE口平面切换IPMI命令
- 新增获取SSU配置(GE口当前平面)IPMI命令
详细描述
评审点1:复用 Redfish 标准资源 Chassis(SSU物理容器)
资源URI :/redfish/v1/Chassis
资源版本 :ChassisCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :ChassisCollection资源的Members属性包含各Chassis(含主机和SSU)的@odata.id引用
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | Chassis集合成员列表 |
| Members@odata.count | integer | 2 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#ChassisCollection.ChassisCollection",
"@odata.id": "/redfish/v1/Chassis",
"Name": "Chassis Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Chassis/1" },
{ "@odata.id": "/redfish/v1/Chassis/SSU0" }
],
"Members@odata.count": 2
}
资源URI :/redfish/v1/Chassis/SSU:id
资源版本 :Chassis.v1_26_0(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name, ChassisType
嵌套资源 :本资源(Chassis)嵌套于ChassisCollection资源的Members属性中
Link资源 :
- 标准文档对标:
Links.ContainedBy指向主机Chassis/redfish/v1/Chassis/1(表示SSU物理上包含在主机内)Links.ComputerSystems指向SSU对应的ComputerSystem/redfish/v1/Systems/SSU0Links.ManagedBy指向管理此SSU的主机BMC Manager/redfish/v1/Managers/1Links.Processors指向SSU的处理器资源/redfish/v1/Systems/SSU0/Processors/1(引用ComputerSystem下的Processor)Links.Drives指向SSU的硬盘资源/redfish/v1/Chassis/SSU0/Drives/Disk0
- 功能管理归属:SSU Chassis由主机BMC(
/redfish/v1/Managers/1)管理 - 逻辑引用依赖:Drive、NetworkAdapter通过各自的直接属性链接关联到此Chassis的子资源
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| ChassisType | enum | 枚举值:Module | true | 否 | / | ReadOnly | 机箱类型,SSU使用Module |
| Manufacturer | string,null | “Huawei” | true | 否 | / | ReadOnly | 机箱制造商 |
| SerialNumber | string,null | “SSU0SN12345” | true | 否 | / | ReadOnly | 机箱序列号 |
| Model | string,null | “SSU-Model-A” | true | 否 | / | ReadOnly | 机箱型号 |
| PartNumber | string,null | “SSU-PN-001” | true | 否 | / | ReadOnly | 机箱部件号 |
| PowerState | enum,null | On/Off | true | 是 | / | ReadOnly | 机箱电源状态 |
| Status | object | {Health, State} | true | 是 | / | ReadOnly | 资源状态和健康信息 |
| LocationIndicatorActive | boolean,null | true/false/null | false | 否 | 是 | BasicSetting | 定位灯状态 |
| Drives | object | {“@odata.id”: “…/Drives”} | true | 否 | / | ReadOnly | 指向DriveCollection的链接 |
| NetworkAdapters | object | {“@odata.id”: “…/NetworkAdapters”} | true | 否 | / | ReadOnly | 指向NetworkAdapterCollection的链接 |
| Links.ContainedBy | object | {“@odata.id”: “…/Chassis/1”} | true | 否 | / | ReadOnly | 指向主机Chassis |
| Links.ComputerSystems | array | [{“@odata.id”: “…/Systems/SSU0”}] | true | 否 | / | ReadOnly | 此Chassis包含的ComputerSystem |
| Links.ManagedBy | array | [{“@odata.id”: “…/Managers/1”}] | true | 否 | / | ReadOnly | 管理此Chassis的Manager |
| Links.Processors | array | [{“@odata.id”: “…/Systems/SSU0/Processors/1”}] | true | 否 | / | ReadOnly | 此Chassis关联的处理器(引用ComputerSystem下Processor) |
| Links.Processors@odata.count | integer | 1 | true | 否 | / | ReadOnly | 处理器数量 |
| Links.Drives | array | [{“@odata.id”: “…/Chassis/SSU0/Drives/Disk0”}] | true | 否 | / | ReadOnly | 此Chassis关联的硬盘 |
| Links.Drives@odata.count | integer | 1 | true | 否 | / | ReadOnly | 硬盘数量 |
Get响应示例
{
"@odata.type": "#Chassis.v1_26_0.Chassis",
"@odata.id": "/redfish/v1/Chassis/SSU0",
"Id": "SSU0",
"Name": "SSU Module Chassis",
"ChassisType": "Module",
"Manufacturer": "Huawei",
"SerialNumber": "SSU0SN12345",
"Model": "SSU-Model-A",
"PartNumber": "SSU-PN-001",
"PowerState": "On",
"Status": {
"Health": "OK",
"State": "Enabled"
},
"LocationIndicatorActive": true,
"Drives": { "@odata.id": "/redfish/v1/Chassis/SSU0/Drives" },
"NetworkAdapters": { "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters" },
"Links": {
"ContainedBy": { "@odata.id": "/redfish/v1/Chassis/1" },
"ComputerSystems": [
{ "@odata.id": "/redfish/v1/Systems/SSU0" }
],
"ManagedBy": [
{ "@odata.id": "/redfish/v1/Managers/1" }
],
"Processors": [
{ "@odata.id": "/redfish/v1/Systems/SSU0/Processors/1" }
],
"Processors@odata.count": 1,
"Drives": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0/Drives/Disk0" }
],
"Drives@odata.count": 1
}
}
Patch请求示例(设置定位灯)
{
"LocationIndicatorActive": true
}
评审点2:复用 Redfish 标准资源 ComputerSystem(SSU计算系统)
资源URI :/redfish/v1/Systems
资源版本 :ComputerSystemCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :ComputerSystemCollection资源的Members属性包含各ComputerSystem(含主机和SSU)的@odata.id引用
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | ComputerSystem集合成员列表 |
| Members@odata.count | integer | 2 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#ComputerSystemCollection.ComputerSystemCollection",
"@odata.id": "/redfish/v1/Systems",
"Name": "Computer System Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Systems/1" },
{ "@odata.id": "/redfish/v1/Systems/SSU0" }
],
"Members@odata.count": 2
}
资源URI :/redfish/v1/Systems/SSU:id
资源版本 :ComputerSystem.v1_23_0(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name, SystemType
嵌套资源 :本资源(ComputerSystem)嵌套于ComputerSystemCollection资源的Members属性中
Link资源 :
- 标准文档对标:
Links.Chassis指向SSU自身的Chassis/redfish/v1/Chassis/SSU0Links.ConsumingComputerSystems指向主机System/redfish/v1/Systems/1(表示此SSU组成了主机系统的一部分)Links.ManagedBy指向主机BMC/redfish/v1/Managers/1
- 功能管理归属:SSU ComputerSystem由主机BMC(
/redfish/v1/Managers/1)管理 - 逻辑引用依赖:通过子资源链接关联Processors、Memory、网络接口、日志、BIOS
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| SystemType | enum | 枚举值:Physical | true | 否 | / | ReadOnly | 系统类型,SSU使用Physical |
| ProcessorSummary | object | {Count, Model, …} | true | 否 | / | ReadOnly | 处理器摘要信息 |
| MemorySummary | object | {TotalSystemMemoryGiB, Status, …} | true | 否 | / | ReadOnly | 内存摘要信息 |
| Processors | object | {“@odata.id”: “…/Processors”} | true | 否 | / | ReadOnly | 指向ProcessorCollection的链接 |
| Memory | object | {“@odata.id”: “…/Memory”} | true | 否 | / | ReadOnly | 指向MemoryCollection的链接 |
| EthernetInterfaces | object | {“@odata.id”: “…/EthernetInterfaces”} | true | 否 | / | ReadOnly | 指向EthernetInterfaceCollection的链接 |
| NetworkInterfaces | object | {“@odata.id”: “…/NetworkInterfaces”} | true | 否 | / | ReadOnly | 指向NetworkInterfaceCollection的链接 |
| LogServices | object | {“@odata.id”: “…/LogServices”} | true | 否 | / | ReadOnly | 指向LogServiceCollection的链接 |
| Bios | object | {“@odata.id”: “…/Bios”} | true | 否 | / | ReadOnly | 指向Bios资源的链接 |
| Links.Chassis | array | [{“@odata.id”: “…/Chassis/SSU0”}] | true | 否 | / | ReadOnly | 包含此系统的Chassis |
| Links.ConsumingComputerSystems | array | [{“@odata.id”: “…/Systems/1”}] | true | 否 | / | ReadOnly | 由此系统实现的系统 |
| Links.ManagedBy | array | [{“@odata.id”: “…/Managers/1”}] | true | 否 | / | ReadOnly | 管理此系统的Manager |
主机System的
Links.SupplyingComputerSystems列出所有SSU → “一个系统由哪些SSUX组成”
SSU System的Links.ConsumingComputerSystems列出主机System → “哪些SSUX组成了一个系统”
Get响应示例(SSU System)
{
"@odata.type": "#ComputerSystem.v1_23_0.ComputerSystem",
"@odata.id": "/redfish/v1/Systems/SSU0",
"Id": "SSU0",
"Name": "SSU Module System",
"SystemType": "Physical",
"ProcessorSummary": {
"Count": 1,
"Model": "SSU Processor",
"Status": { "Health": "OK", "State": "Enabled" }
},
"MemorySummary": {
"TotalSystemMemoryGiB": 64,
"Status": { "Health": "OK", "State": "Enabled" }
},
"Processors": { "@odata.id": "/redfish/v1/Systems/SSU0/Processors" },
"Memory": { "@odata.id": "/redfish/v1/Systems/SSU0/Memory" },
"EthernetInterfaces": { "@odata.id": "/redfish/v1/Systems/SSU0/EthernetInterfaces" },
"NetworkInterfaces": { "@odata.id": "/redfish/v1/Systems/SSU0/NetworkInterfaces" },
"LogServices": { "@odata.id": "/redfish/v1/Systems/SSU0/LogServices" },
"Bios": { "@odata.id": "/redfish/v1/Systems/SSU0/Bios" },
"Links": {
"Chassis": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0" }
],
"ConsumingComputerSystems": [
{ "@odata.id": "/redfish/v1/Systems/1" }
],
"ManagedBy": [
{ "@odata.id": "/redfish/v1/Managers/1" }
]
}
}
评审点3:复用 Redfish 标准资源 Drive(SSU硬盘)
资源URI :/redfish/v1/Chassis/SSU:id/Drives
资源版本 :DriveCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :DriveCollection资源的Members属性包含各Drive的@odata.id引用;DriveCollection嵌套于Chassis资源的Drives属性中
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | Drive集合成员列表 |
| Members@odata.count | integer | 1 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#DriveCollection.DriveCollection",
"@odata.id": "/redfish/v1/Chassis/SSU0/Drives",
"Name": "Drive Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0/Drives/Disk0" }
],
"Members@odata.count": 1
}
资源URI :/redfish/v1/Chassis/SSU:id/Drives/:DriveId
资源版本 :Drive.v1_21_0(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name
嵌套资源 :本资源(Drive)嵌套于DriveCollection资源的Members属性中
Link资源 :
- 标准文档对标:
Links.Chassis反向指向所属的SSU Chassis/redfish/v1/Chassis/SSU0
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Links.Chassis | object | {“@odata.id”: “…/Chassis/SSU0”} | true | 否 | / | ReadOnly | 反向链接到SSU Chassis |
| Oem.OpenBMC.TemperatureCelsius | number,null | 35 | true | 是 | / | ReadOnly | 硬盘温度(摄氏度),OEM扩展属性,OEM资源为openUBMCDrive.v1_0_0 |
Get响应示例
{
"@odata.type": "#Drive.v1_21_0.Drive",
"@odata.id": "/redfish/v1/Chassis/SSU0/Drives/Disk0",
"Id": "Disk0",
"Name": "SSU0 NVMe Drive 0",
"Links": {
"Chassis": { "@odata.id": "/redfish/v1/Chassis/SSU0" }
},
"Oem": {
"OpenBMC": {
"@odata.type": "#openUBMCDrive.v1_0_0.Drive",
"TemperatureCelsius": 35
}
}
}
评审点4:复用 Redfish 标准资源 NetworkAdapter(SSU网卡)
资源URI :/redfish/v1/Chassis/SSU:id/NetworkAdapters
资源版本 :NetworkAdapterCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :NetworkAdapterCollection资源的Members属性包含各NetworkAdapter的@odata.id引用;嵌套于Chassis资源的NetworkAdapters属性中
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | NetworkAdapter集合成员列表 |
| Members@odata.count | integer | 1 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#NetworkAdapterCollection.NetworkAdapterCollection",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters",
"Name": "Network Adapter Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0" }
],
"Members@odata.count": 1
}
资源URI :/redfish/v1/Chassis/SSU:id/NetworkAdapters/:NetworkAdapterId
资源版本 :NetworkAdapter.v1_12_1(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name
嵌套资源 :本资源(NetworkAdapter)嵌套于NetworkAdapterCollection资源的Members属性中
Link资源 :
- 标准文档对标:
Ports链接指向PortCollection子资源/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/PortsControllers[].Links.Ports引用同一PortCollection下的各Port资源(GE0、UB0、UB1)
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Ports | object | {“@odata.id”: “…/Ports”} | true | 否 | / | ReadOnly | 指向PortCollection的链接 |
| Controllers | array | [{Links: {Ports: […]}}] | true | 否 | / | ReadOnly | 控制器列表,每个控制器通过Links.Ports引用端口资源 |
Get响应示例
{
"@odata.type": "#NetworkAdapter.v1_12_1.NetworkAdapter",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0",
"Id": "SSU0ModuleLOM0",
"Name": "SSU0ModuleLOM0",
"Ports": { "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports" },
"Controllers": [
{
"Links": {
"Ports": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/GE0" },
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB0" },
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB1" }
]
}
}
]
}
评审点5:复用 Redfish 标准资源 Port(GE/UB网口),支持PATCH端口速率切换
资源URI :/redfish/v1/Chassis/SSU:id/NetworkAdapters/:NetworkAdapterId/Ports
资源版本 :PortCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :PortCollection资源的Members属性包含各Port的@odata.id引用;嵌套于NetworkAdapter资源的Ports属性中
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | Port集合成员列表 |
| Members@odata.count | integer | 3 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#PortCollection.PortCollection",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports",
"Name": "Port Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/GE0" },
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB0" },
{ "@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB1" }
],
"Members@odata.count": 3
}
资源URI :/redfish/v1/Chassis/SSU:id/NetworkAdapters/:NetworkAdapterId/Ports/:PortId
资源版本 :Port.v1_17_0(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name
嵌套资源 :本资源(Port)嵌套于PortCollection资源的Members属性中
Link资源 :
- 功能管理归属:Port隶属于NetworkAdapter,通过父级PortCollection路径体现归属
- 逻辑引用依赖:GE口通过
AssociatedMACAddresses属性暴露MAC地址(数据来源为设备树GEPort节点的bmc.dev.NetworkPort接口,由带外NVMe-MI查询后更新)
端口速率切换(#449):通过PATCH
ConfiguredSpeedGbps(v1_16_0, readonly=false)设置目标速率,无需OEM扩展。
ConfiguredSpeedGbpsDMTF标准描述:“The speed to which this port is configured to train when autonegotiation is disabled.”(当自动协商禁用时,此端口配置的训练速率。)
PATCH不支持null清空配置。
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| AssociatedMACAddresses | array,null | [“aa:bb:cc:dd:ee:ff”] | true | 是 | / | ReadOnly | 关联的MAC地址数组 |
| ConfiguredSpeedGbps | number,null | 10 | false | 否 | 是 | BasicSetting | 当自动协商禁用时此端口配置的训练速率(Gbit/s),v1_16_0。不支持null清空配置 |
Get响应示例(GE口 GE0)
{
"@odata.type": "#Port.v1_17_0.Port",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/GE0",
"Id": "GE0",
"Name": "SSU0 GE Port 0",
"AssociatedMACAddresses": [
"aa:bb:cc:dd:ee:ff"
],
"ConfiguredSpeedGbps": 10
}
Get响应示例(UB口 UB0)
{
"@odata.type": "#Port.v1_17_0.Port",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB0",
"Id": "UB0",
"Name": "SSU0 UB Port 0",
"AssociatedMACAddresses": [],
"ConfiguredSpeedGbps": 100
}
Get响应示例(UB口 UB1)
{
"@odata.type": "#Port.v1_17_0.Port",
"@odata.id": "/redfish/v1/Chassis/SSU0/NetworkAdapters/SSU0ModuleLOM0/Ports/UB1",
"Id": "UB1",
"Name": "SSU0 UB Port 1",
"AssociatedMACAddresses": [],
"ConfiguredSpeedGbps": 100
}
Patch请求示例(UB端口速率切换)
{
"ConfiguredSpeedGbps": 25
}
评审点6:复用 Redfish 标准资源 Processor(SSU处理器)
资源URI :/redfish/v1/Systems/SSU:id/Processors
资源版本 :ProcessorCollection
Required属性 :@odata.id, @odata.type, Name, Members@odata.count
嵌套资源 :ProcessorCollection资源的Members属性包含各Processor的@odata.id引用;ProcessorCollection嵌套于ComputerSystem资源的Processors属性中
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Members | array | [{@odata.id}] | true | 否 | 否 | ReadOnly | Processor集合成员列表 |
| Members@odata.count | integer | 1 | true | 否 | 否 | ReadOnly | 成员数量 |
Get响应示例
{
"@odata.type": "#ProcessorCollection.ProcessorCollection",
"@odata.id": "/redfish/v1/Systems/SSU0/Processors",
"Name": "Processor Collection",
"Members": [
{ "@odata.id": "/redfish/v1/Systems/SSU0/Processors/1" }
],
"Members@odata.count": 1
}
资源URI :/redfish/v1/Systems/SSU:id/Processors/:ProcessorId
资源版本 :Processor.v1_17_0(DMTF Schema)
Required属性 :@odata.id, @odata.type, Id, Name
嵌套资源 :本资源(Processor)嵌套于ProcessorCollection资源的Members属性中
Link资源 :
- 标准文档对标:Processor隶属于ComputerSystem,通过ProcessorCollection路径体现归属
属性列表 :
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| Oem.OpenBMC.Temperature | number,null | 45 | true | 是 | / | ReadOnly | CPU温度,OEM扩展属性,OEM资源为openUBMCProcessor.v1_0_0 |
Get响应示例
{
"@odata.type": "#Processor.v1_17_0.Processor",
"@odata.id": "/redfish/v1/Systems/SSU0/Processors/1",
"Id": "1",
"Name": "SSU0 Processor 1",
"Oem": {
"OpenBMC": {
"@odata.type": "#openUBMCProcessor.v1_0_0.Processor",
"Temperature": 45
}
}
}
评审点7:新增 IPMI 命令执行SSU GE口平面切换
命令名称: SSU GE端口平面切换
命令说明: 切换SSU GE端口的平面,通过BMC带外NVMe-MI over MCTP下发到SSU。
命令权限: DiagnoseMgmt
是否锁定之后可以访问: 否
是否有敏感数据: 否
命令样式:
- 请求:
ipmitool raw 0x30 0x93 <ManufacturerID(3)> <SubCmd> <Reserved> <ParamSel> <SetSel> <BlockSel> <ExternSel> <WritingOffset(2)> <WritingLength> <Data> - 响应:
<CompletionCode> <ManufacturerID(3)> <Result>
命令请求参数:
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30h |
| Cmd | 93h(多节点命令) |
| 1:3 | Manufacturer ID,LB Byte first。长度固定3个字节 |
| 4 | SubCmd,固定为 3Eh |
| 5 | Reserved,固定为 00h |
| 6 | Parameter Selector,固定为 1Dh(十进制29),表示GE口平面切换 |
| 7 | Set Selector,GE口平面切换时为 SSU ID(如SSU0则为 00h) |
| 8 | Block Selector,GE口平面切换时为 GEPort ID |
| 9 | Extern Selector,1字节,bit1~bit7 reserved,bit0:0=last frame,1=cascade frame |
| 10:11 | Writing Offset |
| 12 | Writing Length |
| 13:N | Data,任意长度。对于GE口平面切换场景,通过Writing Length确定为1字节,表示目标平面标识 |
针对当前GE口平面切换场景:Parameter Selector=1Dh(29),Set Selector=SSU ID,Block Selector=GEPort ID(固定0),Writing Length=1,Data为1字节表示目标平面标识,Writing Offset=0。
命令响应参数:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code:00h = 命令响应成功;CCh = 命令入参超过支持范围;80h = 命令的长度和参数不匹配;81h = 通信失败;82h = 不支持的模式 |
| 2:4 | Manufacturer ID,LB Byte first |
| 5 | Result:00h = 命令下发成功;01h = 命令下发失败 |
命令示例:
样例1:切换SSU0的GE0端口到平面1
- 请求:
ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x3e 0x00 0x1d 0x00 0x00 0x00 0x00 0x00 0x01 0x01 - 响应:
00 db 07 00 00
评审点8:新增 IPMI 命令获取SSU配置(GE口当前平面)
命令名称: 获取SSU配置(GE口当前平面)
命令说明: 获取SSU GE端口当前所在的平面。通过BMC带外NVMe-MI over MCTP下发到SSU查询。
命令权限: ReadOnly
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令样式:
- 请求:
ipmitool raw 0x30 0x93 <ManufacturerID(3)> <SubCmd> <Reserved> <ParamSel> <SetSel> <BlockSel> <ExternSel> <ReadingOffset(2)> <ReadingLength> - 响应:
<CompletionCode> <ManufacturerID(3)> <ExternSelector> <Data>
命令请求参数:
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30h |
| Cmd | 93h(多节点命令) |
| 1:3 | Manufacturer ID,LB Byte first。长度固定3个字节 |
| 4 | SubCmd,固定为 3Dh |
| 5 | Reserved,固定为 00h |
| 6 | Parameter Selector,固定为 1Dh(十进制29),表示获取GE口当前平面 |
| 7 | Set Selector,获取GE口平面时为 SSU ID(如SSU0则为 00h) |
| 8 | Block Selector,获取GE口平面时为 GEPort ID |
| 9 | Extern Selector,1字节,bit1~bit7 reserved,bit0:0=last frame,1=cascade frame |
| 10:11 | Reading Offset |
| 12 | Reading Length |
针对获取GE口当前平面场景:Parameter Selector=1Dh(29),Set Selector=SSU ID,Block Selector=GEPort ID(固定0),Reading Length=1,Reading Offset=0。
命令响应参数:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code:00h = 命令响应成功;CCh = 命令入参超过支持范围;80h = 命令的长度和参数不匹配;81h = 通信失败;82h = 不支持的模式 |
| 2:4 | Manufacturer ID,LB Byte first |
| 5 | Extern Selector,1字节,bit1~bit7 reserved,bit0:0=last frame,1=cascade frame |
| 6:N | Data,GE口当前平面标识(1字节) |
命令示例:
样例1:获取SSU0的GE0端口当前平面
- 请求:
ipmitool raw 0x30 0x93 0xdb 0x07 0x00 0x3d 0x00 0x1d 0x00 0x00 0x00 0x00 0x01 - 响应:
00 db 07 00 00 01
是否准备好AI预审
是
评审结论
- 复用Redfish标准资源Chassis管理SSU物理容器,实现电子标签属性(Manufacturer、SerialNumber、Model、PartNumber、PowerState、Status),支持GET查询SSU信息和PATCH设置定位灯,包含Drives、NetworkAdapters子资源链接,Links.Processors引用ComputerSystem下Processor资源并含count,属性具体描述见详细描述中的评审点1
- 复用Redfish标准资源ComputerSystem管理SSU计算系统,包含ProcessorSummary、MemorySummary、Processors、Memory、EthernetInterfaces、NetworkInterfaces、LogServices、Bios子资源,体现SSU与主机系统的组成关系,属性具体描述见详细描述中的评审点2
- 复用Redfish标准资源Drive管理SSU硬盘,实现OEM硬盘温度属性(Oem.OpenBMC.TemperatureCelsius,OEM资源openUBMCDrive.v1_0_0),属性具体描述见详细描述中的评审点3
- 复用Redfish标准资源NetworkAdapter管理SSU网卡,包含Ports链接和Controllers(其Links.Ports引用GE0/UB0/UB1),属性具体描述见详细描述中的评审点4
- 复用Redfish标准资源Port管理GE/UB网口,支持GET查询MAC地址和PATCH端口速率切换,属性具体描述见详细描述中的评审点5
- 复用Redfish标准资源Processor管理SSU处理器,实现OEM CPU温度属性(Oem.OpenBMC.Temperature,OEM资源openUBMCProcessor.v1_0_0),属性具体描述见详细描述中的评审点6
- 新增IPMI命令(NetFn 30h Cmd 93h SubCmd 3Eh Parameter Selector 1Dh)执行SSU GE口平面切换,命令格式见详细描述中的评审点7
- 新增IPMI命令(NetFn 30h Cmd 93h SubCmd 3Dh Parameter Selector 1Dh)获取SSU配置(GE口当前所在平面),命令格式见详细描述中的评审点8
遗留问题
- 光模块资源暂不添加
答:Transceivers非标准资源,暂不加光模块资源。 - ConfiguredSpeedGbps属性描述
答:UB口配置速率,标准资源描述为"当自动协商禁用时,此端口配置的训练速率"。PATCH接口不需要实现null清空配置,不支持该能力。 - Drive/网卡/端口资源属性待确认
答:具体资源待与需求提出方确认,先明确能实现的属性,无法提供的不显示。 - SSU全称和缩写待确认
答:ASU改为SSU,全称为Smart Storage Unit。 - IPMI命令扩展历史存储配置
答:IPMI命令需扩展存储已有配置,整体格式不变。 - 新增IPMI命令归属仓库待确认
答:新增的SSU相关IPMI命令(NetFn 30h Cmd 93h)放在storage仓。