【已评审】ThermalMetrics/NetworkAdapterMetrics/相关资源标准接口

背景

当前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)

遗留问题

标题需要加上【待评审】

@luojie 这里的资源协作接口是什么资源?接口是哪个?

@luojie 评审点1不是资源协作接口新增属性么?怎么又是Redfish接口了?

已修改,只是新增属性,没有新增资源协作接口,我这边写错了。


新增属性要通过表格的形式详细描述,其他评审均需按照如下修改,参考:


已修改


单独新增帖子评审资源协作接口,参考【已评审】支持配置SSD盘剩余寿命过低告警门限