背景
新机型NPU虚拟网卡的网口和光模块在数量和连接关系等方面跟旧机型存在较大差异,原有的北向接口无法满足新的相关信息显示
关联ISSUE
整体方案
新增北向接口
评审点
1、web新增相关光模块界面
2、web新增网口Lane与光模块Lane的关联关系
3、web新增网口关联处理器、redfish网口资源新增关联处理器端口
4、redfish光模块资源新增光模块Lane与网口Lane的关联关系
详细描述
场景1:web新增相关光模块界面
光模块如果按照普通网卡的方式(跟随端口信息)呈现,会造成光模块信息冗余。
(1)web界面
NPU虚拟网卡的光模块作为单独的界面呈现
页签点开后,单个光模块的信息保持与原接口一致
(2)webrest
URL:/UI/Rest/System/NetworkAdapter/:adapterId
变化类型:新增属性
操作类型:GET
应用场景:获取网络适配器关联的光模块列表
| 字段 | 字段说明 | 类型 |
|---|---|---|
| TransceiverUrls | 光模块Url列表 | Array |
响应示例:
{
"TransceiverUrls": [
"/UI/Rest/System/NetworkAdapter/PCIeCard6(SP680)/Transceivers/1",
"/UI/Rest/System/NetworkAdapter/PCIeCard6(SP680)/Transceivers/2",
"/UI/Rest/System/NetworkAdapter/PCIeCard6(SP680)/Transceivers/3",
"/UI/Rest/System/NetworkAdapter/PCIeCard6(SP680)/Transceivers/4"
]
}
URL:/UI/Rest/System/NetworkAdapter/:adapterId/Transceivers/:Id
变化类型:新增接口
操作类型:GET
应用场景:获取光模块信息
| 字段 | 字段说明 | 类型 |
|---|---|---|
| Manufacturer | 厂商 | String |
| PartNumber | 部件名称 | String |
| SerialNumber | 序列号 | String |
| ProductionDate | 生产日期 | String |
| TransceiverType | 设备类型 | String |
| PackagingType | 打包类型 | String |
| MediumMode | 传输模式 | String |
| WaveLengthNanometer | 纳米波长 | Number |
| SupportedSpeedsMbps | 支持的传输速率 | Array |
| Indentifier | 标识 | String |
| DeviceType | 设备类型 | String |
| ConnectorType | 设备连接类型 | String |
| TransferDistance | 传输距离 | Number |
| RxLosState | 接收丢失状态 | Boolean |
| TxFaultState | 发送错误状态 | Boolean |
| Temperature.ReadingCelsius | 当前温度 | Number |
| Temperature.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| Temperature.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| Voltage.ReadingVolts | 当前电压 | Number |
| Voltage.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| Voltage.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| TXBiasCurrent.ReadingMilliAmperes | 当前发送偏置电流 | Array |
| TXBiasCurrent.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| TXBiasCurrent.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| RXPower.ReadingMilliWatts | 当前接收功率 | Array |
| RXPower.UpperThresholdCritical | 严重告警阈值(下限) | Number |
| RXPower.LowerThresholdCritical | 严重告警阈值(上限) | Number |
| TXPower.ReadingMilliWatts | 当前发送功率 | Array |
| TXPower.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| TXPower.UpperThresholdCritical | 严重告警阈值(上限) | Number |
(3)资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID/OpticalModule
interface:bmc.kepler.Systems.OpticalModule
变化类型:新增属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| Id | 新增属性 | y | 只读 R:ReadOnly | 否 | 该光模块在当前网卡下的逻辑ID,从0开始 | |
| SilkText | 新增属性 | s | 只读 R:ReadOnly | 否 | 光模块丝印信息 |
场景2:web新增网口Lane与光模块Lane的关联关系
普通网卡的端口属性仍然保持完整光模块信息,NPU虚拟网卡端口属性的光模块信息只保留端口Lane与光模块Lane的关联关系
(1)web界面
(2)webrest接口
URL:/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid
变化类型:新增属性
操作类型:GET
应用场景:获取网口Lane关联的光模块Lane信息
| 字段 | 字段说明 | 类型 |
|---|---|---|
| LaneMappings | 网口通道的映射关系 | Array |
| LaneId | 网口通道Id | Number |
| RelatedTransceiverLane | 该网口通道关联的光模块通道 | object |
| TransceiverSilkText | 该网口通道关联的光模块丝印信息 | String |
| TransceiverLaneId | 该网口通道关联的光模块通道Id | Number |
响应示例
{
"LaneMappings": [
{
"LaneId": 1,
"RelatedTransceiverLane": {
"TransceiverSilkText": "QSFP 1",
"TransceiverLaneId": 1
}
},
{
"LaneId": 2,
"RelatedTransceiverLane": {
"TransceiverSilkText": "QSFP 2",
"TransceiverLaneId": 1
}
}
]
}
(3)资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID
interface:bmc.kepler.Systems.NetworkPort.RelatedItems
变化类型:新增属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| TransceiverLanes | 新增属性 | a(sy) | 只读 R:ReadOnly | 否 | 该网口关联的光模块丝印信息及其通道ID。数组元素的第1个参数表示光模块丝印信息,第2个参数表示光模块通道ID。举例:[(OSFP1,1),(OSFP1,2),(OSFP2,3),(OSFP2,4)]表示该网口关联当前网卡下OSFP1的通道1/2、OSFP2的通道3/4 |
场景3:web新增网口关联处理器、redfish网口资源新增关联处理器端口
(1)web界面
(2)webrest
URL:/UI/Rest/System/NetworkAdapter/:adapterId
变化类型:新增属性
操作类型:GET
应用场景:获取关联处理器
| 字段 | 字段说明 | 类型 |
|---|---|---|
| RelatedProcessorPorts | 关联处理器端口列表 | Array |
| ProcessorSilkText | 处理器丝印信息 | String |
| PortId | 处理器端口的硬件定义标识符 | String |
| IODieId | 处理器端口归属的IO DieId | Number |
响应示例
{
"PortProperties": [
{
"PhysicalPortNumber": 1,
"LinkStatus": "Disconnected",
"MediaType": "Optical",
"InterfaceType": "Physical",
...
"RelatedProcessorPorts": [
{
"ProcessorSilkText": "NPU1",
"PortId": "Port5",
"IODieId": 0
},
{
"ProcessorSilkText": "NPU1",
"PortId": "Port5",
"IODieId": 1
}
]
}
]
}
(3)资源协作接口
1、path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID
interface:bmc.kepler.Systems.NetworkPort.RelatedItems
变化类型:新增接口、属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| ProcessorPorts | 新增属性 | a(sy) | 只读 R:ReadOnly | 否 | 该网口关联的处理器及其端口。数组元素的第1个参数表示处理器丝印,第2个参数表示处理器端口的逻辑ID。举例:[(“NPU1”, 0),(“NPU1”, 1)]表示该网口关联NPU1的第0、1个端口 |
2、path:/bmc/kepler/Systems/:SystemID/Processors/NPU/:ID/Ports/:ID
interface:bmc.kepler.Systems.Processor.Port
变化类型:新增path/interface
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| Id | 新增属性 | y | 只读 R:ReadOnly | 否 | 处理器端口逻辑ID,从0开始 | |
| PortId | 新增属性 | s | 只读 R:ReadOnly | 否 | 端口硬件定义标识符 | |
| IODieId | 新增属性 | y | 只读 R:ReadOnly | 否 | 此端口归属的IO DieId |
场景4:redfish光模块资源新增光模块Lane与网口Lane的关联关系
(1)资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID/OpticalModule
interface:bmc.kepler.Systems.OpticalModule.RelatedItems
变化类型:新增属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| NetworkPortLanes | 新增属性 | a(yy) | 只读 R:ReadOnly | 否 | 该光模块关联网口的ID以及关联网口的通道ID。数组元素的第1个参数表示网口逻辑ID,第2个参数表示网口通道ID。举例:[(1,1),(2,2),(1,3),(2,4)]表示该光模块关联当前网卡下第1个网口的通道1/3、第2个网口的通道2/4 |
评审结论
场景1:web新增光模块界面
1、对于NPU虚拟网卡,同意web新增光模块界面。其他普通网卡保持现状
2、同意在URL:/UI/Rest/System/NetworkAdapter/:adapterId新增以下属性
操作类型:GET
| 字段 | 字段说明 | 类型 |
|---|---|---|
| TransceiverUrls | 光模块Url列表 | Array |
3、同意新增URL:/UI/Rest/System/NetworkAdapter/:adapterId/Transceivers/:Id
操作类型:GET
| 字段 | 字段说明 | 类型 |
|---|---|---|
| Manufacturer | 厂商 | String |
| PartNumber | 部件名称 | String |
| SerialNumber | 序列号 | String |
| ProductionDate | 生产日期 | String |
| TransceiverType | 设备类型 | String |
| PackagingType | 打包类型 | String |
| MediumMode | 传输模式 | String |
| WaveLengthNanometer | 纳米波长 | Number |
| SupportedSpeedsMbps | 支持的传输速率 | Array |
| Indentifier | 标识 | String |
| DeviceType | 设备类型 | String |
| ConnectorType | 设备连接类型 | String |
| TransferDistance | 传输距离 | Number |
| RxLosState | 接收丢失状态 | Boolean |
| TxFaultState | 发送错误状态 | Boolean |
| Temperature.ReadingCelsius | 当前温度 | Number |
| Temperature.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| Temperature.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| Voltage.ReadingVolts | 当前电压 | Number |
| Voltage.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| Voltage.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| TXBiasCurrent.ReadingMilliAmperes | 当前发送偏置电流 | Array |
| TXBiasCurrent.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| TXBiasCurrent.UpperThresholdCritical | 严重告警阈值(上限) | Number |
| RXPower.ReadingMilliWatts | 当前接收功率 | Array |
| RXPower.UpperThresholdCritical | 严重告警阈值(下限) | Number |
| RXPower.LowerThresholdCritical | 严重告警阈值(上限) | Number |
| TXPower.ReadingMilliWatts | 当前发送功率 | Array |
| TXPower.LowerThresholdCritical | 严重告警阈值(下限) | Number |
| TXPower.UpperThresholdCritical | 严重告警阈值(上限) | Number |
4、同意新增以下属性
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID/OpticalModule
interface:bmc.kepler.Systems.OpticalModule
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| Id | 新增属性 | y | 只读 R:ReadOnly | 否 | 该光模块在当前网卡下的逻辑ID,从0开始 | |
| SilkText | 新增属性 | s | 只读 R:ReadOnly | 否 | 光模块丝印信息 |
场景2:web新增网口Lane与光模块Lane的关联关系
1、同意web新增网口Lane与光模块Lane的关联关系。在网卡详情中新增关联拓扑页签,点击可查看网口和光模块详情
2、同意在URL:/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid 新增以下属性
操作类型:GET
| 字段 | 字段说明 | 类型 |
|---|---|---|
| LaneMappings | 网口通道的映射关系 | Array |
| LaneId | 网口通道Id | Number |
| RelatedTransceiverLane | 该网口通道关联的光模块通道 | object |
| TransceiverSilkText | 该网口通道关联的光模块丝印信息 | String |
| TransceiverLaneId | 该网口通道关联的光模块通道Id | Number |
3、同意新增以下资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID(已有)
interface:bmc.kepler.Systems.NetworkPort.RelatedItems
变化类型:新增接口、属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| TransceiverLanes | 新增属性 | a(sy) | 只读 R:ReadOnly | 否 | 该网口关联的光模块丝印信息及其通道ID。数组元素的第1个参数表示光模块丝印信息,第2个参数表示光模块通道ID。举例:[(OSFP1,1),(OSFP1,2),(OSFP2,3),(OSFP2,4)]表示该网口关联当前网卡下OSFP1的通道1/2、OSFP2的通道3/4 |
场景3:web新增网口关联处理器、redfish网口资源新增关联处理器端口
1、同意web新增网口关联处理器显示,显示效果如下
2、同意在URL:/UI/Rest/System/NetworkAdapter/:adapterId的PortProperties数组属性下新增以下属性
操作类型:GET
| 字段 | 字段说明 | 类型 |
|---|---|---|
| RelatedProcessorPorts | 关联处理器端口列表 | Array |
| ProcessorSilkText | 处理器丝印信息 | String |
| PortId | 处理器端口的硬件定义标识符 | String |
| IODieId | 处理器端口归属的IO DieId | Number |
3、同意新增以下资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID(已有)
interface:bmc.kepler.Systems.NetworkPort.RelatedItems
变化类型:新增接口、属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| ProcessorPorts | 新增属性 | a(sy) | 只读 R:ReadOnly | 否 | 该网口关联的处理器及其端口。数组元素的第1个参数表示处理器丝印,第2个参数表示处理器端口的逻辑ID。举例:[(“NPU1”, 0),(“NPU1”, 1)]表示该网口关联NPU1的第0、1个端口 |
4、同意新增以下资源协作接口
path:/bmc/kepler/Systems/:SystemID/Processors/NPU/:ID/Ports/:ID
interface:bmc.kepler.Systems.Processor.Port
变化类型:新增path/interface
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| Id | 新增属性 | y | 只读 R:ReadOnly | 否 | 处理器端口逻辑ID,从0开始 | |
| PortId | 新增属性 | s | 只读 R:ReadOnly | 否 | 端口硬件定义标识符 | |
| IODieId | 新增属性 | y | 只读 R:ReadOnly | 否 | 此端口归属的IO DieId |
场景4:redfish光模块资源新增光模块Lane与网口Lane的关联关系
1、同意新增以下资源协作接口
path:/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/Ports/:ID/OpticalModule(已有)
interface:bmc.kepler.Systems.OpticalModule.RelatedItems
变化类型:新增接口、属性
| 属性名称 | 变化类型 | 签名 | 读写权限 | 变化通知 | 属性说明 | 备注 |
|---|---|---|---|---|---|---|
| NetworkPortLanes | 新增属性 | a(yy) | 只读 R:ReadOnly | 否 | 该光模块关联网口的ID以及关联网口的通道ID。数组元素的第1个参数表示网口逻辑ID,第2个参数表示网口通道ID。举例:[(1,1),(2,2),(1,3),(2,4)]表示该光模块关联当前网卡下第1个网口的通道1/3、第2个网口的通道2/4 |
遗留问题
1、/UI/Rest/System/NetworkAdapter/:adapterId不返回光模块Id,而是返回URL
— 已修改为返回URL
2、光模块界面考虑画图或者增加气泡
— 已增加
3、避免在rackmount通过资源协作接口来索引光模块信息,要提升接口访问效率
— 已修改,资源协作接口直接体现部件丝印信息
4、关联关系的属性通过新增interface的方式承载
— 通过后缀添加.RelatedItems新增接口
5、确认是否使用Related还是Connected
— 与产品确认,统一使用Related表述
6、采用ControllerId而不是使用DieId
— 两者范围不同,并且与产品对齐建议采用IO DieId字样






