背景
当前redfish标准接口存在缺失,需要评审新增redfish标准接口
关联ISSUE
ThermalMetrics相关资源支持redfish新标准
NetworkAdapterMetrics相关资源支持redfish新标准
PortMetrics相关资源支持redfish新标准
评审点
评审点1: /redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/ThermalMetrics 下新增属性
评审点2:
新增URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Metrics
评审点3:
新增URI:
/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Ports/{PortId}/Metrics
详细描述
评审点1:
URI:/redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/ThermalMetrics(已有)
变化类型:新增属性
应用场景:redfish接口支持查询热子系统相关度量指标数据
| 一级属性 | 二级属性 | 取值类型 | 操作权限 | 说明 | 约束 |
|---|---|---|---|---|---|
| AirFlowCubicMetersPerMinute | object | ReadOnly | 机箱的空气流量(单位:立方米 / 分钟),若存在DataSourceUri属性,应引用ReadingType为AirFlowCMM的Sensor资源 | 传感器未启用或不支持时返回 null | |
| DeltaPressurekPa | object | ReadOnly | 机箱的压差(单位:千帕,kPa) | 传感器未启用或不支持时返回 null | |
| HeaterSummary | object | ReadOnly | 此机箱的加热器指标摘要,包含加热器相关统计数据 | ||
| TotalPrePowerOnHeatingTimeSeconds | integer | ReadOnly | 热子系统中的所有加热器在各自的设备加热关闭时处于活动状态的总秒数 | 传感器未启用或不支持时返回 null | |
| TotalRuntimeHeatingTimeSeconds | integer | ReadOnly | 热子系统中所有加热器在各个设备加热时处于活动状态的总秒数 | 传感器未启用或不支持时返回 null | |
| TemperatureSummaryCelsius | object | ReadOnly | 该热子系统的温度汇总信息,包含环境温度和内部温度 | ||
| Ambient | object | ReadOnly | 该子系统的环境温度(单位:摄氏度,℃) | 传感器未启用或不支持时返回 null | |
| Internal | object | ReadOnly | 该子系统的内部温度(单位:摄氏度,℃) | 传感器未启用或不支持时返回 null |
评审点2:
URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Metrics
变化类型:新增URI
操作类型:GET
应用场景:Redfish 接口查询网络适配器的汇总度量指标数据
| 属性 | 类型 | 易变属性 | 操作权限 | 默认值 | 属性说明 | 约束 |
|---|---|---|---|---|---|---|
| @odata.context | string | 否 | ReadOnly | /redfish/v1/$metadata#NetworkAdapterMetrics.NetworkAdapterMetrics | 网络适配器度量信息资源模型的 OData 描述信息 | |
| @odata.id | string | 否 | ReadOnly | /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Metrics | 网络适配器度量信息资源的访问路径 | |
| @odata.type | string | 否 | ReadOnly | #NetworkAdapterMetrics.v1_1_0.NetworkAdapterMetrics | 网络适配器度量信息资源的类型标识 | |
| Name | string | 否 | ReadOnly | Network Adapter Metrics | 网络适配器度量信息资源的名称 | |
| Id | string | 否 | ReadOnly | NetworkAdapterMetrics | 网络适配器度量信息资源的唯一标识 | |
| RXMulticastFrames | integer | 是 | ReadOnly | 自复位以来接收到的正常多播帧总数(所有网口汇总) | 网口未启用、不支持统计或无数据时返回 null | |
| RXUnicastFrames | integer | 是 | ReadOnly | 自复位以来接收到的正常单播帧总数(所有网口汇总) | 网口未启用、不支持统计或无数据时返回 null | |
| TXMulticastFrames | integer | 是 | ReadOnly | 自复位以来发送的正常多播帧总数(所有网口汇总) | 网口未启用、不支持统计或无数据时返回 null | |
| TXUnicastFrames | integer | 是 | ReadOnly | 自复位以来发送的正常单播帧总数(所有网口汇总) | 网口未启用、不支持统计或无数据时返回 null |
schema说明:
新增schema文件NetworkAdapterMetrics.v1_1_0.json
"RXMulticastFrames": {
"description": "The total number of good multicast frames received since reset.",
"longDescription": "This property shall contain the total number of good multicast frames received since reset.",
"readonly": true,
"type": [
"integer",
"null"
]
},
"RXUnicastFrames": {
"description": "The total number of good unicast frames received since reset.",
"longDescription": "This property shall contain the total number of good unicast frames received since reset.",
"readonly": true,
"type": [
"integer",
"null"
]
},
"TXMulticastFrames": {
"description": "The total number of good multicast frames transmitted since reset.",
"longDescription": "This property shall contain the total number of good multicast frames transmitted since reset.",
"readonly": true,
"type": [
"integer",
"null"
]
},
"TXUnicastFrames": {
"description": "The total number of good unicast frames transmitted since reset.",
"longDescription": "This property shall contain the total number of good unicast frames transmitted since reset.",
"readonly": true,
"type": [
"integer",
"null"
]
}
RspBody响应体示例:
{
"@odata.context": "/redfish/v1/$metadata#NetworkAdapterMetrics.NetworkAdapterMetrics",
"@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Metrics",
"@odata.type": "#NetworkAdapterMetrics.v1_1_0.NetworkAdapterMetrics",
"Id": "NetworkAdapterMetrics",
"Name": "Network Adapter Metrics",
"RXMulticastFrames": 14,
"RXUnicastFrames": 8,
"TXMulticastFrames": 2,
"TXUnicastFrames": 2
}
评审点3:
URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Ports/{PortId}/Metrics
变化类型:新增URI
/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Ports/{PortId}/Metrics
操作类型:GET
| 一级属性 | 二级属性 | 类型 | 操作权限 | 默认值 | 易变属性 | 属性说明 |
|---|---|---|---|---|---|---|
| @odata.context | string | ReadOnly | /redfish/v1/$metadata#NetworkDeviceFunctionMetrics.NetworkDeviceFunctionMetrics | 否 | 端口度量指标资源模型的 OData 描述信息 | |
| @odata.id | string | ReadOnly | /redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Ports/{PortId}/Metrics | 否 | 端口度量指标资源的访问路径 | |
| @odata.type | string | ReadOnly | #PortMetrics.v1_7_0.PortMetrics | 否 | 端口度量指标资源的类型标识 | |
| Name | string | ReadOnly | Port ${Uri/portid} Metrics | 否 | 端口度量指标资源的名称 | |
| Id | string | ReadOnly | Metrics | 否 | 端口度量指标资源的唯一标识 | |
| Networking | object | ReadOnly | 否 | 网络设备功能的网络相关统计指标集合 | ||
| RXFrames | integer | ReadOnly | 是 | 收到的帧数 | ||
| TXFrames | integer | ReadOnly | 是 | 发送的帧数量 | ||
| RXUnicastFrames | integer | ReadOnly | 是 | 收到的单播帧数量 | ||
| RXMulticastFrames | integer | ReadOnly | 是 | 收到的多播帧数量 | ||
| RXBroadcastFrames | integer | ReadOnly | 是 | 收到的广播帧数量 | ||
| TXUnicastFrames | integer | ReadOnly | 是 | 发送的单播帧数量 | ||
| TXMulticastFrames | integer | ReadOnly | 是 | 发送的多播帧数量 | ||
| TXBroadcastFrames | integer | ReadOnly | 是 | 发送的广播帧数量 | ||
| RXFCSErrors | integer | ReadOnly | 是 | 接收到的校验错误帧数量 | ||
| RXUndersizeFrames | integer | ReadOnly | 是 | 接收到的超小帧数量 | ||
| RXOversizeFrames | integer | ReadOnly | 是 | 接收到的超长帧数量 | ||
| TXSingleCollisions | integer | ReadOnly | 是 | 发送的单碰撞帧数量 | ||
| TXMultipleCollisions | integer | ReadOnly | 是 | 发送的多碰撞帧数量 | ||
| TXLateCollisions | integer | ReadOnly | 是 | 发送的延迟碰撞帧数量 | ||
| TXExcessiveCollisions | integer | ReadOnly | 是 | 发送的超量碰撞帧数量 | ||
| RXFrameAlignmentErrors | integer | ReadOnly | 是 | 接收的对齐错误的帧数量 | ||
| RXPauseXOFFFrames | integer | ReadOnly | 是 | 网络发出的用于暂停传输的流量控制帧的总数 | ||
| RXPauseXONFrames | integer | ReadOnly | 是 | 从网络发出的用于恢复传输的流量控制帧的总数 | ||
| TXPauseXOFFFrames | integer | ReadOnly | 是 | 发送至网络的 XOFF 帧的总数 | ||
| TXPauseXONFrames | integer | ReadOnly | 是 | 发送至网络的 XON 帧的总数 | ||
| RXFalseCarrierErrors | integer | ReadOnly | 是 | 从物理层接收到的错误帧总数 |
schema说明:
新增schema文件PortMetrics.v1_7_0.json
"RXFrames": {
"description": "The total number of frames received on a port since reset.",
"longDescription": "This property shall contain the total number of frames received on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXFrames": {
"description": "The total number of frames transmitted on a port since reset.",
"longDescription": "This property shall contain the total number of frames transmitted on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXUnicastFrames": {
"description": "The total number of valid unicast frames received on a port since reset.",
"longDescription": "This property shall contain the total number of valid unicast frames received on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXMulticastFrames": {
"description": "The total number of valid multicast frames received on a port since reset.",
"longDescription": "This property shall contain the total number of valid multicast frames received on a port since reset, including host and remote management passthrough traffic.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXBroadcastFrames": {
"description": "The total number of valid broadcast frames received on a port since reset.",
"longDescription": "This property shall contain the total number of valid broadcast frames received on a port since reset, including host and remote management passthrough traffic.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXUnicastFrames": {
"description": "The total number of good unicast frames transmitted on a port since reset.",
"longDescription": "This property shall contain the total number of good unicast frames transmitted on a port since reset, including host and remote management passthrough traffic.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXMulticastFrames": {
"description": "The total number of good multicast frames transmitted on a port since reset.",
"longDescription": "This property shall contain the total number of good multicast frames transmitted on a port since reset, including host and remote management passthrough traffic.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXBroadcastFrames": {
"description": "The total number of good broadcast frames transmitted on a port since reset.",
"longDescription": "This property shall contain the total number of good broadcast frames transmitted on a port since reset, including host and remote management passthrough traffic.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXFCSErrors": {
"description": "The total number of frames received with frame check sequence (FCS) errors on a port since reset.",
"longDescription": "This property shall contain the total number of frames received with frame check sequence (FCS) errors on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXUndersizeFrames": {
"description": "The total number of frames that are smaller than the minimum frame size of 64 bytes.",
"longDescription": "This property shall contain the total number of frames that are smaller than the minimum frame size of 64 bytes.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXOversizeFrames": {
"description": "The total number of frames that exceed the maximum frame size.",
"longDescription": "This property shall contain the total number of frames that exceed the maximum frame size.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXSingleCollisions": {
"description": "The times that a successfully transmitted frame encountered a single collision.",
"longDescription": "This property shall contain the times that a successfully transmitted frame encountered a single collision.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXMultipleCollisions": {
"description": "The times that a transmitted frame encountered 2-15 collisions.",
"longDescription": "This property shall contain the times that a transmitted frame encountered 2-15 collisions.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXLateCollisions": {
"description": "The total number of collisions that occurred after one slot time as defined by IEEE 802.3.",
"longDescription": "This property shall contain the total number of collisions that occurred after one slot time as defined by IEEE 802.3.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXExcessiveCollisions": {
"description": "The number of times a single transmitted frame encountered more than 15 collisions.",
"longDescription": "This property shall contain the number of times a single transmitted frame encountered more than 15 collisions.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXFrameAlignmentErrors": {
"description": "The total number of frames received with alignment errors on a port since reset.",
"longDescription": "This property shall contain the total number of frames received with alignment errors on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXPauseXOFFFrames": {
"description": "The total number of flow control frames from the network to pause transmission.",
"longDescription": "This property shall contain the total number of flow control frames from the network to pause transmission.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXPauseXONFrames": {
"description": "The total number of flow control frames from the network to resume transmission.",
"longDescription": "This property shall contain the total number of flow control frames from the network to resume transmission.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXPauseXOFFFrames": {
"description": "The total number of XOFF frames transmitted to the network.",
"longDescription": "This property shall contain the total number of XOFF frames transmitted to the network.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"TXPauseXONFrames": {
"description": "The total number of XON frames transmitted to the network.",
"longDescription": "This property shall contain the total number of XON frames transmitted to the network.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
"RXFalseCarrierErrors": {
"description": "The total number of false carrier errors received from phy on a port since reset.",
"longDescription": "This property shall contain the total number of false carrier errors received from phy on a port since reset.",
"readonly": true,
"type": [
"integer",
"null"
],
"versionAdded": "v1_1_0"
},
RspBody响应体示例:
{
"@odata.context": "/redfish/v1/$metadata#NetworkDeviceFunctionMetrics.NetworkDeviceFunctionMetrics",
"@odata.id": "/redfish/v1/Chassis/1/NetworkAdapters/chassisNIC1(SF221Q)/Ports/1/Metrics",
"@odata.type": "#PortMetrics.v1_7_0.PortMetrics",
"Id": "Metrics",
"Name": "Port 1 Metrics",
"Networking": {
"RXFrames": 0,
"TXFrames": 0,
"RXUnicastFrames": 2,
"RXMulticastFrames": 3,
"RXBroadcastFrames": 2,
"TXUnicastFrames": 1,
"TXMulticastFrames": 4,
"TXBroadcastFrames": 1,
"RXFCSErrors": null,
"RXUndersizeFrames": 2,
"RXOversizeFrames": 3,
"TXSingleCollisions": null,
"TXMultipleCollisions": null,
"TXLateCollisions": null,
"TXExcessiveCollisions": null,
"RXFrameAlignmentErrors": null,
"RXPauseXOFFFrames": null,
"RXPauseXONFrames": null,
"TXPauseXOFFFrames": null,
"TXPauseXONFrames": null,
"RXFalseCarrierErrors": null
}
}
评审结论
1、同意在/redfish/v1/Chassis/{ChassisId}/ThermalSubsystem/ThermalMetrics 下新增AirFlowCubicMetersPerMinute、DeltaPressurekPa、TotalPrePowerOnHeatingTimeSeconds、TotalRuntimeHeatingTimeSeconds、Ambient、Internal属性,操作权限:ReadOnly,支持GET操作(详情见 评审点1)
2、同意新增URI:/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Metrics,并新增属性RXMulticastFrames、RXUnicastFrames、TXMulticastFrames、TXUnicastFrames,类型为integer,操作权限:ReadOnly,支持GET操作
3、同意新增URI:
/redfish/v1/Chassis/{ChassisId}/NetworkAdapters/{NetworkAdapterId}/Ports/{PortId}/Metrics,操作权限:ReadOnly,支持GET操作;
同意在/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID路径下的bmc.kepler.Systems.NetworkPort.Metrics接口新增属性RXPauseXOFFFrames、RXPauseXONFrames、TXPauseXOFFFrames、TXPauseXONFrames、RXFalseCarrierErrors,类型为integer,操作权限:ReadOnly(详情见 评审点3)



