yang学习

Ø  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操作获取。

原文地址:https://www.cnblogs.com/tongyishu/p/11811079.html

时间: 2024-11-08 23:46:01

yang学习的相关文章

从零开始学OpenDaylight之六:YANG

一.YANG基础  1. 什么是YANG? YANG 是随着 NETCONF 协议而产生的数据建模语言,由RFC6020定义,类似于XML Schema和SNMP的SMI, 具有良好的可读性和可扩展性.其关键特性: ● 服务和网元数据模型vs信息模型(UML)    - YANG是数据建模语言● 领域专用语言    - 专为网络配置而生● 网元配置建模    - Yang is rich enough to model NE configuration (often follow the CLI

随时更新———个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客

目标检測.识别.分类.特征点的提取 David Lowe:Sift算法的发明者,天才. Rob Hess:sift的源代码OpenSift的作者,个人主页上有openSift的下载链接.Opencv中sift的实现.也是參考这个. Koen van de Sande:作者给出了sift,densesift,colorsift等等经常使用的特征点程序.输出格式见个人主页说明,当然这个特征点的算法,在Opencv中都有实现. Ivan Laptev:作者给出了物体检測等方面丰富C\C++源代码,及部

scala 学习笔记(04) OOP(上)

一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person { var name: String = _ /** * 从构造器 * @param name */ def this(name: String) = { this //注意:从构造器,必须先调用主构造器 this.name = name; } override def toString = { "

【转】朱兆祺带你一步一步学习嵌入式(连载)

原文网址:http://bbs.elecfans.com/jishu_357014_2_1.html#comment_top  从最初涉及嵌入式Linux开始到现在,深深的知道嵌入式的每一步学习都是举步维艰.从去年11月份开始,我就着手整理各种学习资料,希望推动嵌入式学习的前进贡献自己微不足道的一份力量.从去年到现在,将C语言的学习经验整理成<攻破C语言笔试与机试陷阱及难点>(现在仍在更新),这份资料已经在电子发烧友论坛的单片机论坛连载(http://bbs.elecfans.com/jish

JavaWeb学习笔记五 会话技术Cookie&amp;Session

什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器记住客户端状态(区分客户端). 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的.会话技术分为Cookie和Session: Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除

深度学习之图像修复

图像修复问题就是还原图像中缺失的部分.基于图像中已有信息,去还原图像中的缺失部分. 从直观上看,这个问题能否解决是看情况的,还原的关键在于剩余信息的使用,剩余信息中如果存在有缺失部分信息的patch,那么剩下的问题就是从剩余信息中判断缺失部分与哪一部分相似.而这,就是现在比较流行的PatchMatch的基本思想. CNN出现以来,有若干比较重要的进展: 被证明有能力在CNN的高层捕捉到图像的抽象信息. Perceptual Loss的出现证明了一个训练好的CNN网络的feature map可以很

目标跟踪学习笔记1

首先提供几篇关于粒子滤波算法的博客:http://www.cnblogs.com/yangyangcv/archive/2010/05/23/1742263.html 这篇博客比较通俗易懂,简单的介绍了粒子滤波的基本工作思想和步骤.http://www.cnblogs.com/lwbaptx/archive/2011/10/20/2218419.html这篇博客用的是opencv1.0,实现的功能是用粒子滤波跟踪鼠标轨迹,有视频演示,效果还不错.http://blog.csdn.net/yang

疯狂Java学习笔记(51)-----------面试题

自己做了一点面试题,感觉很经典,分享给大家,发现还有很多东西需要学! 一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答:   1.String是字符串常量,StringBuffer和StringBuilder都是字符串变量.后两者的字符内容可变,而前者创建后内容不可变. 2.String不可变是因为在JDK中String类被声明为一个final类. 3.StringBuffer是线程安全的,而StringBuilder是非

10月学习总结:选择合适的框架进行快速开发

前言: 9月没有写学习总结,9月份事情有点多,平时学习时间也太少,工作中也只是重复造了一些轮子,没啥可记录的,就没有总结了,直接大跃进,进行10月总结,如果10月再不总结,那就是大大跃进到11月了,哈哈哈. 一.选择合适的框架进行快速开发 任务简介: 10月份接了一项任务,做一个宝宝风采大赛,参数人员上传照片,拉亲朋好友进行投票,依据名次有各种奖励. 过程描述: 我作为主负责开发,一个前端做html辅助我.看了一下设计图,我们两个人,评估了一下项目,大概一周之内可以完成.想法总是很美好,现实实在