一、ISSUE链接
web页面加载网络适配器页面时间优化
二、背景
加载网络适配器的时候,原接口(UI/Rest/System/NetworkAdapter/:adapterId
)会一次性获取所有port口的内容,在port口较多时加载时间较久,需要优化,方案是在点击port的时候再加载对应port的内容
三、决策点
决策点1:新增接口:/UI/Rest/System/SimpleNetworkAdapter/:adapterId
URL:/UI/Rest/System/SimpleNetworkAdapter/:adapterId
变化类型:新增北向接口
操作类型: GET
应用场景:web获取网络适配器及其网口基础信息
输出说明:
| 字段 | 字段说明 | 类型 | |
|---|---|---|---|
| DisplayName | 关联部件名称 | String | |
| CardName | 网卡名称 | String | |
| CardModel | 网卡型号 | String | |
| CardManufacturer | 厂商 | String | |
| ChipModel | 芯片型号 | String | |
| ChipManufacturer | 芯片厂商 | String | |
| BoardId | 单板ID | Number | |
| PCBVersion | PCB版本 | String | |
| AssociatedResource | 指定网卡的资源归属 | String | |
| RootBDF | 根BDF | String | |
| PCIeSlotId | PCIe卡slot ID | Number | |
| HotPlugSupported | 是否支持热插拔 | Boolean | |
| ReadyToRemove | 系统是否已准备好移除网卡的指示 | Boolean | |
| OrderlyHotplugCtrlStatus | 通知式热插拔状态 | String(枚举值:Removable(可拔出)、Insertable(可插入)、Inoperable(不可用)、Unknown(未知)) | |
| AdapterId | 适配器ID | String | |
| ComponentUniqueID | 部件唯一ID | Number | |
| Type | 类型 | Number | |
| ParentCardSlotId | 关联上一级卡的槽位号 | Number | |
| BandwidthThresholdPercent | 网络带宽占用率门限 | Number | |
| NetDevFuncCapabilities | 网卡支持的协议 | Number | |
| PortProperties | 网口列表 | Array | |
| PhysicalPortNumber | 网口 | Number | |
| LinkStatus | 链接状态 | String | |
| InterfaceType | 网口类型 | String | |
| MediaType | 介质类型 | String | |
| Name | 网口名称 | String | |
| FCId | 光纤信道ID | String |
决策点2:新增接口:/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid
URL:/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid
变化类型:新增北向接口
操作类型: GET
应用场景:web获取网络适配器网口详细信息
输出说明:
| 字段 | 字段说明 | 类型 | |
|---|---|---|---|
| OpticalModule | 光模块 | ||
| 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 | |
| TxLosState | 发送丢失状态 | Boolean | |
| Temperature.ReadingCelsius | 当前温度 | Nubmber | |
| Temperature.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| Temperature.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| Voltage.ReadingVolts | 当前电压 | Nubmber | |
| Voltage.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| Voltage.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| TXBiasCurrent.ReadingMilliAmperes | 通道当前发送偏置电流 | Array | |
| TXBiasCurrent.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| TXBiasCurrent.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| RXPower.ReadingMilliWatts | 通道当前接收功率 | Array | |
| RXPower.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| RXPower.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| TXPower.ReadingMilliWatts | 通道当前发送功率 | Array | |
| TXPower.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| TXPower.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| NetworkAttribute | 网络属性 | ||
| Name | 名称 | String | |
| SpeedMbps | 速率 | Number | |
| AutoNeg | 是否使能自动协商 | Boolean | |
| FullDuplex | 是否使能全双工状态 | Boolean | |
| RootBDF | 根BDF | String | |
| FirmwareVersion | 固件版本 | String | |
| DriverName | 驱动名称 | String | |
| DriverVersion | 驱动版本 | String | |
| MAC | MAC地址 | String | |
| PermanentPhysicalAddress | 永久物理地址 | String | |
| IPv4Addresses | IPv4地址 | [{Address, Mask,Gateway}] | |
| IPv6Addresses | IPv6地址 | [{Address, Prefix,Gateway}] | |
| VLAN | 虚拟局域网 | {ID, Enable,Priority} | |
| FCId | 光纤信道ID | String | |
| WWNN | 节点号 | String | |
| WWPN | 端口号 | String | |
| LinkSpeedGbps | 连接速率 | Number | |
| LinkView | 链路 | ||
| SwitchName | 网络交换机名称 | String | |
| SwitchConnectionID | 从网络交换机接收到的Chassis ID | String | |
| SwitchPortID | 从网络交换机接收到的端口 ID | String | |
| SwitchVLANID | 从网络交换机接收到的VLAN ID | String | |
| DCB | |||
| Pfcup | DCB 信息中的 Pfcup | Number | |
| Up2cos | DCB 信息中的 Up2cos(各优先级映射到的cos组) | Array | |
| Pgid | DCB 信息中的 Pgid(各优先级带宽组的ID) | Array | |
| PGPCT | DCB 信息中的 PGPCT(各优先级带宽组的带宽比) | Array | |
| PgStrict | DCB 信息中的PgStrict(严格优先级) | Array | |
| Statistics.Received | 统计信息:以太网 | ||
| TotalBytesReceived | 接收总字节数 | String | |
| UnicastPacketsReceived | 接收的单播报文数量 | String | |
| MulticastPacketsReceived | 接收的多播报文数量 | String | |
| BroadcastPacketsReceived | 接收的广播报文数量 | String | |
| FcsReceiveErrors | FCS错误数 | String | |
| AlignmentErrors | 对齐错误数 | String | |
| RuntPacketsReceived | 接收到的超小帧数量 | String | |
| JabberPacketsReceived | 接收到的巨型帧(大于1518 字节)数量 | String | |
| Statistics.Transmitted | 统计信息:以太网 | ||
| TotalBytesTransmitted | 发送总字节数 | String | |
| UnicastPacketsTransmitted | 发送的单播报文数量 | String | |
| MulticastPacketsTransmitted | 发送的多播报文数量 | String | |
| BroadcastPacketsTransmitted | 发送的广播报文数量 | String | |
| SingleCollisionTransmitFrames | 发送的单碰撞帧数量 | String | |
| MultipleCollisionTransmitFrames | 发送的多碰撞帧数量 | String | |
| LateCollisionFrames | 发送的 late 碰撞帧数量 | String | |
| ExcessiveCollisionFrames | 发送的 Excessive 碰撞帧数量 | String |
示例:
内容和原接口 UI/Rest/System/NetworkAdapter/:adapterId 获取的一致
(除 BasicAttribute 已在/UI/Rest/System/SimpleNetworkAdapter/:adapterId中返回)
评审结论
1、对原webrest接口/UI/Rest/System/NetworkAdapter/:adapterId的GET操作响应进行裁剪,裁剪后的响应体:
裁剪后返回的内容如下
| 字段 | 字段说明 | 类型 | |
|---|---|---|---|
| DisplayName | 关联部件名称 | String | |
| CardName | 网卡名称 | String | |
| CardModel | 网卡型号 | String | |
| CardManufacturer | 厂商 | String | |
| ChipModel | 芯片型号 | String | |
| ChipManufacturer | 芯片厂商 | String | |
| BoardId | 单板ID | Number | |
| PCBVersion | PCB版本 | String | |
| AssociatedResource | 指定网卡的资源归属 | String | |
| RootBDF | 根BDF | String | |
| PCIeSlotId | PCIe卡slot ID | Number | |
| HotPlugSupported | 是否支持热插拔 | Boolean | |
| ReadyToRemove | 系统是否已准备好移除网卡的指示 | Boolean | |
| OrderlyHotplugCtrlStatus | 通知式热插拔状态 | String(枚举值:Removable(可拔出)、Insertable(可插入)、Inoperable(不可用)、Unknown(未知)) | |
| AdapterId | 适配器ID | String | |
| ComponentUniqueID | 部件唯一ID | Number | |
| Type | 类型 | Number | |
| ParentCardSlotId | 关联上一级卡的槽位号 | Number | |
| BandwidthThresholdPercent | 网络带宽占用率门限 | Number | |
| NetDevFuncCapabilities | 网卡支持的协议 | Number | |
| PortProperties | 网口列表 | Array | |
| PhysicalPortNumber | 网口 | Number | |
| LinkStatus | 链接状态 | String | |
| InterfaceType | 网口类型 | String | |
| MediaType | 介质类型 | String | |
| Name | 网口名称 | String | |
| FCId | 光纤信道ID | String |
2、同意新增webrest接口/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid,只支持GET操作,响应体包括如下属性:
| 字段 | 字段说明 | 类型 | |
|---|---|---|---|
| OpticalModule | 光模块 | ||
| 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 | |
| TxLosState | 发送丢失状态 | Boolean | |
| Temperature.ReadingCelsius | 当前温度 | Nubmber | |
| Temperature.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| Temperature.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| Voltage.ReadingVolts | 当前电压 | Nubmber | |
| Voltage.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| Voltage.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| TXBiasCurrent.ReadingMilliAmperes | 通道当前发送偏置电流 | Array | |
| TXBiasCurrent.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| TXBiasCurrent.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| RXPower.ReadingMilliWatts | 通道当前接收功率 | Array | |
| RXPower.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| RXPower.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| TXPower.ReadingMilliWatts | 通道当前发送功率 | Array | |
| TXPower.LowerThresholdCritical | 严重告警阈值(下限) | Nubmber | |
| TXPower.UpperThresholdCritical | 严重告警阈值(上限) | Nubmber | |
| NetworkAttribute | 网络属性 | ||
| Name | 名称 | String | |
| SpeedMbps | 速率 | Number | |
| AutoNeg | 是否使能自动协商 | Boolean | |
| FullDuplex | 是否使能全双工状态 | Boolean | |
| RootBDF | 根BDF | String | |
| FirmwareVersion | 固件版本 | String | |
| DriverName | 驱动名称 | String | |
| DriverVersion | 驱动版本 | String | |
| MAC | MAC地址 | String | |
| PermanentPhysicalAddress | 永久物理地址 | String | |
| IPv4Addresses | IPv4地址 | [{Address, Mask,Gateway}] | |
| IPv6Addresses | IPv6地址 | [{Address, Prefix,Gateway}] | |
| VLAN | 虚拟局域网 | {ID, Enable,Priority} | |
| FCId | 光纤信道ID | String | |
| WWNN | 节点号 | String | |
| WWPN | 端口号 | String | |
| LinkSpeedGbps | 连接速率 | Number | |
| LinkView | 链路 | ||
| SwitchName | 网络交换机名称 | String | |
| SwitchConnectionID | 从网络交换机接收到的Chassis ID | String | |
| SwitchPortID | 从网络交换机接收到的端口 ID | String | |
| SwitchVLANID | 从网络交换机接收到的VLAN ID | String | |
| DCB | |||
| Pfcup | DCB 信息中的 Pfcup | Number | |
| Up2cos | DCB 信息中的 Up2cos(各优先级映射到的cos组) | Array | |
| Pgid | DCB 信息中的 Pgid(各优先级带宽组的ID) | Array | |
| PGPCT | DCB 信息中的 PGPCT(各优先级带宽组的带宽比) | Array | |
| PgStrict | DCB 信息中的PgStrict(严格优先级) | Array | |
| Statistics.Received | 统计信息:以太网 | ||
| TotalBytesReceived | 接收总字节数 | String | |
| UnicastPacketsReceived | 接收的单播报文数量 | String | |
| MulticastPacketsReceived | 接收的多播报文数量 | String | |
| BroadcastPacketsReceived | 接收的广播报文数量 | String | |
| FcsReceiveErrors | FCS错误数 | String | |
| AlignmentErrors | 对齐错误数 | String | |
| RuntPacketsReceived | 接收到的超小帧数量 | String | |
| JabberPacketsReceived | 接收到的巨型帧(大于1518 字节)数量 | String | |
| Statistics.Transmitted | 统计信息:以太网 | ||
| TotalBytesTransmitted | 发送总字节数 | String | |
| UnicastPacketsTransmitted | 发送的单播报文数量 | String | |
| MulticastPacketsTransmitted | 发送的多播报文数量 | String | |
| BroadcastPacketsTransmitted | 发送的广播报文数量 | String | |
| SingleCollisionTransmitFrames | 发送的单碰撞帧数量 | String | |
| MultipleCollisionTransmitFrames | 发送的多碰撞帧数量 | String | |
| LateCollisionFrames | 发送的 late 碰撞帧数量 | String | |
| ExcessiveCollisionFrames | 发送的 Excessive 碰撞帧数量 | String |
遗留问题
测试/UI/Rest/System/NetworkAdapter/:adapterId/NetworkPorts/:portid 的响应时间是否满足要求
结论:使用postman测试,响应时间为400ms左右,符合web接口响应时间要求



