导图社区 yang模型
这张思维导图全面且细致地介绍了Yang模型的相关知识,包括其基本概念、不同类型以及具体的模型细节,有助于深入理解和应用Yang模型。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
yang
介绍
yang全称:Yet Another Next Generation
YIN:Yang Independent Notation Yang的xml表达形式
SND yang
定义设备的北向接口,云杉设备使用同一个模型,数通2.0统一的yang模型
在控制器上描述某个设备款型支持的北向yang能力
MDA yang
裁剪yang,不同设备使用相同yang模型,但功能存在差异,使用裁剪yang来描述具体款型能力
aPaas基于裁剪yang和SND yang做模型协商(SND和裁剪yang取交集)
GND yang
控制器北向模型,是Campus这边自己定义的一套北向模型
多种设备使用同一个北向模型:huawei-ac-nes-device.yang
提供一套界面的单设备配置,一套IR服务间接口,ER,OpenAPI北向接口
GND模型规范
特性:单实例用container;多实例用list
模型文件名称:huawei-nce-e-<featureName>.yang
namespace: urn:huawei:yang:<huawei-nce-e-<featureName>>
prefix:<featureName>
内容顺序:module/namespace/prefix/revision/description/import/typeof/grouping/augment
缩进用2个空格,禁止使用tab缩进
节点名称与设备节点名称一致
新增节点、设备yang拼写错误、名称明显冗余
全小写、数字、中划线
最大长度不超过63个字符
pkg.json
映射(mapping):挂载映射钩子
映射类实现GND映射接口AocMapServiceHookYangMO2Xml
GND->
统一继承BaseYangMo2Xml
映射模版(设备SND)使用VTL语言实现
校验(validate):挂载校验钩子
校验类实现接口ValidateYangMo,统一继承BaseGndValidator
Yang模型
module
模块需要与文件名一致
yang数据模型被定义在yang模块中
一个yang模块包含一个相关定义的集合
submodule
一个模块可分成多个子模块
belongs-to
子模块定义时,通过belongs-to语句表明自己属于哪个主模块
include
主模块引入子模块时,需要使用include语句
当子模块依赖其他子模块时,也需要使用include语句导入其他子模块
namespace
模块命名空间,全球唯一
prefix
在module声明内部使用prefix时,prefix声明定义了当这个模块被引入(import)时候,建议被使用的前缀
在import声明内部使用prefix时,prefix声明定义了当访问引入模块的定义时使用的前缀
import
只能import主模块,不可以是子模块
在import时可以指定被依赖主模块的版本号,也可以不指定(不指定时使用较高版本)
如果一个模块需要使用另一个模块定义的内容:比如:类型定义、数据定义、grouping等
数据节点定义
augment
将yang模型块挂接到目标yang模块的xpath下
container
普通container(NP Container):仅仅作为路径节点使用
Presence Container:不仅作为路径节点,还可代表使能某种业务
presence
代表的容器为存在容器:使能/去使能
leaf
叶子节点。单实例,有值
list
列表节点,多实例,会有子节点,使用key标识一个记录
leaf-list
无子节点,多实例,有值
grouping:定义一个可以被复用的yang模型块
uses
引用定义号的grouping,grouping在uses定义的地方展开
refine:重定义,对grouping内的节点进行修改。
deviation
多产品定制裁剪
声明需要定制裁剪的xpath;前缀默认是目标xpath中最后一个节点的前缀
deviate
定制关键字
not-supported
add
replace
不支持must
delete
feature
定义一个特性
if-feature
声明本节点受对应feature控制
当这个feature声明为不支持时,所有声明了if-feature的节点都变成无效
rpc
定义一个操作,维护操作,不影响配置数据
rpc使用input定义输入参数,output定义输出参数
notification:定义netconf通知的具体格式