背景
当前 UB 总线端口链路状态信息接口 bmc.kepler.UnifiedBus.Port.Metrics缺少端口重传次数的统计信息。需求新增端口重传次数属性,以便北向接口展示端口自上次重启后的重传统计,帮助运维人员评估链路质量和排查链路异常。
关联ISSUE
暂无
整体方案
- 为资源协作接口
bmc.kepler.UnifiedBus.Port.Metrics新增 RetransmitCount 属性,表示端口自上次重启后的重传次数 - 为 Redfish 接口
/redfish/v1/Systems/:systemid/Processors/:processorid/Ports/:portid/Metrics新增Oem.OemIdentifier.RetransmitCount属性映射
评审点
- 变更资源协作接口
bmc.kepler.UnifiedBus.Port.Metrics新增 RetransmitCount 属性 - Redfish 接口
/redfish/v1/Systems/:systemid/Processors/:processorid/Ports/:portid/Metrics新增 Oem.OemIdentifier.RetransmitCount 属性
详细描述
评审点1:变更资源协作接口 bmc.kepler.UnifiedBus.Port.Metrics 新增 RetransmitCount 属性
变更描述:UB 总线端口链路状态信息接口承载了端口链路状态统计功能,新增 RetransmitCount 属性同属于链路状态统计功能的一部分,用于记录端口自上次重启后的重传次数,与现有的 LinkUpCount、LinkDownCount 等计数属性功能定位一致。
接口链接:bmc.kepler.UnifiedBus.Port.Metrics 接口定义
变更属性
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
| 新增 | RetransmitCount | s | True | false | 端口自上次重启后的重传次数,默认值为空字符串。取值模式为 ^(0|[1-9][0-9]*|)$,即允许数字 0、正整数或空字符串。空字符串表示无数据或未采集,数值表示实际重传次数 |
Read: ReadOnly | 带外获取 | 不持久化 | 新增属性,无兼容性问题 |
RetransmitCount 属性设计说明
| 设计项 | 说明 |
|---|---|
| 类型选择 | 采用 String 类型而非数值类型(t/y),因为需要支持"无数据"场景的空字符串表示。数值类型无法区分"0次重传"和"未采集数据",String 类型通过空字符串""表示未采集、数字字符串表示实际值,语义更清晰 |
| 取值模式 | pattern ^(0|[1-9][0-9]*|)$ 保证值只能是:空字符串(未采集)、“0”(零次重传)、正整数字符串(实际重传次数),不允许非法格式 |
| 变化通知 | emitsChangedSignal=false,该属性为易变属性且变化频率高,不发送变更信号以避免信号风暴 |
| 易变性 | volatile=true,该属性值在端口重启后重置,不需要持久化存储 |
| 默认值 | 空字符串 “”,表示尚未采集数据或端口未初始化 |
变更接口影响
| 路径 | 变更接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Systems/:SystemId/Processors/CPU/:CPUId/Ports/:ID | 新增 RetransmitCount 属性,提供 CPU 端口重传次数查询功能 | 不涉及重名属性,无影响 | 不涉及持久化,无影响 | 需实现新增属性,需从对应组件获取数据 |
| /bmc/kepler/Systems/:SystemId/Processors/NPU/:ID/Ports/:ID | 新增 RetransmitCount 属性,提供 NPU 端口重传次数查询功能 | 不涉及重名属性,无影响 | 不涉及持久化,无影响 | 需实现新增属性,需从对应组件获取数据 |
评审点2:Redfish 接口新增 Oem.OemIdentifier.RetransmitCount 属性
资源URI:/redfish/v1/Systems/:systemid/Processors/:processorid/Ports/:portid/Metrics
资源版本:PortMetrics(Redfish 标准 Schema)
变化类型:新增 Oem 属性
新增属性
| 一级属性 | 二级属性 | 三级属性 | 类型 | 示例/默认值/取值约束 | readonly | 易变属性 | 描述 |
|---|---|---|---|---|---|---|---|
| Oem | / | / | object | / | / | / | Oem 扩展对象(已实现) |
| OemIdentifier | / | object | / | / | / | 厂商自定义标识对象(已实现) | |
| RetransmitCount | Integer/null | null 或 Integer | true | true | 端口自上次重启后的重传次数。null 表示尚未采集数据或端口未初始化,整数表示实际重传次数 |
Redfish 属性与 MDB 属性映射说明
| Redfish 属性 | MDB 属性 | 映射说明 |
|---|---|---|
| Oem.OemIdentifier.RetransmitCount | RetransmitCount (String) | MDB String 类型值映射为 Redfish 整数类型:空字符串 “” → null,数字字符串 → 对应整数。映射通过 Statements/Script 转换实现 |
Schema 定义:
{
"Oem": {
"type": "object",
"properties": {
"OemIdentifier": {
"type": "object",
"properties": {
"RetransmitCount": {
"type": [
"integer",
"null"
]
"readonly": true,
"description": "The number of retransmissions that have occurred on this port since the last restart."
}
}
}
}
}
}
响应示例:
{
"Name": "Port 1 Metrics",
"@odata.id": "/redfish/v1/Systems/1/Processors/1/Ports/1/Metrics",
"@odata.type": "#PortMetrics.v1_7_0.PortMetrics",
"Id": "1",
"Oem": {
"OemIdentifier": {
"RetransmitCount": 5
}
}
}
空值场景响应示例
{
"Oem": {
"OemIdentifier": {
"RetransmitCount": null
}
}
}
是否准备好AI预审
是
评审结论
同意资源协作接口 bmc.kepler.UnifiedBus.Port.Metrics 新增 RetransmitCount 属性,属性签名为 s(String 类型),只读,默认值为空字符串,取值模式为 ^(0|[1-9][0-9]*|)$,变化通知为 false,volatile=true,不持久化。
同意 Redfish 接口 /redfish/v1/Systems/:systemid/Processors/:processorid/Ports/:portid/Metrics 在已有 Oem.OemIdentifier 下新增 RetransmitCount 属性,类型为 number,readonly=true,MDB 空字符串映射为 Redfish null。
变更同时影响 CPU 端口路径 /bmc/kepler/Systems/:SystemId/Processors/CPU/:CPUId/Ports/:ID 和 NPU 端口路径 /bmc/kepler/Systems/:SystemId/Processors/NPU/:ID/Ports/:ID,两条路径均需实现新增属性。
遗留问题
无