yang文件語法格式


前言

NETCONF(Network Configuration Protocol),該協議的配置功能非常強大,同時兼顧監控和故障管理,安全驗證和訪問控制,得到業界的一致認可,被廣泛用來配置網絡

NETCONF協議分為傳輸層、RPC層、操作層和內容層。其中,內容層是唯一沒有標准化的層,於是一種新的建模語言YANG產生了,它的目標是對NETCONF數據模型、操作進行建模,覆蓋NETCONF協議的操作層和內容層

 

以下詳細介紹yang文件的主要元素與語法格式

一、Modules與Submodules

  一個module包含三種類型的聲明  

  • module-header statement(模塊頭聲明) —— 描述了該module,給出了module相關的信息。
  • revision statement(版本聲明)—— 描述了該module的歷史信息。
  • definition statement(定義聲明) —— 定義了數據模型的內容部分。

二、yang數據建模的節點類型

2.1  leaf nodes 

  一個leaf nodes包含了像integer或string這樣的簡單數據,並且沒有子節點,如:

  leaf host-name{

    type string;

    description "hostname";

  }

2.2  leaf-list nodes

  一系列的leaf nodes,每個leaf都有特定類型的值

2.3  container node

  將相關的節點歸總到一個subtree就是container,只能包含節點,沒有值。一個container可能會包含任何類型的任何數量的子節點(包括leafs,lists,leaf-lists以及containers)。  

  yang表示:

container system {
     container login {
         leaf message {
             type string;
             description
                 "Message given at start of login session";
         }
     }
 }

2.4  list nodes  

  定義了一系列的列表項,通過名為key的leaf值唯一確定,可以包含任意類型、任意數目的子節點(包括leafs,lists,containers)

通過以上四種類型節點的組合,即可定義module

三、  state node  

    節點帶有"config false"標簽時,他的子結構就打上了state data的標簽,不可配置,能通過netconf操作獲取

四、  內嵌類型

   +---------------------+-------------------------------------+
   | Name                | Description                         |
   +---------------------+-------------------------------------+
   | binary              | Any binary data                     |
   | bits                | A set of bits or flags              |
   | boolean             | "true" or "false"                   |
   | decimal64           | 64-bit signed decimal number        |
   | empty               | A leaf that does not have any value |
   | enumeration         | Enumerated strings                  |
   | identityref         | A reference to an abstract identity |
   | instance-identifier | References a data tree node         |
   | int8                | 8-bit signed integer                |
   | int16               | 16-bit signed integer               |
   | int32               | 32-bit signed integer               |
   | int64               | 64-bit signed integer               |
   | leafref             | A reference to a leaf instance      |
   | string              | Human-readable string               |
   | uint8               | 8-bit unsigned integer              |
   | uint16              | 16-bit unsigned integer             |
   | uint32              | 32-bit unsigned integer             |
   | uint64              | 64-bit unsigned integer             |
   | union               | Choice of member types              |
   +---------------------+-------------------------------------+

五、
  typedef     定義衍生類型

  grouping    可重用節點組

  refine     重定義  重寫特定的聲明覆蓋原有grouping的定義

  choice case   申明分離不相容的節點,類似於java中的switch case

  augment     “augment”聲明定義了在數據模型樹形結構中,新的節點插入的位置。“when”聲明了新節點生效的時間。  

  RPC(Remote Procedure Call)  yang文件可以定義聲明RPC的輸入輸出參數

  notification   yang可以用來為netconf的notification做內容建模


https://www.cnblogs.com/castielangel/p/10083277.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM