draft-lengyel-netmod-yang-instance-data-04.txt | draft-lengyel-netmod-yang-instance-data-05.txt | |||
---|---|---|---|---|
Network Working Group B. Lengyel | Netconf B. Lengyel | |||
Internet-Draft Ericsson | Internet-Draft Ericsson | |||
Intended status: Standards Track B. Claise | Intended status: Standards Track B. Claise | |||
Expires: April 6, 2019 Cisco Systems, Inc. | Expires: April 22, 2019 Cisco Systems, Inc. | |||
October 3, 2018 | October 19, 2018 | |||
YANG Instance Data Files and their use for Documenting Server | YANG Based Instance Data Files Format | |||
Capabilities | draft-lengyel-netmod-yang-instance-data-05 | |||
draft-lengyel-netmod-yang-instance-data-04 | ||||
Abstract | Abstract | |||
This document specifies a standard file format for YANG instance | There is a need to document data defined in YANG models without the | |||
data, that is data that could be stored in a datastore and whose | need to fetch it from a live YANG server. Data is often needed | |||
syntax and semantics is defined by YANG models. Instance data files | already in design time or needed by groups that do not have a live | |||
can be used to provide information that is defined in design time. | running YANG server available. This document specifies a standard | |||
There is a need to document Server capabilities (which are often | file format for YANG Based Instance data, that is data that could be | |||
specified in design time). Defining server capabilities is foreseen | stored in a datastore and whose syntax and semantics is defined by | |||
as the most important use of YANG instance data files. | YANG models. Most important use cases foreseen include documenting | |||
server capabilities, factory-default settings, or vendor provided | ||||
default configurations. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 April 6, 2019. | This Internet-Draft will expire on April 22, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Data Life cycle . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Delivery of Instance Data . . . . . . . . . . . . . . . . 4 | 2.1.1. Use Case 1: Early Documentation of Server Capabilites 3 | |||
2.3. Use Case 1: Early Documentation of Server Capabilites . . 5 | 2.1.2. Use Case 2: Preloading Data . . . . . . . . . . . . . 4 | |||
2.4. Use Case 2: Preloading Data . . . . . . . . . . . . . . . 5 | 2.1.3. Use Case 3: Dcoumenting Factory Default Settings . . 4 | |||
2.5. Use Case 3: Dcoumenting Factory Default Settings . . . . 5 | 3. Instance Data File Format . . . . . . . . . . . . . . . . . . 5 | |||
3. Instance Data File Format . . . . . . . . . . . . . . . . . . 6 | 4. Data Life cycle . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4. YANG Model . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Delivery of Instance Data . . . . . . . . . . . . . . . . . . 9 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. YANG Model . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 11 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 11 | 9.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
Appendix B. Changes between revisions . . . . . . . . . . . . . 11 | Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 12 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Appendix B. Changes between revisions . . . . . . . . . . . . . 13 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
1. Terminology | 1. Terminology | |||
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 [RFC2119] RFC 8174 [RFC8174] when, and only when, they | ||||
appear in all capitals, as shown here. | ||||
Design time: A time during which a YANG model and the implementation | Design time: A time during which a YANG model and the implementation | |||
behind it is created. Sometimes in other documents this period is | behind it is created. Sometimes in other documents this period is | |||
divided into design and implementation time. | divided into design and implementation time. | |||
Instance Data Set: A named set of data items that can be used as | Instance Data Set: A named set of data items that can be used as | |||
instance data in a YANG data tree. | instance data in a YANG data tree. | |||
Instance Data File: A file containing an instance data set formatted | Instance Data File: A file containing an instance data set formatted | |||
according to the rules described in this document. | according to the rules described in this document. | |||
Target YANG Module: A YANG module for which the instance data set | Target YANG Module: A YANG module for which the instance data set | |||
contains instance data, like ietf-yang-library in the examples. | contains instance data, like ietf-yang-library in the examples. | |||
2. Introduction | 2. Introduction | |||
A YANG server has a number of server-capabilities that can be | There is a need to provide instance data defined in YANG models | |||
retrieved from the server using protocols like NETCONF or RESTCONF. | without the need to fetch it from a live YANG server. Data is often | |||
YANG server capabilities include | needed already in design time before the YANG server is implemented | |||
or needed by groups that do not have a live running YANG server | ||||
available. To facilitate this off-line delivery of data this | ||||
document specifies a standard file format for YANG Based Instance | ||||
data, that is data that could be stored in a datastore and whose | ||||
syntax and semantics is defined by YANG models. | ||||
2.1. Use Cases | ||||
We present a number of use cases were Yang based instance data is | ||||
needed. | ||||
2.1.1. Use Case 1: Early Documentation of Server Capabilites | ||||
A YANG server has a number of server-capabilities that are defined in | ||||
YANG modules and can be retrieved from the server using protocols | ||||
like NETCONF or RESTCONF. YANG server capabilities include | ||||
o data defined in ietf-yang-library: YANG modules, submodules, | o data defined in ietf-yang-library: YANG modules, submodules, | |||
features, deviations, schema-mounts | features, deviations, schema-mounts, datastores supported | |||
([I-D.ietf-netconf-rfc7895bis]) | ([I-D.ietf-netconf-rfc7895bis]) | |||
o datastores supported | ||||
o alarms supported ([I-D.ietf-ccamp-alarm-module]) | o alarms supported ([I-D.ietf-ccamp-alarm-module]) | |||
o data nodes, subtrees that support or do not support on-change | o data nodes, subtrees that support or do not support on-change | |||
notifications ([I-D.ietf-netconf-yang-push]) | notifications ([I-D.ietf-netconf-yang-push]) | |||
o netconf-capabilities | o netconf-capabilities in ietf-netconf-monitoring | |||
While it is good practice to allow a client to query these | While it is good practice to allow a client to query these | |||
capabilites from the live YANG server, that is often not enough. | capabilites from the live YANG server, that is often not enough. | |||
Most server-capabilities are relatively stable but the fact is that | ||||
some might change. Looking at the change frequency, we have roughly | ||||
three categories: | ||||
1. only at upgrade, e.g. introduced with a new SW package | ||||
2. rarely e.g. due to licensing or HW inserted | ||||
3. more frequently e.g. a capability might be dependent on the CPU | ||||
or traffic load, although that would be most unusual | ||||
Most capabilities belong to type 1), some to type 2) and a relatively | ||||
small set to type 3). Many network nodes only have type 1) or type | ||||
1+2) capabilities. Stable capabilities are usually defined by a | ||||
vendor in design time, before the product is released. While these | ||||
capabilities can be retrieved from the live server in run-time, there | ||||
is a strong need to provide the same data already during design time. | ||||
(Often only a part of all the server capabilities can be made | ||||
available.) | ||||
Often when a network node is released an associated NMS (network | Often when a network node is released an associated NMS (network | |||
management system) is also released with it. The NMS depends on the | management system) is also released with it. The NMS depends on the | |||
capabilities of the YANG server. During NMS implementation | capabilities of the YANG server. During NMS implementation | |||
information about server capabilities is needed. If the information | information about server capabilities is needed. If the information | |||
is not available early in some off-line document, but only as | is not available early in some off-line document, but only as | |||
instance data from the live network node, the NMS implementation will | instance data from the live network node, the NMS implementation will | |||
be delayed, because it has to wait for the network node to be ready. | be delayed, because it has to wait for the network node to be ready. | |||
Also assuming that all NMS implementors will have a correctly | Also assuming that all NMS implementors will have a correctly | |||
configured network node available to retrieve data from, is a very | configured network node available to retrieve data from, is a very | |||
expensive proposition. (An NMS may handle dozens of node types.) | expensive proposition. (An NMS may handle dozens of node types.) | |||
Network operators often build their own home-grown NMS systems that | ||||
needs to be integrated with a vendor's network node. The operator | ||||
needs to know the network node's server capabilities in order to do | ||||
this. Moreover the network operator's decision to buy a vendor's | ||||
product may even be influenced by the network node's OAM feature set | ||||
documented as the Yang server's capabilites. | ||||
Beside NMS implementors, system integrators and many others also need | Beside NMS implementors, system integrators and many others also need | |||
the same information early. Examples could be model driven testing, | the same information early. Examples could be model driven testing, | |||
generating documentation, etc. | generating documentation, etc. | |||
As capabilities are often already known in design time and are | Most server-capabilities are relatively stable and change only during | |||
relativaly stable, it feasible and advantageous to define/document | upgrade or due to licensing or addition or removal of HW. They are | |||
them early. This document specifies a file format for YANG instance | usually defined by a vendor in design time, before the product is | |||
data that may be used to provide server capability information, | released. It feasible and advantageous to define/document them early | |||
allowing vendors to specify capabilities early, in design time. | e.g. in a Yang Based Instance Data File. | |||
The same instance data file format can be used for other purposes, | ||||
like providing initial data for any YANG module. E.g. a basic set of | ||||
access control groups can be provided either by a device vendor or an | ||||
operator using the network device. | ||||
2.1. Data Life cycle | ||||
Data defined or documented in YANG Instance Data Sets may be used for | ||||
preloading a YANG server with this data, but the server may populate | ||||
the data without using the actual file in which case the Instance | ||||
Data File is only used as documentation. | ||||
While such data will usually not change, data documented by Instance | ||||
Data sets MAY be changed by the YANG server itself or by management | ||||
operations. It is out of scope for this document to specify a method | ||||
to prevent this. Whether such data changes and if so, when and how, | ||||
SHOULD be described either in the instance data file description | ||||
statement or in some other implementation specific manner. | ||||
YANG Instance data is a snap-shot of information at a specific point | ||||
of time. If the data changes afterwards this is not represented in | ||||
the instance data set anymore, the valid values can be retrieved in | ||||
run-time via Netconf/Restconf | ||||
Notifications about the change of data documented by Instance Data | ||||
Sets may be supplied by e.g. the Yang-Push mechanism, but it is out | ||||
of scope for this document. | ||||
2.2. Delivery of Instance Data | ||||
Instance data files SHOULD be available without the need for and | ||||
before the instalation of a live YANG server e.g. via download from | ||||
the vendor's website. or any other way together with other product | ||||
documentation. | ||||
2.3. Use Case 1: Early Documentation of Server Capabilites | ||||
An operator wants to integrate his own, in-house built management | ||||
system with the network node from ACME Systems. The management | ||||
integration must be ready by the time the first AcmeRouter is | ||||
installed in the network. To do the integration the operator needs | ||||
the list of supported YANG modules and features. While this list | ||||
could be read from the ietf-yang-library via Netconf, in order to | ||||
allow time for developing the management integration, the operator | ||||
demands this information early. The operator will value that this | ||||
information is available in a standard format, that is actually the | ||||
same format that can be read later from the node via Netconf. | ||||
YANG instance data files are used to provide design time information | It is anticipated that a separate IETF document will define in detail | |||
about server capabilities. | how and which set of server capabilites should be documented. | |||
2.4. Use Case 2: Preloading Data | 2.1.2. Use Case 2: Preloading Data | |||
There are parts of the configuration that must be fully configurable | There are parts of the configuration that must be fully configurable | |||
by the operator, however for which often a semi-standard default | by the operator, however for which often a simple default | |||
configuration will be sufficient. | configuration will be sufficient. | |||
One example is access control groups/roles and related rules. While | One example is access control groups/roles and related rules. While | |||
a sophisticated operator may define dozens of different groups often | a sophisticated operator may define dozens of different groups often | |||
a basic (read-only operator, read-write system administrator, | a basic (read-only operator, read-write system administrator, | |||
security-administrator) triplet will be enough. Vendors will often | security-administrator) triplet will be enough. Vendors will often | |||
provide such default configuration data to make device configuration | provide such default configuration data to make device configuration | |||
easier for an operator. | easier for an operator. | |||
Defining Access control data is a complex task. To help the device | Defining Access control data is a complex task. To help the device | |||
vendor pre-defines a set of default groups (/nacm:nacm/groups) and | vendor pre-defines a set of default groups (/nacm:nacm/groups) and | |||
rules for these groups to access specific parts of common models | rules for these groups to access specific parts of common models | |||
(/nacm:nacm/rule-list/rule). | (/nacm:nacm/rule-list/rule). | |||
YANG instance data files are used to document and/or preload the | YANG Based Instance data files are used to document and/or preload | |||
default configurationp. | the default configurationp. | |||
2.5. Use Case 3: Dcoumenting Factory Default Settings | 2.1.3. Use Case 3: Dcoumenting Factory Default Settings | |||
Nearly every YANG server has a factory default configuration. If the | Nearly every YANG server has a factory default configuration. If the | |||
system is really badly misconfigured or if the current configuration | system is really badly misconfigured or if the current configuration | |||
is to be abandoned the system can be reset to this default. | is to be abandoned the system can be reset to this default. | |||
In Netconf the <delete-config> operation can be used to do this, | In Netconf the <delete-config> operation can already be used to do | |||
while in Restconf there are plans to introduce a custom operation for | this for the startup configuration. There are ongoing efforts to | |||
this purpose. | introduce a new, more generic reset operation for the same purpose | |||
[I-D.wu-netconf-restconf-factory-restore] | ||||
The operator currently has no way to know what the default | The operator currently has no way to know what the default | |||
configuration actually contains. YANG Instance data can be used to | configuration actually contains. YANG Based Instance data can be | |||
document the factory default configuration. | used to document the factory default configuration. | |||
3. Instance Data File Format | 3. Instance Data File Format | |||
Two standard formats to represent YANG Instance Data are specified | Two standard formats to represent YANG Based Instance Data are | |||
based on the XML and JSON encoding. The XML format is based on | specified based on the XML and JSON encoding. The XML format is | |||
[RFC7950] while the JSON format is based on [RFC7951]. Later as | based on [RFC7950] while the JSON format is based on [RFC7951]. | |||
other YANG encodings (e.g. CBOR) are defined further Instance Data | Later as other YANG encodings (e.g. CBOR) are defined further | |||
formats may be specified. | Instance Data formats may be specified. | |||
For both formats data is placed in a top level auxiliary container | For both formats data is placed in a top level auxiliary container | |||
named "instance-data-set". The purpose of the container, which is | named "instance-data-set". The purpose of the container, which is | |||
not part of the real data itself, is to carry meta-data for the | not part of the real data itself, is to carry meta-data for the | |||
complete instance-data-set. | complete instance-data-set. | |||
The XML format SHALL follow the format returned for a NETCONF GET | The XML format SHALL follow the format returned for a NETCONF GET | |||
operation. The <data> anydata (which is not part of the real data | operation. The <data> anydata (which is not part of the real data | |||
itself) SHALL contain all data that would be inside the <data> | itself) SHALL contain all data that would be inside the <data> | |||
wrapper element of a reply to the <get> operation. XML attributes | wrapper element of a reply to the <get> operation. XML attributes | |||
SHOULD NOT be present, however if a SW receiving a YANG instance data | SHOULD NOT be present, however if a SW receiving a YANG Based | |||
file encounters XML attributes unknown to it, it MUST ignore them, | Instance data file encounters XML attributes unknown to it, it MUST | |||
allowing them to be used later for other purposes. | ignore them, allowing them to be used later for other purposes. | |||
The JSON format SHALL follow the format of the reply returmed for a | The JSON format SHALL follow the format of the reply returmed for a | |||
RESTCONF GET request directed at the datastore resource: | RESTCONF GET request directed at the datastore resource: | |||
{+restconf}/data. ETags and Timestamps SHOULD NOT be included, but | {+restconf}/data. ETags and Timestamps SHOULD NOT be included, but | |||
if present SHOULD be ignored. | if present SHOULD be ignored. | |||
A YANG Instance data file MUST contain a single instance data set. | A YANG Based Instance data file MUST contain a single instance data | |||
Instance data MUST conform to the corresponding target YANG Modules | set. Instance data MUST conform to the corresponding target YANG | |||
and follow the XML/JSON encoding rules as defined in [RFC7950] and | Modules and follow the XML/JSON encoding rules as defined in | |||
[RFC7951] and use UTF-8 character encoding. A single instance data | [RFC7950] and [RFC7951] and use UTF-8 character encoding. A single | |||
set MAY contain data for any number of target YANG modules, if needed | instance data set MAY contain data for any number of target YANG | |||
it MAY carry the complete configuraton and state data set for a YANG | modules, if needed it MAY carry the complete configuraton and state | |||
server. Default values SHOULD NOT but MAY be included. Config=true | data set for a YANG server. Default values SHOULD NOT but MAY be | |||
and config=false data MAY be mixed in the instance data file. | included. Config=true and config=false data MAY be mixed in the | |||
Instance data files MAY contain partial data sets. This means | instance data file. Instance data files MAY contain partial data | |||
mandatory, min-elements or require-instance=true constrains MAY be | sets. This means mandatory, min-elements or require-instance=true | |||
violated. | constrains MAY be violated. | |||
The name of the file SHOULD be of the form: | The name of the file SHOULD be of the form: | |||
instance-data-set-name ['@' revision-date] ( '.yid' ) | instance-data-set-name ['@' revision-date] ( '.yid' ) | |||
E.g. acme-router-modules@2018-01-25.yid | E.g. acme-router-modules@2018-01-25.yid | |||
The revision date is optional. It SHOULD NOT be used if the file is | The revision date is optional. It SHOULD NOT be used if the file is | |||
stored in a version control system (e.g. git) because the change of | stored in a version control system (e.g. git) because the change of | |||
file names will break the connection between the different revisions | file names will break the connection between the different revisions | |||
skipping to change at page 8, line 32 ¶ | skipping to change at page 8, line 32 ¶ | |||
} | } | |||
} | } | |||
] | ] | |||
] | ] | |||
} | } | |||
} | } | |||
} | } | |||
Figure 2: JSON Instance Data File example | Figure 2: JSON Instance Data File example | |||
4. YANG Model | 4. Data Life cycle | |||
Data defined or documented in YANG Based Instance Data Sets may be | ||||
used for preloading a YANG server with this data, but the server may | ||||
populate the data without using the actual file in which case the | ||||
Instance Data File is only used as documentation. | ||||
While such data will usually not change, data documented by Instance | ||||
Data sets MAY be changed by the YANG server itself or by management | ||||
operations. It is out of scope for this document to specify a method | ||||
to prevent this. Whether such data changes and if so, when and how, | ||||
SHOULD be described either in the instance data file description | ||||
statement or in some other implementation specific manner. | ||||
YANG Based Instance data is a snap-shot of information at a specific | ||||
point of time. If the data changes afterwards this is not | ||||
represented in the instance data set anymore, the valid values can be | ||||
retrieved in run-time via Netconf/Restconf | ||||
Notifications about the change of data documented by Instance Data | ||||
Sets may be supplied by e.g. the Yang-Push mechanism, but it is out | ||||
of scope for this document. | ||||
5. Delivery of Instance Data | ||||
Instance data files SHOULD be available without the need for a live | ||||
YANG server e.g. via download from the vendor's website, or any | ||||
other way together with other product documentation. | ||||
6. YANG Model | ||||
<CODE BEGINS> file "ietf-yang-instance-data.yang" | <CODE BEGINS> file "ietf-yang-instance-data.yang" | |||
module ietf-yang-instance-data { | module ietf-yang-instance-data { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace | namespace | |||
"urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"; | "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"; | |||
prefix yid ; | prefix yid ; | |||
import ietf-yang-data-ext { prefix yd; } | import ietf-yang-data-ext { prefix yd; } | |||
skipping to change at page 9, line 10 ¶ | skipping to change at page 9, line 41 ¶ | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
Author: Balazs Lengyel | Author: Balazs Lengyel | |||
<mailto:balazs.lengyel@ericsson.com>"; | <mailto:balazs.lengyel@ericsson.com>"; | |||
description "The module defines the structure and content of YANG | description "The module defines the structure and content of YANG | |||
Instance Data Sets."; | Instance Data Sets."; | |||
revision 2018-06-30 { | revision 2018-06-30 { | |||
description "Initial revision."; | description "Initial revision."; | |||
reference "RFC XXXX: YANG Instance Data"; | reference "RFC XXXX: YANG Based Instance Data"; | |||
} | } | |||
yd:yang-data instance-data-format { | yd:yang-data instance-data-format { | |||
container instance-data-set { | container instance-data-set { | |||
description "Auxiliary container to carry meta-data for | description "Auxiliary container to carry meta-data for | |||
the complete instance data set."; | the complete instance data set."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description "Name of a YANG instance data set."; | description "Name of a YANG Based Instance data set."; | |||
} | } | |||
leaf description { type string; } | leaf description { type string; } | |||
leaf contact { | leaf contact { | |||
type string; | type string; | |||
description "Contains the same information the contact | description "Contains the same information the contact | |||
statement carries for a YANG module."; | statement carries for a YANG module."; | |||
} | } | |||
skipping to change at page 10, line 30 ¶ | skipping to change at page 11, line 14 ¶ | |||
mandatory true; | mandatory true; | |||
description "Contains the real instance data. | description "Contains the real instance data. | |||
The data MUST conform to the relevant YANG Modules."; | The data MUST conform to the relevant YANG Modules."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
5. Security Considerations | 7. Security Considerations | |||
Depending on the nature of the instance data, instance data files MAY | Depending on the nature of the instance data, instance data files MAY | |||
need to be handled in a secure way. The same type of handling should | need to be handled in a secure way. The same type of handling should | |||
be applied, that would be needed for the result of a <get> operation | be applied, that would be needed for the result of a <get> operation | |||
returning the same data. | returning the same data. | |||
6. IANA Considerations | 8. IANA Considerations | |||
To be completed, all the usual requests for a new YANG module | To be completed, all the usual requests for a new YANG module | |||
7. References | 9. References | |||
7.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-netmod-yang-data-ext] | [I-D.ietf-netmod-yang-data-ext] | |||
Bierman, A., Bjorklund, M., and K. Watsen, "YANG Data | Bierman, A., Bjorklund, M., and K. Watsen, "YANG Data | |||
Extensions", draft-ietf-netmod-yang-data-ext-01 (work in | Extensions", draft-ietf-netmod-yang-data-ext-01 (work in | |||
progress), March 2018. | progress), March 2018. | |||
[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>. | |||
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | |||
RFC 7951, DOI 10.17487/RFC7951, August 2016, | RFC 7951, DOI 10.17487/RFC7951, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7951>. | <https://www.rfc-editor.org/info/rfc7951>. | |||
7.2. Informative References | 9.2. Informative References | |||
[I-D.ietf-ccamp-alarm-module] | [I-D.ietf-ccamp-alarm-module] | |||
Vallin, S. and M. Bjorklund, "YANG Alarm Module", draft- | Vallin, S. and M. Bjorklund, "YANG Alarm Module", draft- | |||
ietf-ccamp-alarm-module-03 (work in progress), September | ietf-ccamp-alarm-module-04 (work in progress), October | |||
2018. | 2018. | |||
[I-D.ietf-netconf-rfc7895bis] | [I-D.ietf-netconf-rfc7895bis] | |||
Bierman, A., Bjorklund, M., Schoenwaelder, J., Watsen, K., | Bierman, A., Bjorklund, M., Schoenwaelder, J., Watsen, K., | |||
and R. Wilton, "YANG Library", draft-ietf-netconf- | and R. Wilton, "YANG Library", draft-ietf-netconf- | |||
rfc7895bis-06 (work in progress), April 2018. | rfc7895bis-07 (work in progress), October 2018. | |||
[I-D.ietf-netconf-yang-push] | [I-D.ietf-netconf-yang-push] | |||
Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- | |||
Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore | Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore | |||
Subscription", draft-ietf-netconf-yang-push-19 (work in | Subscription", draft-ietf-netconf-yang-push-19 (work in | |||
progress), September 2018. | progress), September 2018. | |||
[I-D.wu-netconf-restconf-factory-restore] | ||||
Wu, Q., Lengyel, B., and Y. Niu, "Factory default | ||||
Setting", draft-wu-netconf-restconf-factory-restore-03 | ||||
(work in progress), October 2018. | ||||
[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>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
Appendix A. Open Issues | Appendix A. Open Issues | |||
o - | o If we define metadata per target module, a list of target YAM | |||
could be included in the metadata. This depends on what | ||||
additional metadata we will include. | ||||
o How do we know for which version of the target Yang Module is a | ||||
data set valid? Proposal: One possibility would be to just | ||||
indicate for which module version(s) was the data set last | ||||
updated. This would be a hint about compatibility, but nothing | ||||
more. Maybe we should wait till the YANG versioning work is | ||||
complete/stable. Identifying just one version is way to strict, | ||||
so something enforcing that shall not be used. | ||||
o Should we document what YANG features does the instance data set | ||||
implicitly require? Proposal: that is already a use case, | ||||
documenting data from the YANG library. | ||||
o Augmenting metadata must be possible. As of now it looks like | ||||
yang-data-ext will solve that. If not, define instance data as | ||||
regular YANG instead of yd:yang-data. | ||||
Appendix B. Changes between revisions | Appendix B. Changes between revisions | |||
v04 - v05 | ||||
o Changed title and introduction to clarify that this draft is only | ||||
about the file format and documenting server capabilities is just | ||||
a use case. | ||||
o Added reference to draft-wu-netconf-restconf-factory-restore | ||||
o Added new open issues. | ||||
v03 - v04 | v03 - v04 | |||
o Updated changelog for v02-v03 | o Updated changelog for v02-v03 | |||
v02 - v03 | v02 - v03 | |||
o Updated the document according to comments received at IETF102 | o Updated the document according to comments received at IETF102 | |||
o Added parameter to specify datastore | o Added parameter to specify datastore | |||
o Rearranged chapters | o Rearranged chapters | |||
o Added new use case: Documenting Factory Default Settings | o Added new use case: Documenting Factory Default Settings | |||
o Added "Target YANG Module" to terminology | o Added "Target YANG Module" to terminology | |||
o Clarified that instance data is a snapshot valid at the time of | o Clarified that instance data is a snapshot valid at the time of | |||
creation, so it does not contain any later changes. | creation, so it does not contain any later changes. | |||
End of changes. 38 change blocks. | ||||
151 lines changed or deleted | 177 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/ |