Network Working Group                                       M. Bjorklund
Internet-Draft                                            Tail-f Systems
Updates: 8040 (if approved)                             J. Schoenwaelder
Intended status: Standards Track                       Jacobs University
Expires: February 25, May 3, 2018                                           P. Shafer
                                                               K. Watsen
                                                        Juniper Networks
                                                               R. Wilton
                                                           Cisco Systems
                                                         August 24,
                                                        October 30, 2017

                  RESTCONF Update to Support the NMDA
                  draft-ietf-netconf-nmda-restconf-00
                  draft-ietf-netconf-nmda-restconf-01

Abstract

   This document updates RESTCONF [RFC8040] in order to support the
   Network Management Datastore Architecture (NMDA) defined in
   [I-D.ietf-netmod-revised-datastores].

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on February 25, May 3, 2018.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   2
   3.
   2.  Summary of Updates to RFC 8040  . . . . . . . . . . . . . . .   2
   4.   3
   3.  Conformance . . . . . . . . . . . . . . . . . . . . . . . . .   3
   5.
   4.  The {+restconf}/ds/<datastore> Resource . Resources  . . . . . . . . . .   3
   6.
   5.  Protocol Operations . . . . . . . . . . . . . . . . . . . . .   3
   7.   4
     5.1.  The "with-origin" query parameter . . . . . . . . . . . .   4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   8.   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
   9.   5
   8.  Normative References  . . . . . . . . . . . . . . . . . . . .   4   5
   Appendix A.  Example  . . . . . . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5   6

1.  Introduction

   This document updates RESTCONF [RFC8040] in order to support the
   Network Management Datastore Architecture (NMDA) defined in
   [I-D.ietf-netmod-revised-datastores].

   The solution presented in this document is backwards compatible with
   [RFC8040].  This is achieved by it only adding new top-level
   resources, and thereby leaving the semantics of all existing
   resources alone.

2.  Requirements Language

1.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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.

   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:

   o  Adds new top-level resource "/ds".

   o  Adds new query parameter "with-origin".

   o  Section 3.5.4, Paragraph 3 in [RFC8040] doesn't apply for <operational>.

4. when
      interacting with any resource under {+restconf}/ds.

   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].

3.  Conformance

   A

   RFC Ed.: Update 201X-XX-XX below with correct date.

   An NMDA-compliant RESTCONF server MUST support the operational state
   datastore.  Such a server identifies that it supports NMDA both by supporting
   implementing the <operational> datastore, as well as {+restconf}/ds/ietf-datastores:operational resource,
   and by supporting implementing at least revision YANG_LIBRARY_REVISION 201X-XX-XX of the
   "ietf-yang-library" module, as specified in
   [I-D.nmdsdt-netconf-rfc7895bis].

   A RESTCONF clients MAY test if a server supports NMDA using the HEAD
   method on the <operational> datastore resource, described later in
   this document.

   RESTCONF clients MAY also client can test if a server supports the NMDA by using
   either the HEAD or GET methods on "ietf-yang-library:yang-library"
   resource, under either {+restconf}/data or <operational>, though only
   the latter resource SHOULD be used so that the client doesn't need to
   have any ongoing need to use the {+restconf}/data resource.

   RESTCONF clients MAY also test if a server supports the NMDA by
   checking the revision number for the "ietf-yang-library" module
   listed under "ietf-yang-library:modules-state", under either
   {+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. {+restconf}/ds/ietf-
   datastores:operational.

4.  The {+restconf}/ds/<datastore> Resource

   Knowing which datastores a server supports, from querying the ietf-
   yang-library module, Resources

   This document defines a RESTCONF client interacts with specific set of new resources representing datastores
   as defined in [I-D.ietf-netmod-revised-datastores].  These resources
   are available using the resource path template:

     {+restconf}/ds/<datastore>

   Where <datastore> is encoded as an "identity".  For instance: "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].

   Specifically:

   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
     {+restconf}/ds/ietf-datastores:operational
     {+restconf}/ds/example-ds-ephemeral:ds-ephemeral

6. 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
   {+restconf}/data resource are available for all of the new datastore
   resources with the following exceptions:

   o  Dynamic datastores are excluded, as each dynamic datastore
      definition needs to be reviewed for what protocol operations it
      supports.

   o  Some datastores are read-only by nature (e.g., <intended>), and
      hence any attempt to modify these datastores will fail.

   o  RFC 8040,  The "with-defaults" query parameter ([RFC8040], Section 3.5.4, Paragraph 3 4.8.9)
      does not apply when interacting with <operational>.

   o  New boolean {+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 "with-origin" (default: false) is
      defined to 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  [RFC8040], section 3.5.4, paragraph 3 does not apply when
      interacting with any resource under {+restconf}/ds.

5.1.  The "with-origin" query parameter

   The GET operation adds a new query parameter named "with-origin",
   which if present, requests that the server includes "origin" attributes metadata
   anotations in its response, as detailed in the NMDA.  This parameter
   is only valid when querying
      <operational>.

7. {+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.

   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

8.

7.  IANA Considerations

   TBD

9.

   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]
              Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore
              Architecture", draft-ietf-netmod-revised-datastores-04 draft-ietf-netmod-revised-datastores-05
              (work in progress), August October 2017.

   [I-D.nmdsdt-netconf-rfc7895bis]
              Bierman, A., Bjorklund, M., and K. Watsen, "YANG Library",
              draft-nmdsdt-netconf-rfc7895bis-01 (work in progress),
              July 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/
              RFC2119, 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/
              rfc2119>. <https://www.rfc-
              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
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <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>.

Appendix A.  Example

   TBD

Authors' Addresses

   Martin Bjorklund
   Tail-f Systems

   Email: mbj@tail-f.com

   Juergen Schoenwaelder
   Jacobs University

   Email: j.schoenwaelder@jacobs-university.de

   Phil Shafer
   Juniper Networks

   Email: phil@juniper.net

   Kent Watsen
   Juniper Networks

   Email: kwatsen@juniper.net
   Robert Wilton
   Cisco Systems

   Email: rwilton@cisco.com