CORE WG                                                           Z. Cao
INTERNET-DRAFT                                                 R. Jadhav
Intended Status: Informational                                    Huawei
Expires: April 26, 2016
                                                        October 27, 2016


                         CoAP Delegated Observe
                  draft-cao-core-delegated-observe-00


Abstract

   This document discusses the scenarios for "delegated observe", in
   which a subscriber needs to register some resources on behalf of some
   other entities.   This document also presents a CoAP protocol
   extension for the delegated observe operation.


Status of this Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html












Zhen Cao, et al.        Expires <April 26, 2016>                [Page 1]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


Copyright and License Notice

   Copyright (c) 2016 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  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2 Scenarios for Delegated Observe  . . . . . . . . . . . . . . . .  3
     2.1 Multiple Devices . . . . . . . . . . . . . . . . . . . . . .  3
     2.2 Delegation to Cloud  . . . . . . . . . . . . . . . . . . . .  3
     2.3 Multicast  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3 Overview of Delegated Observe  . . . . . . . . . . . . . . . . .  4
   4 The Delegated Observe Option . . . . . . . . . . . . . . . . . .  5
   5  Handling Delegated Observe  . . . . . . . . . . . . . . . . . .  6
   6  Security Considerations . . . . . . . . . . . . . . . . . . . .  6
   7  IANA Considerations . . . . . . . . . . . . . . . . . . . . . .  6
   7  References  . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   Appendix A.  Examples  . . . . . . . . . . . . . . . . . . . . . .  7
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  7



















Zhen Cao, et al.        Expires <April 26, 2016>                [Page 2]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


1  Introduction

   CoAP [RFC7252] is a light-weight application protocol for constrained
   networks.  To avoid keeping polling devices, CoAP supports the
   'observe' operation defined in [RFC7641], in which a subscriber can
   register its interest to certain resources and then be updated with
   their representation.  However, in the current "observe" protocol,
   the subscriber can only register interests on behalf of itself, and
   therefore, updated information of the represented resources could not
   be notified to any parties other than the one who sends the observe
   request.

   This document discusses the scenarios for "delegated observation", in
   which a subscriber needs to register some resources on behalf of
   other entities or a group of entities including itself.   This
   document also presents a CoAP protocol extension for the delegated
   observe operation.

2 Scenarios for Delegated Observe

   This section describes scenarios that needs delegated observe.

2.1 Multiple Devices

   In a typical smart home network setup, a user with multiple devices
   wants to observe some sensor resource (e.g., thermometer, bulbs).
   Instead of sending CoAP Observe requests from every single device,
   one of the them can send an Observe Registration on behalf of that
   group of devices, so that all of them will be notified at once.

2.2 Delegation to Cloud

   A user wants its mobile device to be notified of a certain sensor
   information both in-home and off-home.  When the device moves out of
   its smart home network coverage, it is normally hidden behind NAT and
   FW that keep it being reached for such notification messages.  In
   this case, the normal observe-notification scheme may fail.  A walk-
   around for this case is to let the device send a delegated observe
   request while at home, asking the home sensors send notifications to
   the device's representative cloud server, so that the device can
   always fetch the information from it cloud service while off-home.

   This scenario is depicted in Fig. 1.








Zhen Cao, et al.        Expires <April 26, 2016>                [Page 3]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


               dev            Cloud            dev
Sensor       in-home          Server         off-home
  |              |              |               |
  |   Delegated  |              |               |
  |<--Observe  --|              |               |
  |              |              |               |
  |--------Notification-------->|               |
  |                             |               |
  |                             |<-- GET--------|
  |                             |----- ACK----->|

                     Figure 1: Delegation to Cloud

2.3 Multicast

A group of devices would like to observe the location information on a
motion sensor.  This is a useful case when a number of light bulbs need
to adjust its lighting intensity based on the location of the observed
motion object.  Instead of let each device register an interest on the
motion sensor, one of them could simply delegate the observe to this
multicast group, so that the location update notifications will be send
to the multicast address that they belong to.  This scenario is
visualized in Fig.2.



Motion
Sensor         Bulb_1        Bulb_2        Bulb_n
  |              |            |            |
  |  Delegated   |            |            |
  |<-Observe-----|            |            |
  |              |            |            |
  |  Multicast   |            |            |
  |--Notify ---->|----------->|----------->|
  |              |            |            |
  |              |            |            |

               Figure 2: Delegation to a Multicast Group

3 Overview of Delegated Observe

As show in Fig.3, we name the node that has the direct representation of
the CoAP resource as the "Source node"; and the immediate node as the
'Delegate node' that will send delegated Observe request to the Source
node, on behalf of the "Delegated node" who will be notified by the
Source Node.





Zhen Cao, et al.        Expires <April 26, 2016>                [Page 4]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


Source        Delegate      Delegated
 Node           Node         Node
  |              |            |
  |  Delegated   |            |
  |<-Observe-----|            |
  |              |            |
  |              |            |
  |--Notify ---->|----------->|
  |              |            |
  |              |            |

                Figure 3: Overview of Delegated Observe

4 The Delegated Observe Option

The properties of the Delegated Observe Option are defined in Fig. 4.

In a GET request:
+-----+---+---+---+---+------------------+--------+--------+---------+
| No. | C | U | N | R | Name             | Format | Length | Default |
+-----+---+---+---+---+------------------+--------+--------+---------+
| TBD |   | x | - |   | Delegated Observe| string | 0-256  | (none)  |
+-----+---+---+---+---+------------------+--------+--------+---------+

         C=Critical, U=Unsafe, N=No-Cache-Key, R=Repeatable

In a Response:
+-----+---+---+---+---+------------------+--------+--------+---------+
| No. | C | U | N | R | Name             | Format | Length | Default |
+-----+---+---+---+---+------------------+--------+--------+---------+
| TBD |   | x | - |   | Delegated Observe| uint   | 0-3 B  | (none)  |
+-----+---+---+---+---+------------------+--------+--------+---------+

         C=Critical, U=Unsafe, N=No-Cache-Key, R=Repeatable

                Figure 4: CoAP Delegated Observe Option

When included in a GET request, the Delegated Observe Option extends the
GET method so it does not only retrieve a current representation of the
target resource, but also requests the server to add an entry in the
list of observers of the resource. This entry maps the target resource
to an identifier of the observer contained in the value of this option.

When used to register the representation, the value of Delegated Observe
in a GET request is the identifier of the nodes that will be notified,
in the format of "IP:port" or "domain_name:port".

When used to de-register the representation, the value of Delegated



Zhen Cao, et al.        Expires <April 26, 2016>                [Page 5]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


Observe in the GET is a special string, e.g., in the format of ":::",
the specific format needs further discussion.  [TBD]

When included in a response, the Delegated Observe Option identifies the
message as a notification. The Option value is used as a sequence number
used to infer the order of the notifications.  The ordering inference is
the same as what has been discussed in Section 3.4 of [RFC7641].

5  Handling Delegated Observe

Before sending the delegated observe, the "Delegate node" needs to know
which address:port on the Delegated node will be open to receive the
subsequent notification from the source node. This negotiation is out of
scope of this document.

Upon receiving the delegated observe request, the "Source Node" will
create an entry based on the identifier of the Delegated Node contained
within the request.  The Source Node can decide if it needs to verify
the validity of the Delegated node, per its own policy. The validation
way is also out of the scope of this document.

The Delegated Node, once being delegated and verified by Source Node,
will be notified subsequently, although it does not send the request for
that resource.  The Delegated Node interprets the CoAP message, and will
handle this message if the CoAP message contains a Delegated Observe
option defined in Section 4.

6  Security Considerations

The security considerations in [RFC7252] and [RFC7641] apply.

Delegated observe may increase the risk of amplification attacks, given
the source node will send notifications to delegated nodes who have not
requested the resource directly.  This negative effect can be controlled
by several implementation considerations: a) the delegating node can
negotiate with the delegated node before sending delegated observe, out
of band; b) the source node will strictly control the rate of the
notifications, so that flooding will be avoided; c) the delegated node
can block any notifications beyond a certain data rate.

7  IANA Considerations

If approved, an Option Number for the defined Delegated Observe Option
for CoAP will be needed.







Zhen Cao, et al.        Expires <April 26, 2016>                [Page 6]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


    | Number |         Name       | Reference |
    +--------+--------------------+-----------+
    |  TBD   | Delegated Observe  | [thisdoc] |



7  References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, DOI
              10.17487/RFC2119, March 1997.

   [RFC7252]  Shelby, Z., Hartke, K., and C. Bormann, "Constrained
              Application Protocol (CoAP)", RFC 7252, June 2014.

   [RFC7641]  K. Hartke, "Observing Resources in the Constrained
              Application Protocol (CoAP)", RFC 7641, September 2015.



Appendix A.  Examples


Source        Delegate      Target
 Node           Node         Node
  |              |            |
  |  Delegated   |            |     Header: GET 0x 86868686
  |<-Observe-----|            |      Token: 0x55
  |              |            |   Uri-Path: temp
  |              |            |  D-Observe: 10.0.0.2:5683
  |              |            |
  |              |            |
  |              |            |     Header: GET 0x 86868686
  |--Notify(2.05)------------>|      Token: 0x55
  |              |            |  D-Observe: 9
  |              |            |    Max-age: 15
  |              |            |    Payload: "18.8 Cel"
  |              |            |
  |              |            |     Header: GET 0x 8686ab99
  |--Notify(2.05)------------>|      Token: 0x55
  |              |            |  D-Observe: 16
  |              |            |    Max-age: 15
  |              |            |    Payload: "19.2 Cel"
                Figure A.1: Example of Delegated Observe

Authors' Addresses





Zhen Cao, et al.        Expires <April 26, 2016>                [Page 7]


INTERNET DRAFT      draft-cao-core-delegated-observe        <Issue Date>


Zhen Cao
Huawei Tech
Beijing, China

EMail: zhencao.ietf@gmail.com


Rahul Arvind Jadhav
Huawei Tech,
Kundalahalli Village,
Bangalore, India

EMail: rahul.jadhav@huawei.com






































Zhen Cao, et al.        Expires <April 26, 2016>                [Page 8]