Описание тега ietf-netmod-yang

YANG - это язык моделирования данных, изначально разработанный для моделирования данных, управляемых с помощью протокола конфигурации сети (NETCONF). После публикации YANG версии 1 (RFC6020), YANG использовался или предлагался для использования для других протоколов (например, RESTCONF и CoMI). Используйте этот тег для вопросов, связанных с языком моделирования данных YANG и инструментами, которые его обрабатывают.

YANG - это язык моделирования данных для протокола конфигурации сети (NETCONF). Название является аббревиатурой от " Еще одно следующее поколение". Язык моделирования данных YANG был разработан рабочей группойNETMOD (NETMOD WG) в Internet Engineering Task Force (IETF) и был опубликован как RFC 6020 в октябре 2010 года.NETMOD опубликовал новую версию обслуживания базовой спецификации YANG. WG в августе 2016 г. (YANG 1.1, RFC 7950).

YANG - это язык, изначально разработанный для моделирования данных для протокола NETCONF. Модуль YANG определяет иерархию данных, которые могут использоваться для операций на основе NETCONF, включая конфигурацию, данные состояния, удаленные вызовы процедур (RPC) и уведомления. Это позволяет получить полное описание всех данных, передаваемых между клиентом NETCONF и сервером. Несмотря на то, что YANG выходит за рамки спецификации YANG, он также может использоваться с протоколами, отличными от NETCONF.

YANG моделирует иерархическую организацию данных в виде дерева, в котором каждый узел имеет имя и либо значение, либо набор дочерних узлов. Он предоставляет четкие и краткие описания узлов, а также взаимодействие между этими узлами.

Пример модуля YANG:

module example-forest {

  namespace "http://example.org/example-forest";
  prefix et;
  revision 2015-11-26;

  import ietf-yang-types {
    prefix yang;
  }

  typedef tree-species {
    type string;
    description "Defines the species of a tree.";
  }

  typedef a-tree {
    type leafref {
      path "/et:forest/et:trees/et:tree/et:id";
    }
    description "Represents a known tree.";
  }

  /*
   * Our forest.
   */
  container forest {
    description "A forest full of trees and potentially other stuff.";

    container trees {
      description "The trees of a forest.";

      list tree {
        description "Describes one tree in a forest.";        
        key id;

        leaf id {
          type string;
          description "A unique identifier of a tree.";
        }
        leaf species {
          type et:tree-species;
          description "The tree species.";
          mandatory true;
        }        
        leaf description {
          type string;
          description "A short description of the tree.";
        }
        leaf location {
          type string;
          mandatory true;
          description "The location of the tree";
        }
        leaf height {
          type uint8;
          units "meters";
          description "The height of the tree.";
        }

      }
    }
  }

  /**
   * Cutting schedules.
   */
  container cutting-schedules {
    description "Our cutting schedules.";

    list cutting-schedule {
      description "A cutting schedule.";    
      key "name date";

      leaf name {
        type string;
        description "A name for the schedule.";
      }
      leaf date {
        type yang:date-and-time;
        description "When to start cutting down trees.";
      }
      leaf-list tree {
        type a-tree;
        min-elements 1;
        description "Which trees to cut down.";
      }
    }
  }
}

Примеры данных в кодировке XML:

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

  <forest xmlns="http://example.org/example-forest">
    <trees>
      <tree>
        <id>Lisa</id>
        <species>pine</species>
        <location>Right in the centre of the forest.</location>
        <height>15</height>
      </tree>
      <tree>
        <id>Bob</id>
        <species>oak</species>
        <location>At the first Y split of the path through forest.</location>
        <height>20</height>
      </tree>
      <tree>
        <id>John</id>
        <species>birch</species>
        <description>Struck by lightning a few years ago.</description>
        <location>Next to the burnt down tree-house debris.</location>
        <height>10</height>
      </tree>
    </trees>
  </forest>

  <cutting-schedules xmlns="http://example.org/example-forest">
    <cutting-schedule>
      <name>High priority cleanup</name>
      <date>2015-11-30T16:00:00Z</date>
      <tree>Bob</tree>
      <tree>John</tree>
    </cutting-schedule>
  </cutting-schedules>

</data>

Узнайте больше о YANG здесь: