< draft-veillette-core-yang-library-04.txt   draft-veillette-core-yang-library-05.txt >
Internet Engineering Task Force M. Veillette, Ed. Internet Engineering Task Force M. Veillette, Ed.
Internet-Draft Trilliant Networks Inc. Internet-Draft Trilliant Networks Inc.
Intended status: Standards Track I. Petrov, Ed. Intended status: Standards Track I. Petrov, Ed.
Expires: September 30, 2019 Acklio Expires: January 9, 2020 Acklio
March 29, 2019 July 08, 2019
Constrained YANG Module Library Constrained YANG Module Library
draft-veillette-core-yang-library-04 draft-veillette-core-yang-library-05
Abstract Abstract
This document describes a constrained version of the YANG library This document describes a constrained version of the YANG library
that provides information about the YANG modules, datastores, and that provides information about the YANG modules, datastores, and
datastore schemas used by a constrained network management server datastore schemas used by a constrained network management server
(e.g., a CORECONF server). (e.g., a CORECONF server).
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 30, 2019. This Internet-Draft will expire on January 9, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 17 skipping to change at page 2, line 17
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology and Notation . . . . . . . . . . . . . . . . . . 2 2. Terminology and Notation . . . . . . . . . . . . . . . . . . 2
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Major differences between ietf-constrained-yang-library 3.2. Major differences between ietf-constrained-yang-library
and ietf-yang-library . . . . . . . . . . . . . . . . . . 4 and ietf-yang-library . . . . . . . . . . . . . . . . . . 4
4. YANG Module "ietf-constrained-yang-library" . . . . . . . . . 5 4. YANG Module "ietf-constrained-yang-library" . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
5.1. YANG Module Registry . . . . . . . . . . . . . . . . . . 13 5.1. YANG Module Registry . . . . . . . . . . . . . . . . . . 13
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
8.1. Normative References . . . . . . . . . . . . . . . . . . 14 8.1. Normative References . . . . . . . . . . . . . . . . . . 14
8.2. Informative References . . . . . . . . . . . . . . . . . 14 8.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction 1. Introduction
There is a need for a standard mechanism to expose which YANG There is a need for a standard mechanism to expose which YANG
modules, datastores and datastore schemas are in use by a constrained modules, datastores and datastore schemas are in use by a constrained
network management server. This document defines the YANG module network management server. This document defines the YANG module
'ietf-constrained-yang-library' that provides this information. 'ietf-constrained-yang-library' that provides this information.
YANG module 'ietf-constrained-yang-library' shares the same data YANG module 'ietf-constrained-yang-library' shares the same data
model and objectives as 'ietf-yang-library', only datatypes and model and objectives as 'ietf-yang-library', only datatypes and
mandatory requirements have been updated to minimize its size to mandatory requirements have been updated to minimize its size to
allow its implementation by Constrained Nodes and/or Constrained allow its implementation by Constrained Nodes and/or Constrained
Networks as defined by [RFC7228]. To review the list of objectives Networks as defined by [RFC7228]. To review the list of objectives
and proposed data model, please refer to [RFC8525] section 2 and 3. and proposed data model, please refer to [RFC8525] section 2 and 3.
2. Terminology and Notation 2. Terminology and Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "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.
The following terms are defined in [RFC7950]: client, deviation, The following terms are defined in [RFC7950]: client, deviation,
feature, module, submodule and server. feature, module, submodule and server.
The following term is defined in [I-D.ietf-core-sid]: YANG Schema The following term is defined in [I-D.ietf-core-sid]: YANG Schema
Item iDentifier (SID). Item iDentifier (SID).
The following terms are defined in [RFC8525]: YANG library and YANG The following terms are defined in [RFC8525]: YANG library and YANG
library checksum. library checksum.
skipping to change at page 4, line 44 skipping to change at page 4, line 44
| +--ro schema -> ../../schema/index | +--ro schema -> ../../schema/index
+--ro checksum binary +--ro checksum binary
notifications: notifications:
+---n yang-library-update +---n yang-library-update
+--ro checksum -> /yang-library/checksum +--ro checksum -> /yang-library/checksum
3.2. Major differences between ietf-constrained-yang-library and ietf- 3.2. Major differences between ietf-constrained-yang-library and ietf-
yang-library yang-library
The list of changes between the reference data model 'ietf-yang- The changes between the reference data model 'ietf-yang-library' and
library' and its constrained version 'ietf-constrained-yang-library' its constrained version 'ietf-constrained-yang-library' are listed
are listed below: below:
o module-set 'name' and schema 'name' are implemented using an 8 o module-set 'name' and schema 'name' are implemented using an 8
bits unsigned integer and renamed 'index'. bits unsigned integer and renamed 'index'.
o module 'name', submodule 'name' and datastore 'name' are o module 'name', submodule 'name' and datastore 'name' are
implemented using a SID (i.e. an unsigned integer) and renamed implemented using a SID (i.e. an unsigned integer) and renamed
'identifier'. 'identifier'.
o 'feature' and 'deviation' are implemented using a SID (i.e. an o 'feature' and 'deviation' are implemented using a SID (i.e. an
unsigned integer). unsigned integer).
skipping to change at page 5, line 27 skipping to change at page 5, line 27
o the implementation of the 'location' fields are not recommended, o the implementation of the 'location' fields are not recommended,
the use of the module SID as the handle to retrieve the associated the use of the module SID as the handle to retrieve the associated
YANG module is proposed instead. YANG module is proposed instead.
4. YANG Module "ietf-constrained-yang-library" 4. YANG Module "ietf-constrained-yang-library"
RFC Ed.: update the date below with the date of RFC publication and RFC Ed.: update the date below with the date of RFC publication and
remove this note. remove this note.
<CODE BEGINS> file "ietf-constrained-yang-library@2019-03-28.yang" <CODE BEGINS> file "ietf-constrained-yang-library@2019-03-28.yang"
module ietf-constrained-yang-library { module ietf-constrained-yang-library {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-constrained-yang-library"; namespace
prefix "yanglib"; "urn:ietf:params:xml:ns:yang:ietf-constrained-yang-library";
prefix "yanglib";
// RFC Ed.: update ietf-core-sid reference. // RFC Ed.: update ietf-core-sid reference.
import ietf-sid-file { import ietf-sid-file {
prefix sid; prefix sid;
reference "I-D.ietf-core-sid"; reference "I-D.ietf-core-sid";
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
reference "RFC 6991: Common YANG Data Types."; reference "RFC 6991: Common YANG Data Types.";
} }
import ietf-datastores { import ietf-datastores {
prefix ds; prefix ds;
reference "RFC 8342: Network Management Datastore Architecture (NMDA)."; reference
} "RFC 8342: Network Management Datastore Architecture (NMDA).";
}
organization organization
"IETF NETCONF (Network Configuration) Working Group"; "IETF NETCONF (Network Configuration) Working Group";
contact contact
"WG Web: <http://datatracker.ietf.org/wg/core/> "WG Web: <http://datatracker.ietf.org/wg/core/>
WG List: <mailto:core@ietf.org>
WG Chair: Carsten Bormann WG List: <mailto:core@ietf.org>
<mailto:cabo@tzi.org>
WG Chair: Jaime Jimenez WG Chair: Carsten Bormann
<mailto:jaime.jimenez@ericsson.com> <mailto:cabo@tzi.org>
Editor: Michel Veillette WG Chair: Jaime Jimenez
<mailto:michel.veillette@trilliantinc.com>"; <mailto:jaime.jimenez@ericsson.com>
description Editor: Michel Veillette
"This module provides information about the YANG modules, <mailto:michel.veillette@trilliantinc.com>";
datastores, and datastore schemas implemented by a constrained
network management server.
Copyright (c) 2018 IETF Trust and the persons identified as description
authors of the code. All rights reserved. "This module provides information about the YANG modules,
datastores, and datastore schemas implemented by a
constrained network management server.
Redistribution and use in source and binary forms, with or Copyright (c) 2018 IETF Trust and the persons identified as
without modification, is permitted pursuant to, and subject authors of the code. All rights reserved.
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
(http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see Redistribution and use in source and binary forms, with or
the RFC itself for full legal notices."; 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
(http://trustee.ietf.org/license-info).
// RFC Ed.: update reference. This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
revision 2019-03-28 { // RFC Ed.: update reference.
description
"Second revision.";
reference
"[I-D.veillette-core-yang-library] Constrained YANG Module Library";
}
revision 2018-09-21 { revision 2019-03-28 {
description description
"Initial revision."; "Second revision.";
reference reference
"[I-D.veillette-core-yang-library] Constrained YANG Module Library"; "[I-D.veillette-core-yang-library]";
} }
/* revision 2018-09-21 {
* Typedefs description
*/ "Initial revision.";
reference
"[I-D.veillette-core-yang-library]";
}
/*
* Typedefs
*/
typedef revision-identifier { typedef revision-identifier {
type binary { type binary {
length "4"; length "4";
} }
description description
"Revision date encoded as a binary string, each nibble representing "Revision date encoded as a binary string, each nibble
a digit of the of revision date. For example, revision 2018-09-21 representing a digit of the of revision date. For example,
is encoded as 0x20 0x18 0x09 0x21."; revision 2018-09-21 is encoded as 0x20 0x18 0x09 0x21.";
} }
/* /*
* Groupings * Groupings
*/ */
grouping module-identification-leafs { grouping module-identification-leafs {
description description
"Parameters for identifying YANG modules and submodules."; "Parameters for identifying YANG modules and submodules.";
leaf identifier { leaf identifier {
type sid:sid; type sid:sid;
mandatory true; mandatory true;
description description
"SID assigned to this module or submodule."; "SID assigned to this module or submodule.";
} }
leaf revision { leaf revision {
type revision-identifier; type revision-identifier;
description description
"The YANG module or submodule revision date. If no revision "The YANG module or submodule revision date. If no
statement is present in the YANG module or submodule, this revision statement is present in the YANG module
leaf is not instantiated."; or submodule, this leaf is not instantiated.";
} }
} }
grouping location-leaf-list { grouping location-leaf-list {
description description
"Common location leaf list parameter for modules and "Common location leaf list parameter for modules and
submodules."; submodules.";
leaf-list location { leaf-list location {
type inet:uri; type inet:uri;
description description
"Contains a URL that represents the YANG schema resource "Contains a URL that represents the YANG schema resource
for this module or submodule. for this module or submodule.
This leaf is present in the model to keep the alignment with This leaf is present in the model to keep the alignment
'ietf-yang-library'. Support of this leaf in constrained with 'ietf-yang-library'. Support of this leaf in
devices is not necessarily required, nor expected. It is constrained devices is not necessarily required, nor
recommended that clients used the module or sub-module SID expected. It is recommended that clients used the module
as the handle used to retrieve the corresponding YANG module"; or sub-module SID as the handle used to retrieve the
} corresponding YANG module";
} }
}
grouping implementation-parameters { grouping implementation-parameters {
description description
"Parameters for describing the implementation of a module."; "Parameters for describing the implementation of a module.";
leaf-list feature { leaf-list feature {
type sid:sid; type sid:sid;
description description
"List of all YANG feature names from this module that are "List of all YANG feature names from this module that are
supported by the server, regardless whether they are defined supported by the server, regardless whether they are
in the module or any included submodule."; defined in the module or any included submodule.";
} }
leaf-list deviation { leaf-list deviation {
type leafref { type leafref {
path "../../module/identifier"; path "../../module/identifier";
} }
description description
"List of all YANG deviation modules used by this server to "List of all YANG deviation modules used by this server to
modify the conformance of the module associated with this modify the conformance of the module associated with this
entry. Note that the same module can be used for deviations entry. Note that the same module can be used for
for multiple modules, so the same entry MAY appear within deviations for multiple modules, so the same entry MAY
multiple 'module' entries. appear within multiple 'module' entries.
This reference MUST NOT (directly or indirectly) This reference MUST NOT (directly or indirectly)
refer to the module being deviated. refer to the module being deviated.
Robust clients may want to make sure that they handle a Robust clients may want to make sure that they handle a
situation where a module deviates itself (directly or situation where a module deviates itself (directly or
indirectly) gracefully."; indirectly) gracefully.";
} }
} }
grouping module-set-parameters { grouping module-set-parameters {
description description
"A set of parameters that describe a module set."; "A set of parameters that describe a module set.";
leaf index { leaf index {
type uint8; type uint8;
description description
"An arbitrary number assigned of the module set."; "An arbitrary number assigned of the module set.";
}
list module {
key "identifier";
description
"An entry in this list represents a module implemented by the
server, as per RFC 7950 section 5.6.5, with a particular set
of supported features and deviations.";
reference
"RFC 7950: The YANG 1.1 Data Modeling Language.";
uses module-identification-leafs; }
list module {
key "identifier";
description
"An entry in this list represents a module implemented
by the server, as per RFC 7950 section 5.6.5, with a
particular set of supported features and deviations.";
reference
"RFC 7950: The YANG 1.1 Data Modeling Language.";
leaf namespace { uses module-identification-leafs;
type inet:uri;
description
"The XML namespace identifier for this module.
This leaf is present in the model to keep the alignment
with 'ietf-yang-library'. Support of this leaf in
constrained devices is not required, nor expected.";
}
uses location-leaf-list; leaf namespace {
type inet:uri;
description
"The XML namespace identifier for this module.
This leaf is present in the model to keep the alignment
with 'ietf-yang-library'. Support of this leaf in
constrained devices is not required, nor expected.";
}
list submodule { uses location-leaf-list;
key "identifier";
description
"Each entry represents one submodule within the parent
module.";
uses module-identification-leafs;
uses location-leaf-list;
}
uses implementation-parameters; list submodule {
} key "identifier";
list import-only-module { description
key "identifier revision"; "Each entry represents one submodule within the parent
description module.";
"An entry in this list indicates that the server imports uses module-identification-leafs;
reusable definitions from the specified revision of the uses location-leaf-list;
module, but does not implement any protocol accessible }
objects from this revision.
Multiple entries for the same module name MAY exist. This uses implementation-parameters;
can occur if multiple modules import the same module, but }
specify different revision-dates in the import statements."; list import-only-module {
key "identifier 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.
leaf identifier { Multiple entries for the same module name MAY exist.
type sid:sid; This can occur if multiple modules import the same
description module, but specify different revision-dates in the
"The YANG module name."; import statements.";
}
leaf revision {
type union {
type revision-identifier;
type string {
length 0;
}
}
description
"The YANG module revision date.";
}
leaf namespace {
type inet:uri;
description
"The XML namespace identifier for this module.
This leaf is present in the model to keep the alignment
with 'ietf-yang-library'. Support of this leaf in
constrained devices is not required, nor expected.";
}
uses location-leaf-list; leaf identifier {
type sid:sid;
description
"The YANG module name.";
}
leaf revision {
type union {
type revision-identifier;
type string {
length 0;
}
}
description
"The YANG module revision date.";
}
leaf namespace {
type inet:uri;
description
"The XML namespace identifier for this module.
This leaf is present in the model to keep the alignment
with 'ietf-yang-library'. Support of this leaf in
constrained devices is not required, nor expected.";
}
list submodule { uses location-leaf-list;
key "identifier";
description
"Each entry represents one submodule within the
parent module.";
uses module-identification-leafs; list submodule {
uses location-leaf-list; key "identifier";
} description
} "Each entry represents one submodule within the
} parent module.";
grouping yang-library-parameters { uses module-identification-leafs;
description uses location-leaf-list;
"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 { grouping yang-library-parameters {
key index; description
description "The YANG library data structure is represented as a grouping
"A set of modules that may be used by one or more schemas. so it can be reused in configuration or another monitoring
data structure.";
A module set does not have to be referentially complete, list module-set {
i.e., it may define modules that contain import statements key index;
for other modules not included in the module set."; description
"A set of modules that may be used by one or more schemas.
uses module-set-parameters; A module set does not have to be referentially complete,
} i.e., it may define modules that contain import statements
list schema { for other modules not included in the module set.";
key "index";
description
"A datastore schema that may be used by one or more
datastores.
The schema must be valid and referentially complete, i.e., uses module-set-parameters;
it must contain modules to satisfy all used import }
statements for all modules specified in the schema.";
leaf index { list schema {
type uint8; key "index";
description description
"An arbitrary reference number assigned to the schema."; "A datastore schema that may be used by one or more
} datastores.
leaf-list module-set {
type leafref {
path "../../module-set/index";
}
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 { The schema must be valid and referentially complete,
key "identifier"; i.e., it must contain modules to satisfy all used import
description statements for all modules specified in the schema.";
"A datastore supported by this server.
Each datastore indicates which schema it supports. leaf index {
type uint8;
description
"An arbitrary reference number assigned to the schema.";
}
leaf-list module-set {
type leafref {
path "../../module-set/index";
}
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.";
}
}
The server MUST instantiate one entry in this list per list datastore {
specific datastore it supports. key "identifier";
description
"A datastore supported by this server.
Each datstore entry with the same datastore schema SHOULD Each datastore indicates which schema it supports.
reference the same schema.";
leaf identifier { The server MUST instantiate one entry in this list
type ds:datastore-ref; per specific datastore it supports.
description
"The identity of the datastore.";
}
leaf schema {
type leafref {
path "../../schema/index";
} Each datstore entry with the same datastore schema
mandatory true; SHOULD reference the same schema.";
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.";
}
}
}
/* leaf identifier {
* Top-level container type ds:datastore-ref;
*/ description
"The identity of the datastore.";
}
leaf schema {
type leafref {
path "../../schema/index";
}
mandatory true;
description
"A reference to the schema supported by this datastore.
All non import-only modules of the schema are
implementedwith their associated features and
deviations.";
}
}
}
container yang-library { /*
config false; * Top-level container
description */
"Container holding the entire YANG library of this server.";
uses yang-library-parameters; container yang-library {
config false;
description
"Container holding the entire YANG library of this server.";
leaf checksum { uses yang-library-parameters;
type binary;
mandatory true;
description
"A server-generated checksum or digest 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/checksum', has
changed.";
}
}
/* leaf checksum {
* Notifications type binary;
*/ mandatory true;
description
"A server-generated checksum or digest 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/checksum',
has changed.";
}
}
notification yang-library-update { /*
description * Notifications
"Generated when any YANG library information on the */
server has changed.";
leaf checksum { notification yang-library-update {
type leafref { description
path "/yanglib:yang-library/yanglib:checksum"; "Generated when any YANG library information on the
} server has changed.";
mandatory true;
description leaf checksum {
"Contains the YANG library checksum or digest for the updated type leafref {
YANG library at the time the notification is generated."; path "/yanglib:yang-library/yanglib:checksum";
} }
} mandatory true;
} description
<CODE ENDS> "Contains the YANG library checksum or digest for the
updated YANG library at the time the notification is
generated.";
}
}
}
<CODE ENDS>
5. IANA Considerations 5. IANA Considerations
5.1. YANG Module Registry 5.1. YANG Module Registry
This document registers one YANG module in the YANG Module Names This document registers one YANG module in the YANG Module Names
registry [RFC7950]. registry [RFC7950].
name: ietf-constrained-yang-library name: ietf-constrained-yang-library
skipping to change at page 14, line 14 skipping to change at page 14, line 24
8. References 8. References
8.1. Normative References 8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for
Constrained-Node Networks", RFC 7228,
DOI 10.17487/RFC7228, May 2014,
<https://www.rfc-editor.org/info/rfc7228>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[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>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[RFC8525] Bierman, A., Bjorklund, M., Schoenwaelder, J., Watsen, K., [RFC8525] Bierman, A., Bjorklund, M., Schoenwaelder, J., Watsen, K.,
and R. Wilton, "YANG Library", RFC 8525, and R. Wilton, "YANG Library", RFC 8525,
DOI 10.17487/RFC8525, March 2019, DOI 10.17487/RFC8525, March 2019,
<https://www.rfc-editor.org/info/rfc8525>. <https://www.rfc-editor.org/info/rfc8525>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-core-sid] [I-D.ietf-core-sid]
Veillette, M., Pelov, A., and I. Petrov, "YANG Schema Item Veillette, M., Pelov, A., and I. Petrov, "YANG Schema Item
iDentifier (SID)", draft-ietf-core-sid-06 (work in iDentifier (SID)", draft-ietf-core-sid-07 (work in
progress), March 2019. progress), July 2019.
[RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for
Constrained-Node Networks", RFC 7228,
DOI 10.17487/RFC7228, May 2014,
<https://www.rfc-editor.org/info/rfc7228>.
Authors' Addresses Authors' Addresses
Michel Veillette (editor) Michel Veillette (editor)
Trilliant Networks Inc. Trilliant Networks Inc.
610 Rue du Luxembourg 610 Rue du Luxembourg
Granby, Quebec J2J 2V2 Granby, Quebec J2J 2V2
Canada Canada
Email: michel.veillette@trilliantinc.com Email: michel.veillette@trilliantinc.com
 End of changes. 68 change blocks. 
331 lines changed or deleted 344 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/