【已评审】web页面加载网络适配器页面时间优化

一、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接口响应时间要求