【已评审】新增CSR对象,支持snmp功能灵活配置

背景

  1. 双主机场景下,SNMP Agent功能,不再使用,需要裁剪
  2. 双主机场景不安装BMA,不支持veth功能,因此无需支持SNMP trap上报的带内转发功能
    针对以上两点功能需要提供csr配置,并提供公共机制,供裁剪使用

关联ISSUE

整体方案

方案一

在platform.sr中新增对象BMCConfig作为bmc配置裁剪对象配置,对象中新增SNMPAgentSupported 属性,用于描述是否支持snmp agent功能;新增SNMPTrapBobSupported属性,用于描述是否支持带内转发功能;新增SNMPTrapSupported 属性,用于描述是否支持trap功能,同时将属性上树,供北向接口使用,支持后续新增bmc裁剪配置

方案二(推荐)

在platform.sr中新增对象SNMPAgentConfig,对象中新增SnmpAgentSupported属性,用于描述是否支持snmp agent功能;新增SNMPTrapConfig对象,新增SNMPTrapBobSupported属性,用于描述是否支持snmp trap带内转发功能,新增SNMPTrapSupported属性,用于描述是否支持snmp trap功能,同时将属性上树,供北向接口使用

详细描述

方案一

变化类型:platform.sr中新增对象BMCConfig
应用场景:用于bmc功能裁剪
持久化类型: 不持久化
操作权限:ReadOnly

属性名称 变化类型 签名 读写权限 持久化 默认值 变化通知 属性说明 属性约束
SNMPAgentSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持snmp agent功能
SNMPTrapBobSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持snmp trap带内转发功能
SNMPTrapSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持Trap功能

platform.sr配置示例:

"BMCConfig": { 
    "SNMPAgentSupported ": true,
    "SNMPTrapBobSupported": true,
    "SNMPTrapSupported ": true
    ...
}

优点:
①对bmc裁剪配置统一管理,避免霰弹式修改

缺点:
①该配置需要上树,供北向接口使用,需要由单独组件来进行管理,统一管理之后存在时序问题及依赖问题,可能导致裁剪策略不生效
②当前无合适组件承载该配置上树


方案二(推荐)

变化类型:platform.sr中新增对象NetworkProtocolConfig
应用场景:用于双主机场景snmp agent相关功能裁剪
持久化类型: 不持久化
操作权限:ReadOnly

属性名称 变化类型 签名 读写权限 持久化 默认值 变化通知 属性说明 属性约束
SNMPSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持snmp agent功能

platform.sr配置示例:

"NetworkProtocolConfig": { 
    "SNMPSupported": true
}

变化类型:platform.sr中新增对象EventReportConfig
应用场景:用于双主机场景snmp trap相关功能裁剪
持久化类型: 不持久化
操作权限:ReadOnly

属性名称 变化类型 签名 读写权限 持久化 默认值 变化通知 属性说明 属性约束
SNMPTrapBobSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持带内转发功能
SNMPTrapSupported 新增属性 b 只读
read:ReadOnly
不持久化 true false 是否支持Trap功能

platform.sr配置示例:

"EventReportConfig": { 
    "SNMPTrapBobSupported": true,
    "SNMPTrapSupported": true
}

优点:
①仅与自身组件配置相关,资源树上树对业务影响可控

评审结论

1、同意方案2,新增对象NetworkProtocolConfig、EventReportConfig,用于snmp相关功能裁剪