yang檔案語法格式
阿新 • • 發佈:2018-12-10
一、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做內容建模