【已评审】新增交换芯片协议栈资源树接口和方法

背景

交换芯片CPPI应用涉及传输协议栈报文进行探测和特定应用,需增加对相关协议栈报文的资源树的接口,以满足协议栈应用。

关联ISSUE

整体方案

  • /bmc/kepler/Debug/LanSwitch路径下新增接口,用于lsw_main组件实现对单板交换芯片内部协议栈功能进行配置及查询,其中方法具体实现细节由组件内部进行封装, 开发、测试可通过mdbctl命令完成相关功能测试。

  • /bmc/kepler/Switches/:id路径下新增新增资源协作接口用于lsw_main组件实现对单板交换芯片内部协议栈功能进行配置及查询,其中方法具体实现细节由组件内部进行封装,客户及现网维护可通过ipmcset/ipmcget命令对单板交换芯片协议栈进行配置及查询。

评审点1:新增bmc.kepler.Debug.LanSwitch.Protocol资源协作接口

详细描述

在"/bmc/kepler/Debug/LanSwitch"下,新增资源协作接口bmc.kepler.Debug.LanSwitch.Protocol及方法
资源path: /bmc/kepler/Debug/LanSwitch
资源interface: bmc.kepler.Debug.LanSwitch.Protocol
变化类型:新增interface
应用场景:新增对交换芯片协议栈模块的调试方法

方法评审点

编号 方法名称 请求签名 请求参数描述 响应签名 响应参数描述 方法描述 访问权限
1 SetLldpParam uuuu TxInterval:lldp报文发送时间间隔
Delay :发送延时
Multiplier :时间倍数
FastCount: 快发报文个数
NA 错误引擎返回错误 设置LLDP协议参数 BasicSetting
2 SetLacpParam su TrunkName: Trunk名称
RxTimeout: lacp报文接收超时时间
NA 错误引擎返回错误 设置LACP协议参数 BasicSetting
3 SetBfdParam uuuu TxInterval:bfd报文发送时间间隔
RxInterval:bfd报文接收时间间隔
Multiplier:检测倍数
WtrValue:bfd会话的等待恢复时间
NA 错误引擎返回错误 设置BFD协议参数 BasicSetting

评审点2:新增资源协作路径:/bmc/kepler/Switches/:id/Protocol/:ID

新增 interface:bmc.kepler.Switches.Protocol

详细描述

在"/bmc/kepler/Switches/:id"下,新增资源路径/bmc/kepler/Switches/:id/Protocol/:ID
新增 interface:bmc.kepler.Switches.Protocol
变化类型:新增资源路径
应用场景:新增商用命令对交换芯片协议栈模块进行开关及报文统计查询的调试方法

新增属性描述如下:

属性名称 变化类型 签名 读写&权限 持久化 变化通知 属性说明 接口约束
Type 新增属性 s 只读R: ReadOnly 不持久化 false 协议类型: bfd、lldp、lacp

新增方法描述如下:

编号 方法名称 请求签名 请求参数描述 响应签名 响应参数描述 方法描述 访问权限
1 SetEnable s Enable: 协议使能状态,disable or enable NA 错误引擎返回错误 对协议设置禁能/使能 BasicSetting
2 GetParam s PortName: 端口名称 as Param:协议参数信息 根据端口名称获取对应协议参数信息 ReadOnly
3 ResetMetric s PortName: 端口名称 NA 错误引擎返回错误 重置协议统计 BasicSetting
4 GetMetric s PortName: 端口名称 as 返回协议报文统计信息 获取协议报文统计 ReadOnly

评审点3:变更资源协作接口 bmc.kepler.Switch.Port

在资源协作接口bmc.kepler.Switch.Port下新增属性和方法
资源path: /bmc/kepler/Switches/:id/Ports/:ID
资源interface: bmc.kepler.Switch.Port
变化类型:新增方法
应用场景:新增对交换芯片端口相关信息获取方法

变更方法

变更类型 方法名称 请求签名 请求参数描述 响应签名 响应参数描述 方法描述 访问权限 变更影响
新增 GetPortAttrs s Port:端口名称 ussuussssss PortId: u; PortName: s; MaxSpeed: s; Mtu:u; Pvid:u; LoopMode: s; LinkStatus: s;PortEnable:s; Autonego:s; Duplex: s; WorkRate:s 获取本端交换芯片端口属性 ReadOnly 新增方法,无影响
新增 GetRemotePortAttrs s Port:端口名称 ussuussssss PortId: u; PortName: s; MaxSpeed: s; Mtu:u; Pvid:u; LoopMode: s; LinkStatus: s;PortEnable:s; Autonego:s; Duplex: s; WorkRate:s 获取远端交换芯片端口属性 ReadOnly 新增方法,无影响
新增 GetRemotePortStatistics s Port:端口名称 as 端口各项统计 获取远端交换芯片端口统计 ReadOnly 新增方法,无影响

变更接口影响

路径 变更接口影响 CSR配置影响 持久化影响 其他影响
/bmc/kepler/Switches/:id/Ports/:ID 新增方法无影响 不涉及重名属性,无影响 不涉及新增和废弃主键,无兼容性问题 需实现新增方法

评审结论

  1. 同意新增 bmc.kepler.Debug.LanSwitch.Protocol资源协作接口以及该资源树下SetLldpParam,SetLacpParam,SetBfdParam 3个方法。
  2. 同意新增资源树路径/bmc/kepler/Switches/:id/Protocol/:ID以及该路径下的/bmc.kepler.Switches.Protocol接口;同意在bmc.kepler.Switches.Protocol接口下新增属性type以及SetEnable、GetParam、ResetMetric 以及GetMetric 4个方法。
  3. 同意资源协作接口bmc.kepler.Switch.Port下新增GetPortAttrs、GetRemotePortAttrs、GetRemotePortStatistics方法。

遗留问题

  1. 返回值使用错误引擎
  2. 协议栈按照路径接口划分
  3. protocalInfo返回信息结构体,Json,string
  4. 了解下redfish标准的协议统计
    7.clearProtocol参考redfish命名
  5. 细化端口属性返回数据结构