SONiC系统管理4
SONiC config_db.json与SNOiC-YANG之间的转换
SONiC系统使用的YANG模型是按照SONiC系统的要求定义的,这样做的好处是既可以利用YANG的工具链,同时也避免了不同模型之间的转换。
SONiC-YANG模型的内容主要是基于SONiC系统的ABNF.json定义的格式和内容,除了在设备管理接口上用来做设备配置以外,SONiC-YANG模型也用于SONiC系统配置信息的校验。
SONiC-YANG模型的编写需要符合以下规则:
1)YANG语法基于RFC7950,一个功能采用一个YANG模型文件,顶层的YANG container和YANG文件的文件名保持相同。
2)必须定义一个采用sonic-{feature}格式名称的顶层容器,如sonic-acl.yang 文件中必须 'sonic-acl’的顶层容器
3)YANG文件的namespace必须是"http://github.com/Azure/{model-name}"。
4)采用修改日期作为revision 标记
5)ABNF.json中的每个小节作为YANG文件中的一个container.
6) YANG文件中leaf节点的name和ABND.json文件中的key字段保持相同
7) 尽量重用IETF已经定义好的数据类型。
8) YANG模型中的数据层级关系和ConfigDB保持一致
8) 。。。