Ø  Yang 是对NETCONF数据模型、操作进行建模,覆盖NETCONF协议的操作层和内容层

Ø  模块和子模块

  • 模块是yang中定义的基本单位。
  • 模块定义单个数据模型,它可以定义完整的聚合模型,或者使用其他节点扩充现有的数据类型。
  • 子模块是为模块提供定义的部分模块。模块可以包含任意数量的子模块。但每个子模块归属于一个模块。
  • 所有标准模块和子模块的名字必须是唯一的。
  • 模块使用"include"语句包含其子模块,使用"import"语句导入其他模块。
  • 当引用外部模块中的定义时,必须使用本地定义的前缀,后跟":"加部标识符。
  • YANG模块和子模块通常存储在文件中,每个文件存储一个模块或子模块。文件名形式为 module-or-submodule-name ['@' revision-date] ( '.yang' / '.yin' )

Ø  模块的标准布局:

module <module-name> {

// header information

<yang-version statement>

<namespace statement>

<prefix statement>

// linkage statements

<import statements>

<include statements>

// meta information

<organization statement>

<contact statement>

<description statement>

<reference statement>

// revision history

<revision statements>

// module definitions

<other statements>

}

Ø  子模块的标准布局:

submodule <module-name> {

<yang-version statement>

// module identification

<belongs-to statement>

// linkage statements

<import statements>

<include statements>

// meta information

<organization statement>

<contact statement>

<description statement>

<reference statement>

// revision history

<revision statements>

// module definitions

<other statements>

}

Ø  布局中字段的解释

“yang-version”语句指定在开发模块时使用哪种版本的YANG语言。

“namespace”语句定义了该模块所有已定义的合法的标识符的XML命名空间,grouping 内定义的数据节点标识符除外。

“prefix”语句用于定义与模块及其名称空间关联的前缀。

"organization"语句声明定义了负责该模块的一方。

"revision"语句指定模块的编辑修订历史,包括初始修订。

"contact"语句提供模块的联系信息。

Ø  Yang内嵌数据类型

Ø  Yang数据建节点类型

leaf nodes

一个leaf nodes包含了像Integer这样的简单数据,并且没有子节点

leaf-list nodes

一系列的leaf nodes,每个leaf都有特定类型的值

container node

  将相关的节点归总到一个subtree就是container,只能包含节点,没有值。一个container可能会包含任何类型的任何数量的子节点(包括leafs,lists,leaf-lists         以及       containers)。  

list nodes  

      定义了一系列的列表项,通过名为key的leaf值唯一确定,可以包含任意类型、任意数目的子节点(包括leafs,lists,containers)

typedef

定义衍生类型

grouping

可重用节点组

refine

重写特定的声明覆盖原有grouping的定义

choice case

申明分离不相容的节点

augment   

声明定义了在数据模型树形结构中,新的节点插入的位置。

when

声明了新节点生效的时间。  

RPC                   

定义声明RPC的输入输出参数

notification   

用于为netconf的notification做内容建模

通过以上四种类型节点的组合,即可定义module。

节点带有"config false"标签时,他的子结构就打上了state data的标签,不可配置,能通过netconf操作获取。

yang学习的更多相关文章

  1. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  2. docker学习(5) 在mac中创建mysql docker容器

    github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...

  3. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  4. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  5. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  6. mySql 基本语法学习笔记

     create database if not exists yang;    drop database if exists yang;     show databases;   show dat ...

  7. scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类

    一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...

  8. Spring 4.0.2 学习笔记(2) - 自动注入及properties文件的使用

    接上一篇继续, 学习了基本的注入使用后,可能有人会跟我一样觉得有点不爽,Programmer的每个Field,至少要有一个setter,这样spring配置文件中才能用<property> ...

  9. Spring 4.0.2 学习笔记(1) - 最基本的注入

    1. 添加maven支持 <dependency> <groupId>org.springframework</groupId> <artifactId> ...

随机推荐

  1. 汇编语言——用DOSBox的debug查看CPU和内存 & 用机器指令和汇编指令编程

    实验一 查看CPU和内存,用机器指令和汇编指令编程   实验目的 了解什么是Debug,以及Debug中需要用的一些功能 R:查看.改变CPU寄存器的内容 D:查看内存中的内容 E:改写内存中的内容 ...

  2. C#学习笔记一(概念,对象与类型,继承)

    一.基础 1.CLR为公共语言运行库,类似于JVM 2..NET Framwork是一个独立发布的程序包,其包含了CLR,类库及相关的语言编辑器等工具,类似于JDK,除了C#,还有其他几种语言在CLR ...

  3. spring boot 数据源配置YAML格式

    spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf- ...

  4. 2019JAVA第七次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.25 评分等级 实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)1 ...

  5. 【转帖】联芸Maxio展示国产PCIe SSD主控:速度可达3.5GB/s

    联芸Maxio展示国产PCIe SSD主控:速度可达3.5GB/s https://www.cnbeta.com/articles/tech/855223.htm 国产主控 紫光做国产颗粒 国产器件对 ...

  6. dhcp协议简介

    协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作 ...

  7. python告诉你啥是佩奇

    被<啥是佩奇>这支广告片刷屏了. 佩奇明明是个喜剧角色, 但是看哭了所有人. <啥是佩奇>??? 效果图如下: # -*- coding:utf-8 -*- from turt ...

  8. JS判断当前页面是在 QQ客户端/微信客户端/iOS浏览器/Android浏览器/PC客户端

    browser.js var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appV ...

  9. Java获取文件的后缀名。

    /** * 详细步骤 */ private static void test1() { //获取文件的原始名称 String originalFilename = "tim.g (1).jp ...

  10. httpClient4.5.2工具类总结

    使用背景: 因项目使用非结构化存储,http相关jar包统一升级到httpClient4.5.2,查阅相关文档总结如下,以咨分享,望不吝指教. 依赖jar包 httpclient-4.5.2.jar. ...