YANG-Module – Übersicht
YANG-Datenmodelle umfassen Module und Untermodule und können Konfigurations- und Zustandsdaten, Benachrichtigungen und RPCs für die Verwendung durch YANG-basierte Clients definieren. Ein YANG-Modul definiert ein Datenmodell durch seine Daten, die hierarchische Organisation und die Einschränkungen für diese Daten. Jedes Modul wird durch einen Namespace-URI eindeutig identifiziert.
Ein Modul definiert ein einzelnes Datenmodell. Ein Modul kann jedoch auf Definitionen in anderen Modulen und Untermodulen verweisen, indem es die import
Anweisung zum Importieren externer Module oder die include
Anweisung verwendet, um ein oder mehrere Untermodule einzubeziehen. Darüber hinaus kann ein Modul ein anderes Datenmodell erweitern, indem es die augment
Anweisung verwendet, um die Platzierung der neuen Knoten in der Datenmodellhierarchie zu definieren, und die Anweisung, um die when
Bedingungen zu definieren, unter denen die neuen Knoten gültig sind. Ein Modul verwendet die feature
Anweisung, um Teile eines Moduls anzugeben, die bedingt sind, und die deviation
Anweisung, um anzugeben, wo die Implementierung des Geräts von der ursprünglichen Definition abweichen kann.
Wenn Sie ein externes Modul importieren, definieren Sie ein Präfix, das beim Verweisen auf Definitionen im importierten Modul verwendet wird. Es wird empfohlen, dasselbe Präfix wie im importierten Modul zu verwenden, um Konflikte zu vermeiden.
YANG modelliert Daten mithilfe einer hierarchischen, baumbasierten Struktur mit Knoten. YANG definiert vier Knotentypen. Jeder Knoten hat einen Namen, und je nach Knotentyp definiert der Knoten entweder einen Wert oder enthält eine Reihe von untergeordneten Knoten. Die Knotentypen sind:
Leaf-Knoten – Enthält einen einzelnen Wert eines bestimmten Typs
Leaf-List-Knoten – Enthält eine Abfolge von Leaf-Knoten
Container-Knoten– Enthält eine Gruppierung von verknüpften Knoten, die nur untergeordnete Knoten enthalten, bei denen es sich um einen der vier Knotentypen
Listenknoten: Enthält eine Abfolge von Listeneinträgen, von denen jedes durch ein oder mehrere Schlüsselblätter eindeutig identifiziert wird
In YANG enthält jeder Leaf- und Leaf-List-Knoten die type
Anweisung zur Identifizierung des Datentyps für gültige Daten für diesen Knoten. YANG definiert eine Reihe integrierter Typen und liefert auch die typedef
Anweisung zum Definieren eines abgeleiteten Typs von einem Basistyp, der entweder ein integrierter Typ oder ein anderer abgeleiteter Typ sein kann.
Standardmäßig definiert ein Knoten Konfigurationsdaten. Ein Knoten definiert Zustandsdaten, wenn sie mit config false
. Konfigurationsdaten werden mithilfe des NETCONF-Vorgangs <get-config>
zurückgegeben, und Zustandsdaten werden mithilfe des NETCONF-Vorgangs <get>
zurückgegeben.
Detaillierte Informationen zur Syntax und Semantik der YANG-Sprache finden Sie unter: