1. 程式人生 > >yang檔案語法格式

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

2.3  container node

  將相關的節點歸總到一個subtree,只能包含節點,沒有值  

  yang表示:

container system {
     container login {
         leaf message {
             type string;
             description
                 "Message given at start of login session";
         }
     }
 }
  
yin表示:
 <system>
   <login>
     <message>Good morning</message>
   </login>
 </system>

2.4  list nodes  

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

通過以上四種類型節點的組合,即可定義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做內容建模