zoukankan      html  css  js  c++  java
  • 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操作获取。

  • 相关阅读:
    eNSP——配置Trunk接口
    eNSP——VLAN基础配置和Access
    C# WinForm多线程(三)---- Control.Invoke[转]
    C# 在字符串前加了$,这个 dollar 符号有什么用?美元符号是什么意思
    软件工程领域工程硕士培养方案
    C#中SHOWDIALOG()与SHOW()的区别_模态与非模态_销毁与释放
    HTTP状态代码code(错误代码集合)返回错误代码集合
    OpenCV26HoughCircles 霍夫圆变换原理及圆检测
    OpenCV25-判断一个点是否在多边形的内部_点多边形测试pointPolygonTest
    OpenCV24霍夫直线变换API介绍_3.1.0
  • 原文地址:https://www.cnblogs.com/tongyishu/p/11811079.html
Copyright © 2011-2022 走看看