[要約] RFC 8525は、YANGライブラリの標準化された形式と目的を定義しています。YANGライブラリは、ネットワークデバイスの構成や状態を表現するためのデータモデルを提供し、ネットワーク管理者が効果的にデバイスを管理できるようにします。

Internet Engineering Task Force (IETF)                        A. Bierman
Request for Comments: 8525                                     YumaWorks
Obsoletes: 7895                                             M. Bjorklund
Category: Standards Track                                 Tail-f Systems
ISSN: 2070-1721                                         J. Schoenwaelder
                                                       Jacobs University
                                                               K. Watsen
                                                         Watsen Networks
                                                               R. Wilton
                                                           Cisco Systems
                                                              March 2019
        

YANG Library

ヤン図書館

Abstract

概要

This document describes a YANG library that provides information about the YANG modules, datastores, and datastore schemas used by a network management server. Simple caching mechanisms are provided to allow clients to minimize retrieval of this information. This version of the YANG library supports the Network Management Datastore Architecture (NMDA) by listing all datastores supported by a network management server and the schema that is used by each of these datastores.

このドキュメントでは、ネットワーク管理サーバーで使用されるYANGモジュール、データストア、およびデータストアスキーマに関する情報を提供するYANGライブラリについて説明します。クライアントがこの情報の取得を最小限に抑えることができるように、単純なキャッシングメカニズムが提供されています。このバージョンのYANGライブラリは、ネットワーク管理サーバーでサポートされているすべてのデータストアと、各データストアで使用されているスキーマを一覧表示することで、ネットワーク管理データストアアーキテクチャ(NMDA)をサポートしています。

This document obsoletes RFC 7895.

このドキュメントはRFC 7895を廃止します。

Status of This Memo

本文書の状態

This is an Internet Standards Track document.

これはInternet Standards Trackドキュメントです。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

このドキュメントは、IETF(Internet Engineering Task Force)の製品です。これは、IETFコミュニティのコンセンサスを表しています。公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による公開が承認されました。インターネット標準の詳細については、RFC 7841のセクション2をご覧ください。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8525.

このドキュメントの現在のステータス、エラッタ、およびフィードバックの提供方法に関する情報は、https://www.rfc-editor.org/info/rfc8525で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.

Copyright(c)2019 IETF Trustおよびドキュメントの作成者として識別された人物。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

この文書は、BCP 78およびIETF文書に関するIETFトラストの法的規定(https://trustee.ietf.org/license-info)の対象であり、この文書の発行日に有効です。これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseのテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。

Table of Contents

目次

   1. Introduction ....................................................3
      1.1. Terminology ................................................4
   2. Objectives ......................................................5
   3. YANG Library Data Model .........................................6
   4. YANG Library YANG Module ........................................8
   5. IANA Considerations ............................................20
   6. Security Considerations ........................................21
   7. References .....................................................22
      7.1. Normative References ......................................22
      7.2. Informative References ....................................23
   Appendix A.  Summary of Changes from RFC 7895 .....................25
   Appendix B.  Example YANG Library Instance for a Basic Server .....25
   Appendix C.  Example YANG Library Instance for an Advanced Server .27
   Authors' Addresses ................................................32
        
1. Introduction
1. はじめに

There is a need for a standard mechanism to expose which YANG modules [RFC7950], datastores [RFC8342], and datastore schemas [RFC8342] are in use by a network management server.

どのYANGモジュール[RFC7950]、データストア[RFC8342]、およびデータストアスキーマ[RFC8342]がネットワーク管理サーバーによって使用されているかを公開する標準的なメカニズムが必要です。

This document defines the YANG module "ietf-yang-library" that provides this information. This version of the YANG library is compatible with the Network Management Datastore Architecture (NMDA) [RFC8342]. The previous version of the YANG library, defined in [RFC7895], is not compatible with the NMDA since it assumes that all datastores have exactly the same schema. This is not necessarily true in the NMDA since dynamic configuration datastores may have their own datastore schema. Furthermore, the operational state datastore may support non-configurable YANG modules in addition to the YANG modules supported by conventional configuration datastores.

このドキュメントでは、この情報を提供するYANGモジュール「ietf-yang-library」を定義しています。このバージョンのYANGライブラリは、ネットワーク管理データストアアーキテクチャ(NMDA)[RFC8342]と互換性があります。 [RFC7895]で定義されている旧バージョンのYANGライブラリは、すべてのデータストアがまったく同じスキーマを持っていると想定しているため、NMDAと互換性がありません。動的構成データストアには独自のデータストアスキーマがある場合があるため、これはNMDAでは必ずしも当てはまりません。さらに、動作状態データストアは、従来の構成データストアでサポートされているYANGモジュールに加えて、構成不可能なYANGモジュールをサポートする場合があります。

The old YANG library definitions have been retained (for backwards-compatibility reasons), but the definitions have been marked as deprecated. For backwards compatibility, an NMDA-supporting server SHOULD populate the deprecated "/modules-state" tree in a backwards-compatible manner. The new "/yang-library" tree will be ignored by legacy clients but will provide all the data needed for NMDA-aware clients (which will ignore the "/modules-state" tree). The recommended approach to populate "/modules-state" is to report the YANG modules with "config true" data nodes that are configurable via conventional configuration datastores and the YANG modules with "config false" data nodes that are returned via a Network Configuration Protocol (NETCONF) <get> operation or equivalent.

古いYANGライブラリー定義は(下位互換性の理由で)保持されていますが、定義は非推奨としてマークされています。下位互換性のために、NMDAをサポートするサーバーは、非推奨の「/ modules-state」ツリーに下位互換性のある方法でデータを投入する必要があります(SHOULD)。新しい「/ yang-library」ツリーはレガシークライアントでは無視されますが、NMDA対応クライアントに必要なすべてのデータを提供します(「/ modules-state」ツリーは無視されます)。 「/ modules-state」を入力するための推奨されるアプローチは、従来の構成データストアを介して構成可能な「config true」データノードでYANGモジュールを報告し、ネットワーク構成プロトコルを介して返される「config false」データノードを含むYANGモジュールを報告することです。 (NETCONF)<get>操作または同等のもの。

The YANG library information can be different on every server, and it can change at runtime or across a server reboot. If a server implements multiple network management protocols to access the server's datastores, then each such protocol may have its own conceptual instantiation of the YANG library.

YANGライブラリー情報はサーバーごとに異なる可能性があり、実行時またはサーバーの再起動時に変更される可能性があります。サーバーがサーバーのデータストアにアクセスするために複数のネットワーク管理プロトコルを実装している場合、そのような各プロトコルには、YANGライブラリーの独自の概念的なインスタンス化がある場合があります。

If a large number of YANG modules are utilized by a server, then the YANG library contents can be relatively large. Since the YANG library contents change very infrequently, it is important that clients be able to cache the YANG library contents and easily identify whether their cache is out of date.

サーバーで多数のYANGモジュールが使用されている場合、YANGライブラリーの内容は比較的大きくなる可能性があります。 YANGライブラリーの内容はめったに変更されないため、クライアントがYANGライブラリーの内容をキャッシュし、そのキャッシュが古いかどうかを簡単に識別できることが重要です。

1.1. Terminology
1.1. 用語

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

キーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、「OPTIONALこのドキュメントの「」は、BCP 14 [RFC2119] [RFC8174]で説明されているように解釈されます。

The following terms are defined in [RFC7950]:

以下の用語は[RFC7950]で定義されています:

o module

o モジュール

o submodule

o サブモジュール

o data node

o だた ので

This document uses the phrase "implement a module" as defined in Section 5.6.5 of [RFC7950].

このドキュメントでは、[RFC7950]のセクション5.6.5で定義されている「モジュールの実装」というフレーズを使用しています。

The following terms are defined in [RFC8342]:

以下の用語は[RFC8342]で定義されています:

o datastore

o データストア

o datastore schema

o データストアスキーマ

o configuration

o 構成

o conventional configuration datastore

o 従来の構成データストア

o operational state

o 稼働状態

o operational state datastore

o 運用状態データストア

o dynamic configuration datastore

o 動的構成データストア

o client

o クライアント

o server

o サーバ

The following terms are used within this document:

このドキュメントでは、次の用語が使用されています。

o YANG library: A collection of YANG modules, submodules, datastores, and datastore schemas used by a server.

o YANGライブラリ:サーバーで使用されるYANGモジュール、サブモジュール、データストア、およびデータストアスキーマのコレクション。

o YANG library content identifier: A server-generated identifier of the contents of the YANG library.

o YANGライブラリーのコンテンツID:サーバーが生成した、YANGライブラリーのコンテンツのID。

Tree diagrams in this document use the notation defined in [RFC8340].

このドキュメントのツリー図では、[RFC8340]で定義されている表記法を使用しています。

2. Objectives
2. 目的

The following information is needed by a client application (for each YANG module in the library) to fully utilize the YANG data modeling language:

以下の情報は、YANGデータモデリング言語を完全に利用するために、クライアントアプリケーション(ライブラリのYANGモジュールごと)に必要です。

o name: The name of the YANG module.

o name:YANGモジュールの名前。

o revision: If defined in the YANG module or submodule, the revision is derived from the most recent revision statement within the module or submodule.

o リビジョン:YANGモジュールまたはサブモジュールで定義されている場合、リビジョンはモジュールまたはサブモジュール内の最新のリビジョンステートメントから派生します。

o submodule list: The name and (if defined) revision of each submodule used by the module must be identified.

o サブモジュールリスト:モジュールで使用される各サブモジュールの名前と(定義されている場合)リビジョンを識別する必要があります。

o feature list: The name of each YANG feature supported by the server must be identified.

o 機能リスト:サーバーがサポートする各YANG機能の名前を識別する必要があります。

o deviation list: The name of each YANG module with deviation statements affecting a given YANG module must be identified.

o 偏差リスト:特定のYANGモジュールに影響する偏差ステートメントを含む各YANGモジュールの名前を識別する必要があります。

In addition, the following information is needed by a client application for each datastore supported by a server:

さらに、サーバーがサポートする各データストアのクライアントアプリケーションには、次の情報が必要です。

o identity: The YANG identity for the datastore.

o identity:データストアのYANG ID。

o schema: The schema (i.e., the set of modules) implemented by the datastore.

o スキーマ:データストアによって実装されるスキーマ(つまり、モジュールのセット)。

In order to select one out of several possible designs for the YANG library data model, the following criteria were used:

YANGライブラリデータモデルのいくつかの可能な設計から1つを選択するために、次の基準が使用されました。

1. The information must be efficient for a client to consume. Since the size of the YANG library can be quite large, it should be possible for clients to cache the YANG library information.

1. 情報は、クライアントが消費するために効率的でなければなりません。 YANGライブラリーのサイズは非常に大きくなる可能性があるため、クライアントがYANGライブラリー情報をキャッシュできるようにする必要があります。

2. A dynamic configuration datastore must be able to implement a module or feature that is not implemented in the conventional configuration datastores.

2. 動的構成データストアは、従来の構成データストアに実装されていないモジュールまたは機能を実装できる必要があります。

3. It must be possible to not implement a module or feature in <operational>, even if it is implemented in some other datastore. This is required for transition purposes; a server that wants to implement <operational> should not have to implement all modules at once.

3. 他のデータストアに実装されている場合でも、<operational>にモジュールまたは機能を実装できないようにする必要があります。これは移行の目的で必要です。 <operational>を実装するサーバーは、一度にすべてのモジュールを実装する必要はありません。

4. A given module can only be implemented in one revision in all datastores. If a module is implemented in more than one datastore, the same revision is implemented in all these datastores.

4. 特定のモジュールは、すべてのデータストアの1つのリビジョンでのみ実装できます。モジュールが複数のデータストアに実装されている場合、これらのすべてのデータストアに同じリビジョンが実装されます。

5. Multiple revisions can be used for import, if import-by revision is used.

5. import-byリビジョンが使用されている場合、複数のリビジョンをインポートに使用できます。

6. It must be possible to use the YANG library by schema mount [RFC8528].

6. スキーママウント[RFC8528]によってYANGライブラリを使用できる必要があります。

3. YANG Library Data Model
3. YANGデータモデルライブラリ

The "ietf-yang-library" YANG module provides information about the modules, submodules, datastores, and datastore schemas supported by a server. All data nodes in the "ietf-yang-library" module are "config false" and thus only accessible in the operational state datastore.

"ietf-yang-library" YANGモジュールは、サーバーがサポートするモジュール、サブモジュール、データストア、およびデータストアスキーマに関する情報を提供します。 「ietf-yang-library」モジュール内のすべてのデータノードは「config false」であるため、動作状態データストアでのみアクセスできます。

   +-----------+
   | datastore |
   +-----------+
        |
        | has a
        V
   +-----------+            +--------+                +------------+
   | datastore |  union of  | module |  consists of   | modules +  |
   |  schema   |----------->|  set   |--------------->| submodules |
   +-----------+            +--------+                +------------+
        

Figure 1

図1

The conceptual model of the YANG library is depicted in Figure 1. Following the NMDA, every datastore has an associated datastore schema. A datastore schema is a union of module sets, and every module set is a collection of modules and submodules, including the modules and submodules used for imports. Note that multiple datastores may refer to the same datastore schema. Furthermore, it is possible for individual datastore schemas to share module sets. A common use case is the operational state datastore schema, which is a superset of the schema used by conventional configuration datastores.

YANGライブラリーの概念モデルを図1に示します。NMDAに続いて、すべてのデータストアにはデータストアスキーマが関連付けられています。データストアスキーマはモジュールセットの和集合であり、すべてのモジュールセットは、インポートに使用されるモジュールとサブモジュールを含む、モジュールとサブモジュールのコレクションです。複数のデータストアが同じデータストアスキーマを参照する場合があることに注意してください。さらに、個々のデータストアスキーマがモジュールセットを共有することも可能です。一般的な使用例は、運用状態データストアスキーマです。これは、従来の構成データストアで使用されるスキーマのスーパーセットです。

   Below is the YANG tree diagram for the "ietf-yang-library" module,
   excluding the deprecated "/modules-state" tree:
   module: ietf-yang-library
     +--ro yang-library
        +--ro module-set* [name]
        |  +--ro name                  string
        |  +--ro module* [name]
        |  |  +--ro name         yang:yang-identifier
        |  |  +--ro revision?    revision-identifier
        |  |  +--ro namespace    inet:uri
        |  |  +--ro location*    inet:uri
        |  |  +--ro submodule* [name]
        |  |  |  +--ro name        yang:yang-identifier
        |  |  |  +--ro revision?   revision-identifier
        |  |  |  +--ro location*   inet:uri
        |  |  +--ro feature*     yang:yang-identifier
        |  |  +--ro deviation*   -> ../../module/name
        |  +--ro import-only-module* [name revision]
        |     +--ro name         yang:yang-identifier
        |     +--ro revision     union
        |     +--ro namespace    inet:uri
        |     +--ro location*    inet:uri
        |     +--ro submodule* [name]
        |        +--ro name        yang:yang-identifier
        |        +--ro revision?   revision-identifier
        |        +--ro location*   inet:uri
        +--ro schema* [name]
        |  +--ro name          string
        |  +--ro module-set*   -> ../../module-set/name
        +--ro datastore* [name]
        |  +--ro name      ds:datastore-ref
        |  +--ro schema    -> ../../schema/name
        +--ro content-id    string
        
     notifications:
       +---n yang-library-update
          +--ro content-id    -> /yang-library/content-id
        

The "/yang-library" container holds the entire YANG library. The container has the following child nodes:

「/ yang-library」コンテナは、YANGライブラリ全体を保持します。コンテナには次の子ノードがあります。

o The "/yang-library/module-set" contains entries representing module sets. The list "/yang-library/module-set/module" enumerates the modules that belong to the module set. A module is listed together with its submodules (if any), a set of features, and any deviation modules. The list "/yang-library/module-set/ import-only-module" lists all modules (and their submodules) used only for imports. The assignment of a module to a module set is at the server's discretion. This revision of the YANG library attaches no semantics as to which module set a module is listed in.

o「/ yang-library / module-set」には、モジュールセットを表すエントリが含まれています。リスト「/ yang-library / module-set / module」は、モジュールセットに属するモジュールを列挙します。モジュールは、そのサブモジュール(存在する場合)、一連の機能、および偏差モジュールとともに一覧表示されます。 「/ yang-library / module-set / import-only-module」リストには、インポートにのみ使用されるすべてのモジュール(およびそのサブモジュール)がリストされています。モジュールセットへのモジュールの割り当ては、サーバーの裁量に委ねられています。 YANGライブラリーのこのリビジョンは、モジュールがリストされているモジュールセットについてのセマンティクスをアタッチしていません。

o The "/yang-library/schema" list contains an entry for each datastore schema supported by the server. All conventional configuration datastores use the same "schema" list entry. A dynamic configuration datastore may use a different datastore schema from the conventional configuration datastores and hence may require a separate "schema" entry. A "schema" entry has a leaf-list of references to entries in the "module-set" list. The schema consists of the union of all modules in all referenced module sets.

o 「/ yang-library / schema」リストには、サーバーでサポートされている各データストアスキーマのエントリが含まれています。従来のすべての構成データストアは、同じ「スキーマ」リストエントリを使用します。動的構成データストアは、従来の構成データストアとは異なるデータストアスキーマを使用する場合があるため、個別の「スキーマ」エントリが必要になる場合があります。 「スキーマ」エントリには、「モジュールセット」リスト内のエントリへの参照のリーフリストがあります。スキーマは、参照されるすべてのモジュールセットのすべてのモジュールの結合で構成されます。

o The "/yang-library/datastore" list contains one entry for each datastore supported by the server, and it identifies the datastore schema associated with a datastore via a reference to an entry in the "schema" list. Each supported conventional configuration datastore has a separate entry, pointing to the same "schema" list element.

o 「/ yang-library / datastore」リストには、サーバーがサポートするデータストアごとに1つのエントリが含まれ、「スキーマ」リストのエントリへの参照を介して、データストアに関連付けられたデータストアスキーマを識別します。サポートされている各従来の構成データストアには、同じ「スキーマ」リスト要素を指す個別のエントリがあります。

o The "/yang-library/content-id" leaf contains the YANG library content identifier, which is an implementation-specific identifier representing the current information in the YANG library on a specific server. The value of this leaf MUST change whenever the information in the YANG library changes. There is no requirement that the same information always result in the same "content-id" value. This leaf allows a client to fetch all schema information once, cache it, and only refetch it if the value of this leaf has been changed. If the value of this leaf changes, the server also generates a "yang-library-update" notification.

o 「/ yang-library / content-id」リーフには、YANGライブラリコンテンツ識別子が含まれています。これは、特定のサーバー上のYANGライブラリの現在の情報を表す、実装固有の識別子です。このリーフの値は、YANGライブラリーの情報が変更されるたびに変更する必要があります。同じ情報が常に同じ "content-id"値になるという要件はありません。このリーフにより、クライアントはすべてのスキーマ情報を一度フェッチしてキャッシュし、このリーフの値が変更された場合にのみ再フェッチできます。このリーフの値が変化すると、サーバーは「yang-library-update」通知も生成します。

Note that for a NETCONF server implementing the NETCONF extensions to support the NMDA [RFC8526], a change of the YANG library content identifier results in a new value for the :yang-library:1.1 capability defined in [RFC8526]. Thus, if such a server implements NETCONF notifications [RFC5277] and the "netconf-capability-change" notification [RFC6470], a "netconf-capability-change" notification is generated whenever the YANG library content identifier changes.

NMDA [RFC8526]をサポートするためにNETCONF拡張を実装するNETCONFサーバーの場合、YANGライブラリコンテンツ識別子を変更すると、[RFC8526]で定義されている:yang-library:1.1機能の新しい値が生じることに注意してください。したがって、そのようなサーバーがNETCONF通知[RFC5277]と「netconf-capability-change」通知[RFC6470]を実装している場合、「netconf-capability-change」通知は、YANGライブラリコンテンツ識別子が変更されるたびに生成されます。

4. YANG Library YANG Module
4. YANGライブラリーどのモジュール

The "ietf-yang-library" YANG module imports definitions from the "ietf-yang-types" and "ietf-inet-types" modules defined in [RFC6991] and from the "ietf-datastores" module defined in [RFC8342]. While the YANG module is defined using YANG version 1.1, the YANG library supports YANG modules written in any version of YANG.

「ietf-yang-library」YANGモジュールは、[RFC6991]で定義されている「ietf-yang-types」および「ietf-inet-types」モジュールと、[RFC8342]で定義されている「ietf-datastores」モジュールから定義をインポートします。 YANGモジュールはYANGバージョン1.1を使用して定義されていますが、YANGライブラリは、どのバージョンのYANGで記述されたYANGモジュールもサポートしています。

   <CODE BEGINS> file "ietf-yang-library@2019-01-04.yang"
        
   module ietf-yang-library {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-yang-library";
     prefix yanglib;
        
     import ietf-yang-types {
       prefix yang;
       reference
         "RFC 6991: Common YANG Data Types";
     }
     import ietf-inet-types {
       prefix inet;
       reference
         "RFC 6991: Common YANG Data Types";
     }
     import ietf-datastores {
       prefix ds;
       reference
         "RFC 8342: Network Management Datastore Architecture
                    (NMDA)";
     }
        
     organization
       "IETF NETCONF (Network Configuration) Working Group";
     contact
       "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
        WG List:  <mailto:netconf@ietf.org>
        
        Author:   Andy Bierman
                  <mailto:andy@yumaworks.com>
        
        Author:   Martin Bjorklund
                  <mailto:mbj@tail-f.com>
        
        Author:   Juergen Schoenwaelder
                  <mailto:j.schoenwaelder@jacobs-university.de>
        
        Author:   Kent Watsen
                  <mailto:kent+ietf@watsen.net>
        

Author: Robert Wilton <mailto:rwilton@cisco.com>"; description "This module provides information about the YANG modules, datastores, and datastore schemas used by a network management server.

作成者:Robert Wilton <mailto:rwilton@cisco.com> ";説明"このモジュールは、ネットワーク管理サーバーで使用されるYANGモジュール、データストア、およびデータストアスキーマに関する情報を提供します。

The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here.

キーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、「OPTIONALこのドキュメントの 'は、ここに示すように、BCP 14(RFC 2119)(RFC 8174)で説明されているように解釈されます。

Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved.

Copyright(c)2019 IETF Trustおよびコードの作成者として識別された人物。全著作権所有。

Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info).

ソースおよびバイナリ形式での再配布および使用は、変更の有無にかかわらず、IETF文書に関連するIETFトラストの法的規定のセクション4.cに記載されているSimplified BSD Licenseに従い、それに含まれるライセンス条項に従って許可されます( https://trustee.ietf.org/license-info)。

This version of this YANG module is part of RFC 8525; see the RFC itself for full legal notices.";

このYANGモジュールのこのバージョンはRFC 8525の一部です。完全な法的通知については、RFC自体を参照してください。 ";

     revision 2019-01-04 {
       description
         "Added support for multiple datastores according to the
          Network Management Datastore Architecture (NMDA).";
       reference
         "RFC 8525: YANG Library";
     }
     revision 2016-04-09 {
       description
         "Initial revision.";
       reference
         "RFC 7895: YANG Module Library";
     }
        
     /*
      * Typedefs
      */
        
     typedef revision-identifier {
       type string {
         pattern '\d{4}-\d{2}-\d{2}';
       }
       description
         "Represents a specific date in YYYY-MM-DD format.";
     }
        
     /*
      * Groupings
      */
        
     grouping module-identification-leafs {
       description
         "Parameters for identifying YANG modules and submodules.";
       leaf name {
         type yang:yang-identifier;
         mandatory true;
         description
           "The YANG module or submodule name.";
       }
       leaf revision {
         type revision-identifier;
         description
           "The YANG module or submodule revision date.  If no revision
            statement is present in the YANG module or submodule, this
            leaf is not instantiated.";
       }
     }
        
     grouping location-leaf-list {
       description
         "Common leaf-list parameter for the locations of modules and
          submodules.";
       leaf-list location {
         type inet:uri;
         description
           "Contains a URL that represents the YANG schema
            resource for this module or submodule.
        
            This leaf will only be present if there is a URL
            available for retrieval of the schema for this entry.";
       }
     }
        
     grouping module-implementation-parameters {
       description
         "Parameters for describing the implementation of a module.";
       leaf-list feature {
         type yang:yang-identifier;
         description
           "List of all YANG feature names from this module that are
            supported by the server, regardless whether they are defined
            in the module or any included submodule.";
       }
       leaf-list deviation {
         type leafref {
           path "../../module/name";
         }
         description
           "List of all YANG deviation modules used by this server to
            modify the conformance of the module associated with this
            entry.  Note that the same module can be used for deviations
            for multiple modules, so the same entry MAY appear within
            multiple 'module' entries.
        

This reference MUST NOT (directly or indirectly) refer to the module being deviated.

この参照は、逸脱しているモジュールを(直接的または間接的に)参照してはなりません。

            Robust clients may want to make sure that they handle a
            situation where a module deviates itself (directly or
            indirectly) gracefully.";
       }
     }
        
     grouping module-set-parameters {
       description
         "A set of parameters that describe a module set.";
       leaf name {
         type string;
         description
           "An arbitrary name of the module set.";
       }
       list module {
         key "name";
         description
           "An entry in this list represents a module implemented by the
            server, as per Section 5.6.5 of RFC 7950, with a particular
            set of supported features and deviations.";
         reference
           "RFC 7950: The YANG 1.1 Data Modeling Language";
         uses module-identification-leafs;
         leaf namespace {
           type inet:uri;
           mandatory true;
           description
             "The XML namespace identifier for this module.";
         }
         uses location-leaf-list;
         list submodule {
           key "name";
           description
             "Each entry represents one submodule within the
              parent module.";
           uses module-identification-leafs;
           uses location-leaf-list;
         }
         uses module-implementation-parameters;
       }
       list import-only-module {
         key "name revision";
         description
           "An entry in this list indicates that the server imports
            reusable definitions from the specified revision of the
            module but does not implement any protocol-accessible
            objects from this revision.
        
            Multiple entries for the same module name MAY exist.  This
            can occur if multiple modules import the same module but
            specify different revision dates in the import statements.";
         leaf name {
           type yang:yang-identifier;
           description
             "The YANG module name.";
         }
         leaf revision {
           type union {
             type revision-identifier;
             type string {
               length "0";
             }
           }
           description
             "The YANG module revision date.
              A zero-length string is used if no revision statement
              is present in the YANG module.";
         }
         leaf namespace {
           type inet:uri;
           mandatory true;
           description
             "The XML namespace identifier for this module.";
         }
         uses location-leaf-list;
         list submodule {
           key "name";
           description
             "Each entry represents one submodule within the
              parent module.";
           uses module-identification-leafs;
           uses location-leaf-list;
         }
       }
     }
     grouping yang-library-parameters {
       description
         "The YANG library data structure is represented as a grouping
          so it can be reused in configuration or another monitoring
          data structure.";
       list module-set {
         key "name";
         description
           "A set of modules that may be used by one or more schemas.
        
            A module set does not have to be referentially complete,
            i.e., it may define modules that contain import statements
            for other modules not included in the module set.";
         uses module-set-parameters;
       }
       list schema {
         key "name";
         description
           "A datastore schema that may be used by one or more
            datastores.
        
            The schema must be valid and referentially complete, i.e.,
            it must contain modules to satisfy all used import
            statements for all modules specified in the schema.";
         leaf name {
           type string;
           description
             "An arbitrary name of the schema.";
         }
         leaf-list module-set {
           type leafref {
             path "../../module-set/name";
           }
           description
             "A set of module-sets that are included in this schema.
              If a non-import-only module appears in multiple module
              sets, then the module revision and the associated features
              and deviations must be identical.";
         }
       }
       list datastore {
         key "name";
         description
           "A datastore supported by this server.
        

Each datastore indicates which schema it supports.

各データストアは、サポートするスキーマを示します。

            The server MUST instantiate one entry in this list per
            specific datastore it supports.
            Each datastore entry with the same datastore schema SHOULD
            reference the same schema.";
         leaf name {
           type ds:datastore-ref;
           description
             "The identity of the datastore.";
         }
         leaf schema {
           type leafref {
             path "../../schema/name";
           }
           mandatory true;
           description
             "A reference to the schema supported by this datastore.
              All non-import-only modules of the schema are implemented
              with their associated features and deviations.";
         }
       }
     }
        
     /*
      * Top-level container
      */
        
     container yang-library {
       config false;
       description
         "Container holding the entire YANG library of this server.";
       uses yang-library-parameters;
       leaf content-id {
         type string;
         mandatory true;
         description
           "A server-generated identifier of the contents of the
            '/yang-library' tree.  The server MUST change the value of
            this leaf if the information represented by the
            '/yang-library' tree, except '/yang-library/content-id', has
            changed.";
       }
     }
        
     /*
      * Notifications
      */
        

notification yang-library-update {

通知yang-library-update {

       description
         "Generated when any YANG library information on the
          server has changed.";
       leaf content-id {
         type leafref {
           path "/yanglib:yang-library/yanglib:content-id";
         }
         mandatory true;
         description
           "Contains the YANG library content identifier for the updated
            YANG library at the time the notification is generated.";
       }
     }
        
     /*
      * Legacy groupings
      */
        
     grouping module-list {
       status deprecated;
       description
         "The module data structure is represented as a grouping
          so it can be reused in configuration or another monitoring
          data structure.";
        
       grouping common-leafs {
         status deprecated;
         description
           "Common parameters for YANG modules and submodules.";
         leaf name {
           type yang:yang-identifier;
           status deprecated;
           description
             "The YANG module or submodule name.";
         }
         leaf revision {
           type union {
             type revision-identifier;
             type string {
               length "0";
             }
           }
           status deprecated;
           description
             "The YANG module or submodule revision date.
              A zero-length string is used if no revision statement
              is present in the YANG module or submodule.";
         }
        

}

       grouping schema-leaf {
         status deprecated;
         description
           "Common schema leaf parameter for modules and submodules.";
         leaf schema {
           type inet:uri;
           description
             "Contains a URL that represents the YANG schema
              resource for this module or submodule.
        
              This leaf will only be present if there is a URL
              available for retrieval of the schema for this entry.";
         }
       }
       list module {
         key "name revision";
         status deprecated;
         description
           "Each entry represents one revision of one module
            currently supported by the server.";
         uses common-leafs {
           status deprecated;
         }
         uses schema-leaf {
           status deprecated;
         }
         leaf namespace {
           type inet:uri;
           mandatory true;
           status deprecated;
           description
             "The XML namespace identifier for this module.";
         }
         leaf-list feature {
           type yang:yang-identifier;
           status deprecated;
           description
             "List of YANG feature names from this module that are
              supported by the server, regardless of whether they are
              defined in the module or any included submodule.";
         }
         list deviation {
           key "name revision";
           status deprecated;
        

description "List of YANG deviation module names and revisions used by this server to modify the conformance of the module associated with this entry. Note that the same module can be used for deviations for multiple modules, so the same entry MAY appear within multiple 'module' entries.

説明 "このエントリに関連付けられているモジュールの適合性を変更するためにこのサーバーが使用するYANG偏差モジュール名とリビジョンのリスト。同じモジュールを複数のモジュールの偏差に使用できるため、同じエントリが複数のモジュール内に表示される場合があります'エントリ。

              The deviation module MUST be present in the 'module'
              list, with the same name and revision values.
              The 'conformance-type' value will be 'implement' for
              the deviation module.";
           uses common-leafs {
             status deprecated;
           }
         }
         leaf conformance-type {
           type enumeration {
             enum implement {
               description
                 "Indicates that the server implements one or more
                  protocol-accessible objects defined in the YANG module
                  identified in this entry.  This includes deviation
                  statements defined in the module.
        

For YANG version 1.1 modules, there is at most one 'module' entry with conformance type 'implement' for a particular module name, since YANG 1.1 requires that at most one revision of a module is implemented.

YANGバージョン1.1モジュールの場合、特定のモジュール名の適合タイプが「実装」の「モジュール」エントリは最大で1つです。YANG1.1では、モジュールのリビジョンを1つだけ実装する必要があるためです。

                  For YANG version 1 modules, there SHOULD NOT be more
                  than one 'module' entry for a particular module
                  name.";
             }
             enum import {
               description
                 "Indicates that the server imports reusable definitions
                  from the specified revision of the module but does
                  not implement any protocol-accessible objects from
                  this revision.
        
                  Multiple 'module' entries for the same module name MAY
                  exist.  This can occur if multiple modules import the
                  same module but specify different revision dates in
                  the import statements.";
             }
           }
           mandatory true;
        
           status deprecated;
           description
             "Indicates the type of conformance the server is claiming
              for the YANG module identified by this entry.";
         }
         list submodule {
           key "name revision";
           status deprecated;
           description
             "Each entry represents one submodule within the
              parent module.";
           uses common-leafs {
             status deprecated;
           }
           uses schema-leaf {
             status deprecated;
           }
         }
       }
     }
        
     /*
      * Legacy operational state data nodes
      */
        
     container modules-state {
       config false;
       status deprecated;
       description
         "Contains YANG module monitoring information.";
       leaf module-set-id {
         type string;
         mandatory true;
         status deprecated;
         description
           "Contains a server-specific identifier representing
            the current set of modules and submodules.  The
            server MUST change the value of this leaf if the
            information represented by the 'module' list instances
            has changed.";
       }
       uses module-list {
         status deprecated;
       }
     }
        
     /*
      * Legacy notifications
        

*/

*/

     notification yang-library-change {
       status deprecated;
       description
         "Generated when the set of modules and submodules supported
          by the server has changed.";
       leaf module-set-id {
         type leafref {
           path "/yanglib:modules-state/yanglib:module-set-id";
         }
         mandatory true;
         status deprecated;
         description
           "Contains the module-set-id value representing the
            set of modules and submodules supported at the server
            at the time the notification is generated.";
       }
     }
   }
        

<CODE ENDS>

<コード終了>

5. IANA Considerations
5. IANAに関する考慮事項

RFC 7895 previously registered one URI in the "IETF XML Registry" [RFC3688]. This document takes over this registration entry made by RFC 7895 and changes the Registrant Contact to the IESG according to Section 4 of [RFC3688].

RFC 7895は、以前に「IETF XMLレジストリ」[RFC3688]に1つのURIを登録していました。このドキュメントは、RFC 7895によって作成されたこの登録エントリを引き継ぎ、[RFC3688]のセクション4に従って、登録者の連絡先をIESGに変更します。

     URI: urn:ietf:params:xml:ns:yang:ietf-yang-library
        

Registrant Contact: The IESG.

登録者の連絡先:IESG。

XML: N/A, the requested URI is an XML namespace.

XML:N / A、要求されたURIはXML名前空間です。

This document registers a YANG module in the "YANG Module Names" registry [RFC6020]:

このドキュメントでは、「YANGモジュール名」レジストリ[RFC6020]にYANGモジュールを登録しています。

     name:         ietf-yang-library
     namespace:    urn:ietf:params:xml:ns:yang:ietf-yang-library
     prefix:       yanglib
     reference:    RFC 8525
        
6. Security Considerations
6. セキュリティに関する考慮事項

The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446].

このドキュメントで指定されているYANGモジュールは、NETCONF [RFC6241]やRESTCONF [RFC8040]などのネットワーク管理プロトコルを介してアクセスするように設計されたデータのスキーマを定義します。最下位のNETCONFレイヤーはセキュアなトランスポートレイヤーであり、実装に必須のセキュアなトランスポートはセキュアシェル(SSH)です[RFC6242]。最下位のRESTCONFレイヤーはHTTPSであり、実装に必須のセキュアなトランスポートはTLS [RFC8446]です。

The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.

ネットワーク構成アクセス制御モデル(NACM)[RFC8341]は、特定のNETCONFまたはRESTCONFユーザーのアクセスを、利用可能なすべてのNETCONFまたはRESTCONFプロトコル操作およびコンテンツの事前構成されたサブセットに制限する手段を提供します。

Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity/vulnerability:

このYANGモジュールの一部の読み取り可能なデータノードは、一部のネットワーク環境では機密または脆弱であると見なされる場合があります。したがって、これらのデータノードへの読み取りアクセスを制御することが重要です(たとえば、get、get-config、または通知を介して)。これらは、サブツリーとデータノード、およびそれらの機密性/脆弱性です。

The "/yang-library" subtree of the YANG library may help an attacker identify the server capabilities and server implementations with known bugs since the set of YANG modules supported by a server may reveal the kind of device and the manufacturer of the device. Although some of this information may be available to all NETCONF users via the NETCONF <hello> message (or similar messages in other management protocols), this YANG module potentially exposes additional details that could be of some assistance to an attacker. Server vulnerabilities may be specific to particular modules, module revisions, module features, or even module deviations. For example, if a particular operation on a particular data node is known to cause a server to crash or significantly degrade device performance, then the "module" list information will help an attacker identify server implementations with such a defect, in order to launch a denial-of-service attack on the device.

YANGライブラリの「/ yang-library」サブツリーは、サーバーがサポートするYANGモジュールのセットがデバイスの種類とデバイスの製造元を明らかにする可能性があるため、攻撃者が既知のバグを含むサーバー機能とサーバー実装を特定するのに役立ちます。この情報の一部は、NETCONF <hello>メッセージ(または他の管理プロトコルの同様のメッセージ)を介してすべてのNETCONFユーザーが利用できる場合がありますが、このYANGモジュールは、攻撃者に役立つ可能性のある追加の詳細を公開する可能性があります。サーバーの脆弱性は、特定のモジュール、モジュールリビジョン、モジュール機能、またはモジュールの逸脱に固有の場合があります。たとえば、特定のデータノードでの特定の操作が原因でサーバーがクラッシュしたり、デバイスのパフォーマンスが大幅に低下したりする場合、「モジュール」リストの情報は、攻撃者がそのような欠陥のあるサーバーの実装を特定し、デバイスに対するサービス拒否攻撃。

7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<https://www.rfc-editor.org/info/ rfc2119>。

[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <https://www.rfc-editor.org/info/rfc3688>.

[RFC3688] Mealling、M。、「The IETF XML Registry」、BCP 81、RFC 3688、DOI 10.17487 / RFC3688、2004年1月、<https://www.rfc-editor.org/info/rfc3688>。

[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, <https://www.rfc-editor.org/info/rfc6020>.

[RFC6020] Bjorklund、M。、編、「YANG-ネットワーク構成プロトコル(NETCONF)のデータモデリング言語」、RFC 6020、DOI 10.17487 / RFC6020、2010年10月、<https://www.rfc-editor。 org / info / rfc6020>。

[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, <https://www.rfc-editor.org/info/rfc6241>.

[RFC6241] Enns、R。、編、Bjorklund、M。、編、Schoenwaelder、J。、編、およびA. Bierman、編、「Network Configuration Protocol(NETCONF)」、RFC 6241、DOI 10.17487 / RFC6241、2011年6月、<https://www.rfc-editor.org/info/rfc6241>。

[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, <https://www.rfc-editor.org/info/rfc6242>.

[RFC6242] Wasserman、M。、「Using the NETCONF Protocol over Secure Shell(SSH)」、RFC 6242、DOI 10.17487 / RFC6242、2011年6月、<https://www.rfc-editor.org/info/rfc6242>。

[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013, <https://www.rfc-editor.org/info/rfc6991>.

[RFC6991] Schoenwaelder、J。、編、「Common YANG Data Types」、RFC 6991、DOI 10.17487 / RFC6991、2013年7月、<https://www.rfc-editor.org/info/rfc6991>。

[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, <https://www.rfc-editor.org/info/rfc7950>.

[RFC7950] Bjorklund、M。、編、「The YANG 1.1 Data Modeling Language」、RFC 7950、DOI 10.17487 / RFC7950、2016年8月、<https://www.rfc-editor.org/info/rfc7950>。

[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, <https://www.rfc-editor.org/info/rfc8040>.

[RFC8040] Bierman、A.、Bjorklund、M。、およびK. Watsen、「RESTCONFプロトコル」、RFC 8040、DOI 10.17487 / RFC8040、2017年1月、<https://www.rfc-editor.org/info/rfc8040 >。

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174] Leiba、B。、「RFC 2119キーワードの大文字と小文字のあいまいさ」、BCP 14、RFC 8174、DOI 10.17487 / RFC8174、2017年5月、<https://www.rfc-editor.org/info/ rfc8174>。

[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018, <https://www.rfc-editor.org/info/rfc8341>.

[RFC8341] Bierman、A。およびM. Bjorklund、「Network Configuration Access Control Model」、STD 91、RFC 8341、DOI 10.17487 / RFC8341、2018年3月、<https://www.rfc-editor.org/info/rfc8341 >。

[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, <https://www.rfc-editor.org/info/rfc8342>.

[RFC8342] Bjorklund、M.、Schoenwaelder、J.、Shafer、P.、Watsen、K。、およびR. Wilton、「Network Management Datastore Architecture(NMDA)」、RFC 8342、DOI 10.17487 / RFC8342、2018年3月、< https://www.rfc-editor.org/info/rfc8342>。

[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, <https://www.rfc-editor.org/info/rfc8446>.

[RFC8446] Rescorla、E。、「The Transport Layer Security(TLS)Protocol Version 1.3」、RFC 8446、DOI 10.17487 / RFC8446、2018年8月、<https://www.rfc-editor.org/info/rfc8446>。

7.2. Informative References
7.2. 参考引用

[RFC5277] Chisholm, S. and H. Trevino, "NETCONF Event Notifications", RFC 5277, DOI 10.17487/RFC5277, July 2008, <https://www.rfc-editor.org/info/rfc5277>.

[RFC5277] Chisholm、S。およびH. Trevino、「NETCONFイベント通知」、RFC 5277、DOI 10.17487 / RFC5277、2008年7月、<https://www.rfc-editor.org/info/rfc5277>。

[RFC6470] Bierman, A., "Network Configuration Protocol (NETCONF) Base Notifications", RFC 6470, DOI 10.17487/RFC6470, February 2012, <https://www.rfc-editor.org/info/rfc6470>.

[RFC6470] Bierman、A。、「Network Configuration Protocol(NETCONF)Base Notifications」、RFC 6470、DOI 10.17487 / RFC6470、2012年2月、<https://www.rfc-editor.org/info/rfc6470>。

[RFC7895] Bierman, A., Bjorklund, M., and K. Watsen, "YANG Module Library", RFC 7895, DOI 10.17487/RFC7895, June 2016, <https://www.rfc-editor.org/info/rfc7895>.

[RFC7895] Bierman、A.、Bjorklund、M。、およびK. Watsen、「YANG Module Library」、RFC 7895、DOI 10.17487 / RFC7895、2016年6月、<https://www.rfc-editor.org/info/ rfc7895>。

[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, <https://www.rfc-editor.org/info/rfc8340>.

[RFC8340] Bjorklund、M。およびL. Berger、編、「YANG Tree Diagrams」、BCP 215、RFC 8340、DOI 10.17487 / RFC8340、2018年3月、<https://www.rfc-editor.org/info/ rfc8340>。

[RFC8343] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, <https://www.rfc-editor.org/info/rfc8343>.

[RFC8343] Bjorklund、M。、「A YANG Data Model for Interface Management」、RFC 8343、DOI 10.17487 / RFC8343、2018年3月、<https://www.rfc-editor.org/info/rfc8343>。

[RFC8344] Bjorklund, M., "A YANG Data Model for IP Management", RFC 8344, DOI 10.17487/RFC8344, March 2018, <https://www.rfc-editor.org/info/rfc8344>.

[RFC8344] Bjorklund、M。、「IP管理用のYANGデータモデル」、RFC 8344、DOI 10.17487 / RFC8344、2018年3月、<https://www.rfc-editor.org/info/rfc8344>。

[RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 2018, <https://www.rfc-editor.org/info/rfc8345>.

[RFC8345] Clemm、A.、Medved、J.、Varga、R.、Bahadur、N.、Ananthakrishnan、H。、およびX. Liu、「ネットワークトポロジのYANGデータモデル」、RFC 8345、DOI 10.17487 / RFC8345 、2018年3月、<https://www.rfc-editor.org/info/rfc8345>。

[RFC8348] Bierman, A., Bjorklund, M., Dong, J., and D. Romascanu, "A YANG Data Model for Hardware Management", RFC 8348, DOI 10.17487/RFC8348, March 2018, <https://www.rfc-editor.org/info/rfc8348>.

[RFC8348] Bierman、A.、Bjorklund、M.、Dong、J。、およびD. Romascanu、「A Hardware Data Model for Hardware Management」、RFC 8348、DOI 10.17487 / RFC8348、2018年3月、<https:// www .rfc-editor.org / info / rfc8348>。

[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018, <https://www.rfc-editor.org/info/rfc8349>.

[RFC8349] Lhotka、L.、Lindem、A。、およびY. Qu、「ルーティング管理用のYANGデータモデル(NMDAバージョン)」、RFC 8349、DOI 10.17487 / RFC8349、2018年3月、<https:// www。 rfc-editor.org/info/rfc8349>。

[RFC8526] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "NETCONF Extensions to Support the Network Management Datastore Architecture", RFC 8526, DOI 10.17487/RFC8526, March 2019, <https://www.rfc-editor.org/info/rfc8526>.

[RFC8526] Bjorklund、M.、Schoenwaelder、J.、Shafer、P.、Watsen、K。、およびR. Wilton、「NETCONF Extensions to Support the Network Management Datastore Architecture」、RFC 8526、DOI 10.17487 / RFC8526、March 2019 、<https://www.rfc-editor.org/info/rfc8526>。

[RFC8528] Bjorklund, M. and L. Lhotka, "YANG Schema Mount", RFC 8528, DOI 10.17487/RFC8528, March 2019, <https://www.rfc-editor.org/info/rfc8528>.

[RFC8528] Bjorklund、M。、およびL. Lhotka、「YANG Schema Mount」、RFC 8528、DOI 10.17487 / RFC8528、2019年3月、<https://www.rfc-editor.org/info/rfc8528>。

Appendix A. Summary of Changes from RFC 7895
付録A. RFC 7895からの変更の要約

This document changes [RFC7895] in the following ways:

このドキュメントは、[RFC7895]を次のように変更します。

o Renamed document title from "YANG Module Library" to "YANG Library".

o ドキュメントのタイトルを「YANGモジュールライブラリ」から「YANGライブラリ」に変更しました。

o Added a new top-level "/yang-library" container to hold the entire YANG library providing information about module sets, schemas, and datastores.

o モジュールセット、スキーマ、データストアに関する情報を提供するYANGライブラリ全体を保持する、新しい最上位の「/ yang-library」コンテナが追加されました。

o Refactored the "/modules-state" container into a new "/yang-library/module-set" list.

o 「/ modules-state」コンテナを新しい「/ yang-library / module-set」リストにリファクタリングしました。

o Added a new "/yang-library/schema" list and a new "/yang-library/ datastore" list.

o 新しい "/ yang-library / schema"リストと新しい "/ yang-library / datastore"リストを追加しました。

o Added a set of new groupings as replacements for the deprecated groupings.

o 廃止されたグループの代わりに、新しいグループのセットを追加しました。

o Added a "yang-library-update" notification as a replacement for the deprecated "yang-library-change" notification.

o 廃止された「yang-library-change」通知の代わりに「yang-library-update」通知を追加しました。

o Deprecated the "/modules-state" tree.

o 「/ modules-state」ツリーは非推奨になりました。

o Deprecated the "/module-list" grouping.

o 「/ module-list」グループは非推奨になりました。

o Deprecated the "/yang-library-change" notification.

o 「/ yang-library-change」通知を廃止しました。

Appendix B. Example YANG Library Instance for a Basic Server
付録B.基本的なサーバーのYANGライブラリインスタンスの例

The following example shows the YANG library of a basic server implementing the "ietf-interfaces" [RFC8343] and "ietf-ip" [RFC8344] modules in the <running>, <startup>, and <operational> datastores and the "ietf-hardware" [RFC8348] module in the <operational> datastore.

次の例は、<running>、<startup>、<operational>データストア内の「ietf-interfaces」[RFC8343]および「ietf-ip」[RFC8344]モジュールと「ietf」を実装する基本的なサーバーのYANGライブラリを示しています。 -hardware "[RFC8348]モジュールが<operational>データストアにあります。

Newline characters in leaf values are added for formatting reasons.

リーフ値の改行文字は、フォーマット上の理由で追加されています。

   <yang-library
       xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library"
       xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
        
     <module-set>
       <name>config-modules</name>
       <module>
         <name>ietf-interfaces</name>
         <revision>2018-02-20</revision>
         <namespace>
        
           urn:ietf:params:xml:ns:yang:ietf-interfaces
         </namespace>
       </module>
       <module>
         <name>ietf-ip</name>
         <revision>2018-02-22</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-ip
         </namespace>
       </module>
       <import-only-module>
         <name>ietf-yang-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-yang-types
         </namespace>
       </import-only-module>
       <import-only-module>
         <name>ietf-inet-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-inet-types
         </namespace>
       </import-only-module>
     </module-set>
        
     <module-set>
       <name>state-modules</name>
       <module>
         <name>ietf-hardware</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-hardware
         </namespace>
       </module>
       <import-only-module>
         <name>ietf-inet-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-inet-types
         </namespace>
       </import-only-module>
       <import-only-module>
         <name>ietf-yang-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-yang-types
         </namespace>
        
       </import-only-module>
       <import-only-module>
         <name>iana-hardware</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:iana-hardware
         </namespace>
       </import-only-module>
     </module-set>
        
     <schema>
       <name>config-schema</name>
       <module-set>config-modules</module-set>
     </schema>
     <schema>
       <name>state-schema</name>
       <module-set>config-modules</module-set>
       <module-set>state-modules</module-set>
     </schema>
        
     <datastore>
       <name>ds:startup</name>
       <schema>config-schema</schema>
     </datastore>
     <datastore>
       <name>ds:running</name>
       <schema>config-schema</schema>
     </datastore>
     <datastore>
       <name>ds:operational</name>
       <schema>state-schema</schema>
     </datastore>
        
     <content-id>75a43df9bd56b92aacc156a2958fbe12312fb285</content-id>
   </yang-library>
        
Appendix C. Example YANG Library Instance for an Advanced Server
付録C. Advanced ServerのYANGライブラリインスタンスの例

The following example extends the example in Appendix B by using modules from [RFC8345] and [RFC8349] to illustrate a slightly more advanced server that:

次の例では、[RFC8345]および[RFC8349]のモジュールを使用して付録Bの例を拡張し、次のような少し高度なサーバーを示します。

o Has a module with features only enabled in <operational>; the "ietf-routing" module is supported in <running>, <startup>, and <operational>, but the "multiple-ribs" and "router-id" features are only enabled in <operational>. Hence, the "router-id" leaf may be read but not configured.

o <operational>でのみ有効な機能を持つモジュールがあります。 「ietf-routing」モジュールは<running>、<startup>、および<operational>でサポートされていますが、「multiple-ribs」および「router-id」機能は<operational>でのみ有効です。したがって、「router-id」リーフを読み取ることはできますが、構成することはできません。

o Supports a dynamic configuration datastore "example-ds-ephemeral", with only the "ietf-network" and "ietf-network-topology" modules configurable via a notional dynamic configuration protocol.

o 動的構成データストア「example-ds-ephemeral」をサポートし、「ietf-network」および「ietf-network-topology」モジュールのみが、概念的な動的構成プロトコルを介して構成可能です。

o Shows an example of datastore-specific deviations. The "example-vendor-hardware-deviations" module is included in the schema for <operational> to remove data nodes that cannot be supported by the server.

o データストア固有の偏差の例を示します。 「example-vendor-hardware-deviations」モジュールは、<operational>のスキーマに含まれており、サーバーでサポートできないデータノードを削除します。

o Shows how module-sets can be used to organize related modules together.

o モジュールセットを使用して、関連するモジュールをまとめる方法を示します。

Newline characters in leaf values are added for formatting reasons.

リーフ値の改行文字は、フォーマット上の理由で追加されています。

   <yang-library
       xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library"
       xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"
       xmlns:ex-ds-eph="urn:example:ds-ephemeral">
        
     <module-set>
       <name>config-state-modules</name>
       <module>
         <name>ietf-interfaces</name>
         <revision>2018-02-20</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-interfaces
         </namespace>
       </module>
       <module>
         <name>ietf-ip</name>
         <revision>2018-02-22</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-ip
         </namespace>
       </module>
       <module>
         <name>ietf-routing</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-routing
         </namespace>
       </module>
       <import-only-module>
         <name>ietf-yang-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-yang-types
         </namespace>
        
       </import-only-module>
       <import-only-module>
         <name>ietf-inet-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-inet-types
         </namespace>
       </import-only-module>
     </module-set>
        
     <module-set>
       <name>config-only-modules</name>
       <module>
         <name>ietf-routing</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-routing
         </namespace>
       </module>
     </module-set>
        
     <module-set>
       <name>dynamic-config-state-modules</name>
       <module>
         <name>ietf-network</name>
         <revision>2018-02-26</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-network
         </namespace>
       </module>
       <module>
         <name>ietf-network-topology</name>
         <revision>2018-02-26</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-network-topology
         </namespace>
       </module>
       <import-only-module>
         <name>ietf-inet-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-inet-types
         </namespace>
       </import-only-module>
     </module-set>
        
     <module-set>
       <name>state-only-modules</name>
        
       <module>
         <name>ietf-hardware</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-hardware
         </namespace>
         <deviation>example-vendor-hardware-deviations</deviation>
       </module>
       <module>
         <name>ietf-routing</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-routing
         </namespace>
         <feature>multiple-ribs</feature>
         <feature>router-id</feature>
       </module>
       <module>
         <name>example-vendor-hardware-deviations</name>
         <revision>2018-01-31</revision>
         <namespace>
           urn:example:example-vendor-hardware-deviations
         </namespace>
       </module>
       <import-only-module>
         <name>ietf-inet-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-inet-types
         </namespace>
       </import-only-module>
       <import-only-module>
         <name>ietf-yang-types</name>
         <revision>2013-07-15</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:ietf-yang-types
         </namespace>
       </import-only-module>
       <import-only-module>
         <name>iana-hardware</name>
         <revision>2018-03-13</revision>
         <namespace>
           urn:ietf:params:xml:ns:yang:iana-hardware
         </namespace>
       </import-only-module>
     </module-set>
        

<schema>

<スキーマ>

       <name>config-schema</name>
       <module-set>config-state-modules</module-set>
       <module-set>config-only-modules</module-set>
     </schema>
     <schema>
       <name>dynamic-config-schema</name>
       <module-set>dynamic-config-state-modules</module-set>
     </schema>
     <schema>
       <name>state-schema</name>
       <module-set>config-state-modules</module-set>
       <module-set>dynamic-config-state-modules</module-set>
       <module-set>state-only-modules</module-set>
     </schema>
        
     <datastore>
       <name>ds:startup</name>
       <schema>config-schema</schema>
     </datastore>
     <datastore>
       <name>ds:running</name>
       <schema>config-schema</schema>
     </datastore>
     <datastore>
       <name>ex-ds-eph:ds-ephemeral</name>
       <schema>dynamic-config-schema</schema>
     </datastore>
     <datastore>
       <name>ds:operational</name>
       <schema>state-schema</schema>
     </datastore>
        
     <content-id>14782ab9bd56b92aacc156a2958fbe12312fb285</content-id>
   </yang-library>
        

Authors' Addresses

著者のアドレス

Andy Bierman YumaWorks

アンディ・ビアマンYumaWorks

   Email: andy@yumaworks.com
        

Martin Bjorklund Tail-f Systems

Martin Bjorklund Tail-fシステム

   Email: mbj@tail-f.com
        

Juergen Schoenwaelder Jacobs University

ユルゲンシェーンヴェルダージェイコブス大学

   Email: j.schoenwaelder@jacobs-university.de
        

Kent Watsen Watsen Networks

Kent Watsen Watsen Networks

   Email: kent+ietf@watsen.net
        

Robert Wilton Cisco Systems

Robert Wilton Cisco Systems

   Email: rwilton@cisco.com