Visão geral dos módulos YANG
Os modelos de dados YANG incluem módulos e submodules e podem definir dados de configuração e estado, notificações e RPCs para uso por clientes baseados em YANG. Um módulo YANG define um modelo de dados por meio de seus dados, e a organização hierárquica de e restrições a esses dados. Cada módulo é identificado exclusivamente por um namespace URI.
Um módulo define um único modelo de dados. No entanto, um módulo pode fazer referência a definições em outros módulos e submodules usando a import
declaração para importar módulos externos ou a include
declaração para incluir um ou mais submodules. Além disso, um módulo pode aumentar outro modelo de dados usando a augment
declaração para definir a colocação dos novos nós na hierarquia do modelo de dados e a when
declaração para definir as condições sob as quais os novos nós são válidos. Um módulo usa a feature
declaração para especificar partes de um módulo condicionais e a deviation
declaração para especificar onde a implementação do dispositivo pode se desviar da definição original.
Quando você importa um módulo externo, você define um prefixo usado ao fazer referência a definições no módulo importado. Recomendamos que você use o mesmo prefixo definido no módulo importado para evitar conflitos.
YANG modela dados usando uma estrutura hierárquica baseada em árvores com nós. YANG define quatro tipos de nós. Cada nó tem um nome e, dependendo do tipo de nó, o nó pode definir um valor ou conter um conjunto de nós infantis. Os tipos de nós são:
nó leaf — contém um único valor de um tipo específico
nó leaf-list — Contém uma sequência de nós leaf
nó de contêiner — contém um agrupamento de nós relacionados contendo apenas nós infantis, que podem ser qualquer um dos quatro tipos de nó
nó de lista — contém uma sequência de entradas de lista, cada uma das quais é identificada exclusivamente por uma ou mais folhas-chave
No YANG, cada nó leaf e leaf-list inclui a type
declaração para identificar o tipo de dados para dados válidos para esse nó. YANG define um conjunto de tipos integrados e também fornece a typedef
declaração para definir um tipo derivado de um tipo base, que pode ser um tipo integrado ou outro tipo derivado.
Por padrão, um nó define dados de configuração. Um nó define dados de estado se forem marcados como config false
. Os dados de configuração são devolvidos usando a operação NETCONF <get-config>
, e os dados de estado são devolvidos usando a operação NETCONF <get>
.
Para obter informações detalhadas sobre a sintaxe e a semântica da língua YANG, veja: