Обзор модулей YANG
Модели данных YANG включают в себя модули и подмодули, а также могут определять конфигурацию и состояние данных, уведомлений и RPCs для использования клиентами на базе YANG. Модуль YANG определяет модель данных с помощью своих данных, а также иерархическое определение и ограничения этих данных. Каждый модуль уникально идентифицируется по названию URI.
Модуль определяет одну модель данных. Однако модуль может ссылаться на определения в других модулях и подмодулях, используя import
заявление для импорта внешних модулей или include
констатаций для включения одного или нескольких подмодульов. Кроме того, модуль может увеличить другую модель данных, используя augment
заявление для определения размещения новых узлов в иерархии моделей данных и when
для определения условий, в которых действительны новые узлы. Модуль использует feature
заявление для указания условных частей модуля и deviation
констатации того, где реализация устройства может отклоняться от первоначального определения.
При импортировании внешнего модуля вы определяете префикс, который используется при определении ссылки в импортированном модуле. Мы рекомендуем использовать те же префиксы, что и в импортируемом модуле, чтобы избежать конфликтов.
YANG моделирует данные с помощью иерархической структуры на основе дерева с узлами. YANG определяет четыре типа узлов. Каждый узел имеет свое название, и в зависимости от типа узла узел может либо определить ценность, либо содержать набор детских узлов. Типы узлов:
leaf-узел— содержит единое значение определенного типа
узел leaf-list— содержит последовательность узлов Leaf
контейнерный узел— содержит группу связанных узлов, содержащих только детские узлы, которые могут быть любым из четырех типов узлов
узел списка. Содержит последовательность записей списка, каждая из которых уникально идентифицируется по одному или более ключевым листам
В YANG каждый узел leaf-list и leaf-list включает в себя type
заявление для идентификации типа данных для действительных данных для этого узла. YANG определяет набор встроенных типов и также предоставляет typedef
заявление для определения производного типа базового типа, который может быть либо встроенным типом, либо другим производным типом.
По умолчанию узел определяет данные о конфигурации. Узел определяет данные состояния, если они отмечены как config false
. Данные о конфигурации возвращаются с помощью эксплуатации NETCONF <get-config>
, а данные о состоянии возвращаются с помощью эксплуатации NETCONF <get>
.
Для получения подробной информации о синтаксисе и семантике языка YANG см.: