YANG モジュールの概要
YANGデータモデルは、モジュールとサブモジュールで構成され、YANGベースのクライアントが使用する設定および状態データ、通知、RPCを定義できます。YANGモジュールは、そのデータを通じてデータモデルを定義し、そのデータに対する階層的な組織化と制約を定義します。各モジュールは、名前空間の URI によって一意に識別されます。
モジュールは単一のデータ モデルを定義します。ただし、モジュールは、 ステートメントを使用して外部モジュールをインポートするか、 ステートメントを import
使用して 1 つ以上のサブモジュールを含めることで、他のモジュールおよびサブモジュール内の include
定義を参照できます。さらに、モジュールは、 ステートメントを augment
使用してデータ モデル階層内の新しいノードの配置を定義し when
、ステートメントを使用して新しいノードが有効な条件を定義することで、別のデータ モデルを拡張できます。モジュールは、 ステートメントを feature
使用して、条件付きであるモジュールの一部を指定し、 deviation
ステートメントを使用して、デバイスの実装が元の定義から逸脱する可能性がある場所を指定します。
外部モジュールをインポートする場合、インポートされたモジュールの定義を参照する際に使用されるプレフィックスを定義します。競合を避けるために、インポートされたモジュールで定義されたプレフィックスと同じプレフィックスを使用することをお勧めします。
YANG は、階層型のツリーベースの構造とノードを使用してデータをモデル化します。YANG は 4 つのノード タイプを定義します。各ノードには名前があり、ノードタイプに応じて、値を定義するか、一連の子ノードを含めることができます。ノードタイプは次のとおりです。
リーフ ノード — 特定のタイプの単一の値を含みます。
リーフリストノード — 一連のリーフノードを含む
コンテナ ノード — 子ノードのみを含む関連ノードのグループ化を含みます。ノード タイプは 4 つのいずれかです。
リスト ノード — リスト エントリーのシーケンスを含み、それぞれが 1 つまたは複数のキー リーフによって一意に識別されます。
YANGでは、各リーフおよびリーフリストノードには、 type
そのノードの有効なデータのデータタイプを識別するステートメントが含まれています。YANGは組み込み型のセットを定義し、組み込み型または別の派生型のいずれかである基本型からの派生型を定義するためのステートメントも提供 typedef
します。
デフォルトでは、ノードは設定データを定義します。ノードは、 としてタグ付けされた場合に状態データを config false
定義します。構成データは NETCONF <get-config>
操作を使用して返され、状態データは NETCONF <get>
操作を使用して返されます。
YANG言語の構文とセマンティクスの詳細については、以下を参照してください。