draft-ietf-netconf-nmda-restconf-00.txt | draft-ietf-netconf-nmda-restconf-01.txt | |||
---|---|---|---|---|
Network Working Group M. Bjorklund | Network Working Group M. Bjorklund | |||
Internet-Draft Tail-f Systems | Internet-Draft Tail-f Systems | |||
Updates: 8040 (if approved) J. Schoenwaelder | Updates: 8040 (if approved) J. Schoenwaelder | |||
Intended status: Standards Track Jacobs University | Intended status: Standards Track Jacobs University | |||
Expires: February 25, 2018 P. Shafer | Expires: May 3, 2018 P. Shafer | |||
K. Watsen | K. Watsen | |||
Juniper Networks | Juniper Networks | |||
R. Wilton | R. Wilton | |||
Cisco Systems | Cisco Systems | |||
August 24, 2017 | October 30, 2017 | |||
RESTCONF Update to Support the NMDA | RESTCONF Update to Support the NMDA | |||
draft-ietf-netconf-nmda-restconf-00 | draft-ietf-netconf-nmda-restconf-01 | |||
Abstract | Abstract | |||
This document updates RESTCONF [RFC8040] in order to support the | This document updates RESTCONF [RFC8040] in order to support the | |||
Network Management Datastore Architecture (NMDA) defined in | Network Management Datastore Architecture (NMDA) defined in | |||
[I-D.ietf-netmod-revised-datastores]. | [I-D.ietf-netmod-revised-datastores]. | |||
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 | |||
skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 February 25, 2018. | This Internet-Draft will expire on May 3, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Summary of Updates to RFC 8040 . . . . . . . . . . . . . . . 2 | 2. Summary of Updates to RFC 8040 . . . . . . . . . . . . . . . 3 | |||
4. Conformance . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Conformance . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
5. The {+restconf}/ds/<datastore> Resource . . . . . . . . . . . 3 | 4. The {+restconf}/ds/<datastore> Resources . . . . . . . . . . 3 | |||
6. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 3 | 5. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 4 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 5.1. The "with-origin" query parameter . . . . . . . . . . . . 4 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 4 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 5 | |||
Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
1. Introduction | 1. Introduction | |||
This document updates RESTCONF [RFC8040] in order to support the | This document updates RESTCONF [RFC8040] in order to support the | |||
Network Management Datastore Architecture (NMDA) defined in | Network Management Datastore Architecture (NMDA) defined in | |||
[I-D.ietf-netmod-revised-datastores]. | [I-D.ietf-netmod-revised-datastores]. | |||
The solution presented in this document is backwards compatible with | The solution presented in this document is backwards compatible with | |||
[RFC8040]. This is achieved by it only adding new top-level | [RFC8040]. This is achieved by it only adding new top-level | |||
resources, and thereby leaving the semantics of all existing | resources, and thereby leaving the semantics of all existing | |||
resources alone. | resources alone. | |||
2. Requirements Language | 1.1. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Summary of Updates to RFC 8040 | The following terms are defined in | |||
[I-D.ietf-netmod-revised-datastores] and are not redefined here: | ||||
o operational state datastore | ||||
o running configuration datastore | ||||
o intended configuration datastore | ||||
2. Summary of Updates to RFC 8040 | ||||
This document updates [RFC8040] in the following ways: | This document updates [RFC8040] in the following ways: | |||
o Adds new top-level resource "/ds". | o Adds new top-level resource "/ds". | |||
o Adds new query parameter "with-origin". | o Adds new query parameter "with-origin". | |||
o Section 3.5.4, Paragraph 3 doesn't apply for <operational>. | o Section 3.5.4, Paragraph 3 in [RFC8040] doesn't apply when | |||
interacting with any resource under {+restconf}/ds. | ||||
4. Conformance | o Updates section 10 in [RFC8040] by requiring servers that support | |||
NMDA to implement "ietf-yang-library" as defined in | ||||
[I-D.nmdsdt-netconf-rfc7895bis]. | ||||
A RESTCONF server identifies that it supports NMDA both by supporting | 3. Conformance | |||
the <operational> datastore, as well as by supporting at least | ||||
revision YANG_LIBRARY_REVISION of the "ietf-yang-library" module, as | ||||
specified in [I-D.nmdsdt-netconf-rfc7895bis]. | ||||
RESTCONF clients MAY test if a server supports NMDA using the HEAD | RFC Ed.: Update 201X-XX-XX below with correct date. | |||
method on the <operational> datastore resource, described later in | ||||
this document. | ||||
RESTCONF clients MAY also test if a server supports the NMDA using | An NMDA-compliant RESTCONF server MUST support the operational state | |||
either the HEAD or GET methods on "ietf-yang-library:yang-library" | datastore. Such a server identifies that it supports NMDA both by | |||
resource, under either {+restconf}/data or <operational>, though only | implementing the {+restconf}/ds/ietf-datastores:operational resource, | |||
the latter resource SHOULD be used so that the client doesn't need to | and by implementing at least revision 201X-XX-XX of the | |||
have any ongoing need to use the {+restconf}/data resource. | "ietf-yang-library" module, as specified in | |||
[I-D.nmdsdt-netconf-rfc7895bis]. | ||||
RESTCONF clients MAY also test if a server supports the NMDA by | A RESTCONF client can test if a server supports the NMDA by using | |||
checking the revision number for the "ietf-yang-library" module | either the HEAD or GET methods on {+restconf}/ds/ietf- | |||
listed under "ietf-yang-library:modules-state", under either | datastores:operational. | |||
{+restconf}/data or <operational>. This approach might be preferred | ||||
by some existing clients, but new clients should avoid using the | ||||
deprecated "modules-state" resource. | ||||
5. The {+restconf}/ds/<datastore> Resource | 4. The {+restconf}/ds/<datastore> Resources | |||
Knowing which datastores a server supports, from querying the ietf- | This document defines a set of new resources representing datastores | |||
yang-library module, a RESTCONF client interacts with specific | as defined in [I-D.ietf-netmod-revised-datastores]. These resources | |||
datastores using the resource path template: | are available using the resource path template: | |||
{+restconf}/ds/<datastore> | {+restconf}/ds/<datastore> | |||
Where <datastore> is encoded as an "identity". For instance: | Where <datastore> is encoded as an "identity" according to the JSON | |||
encoding rules for identities, defined in Section 4 of [RFC7951]. | ||||
Such an identity MUST be derived from the "datastore" identity in | ||||
"ietf-datastores" [I-D.ietf-netmod-revised-datastores]. | ||||
{+restconf}/ds/ietf-datastores:running | Specifically: | |||
{+restconf}/ds/ietf-datastores:intended | ||||
{+restconf}/ds/ietf-datastores:operational | ||||
{+restconf}/ds/example-ds-ephemeral:ds-ephemeral | ||||
6. Protocol Operations | o The resource {+restconf}/ds/ietf-datastores:operational refers to | |||
the operational state datastore. | ||||
o The resource {+restconf}/ds/ietf-datastores:running refers to the | ||||
running configuration datastore. | ||||
o The resource {+restconf}/ds/ietf-datastores:intended refers to the | ||||
intended configuration datastore. | ||||
An NMDA-compliant server MUST implement {+restconf}/ds/ietf- | ||||
datastores:operational. Other datastore resources are optional to | ||||
implement. | ||||
If a server implements the example datastore "ds-ephemeral" in the | ||||
module "example-ds-ephemeral", it would implement the resource | ||||
{+restconf}/ds/example-ds-ephemeral:ds-ephemeral. | ||||
5. Protocol Operations | ||||
All existing protocol operations defined in [RFC8040] for the | All existing protocol operations defined in [RFC8040] for the | |||
{+restconf}/data resource are available for all of the new datastore | {+restconf}/data resource are available for all of the new datastore | |||
resources with the following exceptions: | resources with the following exceptions: | |||
o Dynamic datastores are excluded, as each dynamic datastore | o Dynamic datastores are excluded, as each dynamic datastore | |||
definition needs to be reviewed for what protocol operations it | definition needs to be reviewed for what protocol operations it | |||
supports. | supports. | |||
o Some datastores are read-only by nature (e.g., <intended>), and | o Some datastores are read-only by nature (e.g., <intended>), and | |||
hence any attempt to modify these datastores will fail. | hence any attempt to modify these datastores will fail. | |||
o RFC 8040, Section 3.5.4, Paragraph 3 does not apply when | o The "with-defaults" query parameter ([RFC8040], Section 4.8.9) | |||
interacting with <operational>. | does not apply when interacting with {+restconf}/ds/ietf- | |||
datastores:operational. This means that all values are always | ||||
returned from the operational state datastore, even if a node | ||||
happens to have a default statement in the YANG module, and this | ||||
default value is being used by the server. If the "with-defaults" | ||||
query parameter is present in a request to this resource, the | ||||
server MUST return a response with a "400 Bad Request" status- | ||||
line. The error-tag value "invalid-value" is used in this case. | ||||
o New boolean query parameter "with-origin" (default: false) is | o [RFC8040], section 3.5.4, paragraph 3 does not apply when | |||
defined to request the "origin" attributes when querying | interacting with any resource under {+restconf}/ds. | |||
<operational>. | ||||
7. Security Considerations | 5.1. The "with-origin" query parameter | |||
TBD | The GET operation adds a new query parameter named "with-origin", | |||
which if present, requests that the server includes "origin" metadata | ||||
anotations in its response, as detailed in the NMDA. This parameter | ||||
is only valid when querying {+restconf}/ds/ietf- | ||||
datastores:operational or any datastores with identities derived from | ||||
the "operational" identity. Otherwise, if an invalid datastore is | ||||
specified then the server MUST return a response witha a "400 Bad | ||||
Request" status-line, using an error-tag value of "invalid-value". | ||||
"origin" metadata annotations are not included unless a client | ||||
explicitly requests them. | ||||
8. IANA Considerations | Data from <operational> can come from multiple sources. The server | |||
should return the most accurate value for the "origin" metadata | ||||
annotation as possible, indicating the source of the operational | ||||
value, as specified in section 5.3.4 of the NMDA. | ||||
When encoding the origin metadata annotation for a hierarchy of | ||||
returned nodes, the annotation may be omitted for a child node when | ||||
the value matches that of the parent node (as described in ietf- | ||||
origin@2017-08-17). [RFC Editor, please check published revision | ||||
date.] | ||||
The "with-origin" query parameter is optional to support. It is | ||||
identified with the URI: | ||||
urn:ietf:params:restconf:capability:with-origin:1.0 | ||||
6. Security Considerations | ||||
TBD | TBD | |||
9. Normative References | 7. IANA Considerations | |||
This document defines one capability in the "RESTCONF Capability | ||||
URNs" registry defined in [RFC8040]: | ||||
Index Capability Identifier | ||||
------------------------------------------------------------------ | ||||
:with-origin urn:ietf:params:restconf:capability:with-origin:1.0 | ||||
8. Normative References | ||||
[I-D.ietf-netmod-revised-datastores] | [I-D.ietf-netmod-revised-datastores] | |||
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore | and R. Wilton, "Network Management Datastore | |||
Architecture", draft-ietf-netmod-revised-datastores-04 | Architecture", draft-ietf-netmod-revised-datastores-05 | |||
(work in progress), August 2017. | (work in progress), October 2017. | |||
[I-D.nmdsdt-netconf-rfc7895bis] | [I-D.nmdsdt-netconf-rfc7895bis] | |||
Bierman, A., Bjorklund, M., and K. Watsen, "YANG Library", | Bierman, A., Bjorklund, M., and K. Watsen, "YANG Library", | |||
draft-nmdsdt-netconf-rfc7895bis-01 (work in progress), | draft-nmdsdt-netconf-rfc7895bis-01 (work in progress), | |||
July 2017. | July 2017. | |||
[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, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
RFC2119, March 1997, <https://www.rfc-editor.org/info/ | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
rfc2119>. | editor.org/info/rfc2119>. | |||
[RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", | ||||
RFC 7951, DOI 10.17487/RFC7951, August 2016, | ||||
<https://www.rfc-editor.org/info/rfc7951>. | ||||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
<https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
[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. Example | ||||
TBD | ||||
Authors' Addresses | Authors' Addresses | |||
Martin Bjorklund | Martin Bjorklund | |||
Tail-f Systems | Tail-f Systems | |||
Email: mbj@tail-f.com | Email: mbj@tail-f.com | |||
Juergen Schoenwaelder | Juergen Schoenwaelder | |||
Jacobs University | Jacobs University | |||
End of changes. 27 change blocks. | ||||
59 lines changed or deleted | 132 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |