Internet DRAFT - draft-birkholz-yang-push-coap-problemstatement

draft-birkholz-yang-push-coap-problemstatement







SACM Working Group                                           H. Birkholz
Internet-Draft                                            Fraunhofer SIT
Intended status: Informational                                   T. Zhou
Expires: April 21, 2018                                           Huawei
                                                                  X. Liu
                                                                   Jabil
                                                                 E. Voit
                                                           Cisco Systems
                                                        October 18, 2017


                     YANG Push Operations for CoMI
           draft-birkholz-yang-push-coap-problemstatement-00

Abstract

   This document provides a problem statement, derives an initial gap
   analysis and illustrates a first set of solution approaches in regard
   to augmenting YANG data stores based on the CoAP Management Interface
   with YANG Push capabilities.  A binary transfer mechanism for YANG
   Subscribed Notifications addresses both the requirements of
   constrained-node networks and the need for semantic interoperability
   via self-descriptiveness of the corresponding data in motion.

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 https://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 April 21, 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



Birkholz, et al.         Expires April 21, 2018                 [Page 1]

Internet-Draft                  CoMI Push                   October 2017


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

Table of Contents

   1.  Context of the Problem  . . . . . . . . . . . . . . . . . . .   2
     1.1.  Binary YANG transfer protocol . . . . . . . . . . . . . .   3
     1.2.  Device-Type Scope . . . . . . . . . . . . . . . . . . . .   3
     1.3.  Subscriptions via CoAP  . . . . . . . . . . . . . . . . .   3
     1.4.  Configured Subscriptions and Call-Home  . . . . . . . . .   4
     1.5.  Bootstrapping of Drop-Shipped Pledges . . . . . . . . . .   4
   2.  Summary of the Problem Statement  . . . . . . . . . . . . . .   5
   3.  Potential Approaches and Solutions  . . . . . . . . . . . . .   6
     3.1.  YANG subscription variants  . . . . . . . . . . . . . . .   6
     3.2.  YANG Push via CoAP  . . . . . . . . . . . . . . . . . . .   6
     3.3.  Dynamic Subscriptions . . . . . . . . . . . . . . . . . .   7
       3.3.1.  YANG Push via GET . . . . . . . . . . . . . . . . . .   7
       3.3.2.  YANG Push via FETCH . . . . . . . . . . . . . . . . .   7
     3.4.  Configured Subscriptions  . . . . . . . . . . . . . . . .   7
       3.4.1.  Retaining the Content of a GET Operation as
               Configuration . . . . . . . . . . . . . . . . . . . .   7
       3.4.2.  Call Home via CoAP  . . . . . . . . . . . . . . . . .   8
       3.4.3.  Dynamic Home Discovery  . . . . . . . . . . . . . . .   8
   4.  IANA considerations . . . . . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   7.  Change Log  . . . . . . . . . . . . . . . . . . . . . . . . .   8
   8.  Normative References  . . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Context of the Problem

   A binary transfer capability for YANG Subscribed Notifications
   [I-D.ietf-netconf-subscribed-notifications] based on YANG Push
   [I-D.ietf-netconf-yang-push] can be realized by using existing RFC
   and I-D work as building blocks.  This section is intended to provide
   a corresponding overview of the existing ecosystem in order to
   identify gaps and therefore provide a problem statement.








Birkholz, et al.         Expires April 21, 2018                 [Page 2]

Internet-Draft                  CoMI Push                   October 2017


1.1.  Binary YANG transfer protocol

   The CoAP Management Interface I-D (CoMI [I-D.ietf-core-comi]) defines
   operations for a YANG data store based on the Constrained Application
   Protocol (CoAP [RFC7252]).  CoAP uses a request/response interaction
   model that is based on HTTP (similar to RESTCONF [RFC8040]) and
   allows for multiple transports, including UDP or TCP (see
   [I-D.ietf-core-coap-tcp-tls]).  The Concise Binary Object
   Representation (CBOR [RFC7049]) is used for the serialization of data
   in motion in respect to CoAP operations and the data modeled with
   YANG [I-D.ietf-core-yang-cbor].

1.2.  Device-Type Scope

   [I-D.ietf-core-comi] states that CoAP "is designed for Machine to
   Machine (M2M) applications such as smart energy, smart city and
   building control.  Constrained devices need to be managed in an
   automatic fashion to handle the large quantities of devices that are
   expected in future installations.  Messages between devices need to
   be as small and infrequent as possible.  The implementation
   complexity and runtime resources need to be as small as possible."

   In addition, [I-D.ietf-core-comi] highlights that "CoMI and RESTCONF
   are intended to work in a stateless client-server fashion.  They use
   a single round-trip to complete a single editing transaction, where
   NETCONF needs up to 10 round trips.  To promote small messages, CoMI
   uses a YANG to CBOR mapping [I-D.ietf-core-yang-cbor] and numeric
   identifiers [I-D.ietf-core-sid] to minimize CBOR payloads and URI
   length."

   In essence, via CoMI, a small sensor can emit a set of measurements
   as binary encoded YANG notifications, which would only add a minimal
   overhead to the data in motion, but would increase interoperability
   significantly due to the powerful and widely used semantics enabled
   by YANG (in contrast to a set of raw values that always require
   additional context information and imperative guidance to be managed
   and post-processed appropriately).

1.3.  Subscriptions via CoAP

   The CoAP pub/sub I-D defines a CoAP Subscribe operation
   [I-D.ietf-core-coap-pubsub] that is based on observing resources via
   the Observe option for the GET operation as defined in [RFC7641].
   The CoAP pub/sub draft is intended to provide the capabilities and
   characteristics of MQTT via a CoAP based protocol.  The only other
   CoAP operation that supports the Observe option is the FETCH
   operation defined in [RFC8132].




Birkholz, et al.         Expires April 21, 2018                 [Page 3]

Internet-Draft                  CoMI Push                   October 2017


   The Observe option creates a small corresponding state on the server
   side that eliminates the need for continuous polling of a resource
   via subsequent requests.  Instead, subsequent responses including
   both the Observe option and using the token of the request that
   initiated the observation are returned when the observed resource
   changes.  A subscription (i.e. the observe state retained on the
   server) can be discarded by the client by sending a correspond CoAP
   GET with Observe using an Observe parameter of 1 or simply by
   "forgeting" the observation and return a CoAP Reset after receiving a
   notification in the context of the subscription.  A subscription can
   also be discarded by the server by sending a corresponding response
   that does not contain an Observe option.

   The subscription used in CoAP pub/sub are used to subscribe to a
   topic provided by a CoAP broker REST API.  YANG Push
   [I-D.ietf-netconf-yang-push] and corresponding YANG Subscribed
   Notifications are used to subscribe to data node updates provided by
   a YANG management interface.  YANG subscriptions can include a filter
   expression (either a subtree expression or an XPATH expression).  The
   encoding rules of XPATH expressions in CBOR are covered by
   [I-D.ietf-core-yang-cbor].

1.4.  Configured Subscriptions and Call-Home

   Configured subscriptions are basically static configuration that
   creates subscription state on the YANG data store when it is started
   and persists between boot-cycles without the need of a client to
   create that subscription state.  In consequence, a configured
   subscription can result in unsolicited pushed notifications in
   respect to a YANG client.

   A popular variant of the configured subscription as defined in
   [I-D.ietf-netconf-yang-push] is the Call Home procedure defined in
   [RFC8071].  In this approach, a Transport Layer application
   association with the YANG client is initiated by the YANG data store.
   After this "initial phase, in which the YANG server is acting like a
   client", the existing Transport Layer connection (or session, in case
   of, for example, TLS) is then used to the YANG client to initiate a
   subscription (i.e.  the YANG client is initiating a dynamic
   subscription based on a pre-configured request retained and issued by
   the YANG data store).

1.5.  Bootstrapping of Drop-Shipped Pledges

   [I-D.ietf-anima-bootstrapping-keyinfra] highlights that effectively
   "to literally 'pull yourself up by the bootstraps' is an impossible
   action.  Similarly, the secure establishment of a key infrastructure
   without external help is also an impossibility."



Birkholz, et al.         Expires April 21, 2018                 [Page 4]

Internet-Draft                  CoMI Push                   October 2017


   According to [I-D.ietf-anima-bootstrapping-keyinfra] the
   bootstrapping approach Call-Home has problems and limitations, which
   (amongst others) the draft itself is trying to address:

   o  the pledge requires realtime connectivity to the vendor service

   o  the domain identity is exposed to the vendor service (this is a
      privacy concern)

   o  the vendor is responsible for making the authorization decisions
      (this is a liability concern)

   A Pledge in the context of [I-D.ietf-anima-bootstrapping-keyinfra] is
   "the prospective device, which has an identity installed by a third-
   party (e.g., vendor, manufacturer or integrator)."

   A Pledge can be "drop-shipped", which refers to "the physical
   distribution of equipment containing the 'factory default'
   configuration to a final destination.  In zero-touch scenarios there
   is no staging or pre-configuration during drop-ship."

   In the scope of Call-Home as a part of YANG Push, either the factory
   default configuration of a drop-shipped Pledge that is a YANG data
   store would require to include the "home to Call Home" configuration
   or it has to be configured locally.

   [I-D.ietf-netconf-zerotouch] is intended to provide more flexibility
   to the Call-Home procedure already - by allowing to stage connection
   attempts to a locally administered network and if that fails fall
   back to connecting to a remotely administered network.  Alas,
   [I-D.ietf-netconf-zerotouch] is either prone to the same limitations
   as cited above or requires local configuration in order to find the
   home to Call-Home.

   The "Join Registrar" defined by
   [I-D.ietf-anima-bootstrapping-keyinfra] mitigates the cited problems
   and limitation by introducing "a representative of the domain that is
   configured, perhaps autonomically, to decide whether a new device is
   allowed to join the domain.  The administrator of the domain
   interfaces with a Join Registrar (and Coordinator) to control this
   process.  Typically a Join Registrar is "inside" its domain."

2.  Summary of the Problem Statement

   Currently, the following gaps are identified:

   o  no CoAP Subscribe procedure for dynamic YANG subscriptions is
      standardized that is able to convey a filter expression and



Birkholz, et al.         Expires April 21, 2018                 [Page 5]

Internet-Draft                  CoMI Push                   October 2017


      potentially other metadata required in the context of a YANG
      Subscribed Notifications application association.  Analogously,
      new payload types (e.g. a FETCH payload media-type) have to be
      defined.

   o  no CoAP Call Home feature is standardized to support a popular
      variant of configured YANG subscriptions.

   o  no general Call Home mechanism is standardized that enables the
      discovery of "a home to Call Home" or that would be able to deal
      with "changing homes" in a dynamic but secure manner.

   In addition to the identified gaps, the semantics of metadata - if
   there are any - that have to be conveyed to or from a YANG data store
   in order to subscribe to a (filtered) YANG module or data node are
   not identified.

   The problem statement could be summarized as follows:

   "There is no complete solution based on CoAP to enable a freshly
   unpacked YANG data store ("drop-shipped pledge", e.g. the cliche
   light bulb) to discover an appropriate home it can than Call-Home to
   in a secure and trusted manner in order to push (un-)solicited
   subscribed notifications."

3.  Potential Approaches and Solutions

   There are multiple approaches that could lead to viable solutions
   that address the identified gaps.  The following sections illustrate
   the general solution context and some of the most promising
   approaches.

3.1.  YANG subscription variants

   A YANG Push update subscription service both provides support for
   dynamic subscription (i.e. subscription state created by a client
   request, allowing for solicited push notifications in the context of
   an up-time cycle of the server) and configured subscription (i.e.
   subscription configuration retained on the server, allowing for
   unsolicited push notifications across up-time cycles of the server).

3.2.  YANG Push via CoAP

   The two CoAP operations that enable a subscription mechanism are GET
   and FETCH (i.e. by supporting the Observe option).  Both operations
   are viable candidates for creating a CoAP-based YANG Push mechanism
   for CoMI.




Birkholz, et al.         Expires April 21, 2018                 [Page 6]

Internet-Draft                  CoMI Push                   October 2017


3.3.  Dynamic Subscriptions

   Using CoAP, the client issuing the initial subscription request
   creates the subscription state.  Examples are the GET or FETCH
   operation including an Observe option using an Observe parameter of 0
   (zero).

3.3.1.  YANG Push via GET

   This usage scenario requires two consecutive operations.  It is not
   possible to transfer a filter expression included in a GET operation.
   In consequence, a POST operation on a collection resource has to be
   conducted in order to convey a filter expression to the YANG data
   store, allowing it to return an URI that contains the data node
   information filtered in respect to the posted filter expression
   (encoded in CBOR).

   This variant allows for multiple clients to observe a specific
   filtered data node without conducting a POST operation, if the
   corresponding URI is made known to other clients that did not conduct
   the POST operation or, for example, is canonically linked to/
   derivable from a filter expression.

3.3.2.  YANG Push via FETCH

   This usage scenario requires only one operation.  A FETCH operation
   can include a body that is capable to contain a filter expression and
   potentially other metadata that might be required to establish a
   suitable subscription state on the YANG data store.

   It might be possible that this variant could introduce a slight delay
   in respect to response time if providing a filtered resource requires
   a lot of computation time on a constrained device.  I.e. the resource
   cannot be prepared "beforehand".

3.4.  Configured Subscriptions

   Using CoAP, the server retains configuration that creates
   subscription state when the YANG data store is started.  The client
   has to have or gain knowledge of the CoAP tokens that are included in
   the responses created in the context of the subscription state create
   from server configuration.

3.4.1.  Retaining the Content of a GET Operation as Configuration

   This usage scenario "mimics" the receiving of a subscription request
   by storing the corresponding information that are relevant for
   creating a subscription state as configuration on the YANG data



Birkholz, et al.         Expires April 21, 2018                 [Page 7]

Internet-Draft                  CoMI Push                   October 2017


   store.  I.e. the configuration would be including the YANG client IP
   address and the CoAP token to be used in the responses that convey
   the subscribed notifications.

   This variant requires that the client also knows or gains knowledge
   of the corresponding CoAP token in order to not discard the incoming
   responses.

3.4.2.  Call Home via CoAP

   This usage scenario defines the Call Home procedure standardized in
   [RFC8071] as an additional capability of CoAP.  DTLS or TLS state is
   initiated by the YANG data store and triggers a dynamic subscription
   procedure of the YANG client using the session initiated by the YANG
   data store.

3.4.3.  Dynamic Home Discovery

   This usage scenario is based on the Bootstrapping Remote Secure Key
   Infrastructures I-D [I-D.ietf-anima-bootstrapping-keyinfra] and EST
   over secure CoAP I-D [I-D.vanderstok-ace-coap-est] and requires the
   standardization of a general use of Join Registrars in the context of
   YANG data stores that support YANG Push via static subscriptions.

4.  IANA considerations

   This document includes no requests to IANA, but solutions drafts
   incubated via this document might.

5.  Security Considerations

   This document includes no security considerations, but solution
   drafts incubated via this document will.

6.  Acknowledgements

   Carsten Bormann, Klaus Hartke, Michel Veillette

7.  Change Log

   First version -00

8.  Normative References








Birkholz, et al.         Expires April 21, 2018                 [Page 8]

Internet-Draft                  CoMI Push                   October 2017


   [I-D.ietf-anima-bootstrapping-keyinfra]
              Pritikin, M., Richardson, M., Behringer, M., Bjarnason,
              S., and K. Watsen, "Bootstrapping Remote Secure Key
              Infrastructures (BRSKI)", draft-ietf-anima-bootstrapping-
              keyinfra-08 (work in progress), October 2017.

   [I-D.ietf-core-coap-pubsub]
              Koster, M., Keranen, A., and J. Jimenez, "Publish-
              Subscribe Broker for the Constrained Application Protocol
              (CoAP)", draft-ietf-core-coap-pubsub-02 (work in
              progress), July 2017.

   [I-D.ietf-core-coap-tcp-tls]
              Bormann, C., Lemay, S., Tschofenig, H., Hartke, K.,
              Silverajan, B., and B. Raymor, "CoAP (Constrained
              Application Protocol) over TCP, TLS, and WebSockets",
              draft-ietf-core-coap-tcp-tls-09 (work in progress), May
              2017.

   [I-D.ietf-core-comi]
              Veillette, M., Stok, P., Pelov, A., and A. Bierman, "CoAP
              Management Interface", draft-ietf-core-comi-01 (work in
              progress), July 2017.

   [I-D.ietf-core-sid]
              Veillette, M., Pelov, A., Turner, R., Minaburo, A., and A.
              Somaraju, "YANG Schema Item iDentifier (SID)", draft-ietf-
              core-sid-01 (work in progress), May 2017.

   [I-D.ietf-core-yang-cbor]
              Veillette, M., Pelov, A., Somaraju, A., Turner, R., and A.
              Minaburo, "CBOR Encoding of Data Modeled with YANG",
              draft-ietf-core-yang-cbor-05 (work in progress), August
              2017.

   [I-D.ietf-netconf-subscribed-notifications]
              Voit, E., Clemm, A., Prieto, A., Nilsen-Nygaard, E., and
              A. Tripathy, "Custom Subscription to Event Notifications",
              draft-ietf-netconf-subscribed-notifications-05 (work in
              progress), October 2017.

   [I-D.ietf-netconf-yang-push]
              Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen-
              Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to
              YANG datastore push updates", draft-ietf-netconf-yang-
              push-10 (work in progress), October 2017.





Birkholz, et al.         Expires April 21, 2018                 [Page 9]

Internet-Draft                  CoMI Push                   October 2017


   [I-D.ietf-netconf-zerotouch]
              Watsen, K., Abrahamsson, M., and I. Farrer, "Zero Touch
              Provisioning for NETCONF or RESTCONF based Management",
              draft-ietf-netconf-zerotouch-17 (work in progress),
              September 2017.

   [I-D.vanderstok-ace-coap-est]
              Kumar, S., Stok, P., Kampanakis, P., Furuhed, M., and S.
              Raza, "EST over secure CoAP (EST-coaps)", draft-
              vanderstok-ace-coap-est-02 (work in progress), June 2017.

   [RFC7049]  Bormann, C. and P. Hoffman, "Concise Binary Object
              Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049,
              October 2013, <https://www.rfc-editor.org/info/rfc7049>.

   [RFC7252]  Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
              Application Protocol (CoAP)", RFC 7252,
              DOI 10.17487/RFC7252, June 2014,
              <https://www.rfc-editor.org/info/rfc7252>.

   [RFC7641]  Hartke, K., "Observing Resources in the Constrained
              Application Protocol (CoAP)", RFC 7641,
              DOI 10.17487/RFC7641, September 2015,
              <https://www.rfc-editor.org/info/rfc7641>.

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

   [RFC8071]  Watsen, K., "NETCONF Call Home and RESTCONF Call Home",
              RFC 8071, DOI 10.17487/RFC8071, February 2017,
              <https://www.rfc-editor.org/info/rfc8071>.

   [RFC8132]  van der Stok, P., Bormann, C., and A. Sehgal, "PATCH and
              FETCH Methods for the Constrained Application Protocol
              (CoAP)", RFC 8132, DOI 10.17487/RFC8132, April 2017,
              <https://www.rfc-editor.org/info/rfc8132>.

Authors' Addresses

   Henk Birkholz
   Fraunhofer SIT
   Rheinstrasse 75
   Darmstadt  64295
   Germany

   Email: henk.birkholz@sit.fraunhofer.de




Birkholz, et al.         Expires April 21, 2018                [Page 10]

Internet-Draft                  CoMI Push                   October 2017


   Tianran Zhou
   Huawei
   156 Beiqing Rd.
   Beijing, Haidian District
   China

   Email: zhoutianran@huawei.com


   Xufeng Liu
   Jabil
   8281 Greensboro Drive, Suite 200
   McLean VA  22102
   USA

   Email: Xufeng_Liu@jabil.com


   Eric Voit
   Cisco Systems

   Email: evoit@cisco.com





























Birkholz, et al.         Expires April 21, 2018                [Page 11]