背景
新增资源树接口管理交换芯片,增加对交换芯片的调试方法,增加FMEA告警能力和调试接口,以满足BMC对交换芯片的管控.
关联ISSUE
无
整体方案
- Debug目录下新增资源协作路径和接口,用于lsw_main组件实现对单板交换芯片的配置及查询,其中该方法具体实现细节由组件内部进行封装, 开发、测试可通过mdbctl命令完成LSWM相关功能测试。
- kepler目录下新增资源协作接口及路径专门用于lsw_main组件实现对单板交换芯片的配置及查询,其中该方法具体实现细节由组件内部进行封装,客户及现网维护可通过ipmc命令对单板交换芯片进行配置及查询。
评审点
- 新增资源协作接口
bmc.kepler.Debug.LanSwitch.TrunkMgmt,新增对交换芯片Trunk管理能力的调试方法; - 变更资源协作接口
bmc.kepler.Debug.LanSwitch.LswMainDebug,新增对交换芯片ACL规则管理的调试方法,变更IIC读写数据方法的请求参数类型; - 变更资源协作接口
bmc.kepler.Debug.LanSwitch.PortMgmt,新增查询/设置端口默认Vlan的调试方法; - 新增资源协作接口
bmc.kepler.Debug.LanSwitch.FmeaMgmt,新增对交换芯片故障管理的调试方法; - 新增资源协作接口
bmc.kepler.Switch.Event, 新增对交换芯片端口Link故障和芯片故障告警相关属性; - 新增资源协作接口
bmc.kepler.Switch.Fmea,新增对交换芯片故障检测项设置/查询的方法; - 变更资源协作接口
/bmc/kepler/Switches/:id/Ports/:ID新增表示端口Link状态的属性;
详细描述
评审点1:新增资源协作接口 bmc.kepler.Debug.LanSwitch.TrunkMgmt
接口描述:新增接口用于调试交换芯片的Trunk管理能力。
新增方法
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
| CreateTrunk | y | TrunkId: Trunk端口ID | - | - | 创建一个Trunk端口 | BasicSetting |
| DeleteTrunk | y | TrunkId: Trunk端口ID | - | - | 删除一个Trunk端口 | BasicSetting |
| GetTrunk | - | - | ay | TrunkId: Trunk端口ID列表 | 查询已创建的Trunk端口ID | ReadOnly |
| GetTrunkPorts | y | TrunkId: Trunk端口ID | as | Ports: 端口列表 | 获取指定Trunk端口的成员端口列表 | ReadOnly |
| GetAllTrunkPorts | - | - | a(yas) | TrunkId: Trunk端口ID Ports: 端口列表 |
获取所有Trunk端口的成员端口列表 | ReadOnly |
| AddPorts2Trunk | yas | TrunkId: Trunk端口ID Ports: 端口列表 |
- | - | 添加成员端口到Trunk | BasicSetting |
| DelPortsFromTrunk | yas | TrunkId: Trunk端口ID Ports: 端口列表 |
- | - | 从Trunk删除成员端口 | BasicSetting |
| GetLoadBalanceMode | yy | TrunkId: Trunk端口ID PktType: 报文类型 |
u | Mode: 负载均衡模式 | 获取Trunk端口指定报文类型的负载均衡模式 | ReadOnly |
| SetLoadBalanceMode | yyu | TrunkId: Trunk端口ID PktType: 报文类型,L2:0 L3:1 L4:2 Mode: 负载均衡模式 |
- | - | 设置Trunk端口指定报文类型的负载均衡模式 | BasicSetting |
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Debug/LanSwitch | 新增对交换芯片Trunk管理的调试方法 | 不涉及重名属性,无影响 | 不涉及持久化,无影响 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
评审点2:变更资源协作接口 bmc.kepler.Debug.LanSwitch.LswMainDebug
变更描述:
- 接口承载了交换芯片pcie通道、phy等模块的调试功能,新增方法属于调试功能的一部分;
IICReadData和IICWriteData请求签名变更使寄存器地址参数的数据宽度有U32调整为U64,在保证原功能不受影响的基础上,具备更好的可扩展性;
接口链接:bmc.kepler.Debug.LanSwitch.LswMainDebug接口定义
变更方法
| 变更类型 | 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 | 变更影响 |
|---|---|---|---|---|---|---|---|---|
| 新增 | ExcuteLswCmd | s | CmdName: 维测命令行具体命令 | - | - | 执行维测命令 | BasicSetting | 新增方法,无影响 |
| 新增 | SetAclTable | uussuuss | AclNum:Acl编号 RuleId:Acl规则索引 SMac:源MAC DMac:目的MAC EthType:以太类型 VlanId:Vlan Id Port:端口名称 RuleAction:匹配动作 |
配置ACL规则 | BasicSetting | 新增方法,无影响 | ||
| 新增 | GetAclTable | s | AclNum:Acl编号 | s | AclTable: ACL表 | 获取ACL表 | ReadOnly | 新增方法,无影响 |
| 新增 | DelAclRule | uu | AclNum:Acl编号 RuleId:Acl规则索引 |
删除指定ACL规则 | BasicSetting | 新增方法,无影响 | ||
| 新增 | GetAclStatistics | s | AclNum:Acl编号 | s | Statistics:统计数 | 获取ACL规则统计 | ReadOnly | 新增方法,无影响 |
| 新增 | ClearAclStatistics | uu | AclNum:Acl编号 RuleId:Acl规则索引 |
清除ACL规则统计 | BasicSetting | 新增方法,无影响 | ||
| 新增 | GetModuleStatistics | ss | ModuleName:模块名称 SubId:模块内部索引 |
s | Statistics: 模块统计 | 获取指定模块统计 | ReadOnly | 新增方法,无影响 |
| 变更 | IICReadData | t | RegAddr: 寄存器地址 | u | 读取的寄存器的值 | 通过IIC读取寄存器 | BasicSetting | 请求参数签名由u改为t,无业务影响 |
| 变更 | IICWriteData | tu | RegAddr: 寄存器地址Value: 写入的值 | u | ErrorType:硬件错误类型 | 通过IIC写寄存器 | BasicSetting | 请求参数签名由u改为t,无业务影响 |
变更接口影响
| 路径 | 变更接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Debug/LanSwitch | 1. 新增方法无影响2. 变更IICReadData和IICWriteData的请求签名,无业务影响 |
不涉及重名属性,无影响 | 不涉及新增和废弃主键,无兼容性问题 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
评审点3:变更资源协作接口 bmc.kepler.Debug.LanSwitch.PortMgmt
变更描述:接口承载了交换芯片端口管理的调试功能,新增方法属于调试功能的一部分;
接口链接:bmc.kepler.Debug.LanSwitch.PortMgmt接口定义
变更方法
| 变更类型 | 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 | 变更影响 |
|---|---|---|---|---|---|---|---|---|
| 新增 | SetPortDefaultVlan | su | Port:端口名称 Pvid:端口默认PVID |
设置端口的PVID | BasicSetting | 新增方法,无影响 | ||
| 新增 | GetPortDefaultVlan | s | Port:端口名称 | s | Pvid: 端口默认PVID | 获取端口的PVID | ReadOnly | 新增方法,无影响 |
| 新增 | GetPortMTU | s | Port:端口名称 | s | MTU: 端口MTU | 获取端口的MTU | ReadOnly | 新增方法,无影响 |
变更接口影响
| 路径 | 变更接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Debug/LanSwitch | 1. 新增方法无影响 | 不涉及重名属性,无影响 | 不涉及新增和废弃主键,无兼容性问题 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
评审点4:新增资源协作接口 bmc.kepler.Debug.LanSwitch.PatrolItemMgmt
接口描述:新增接口用于调试交换芯片的故障管理能力。
新增方法
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
| GetPatrolItemTaskInfo | s | GroupId:检测项GroupId信息 | s | PatrolItemTaskInfo: 检测项详细信息 | 获取检测项信息 | ReadOnly |
| SetPatrolItemTaskEnable | su | TaskName:检测项名字 Enable:检测项使能状态 |
设置检测项使能状态 | BasicSetting | ||
| GetPatrolItemGroupInfo | - | - | s | GroupInfo: 检测项GroupID信息 | 获取检测项GroupID列表 | ReadOnly |
| SetPatrolItemTaskPeriod | sd | TaskName:检测项名字 Time:检测项运行周期 |
设置检测项检测周期 | BasicSetting | ||
| SetPatrolItemTaskPara | suu | TaskName:检测项名字 Pos:检测项参数位置, Val: 检测项参数 |
设置检测项参数 | BasicSetting | ||
| SetPatrolItemTaskMock | su | TaskName:检测项名字 MockMode:检测项打桩信息 |
设置检测项打桩模式 | BasicSetting | ||
| SetPatrolItemAlarmThreshold | su | TaskName:检测项名字 Threshold:检测项告警上报门限 |
设置检测项告警上报门限 | BasicSetting | ||
| SetPatrolItemClearanceThreshold | su | TaskName:检测项名字 Threshold:检测项告警恢复门限 |
设置检测项告警恢复门限 | BasicSetting | ||
| SetFmeaHealThreshold | su | TaskName:检测项名字 Threshold:检测项告警自愈次数 |
设置检测项告警自愈次数 | BasicSetting | ||
| SetAlarmSuppressionPeriod | su | TaskName:检测项名字 Time:检测项告警抑制检测周期 |
设置检测项告警抑制检测周期 | BasicSetting | ||
| SetAlarmSuppressionRatio | su | TaskName:检测项名字 Threshold:检测项告警抑制倍率 |
设置检测项告警抑制倍率 | BasicSetting | ||
| SetAlarmSuppressionThreshold | su | TaskName:检测项名字 Threshold:检测项告警抑制门限 |
设置检测项告警抑制门限 | BasicSetting | ||
| SetAlarmClearMaxThreshold | su | TaskName:检测项名字 Threshold:检测项告警恢复最大门限 |
设置检测项告警恢复最大门限, 在告警抑制场景限制告警恢复门限无限变大. | BasicSetting |
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Debug/LanSwitch | 新增接口用于调试交换芯片的故障管理能力 | 不涉及重名属性,无影响 | 不涉及持久化,无影响 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
评审点5:新增资源协作接口 bmc.kepler.Switch.Event
接口描述:新增接口用于支撑交换芯片故障事件上报的能力.
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | | | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|---|
| LswFault | u | False | true | 私有属性,用于LSWFAULT告警,默认值为0 | R | CSR | 复位持久化 | false | |
| LswError | u | False | true | 私有属性,用于LSWERROR告警,默认值为0 | R | CSR | 复位持久化 | false |
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Switch/:id | 新增接口用于交换芯片的故障事件信息上报 | 不涉及重名属性,无影响 | 复位持久化,无影响 | 无影响 |
评审点6:新增资源协作接口 bmc.kepler.Switch.PatrolItem
接口描述:新增接口用于交换芯片故障检测项设置/查询的能力
新增方法
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 | |
|---|---|---|---|---|---|---|---|
| GetPatrolItemTable | s | GroupId: 检测项GroupId信息 | s | PatrolItemTable: 检测项详细信息 | 获取检测项信息 | ReadOnly | |
| SetPatrolItemEnabled | suu | TaskName: 检测项名字 Enable: 检测项使能状态 PersistType: 持久化类型,0:不做持久化, 1:掉电持久化 |
设置检测项使能状态 | BasicSetting |
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Switch/:id | 新增接口用于调试交换芯片的故障管理能力 | 不涉及重名属性,无影响 | 可选持久化类型,无影响 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
评审点7:变更资源协作接口 /bmc/kepler/Switches/:id/Ports/:ID
接口描述:新增接口用于交换芯片故障检测项设置/查询的能力
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | | | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|---|
| LinkStatus | y | False | true | 私有属性,用于交换芯片端口LinkDown告警,默认值为1 | R | CSR | 复位持久化 | false | |
| BFDStatus | y | False | true | 私有属性,用于交换芯片端口BFD协议检测状态告警,默认值为1 | R | CSR | 复位持久化 | false | |
| LLDPStatus | y | False | true | 私有属性,用于交换芯片端口LLDP协议检测状态告警,默认值为1 | R | CSR | 复位持久化 | false | |
| LACPStatus | y | False | true | 私有属性,用于交换芯片端口LACP协议检测状态告警,默认值为1 | R | CSR | 复位持久化 | false |
新增接口影响
| 路径 | 新增接口影响 | CSR配置影响 | 持久化影响 | 其他影响 |
|---|---|---|---|---|
| /bmc/kepler/Switches/:id/Ports/:ID | 新增属性用于调试交换芯片的端口故障管理能力 | 不涉及重名属性,无影响 | 可选持久化类型,无影响 | 需实现新增方法,属性当前暂不实现,仅提供默认值 |
是否准备好AI预审
是
评审结论
同意新增资源协作接口bmc.kepler.Debug.LanSwitch.TrunkMgmt,新增对交换芯片Trunk管理能力的调试方法;
同意变更资源协作接口bmc.kepler.Debug.LanSwitch.LswMainDebug,新增对交换芯片ACL规则管理的调试方法,变更IIC读写数据方法的请求参数类型;
同意变更资源协作接口bmc.kepler.Debug.LanSwitch.PortMgmt,新增查询/设置端口默认Vlan的调试方法;
同意新增资源协作接口bmc.kepler.Debug.LanSwitch.FmeaMgmt,新增对交换芯片故障管理的调试方法;
同意新增资源协作接口bmc.kepler.Switch.Event, 新增对交换芯片端口Link故障和芯片故障告警相关属性;
同意新增资源协作接口bmc.kepler.Switch.Fmea,新增对交换芯片故障检测项设置/查询的方法;
同意变更资源协作接口 /bmc/kepler/Switches/:id/Ports/:ID 新增表示端口Link状态的属性;
遗留问题
1 LswMain接口名字重新命名LanSwitch
2 方法的成功与否优先使用错误引擎, 错误返回空
3 PktType: 报文类型 详细说明枚举类型
4 GetAllTrunkPorts响应签名应该是a[yas]
5 DiagCmd方法命名为ExcuteLswCmd,请求参数描述需要命名CmdName
6 GetAclTable的请求参数修改为U
7 GetPortMtu修改为GetPortMTU
8 统一对FMEA重新命令 PatrolItem
9 SetAlarmClearMaxThreshold说明和告警恢复门限的关系
10 访问权限统一限制为R
11 只读/变化通知修改为true
12 端口告警属性新增路径/bmc/kepler/Switches/:id/Ports/:ID
13 GetFemaInfo修改GetPatrolItemTable
14 GetFemaInfo返回值修改为json
15 PersistType持久化类型枚举详细说明
16 SetFmeaEnable修改为SetFmeaEnabled