CoRE                                                             K. Lynn
Internet-Draft                                              Verizon Labs
Intended status: Standards Track                                           P. van der Stok
Intended status: Standards Track                             Consultants
Expires: January 4, September 6, 2018                                      consultant                                     M. Koster
                                                             SmartThings
                                                              C. Amsuess, Ed. Amsuess
                                             Energy Harvesting Solutions
                                                           July 03, 2017
                                                          March 05, 2018

                CoRE Resource Directory: DNS-SD mapping
                      draft-ietf-core-rd-dns-sd-00
                      draft-ietf-core-rd-dns-sd-01

Abstract

   TBD

   Resource and service discovery are complimentary.  Resource discovery
   provides fine-grained detail about the content of a server, while
   service discovery can provide a scalable method to locate servers in
   large networks.  This document defines a method for mapping between
   CoRE Link Format attributes and DNS-Based Service Discovery fields to
   facilitate the use of either method to locate RESTful service
   interfaces (APIs) in mixed HTTP/CoAP environments.

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/. 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 January 4, September 6, 2018.

Copyright Notice

   Copyright (c) 2017 2018 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)
   (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.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  New Link-Format Attributes  . .   3
     1.2.  Resource Discovery  . . . . . . . . . . . . . . .   3
     2.1.  Resource Instance attribute 'ins' . . . .   3
     1.3.  Resource Directories  . . . . . . . .   3
     2.2.  Export attribute 'exp' . . . . . . . . . .   4
     1.4.  DNS-Based Service Discovery . . . . . . .   3
   3.  DNS-SD Mapping . . . . . . . .   4
   2.  New Link-Format Attributes  . . . . . . . . . . . . . . .   4
     3.1.  DNS-based Service discovery . .   5
     2.1.  Resource Instance attribute "ins" . . . . . . . . . . . .   6
     2.2.  Export attribute "exp"  .   4
     3.2.  mapping ins to <Instance> . . . . . . . . . . . . . . . .   5
     3.3.   6
   3.  Mapping rt CoRE Link Attributes to <ServiceType> . . . . . . . . DNS-SD Record Fields  . . . .   6
     3.1.  Mapping Resource Instance attribute "ins" to <Instance> .   6
     3.2.  Mapping Resource Type attribute "rt" to <ServiceType> . .   5
     3.4.   7
     3.3.  Domain mapping  . . . . . . . . . . . . . . . . . . . . .   6
     3.5.   7
     3.4.  TXT Record key=value strings  . . . . . . . . . . . . . .   6
     3.6.   7
     3.5.  Importing resource links into DNS-SD  . . . . . . . . . .   6   8
   4.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . .   7   9
     4.1.  DNS entries . . . . . . . . . . . . . . . . . . . . . . .   7   9
   5.  IANA considerations . . . . . . . . . . . . . . . . . . . . .   8   9
   6.  Security considerations . . . . . . . . . . . . . . . . . . .   8   9
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8   9
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   8   9
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   9  10
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  10  11
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10  11

1.  Introduction

   TBD ... [RFC7252] ... [I-D.ietf-core-resource-directory] ... DNS-SD

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

   The term "byte" is used Constrained RESTful Environments (CoRE) working group aims at
   realizing the REST architecture in its now customary sense as a
   synonym suitable form for "octet".

   This specification requires readers to be familiar with all the terms most
   constrained devices (e.g. 8-bit microcontrollers with limited RAM and
   ROM) and networks (e.g. 6LoWPAN).  CoRE is aimed at machine-to-
   machine (M2M) applications such as smart energy and building
   automation.  The main deliverable of CoRE is the Constrained
   Application Protocol (CoAP) specification [RFC7252].

   Automated discovery of resources hosted by a constrained server is
   critical in M2M applications where human intervention is minimal and
   static interfaces result in brittleness.  CoRE Resource Discovery is
   intended to support fine-grained discovery of hosted resources, their
   attributes, and possibly other resource relations [RFC6690].

   In contrast, service discovery generally refers to a coarse-grained
   resolution of an end-point's IP address, port number, and protocol.
   This definition may be extended to include multi-function devices,
   where the result of the discovery process may include a path to a
   resource representing a RESTful service interface and possibly a
   reference to a description of the interface such as a JSON Hyper-
   Schema document [I-D.handrews-json-schema-hyperschema].

   Resource and service discovery are complimentary in the case of large
   networks, where the latter can facilitate scaling.  This document
   defines a mapping between CoRE Link Format attributes and DNS-Based
   Service Discovery (DNS-SD) [RFC6763] fields that permits discovery of
   CoAP services by either means.  It also addresses the CoRE charter
   goal to interoperate with DNS-SD.

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
   [RFC2119].  The term "byte" is used in its now customary sense as a
   synonym for "octet".

   This specification requires readers to be familiar with all the terms
   and concepts that are discussed in [RFC5988] {-link} and [RFC6690].  Readers
   should also be familiar with the terms and concepts discussed in
   [RFC7252].  To describe the REST interfaces defined in this
   specification, the URI Template format is used [RFC6570].

   This specification also makes use of the terminology of
   [I-D.ietf-core-resource-directory].

   This specification makes use

1.2.  Resource Discovery

   The main function of the following additional terminology:

   TBD:  TBD

   TBD:  TBD

2.  New Link-Format Attributes

   When using the CoRE Link Format Resource Discovery is to describe provide Universal
   Resource Identifiers (URIs, also called "links") for the resources being
   discovered
   hosted by or posted to a resource directory service, additional
   information about those resources is useful.  This specification
   defines the following new server, complemented by attributes about those
   resources and perhaps additional link relations.  In CoRE this
   collection of links and attributes is itself a resource (as opposed
   to HTTP headers delivered with a specific resource).

   [RFC6690] specifies a link format for use in the CoRE Resource Discovery
   by extending the HTTP Link Header Format
   [RFC6690]:

      link-extension    = ( "ins" "=" (ptoken | quoted-string) )
                          ; [RFC8288] to describe these
   link descriptions.  The token or string CoRE Link Format is max 63 bytes
      link-extension    = ( "exp" )

2.1.  Resource Instance attribute 'ins'

   The Resource Instance "ins" attribute carried as a payload and
   is assigned an identifier for this
   resource, which makes it possible to distinguish it from other
   similar resources.  This attribute Internet media type.  A well-known URI "/.well-known/
   core" is similar in use to defined as a default entry-point for requesting the
   <Instance> portion list of
   links about resources hosted by a DNS-SD record (see Section 3.1, server, and SHOULD be
   unique across resources with the same thus performing CoRE
   Resource Type attribute in the
   domain it is used.  A Discovery.

   Resource Instance might Discovery can be performed either via unicast or multicast.
   When a descriptive string
   like "Ceiling Light, Room 3", server's IP address is already known, either a short ID like "AF39" priori or
   resolved via the Domain Name System (DNS) [RFC1034][RFC1035], unicast
   discovery is performed in order to locate a unique UUID
   or iNumber. URI for the resource of
   interest.  This attribute is used by performed using a Resource Directory GET to
   distinguish between multiple instances of /.well-known/core on the same resource type
   within
   server, which returns a payload in the directory.

   This attribute MUST CoRE Link Format.  A client
   would then match the appropriate Resource Type, Interface
   Description, and possible Content-Type [RFC2045] for its application.
   These attributes may also be no more than 63 bytes in length.  The resource
   identifier attribute MUST NOT appear more than once included in a link
   description.  This attribute MAY be used as a the query parameter string in order to
   filter the
   RD Lookup Function Set defined number of links returned in Section 7.

2.2.  Export attribute 'exp'

   The Export "exp" attribute is used as a flag response.

1.3.  Resource Directories

   In many M2M scenarios, direct discovery of resources is not practical
   due to indicate that a link
   description MAY sleeping nodes, limited bandwidth, or networks where multicast
   traffic is inefficient.  These problems can be exported solved by deploying a resource directory to external
   directories.

   The CoRE Link Format is used for many purposes between CoAP
   endpoints.  Some are useful mainly locally, for example checking the
   observability of
   network element called a resource before accessing it, determining the size Resource Directory (RD), which hosts
   descriptions of a resource, or traversing dynamic resource structures.  However, resources held on other links are very useful servers (referred to be exported as "end-
   points") and allows lookups to other directories, be performed for
   example the entry point resource to those resources.  An
   end-point is a functional service.  This
   attribute MAY be used web server associated with specific IP address and
   port; thus a physical device may host one or more end-points.  End-
   points may also act as clients.

   The Resource Directory implements a query parameter in set of REST interfaces for end-
   points to register and maintain sets of Web Links, called resource
   directory entries.  [I-D.ietf-core-resource-directory] specifies the
   web interfaces that an RD Lookup Function
   Set defined supports in Section 7.

3.  DNS-SD Mapping

   CoRE Resource Discovery is intended order for web servers to support fine-grained discovery
   of hosted resources, their attributes,
   discover the RD and possibly other resource
   relations [RFC6690].  In contrast, service discovery generally refers to a coarse-grained resolution of an endpoint's IP address, port
   number, and protocol.

   Resource register, maintain, lookup and service discovery are complementary in remove resource
   descriptions; for the case of large
   networks, where RD to validate entries; and for clients to
   lookup resources from the latter can facilitate scaling.  This document
   defines a mapping between CoRE Link Format RD.  Furthermore, new link attributes and
   useful in conjunction with an RD are defined.

1.4.  DNS-Based Service Discovery [RFC6763] fields that permits discovery of CoAP
   services by either method.

3.1.  DNS-based Service discovery

   DNS-Based Service Discovery (DNS-SD) defines a conventional method of
   configuring DNS PTR, SRV, and TXT resource records to facilitate
   discovery of services (such as CoAP servers in a subdomain) using the
   existing DNS infrastructure.  This section gives a brief overview of
   DNS-SD; see [RFC6763] for a detailed specification.

   DNS-SD service names are limited to 255 octets bytes and are of the form:

         Service Name = <Instance>.<ServiceType>.<Domain>. <Instance>.<ServiceType>.<Domain>

   The service name is the label of SRV/TXT resource records.  The SRV
   RR specifies the host and the port of the endpoint.  The TXT RR
   provides additional information in the form of key/value pairs.

   The <Domain> part of the service name is identical to the global (DNS
   subdomain) part of the authority in URIs that identify servers the resources
   on an individual server or
   groups group of servers.

   The <ServiceType> part is composed of at least two labels.  The first
   label of the pair is the application protocol name [RFC6335] preceded
   by an underscore character.  The second label indicates the transport
   and is always "_udp" for UDP-based CoAP services.  In cases where narrowing the
   scope of the search may be useful, these labels may be optionally
   preceded by a subtype name followed by the "_sub" label.  An example
   of this more specific <ServiceType> is
   "light._sub._dali._udp".

   A "lamp._sub._dali._udp".  Only
   the rightmost pair of labels is used in SRV and TXT record names.

   The default <Instance> part of the service name may be set at the
   factory or during the commissioning process.  It SHOULD uniquely
   identify an instance of <ServiceType> within a <Domain>.  Taken
   together, these three elements comprise a unique name for an SRV/ TXT
   record pair within the DNS subdomain.

   The granularity of a service name MAY be that of a host or group, or
   it could represent a particular resource within a CoAP server.  The
   SRV record contains the host name (AAAA record name) and port of the
   service while protocol is part of the service name.  In the case
   where a service name identifies a particular resource, the path part
   of the URI must be carried in a corresponding TXT record.

   A DNS TXT record is in practice limited to a few hundred octets bytes in
   length, which is indicated in the resource record header in the DNS
   response message.  The data consists DNS
   response message [RFC6763].  The data consists of one or more strings
   comprising a key=value pair.  By convention, the first pair is
   txtver=<number> (to support different versions of a service
   description).  An example string is:

                 | 0x08 | t | x | t | v | e | r | = | 1 |

2.  New Link-Format Attributes

   When using the CoRE Link Format to describe resources being
   discovered by or posted to a resource directory service, additional
   information about those resources is useful.  This specification
   defines the following new attributes for use in the CoRE Link Format
   [RFC6690]:

      link-extension    = ( "ins" "=" (ptoken | quoted-string) )
                          ; The token or string is max 63 bytes
      link-extension    = ( "exp" )

2.1.  Resource Instance attribute "ins"

   The Resource Instance "ins" attribute is an identifier for this
   resource, which makes it possible to distinguish it from other
   similar resources.  This attribute is similar in use to the
   <Instance> portion of a DNS-SD record (see Section 1.4, and SHOULD be
   unique across resources with the same Resource Type attribute in the
   domain it is used.  A Resource Instance might be a descriptive string
   like "Ceiling Light, Room 3", a short ID like "AF39" or a unique UUID
   or iNumber.  This attribute is used by a Resource Directory to
   distinguish between multiple instances of the same resource type
   within the directory.

   This attribute MUST be no more than 63 bytes in length.  The resource
   identifier attribute MUST NOT appear more than once in a link
   description.  This attribute MAY be used as a query parameter in the
   RD Lookup Function Set defined in Section 7 of
   [I-D.ietf-core-resource-directory].

2.2.  Export attribute "exp"

   The Export "exp" attribute is used as a flag to indicate that a link
   description MAY be exported by a resource directory to external
   directories.

   The CoRE Link Format is used for many purposes between CoAP
   endpoints.  Some are useful mainly locally, for example checking the
   observability of a resource before accessing it, determining the size
   of one a resource, or more strings
   comprising traversing dynamic resource structures.  However,
   other links are very useful to be exported to other directories, for
   example the entry point resource to a key=value pair.  By convention, functional service.  This
   attribute MAY be used as a query parameter in the first pair is
   txtver=<number> (to support different versions RD Lookup Function
   Set defined in Section 7 of a service
   description).

3.2.  mapping ins [I-D.ietf-core-resource-directory].

3.  Mapping CoRE Link Attributes to DNS-SD Record Fields

3.1.  Mapping Resource Instance attribute "ins" to <Instance>

   The Resource Instance "ins" attribute maps to the <Instance> part of
   a DNS-SD service name.  It is stored directly in the DNS as a single
   DNS label of canonical precomposed UTF-8 [RFC3629] "Net-Unicode"
   (Unicode Normalization Form C) [RFC5198] text.  However, to the
   extent that the "ins" attribute may be chosen to match the DNS host
   name of a service, it SHOULD use the syntax defined in Section 3.5 of
   [RFC1034] and Section 2.1 of [RFC1123].

   The <Instance> part of the name of a service being offered on the
   network SHOULD be configurable by the user setting up the service, so
   that he or she may give it an informative name.  However, the device
   or service SHOULD NOT require the user to configure a name before it
   can be used.  A sensible choice of default name can allow the device
   or service to be accessed in many cases without any manual
   configuration at all.  The default name should be short and
   descriptive, and MAY include a collision-resistant substring such as
   the lower bits of the device's MAC address, serial number,
   fingerprint, or other identifier in an attempt to make the name
   relatively unique.

   DNS labels are currently limited to 63 octets bytes in length and the entire
   service name may not exceed 255 octets.

3.3. bytes.

3.2.  Mapping rt Resource Type attribute "rt" to <ServiceType>

   The resource type "rt" attribute is mapped into the <ServiceType>
   part of a DNS-SD service name and SHOULD conform to the reg-rel-type
   production of the Link Format defined in Section 2 of [RFC6690].  The
   "rt" attribute MUST be composed of at least a single Net-Unicode text
   string, without underscore '_' or period '.' and limited to 15 octets bytes
   in length, which represents the application protocol name.  This
   string is mapped to the DNS-SD <ServiceType> by prepending an
   underscore and appending a period followed by the "_udp" label.  For
   example, rt="dali" is mapped into "_dali._udp".

   The application protocol name may be optionally followed by a period
   and a service subtype name consisting of a Net-Unicode text string,
   without underscore or period and limited to 63 octets. bytes.  This string is
   mapped to the DNS-SD <ServiceType> by appending a period followed by
   the "_sub" label and then appending a period followed by the service
   type label pair derived as in the previous paragraph.  For example,
   rt="dali.light" is mapped into "light._sub._dali._udp".

   The resulting string is used to form labels for DNS-SD records which
   are stored directly in the DNS.

3.4.

3.3.  Domain mapping

   DNS domains may be derived from the "d" attribute.  The domain
   attribute may

   TBD: A method must be suffixed with the zone name of the authoritative DNS
   server to generate the domain name.  The "ep" attribute is prefixed
   to the domain name specified to generate determine in which DNS zone the FQDN to
   CoAP service should be stored into DNS with an
   AAAA RR.

3.5. registered.  See, for example, Section 11 in
   [RFC6763].

3.4.  TXT Record key=value strings

   A number of [RFC6763] key/value pairs are derived from link-format
   information, to be exported in the DNS-SD as key=value strings in a
   TXT record ([RFC6763], Section 6.3).

   The resource <URI> is exported as key/value pair "path=<URI>".

   The Interface Description "if" attribute is exported as key/value
   pair "if=<Interface Description>".

   The DNS TXT record can be further populated by importing any other
   resource description attributes as they share the same key=value
   format specified in Section 6 of [RFC6763].

3.6.

3.5.  Importing resource links into DNS-SD

   Assuming the ability to query a Resource Directory or multicast a GET
   (?exp) over the local link, CoAP resource discovery may be used to
   populate the DNS-SD database in an automated fashion.  CoAP resource
   descriptions (links) can be exported to DNS-SD for exposure to
   service discovery by using the Resource Instance attribute as the
   basis for a unique service name, composed with the Resource Type as
   the <ServiceType>, and registered in the correct <Domain>.  The agent
   responsible for exporting records to the DNS zone file SHOULD be
   authenticated to the DNS server.  The following example, using the
   example lookup location /rd-lookup, shows an agent discovering a
   resource to be exported:

      Req: GET /rd-lookup/res?exp

      Res: 2.05 Content
      <coap://[FDFD::1234]:5683/light/1>;
        exp;rt="dali.light";ins="Spot";
                  d="office";ep="node1"

   The agent subsequently registers the following DNS-SD RRs, assuming a
   zone name "example.com" prefixed with "office":

   node1.office.example.com.          IN AAAA        FDFD::1234
   _dali._udp.office.example.com      IN PTR
                             Spot._dali._udp.office.example.com
   light._sub._dali._udp.example.com  IN PTR
                             Spot._dali._udp.office.example.com
   Spot._dali._udp.office.example.com IN SRV  0 0 5683
                             node1.office.example.com.
   Spot._dali._udp.office.example.com IN TXT
                             txtver=1;path=/light/1

   In the above figure the Service Name is chosen as
   Spot._dali._udp.office.example.com without the light._sub service
   prefix.  An alternative Service Name would be:
   Spot.light._sub._dali._udp.office.example.com.

4.  Examples

4.1.  DNS entries

   It may be profitable to discover the light groups for applications,
   which are unaware ot the existence of the RD.  An agent needs to
   query the RD to return all groups which are exported to be inserted
   into DNS.

      Req: GET /rd-lookup/gp?exp

      Res: 2.05 Content
      <coap://[FF05::1]/>;exp;gp="grp_R2-4-015;ins="grp1234";
   ep="lm_R2-4-015_wndw";
   ep="lm_R2-4-015_door

   The group with FQDN grp_R2-4-015.bc.example.com can be entered into
   the DNS by the agent.  The accompanying instance name is grp1234.
   The <ServiceType> is chosen to be _group._udp.  The agent enters the
   following RRs into the DNS.

   grp_R2-4-015.bc.example.com.        IN AAAA            FF05::1
   _group._udp.bc.example.com          IN PTR
                               grp1234._group._udp.bc.example.com
   grp1234._group._udp.bc.example.com  IN SRV  0 0 5683
                                grp_R2-4-015_door.bc.example.com.
   grp1234._group._udp.bc.example.com  IN TXT
                                        txtver=1;path=/light/grp1

   From then on applications, not familiar with on, applications unaware of the existence of the RD, RD can use
   DNS to access the lighting group.

5.  IANA considerations

   TBD

6.  Security considerations

   TBD

7.  References

7.1.  Normative References

   [I-D.ietf-core-resource-directory]
              Shelby, Z., Koster, M., Bormann, C., and P. Stok, "CoRE
              Resource Directory", draft-ietf-core-resource-directory-10
              (work in progress), March 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC5988]  Nottingham, M., "Web Linking", RFC 5988,
              DOI 10.17487/RFC5988, October 2010,
              <http://www.rfc-editor.org/info/rfc5988>.
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC6335]  Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
              Cheshire, "Internet Assigned Numbers Authority (IANA)
              Procedures for the Management of the Service Name and
              Transport Protocol Port Number Registry", BCP 165,
              RFC 6335, DOI 10.17487/RFC6335, August 2011,
              <http://www.rfc-editor.org/info/rfc6335>.
              <https://www.rfc-editor.org/info/rfc6335>.

   [RFC6570]  Gregorio, J., Fielding, R., Hadley, M., Nottingham, M.,
              and D. Orchard, "URI Template", RFC 6570,
              DOI 10.17487/RFC6570, March 2012,
              <http://www.rfc-editor.org/info/rfc6570>.
              <https://www.rfc-editor.org/info/rfc6570>.

   [RFC6690]  Shelby, Z., "Constrained RESTful Environments (CoRE) Link
              Format", RFC 6690, DOI 10.17487/RFC6690, August 2012,
              <http://www.rfc-editor.org/info/rfc6690>.
              <https://www.rfc-editor.org/info/rfc6690>.

   [RFC6763]  Cheshire, S. and M. Krochmal, "DNS-Based Service
              Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
              <http://www.rfc-editor.org/info/rfc6763>.
              <https://www.rfc-editor.org/info/rfc6763>.

   [RFC8288]  Nottingham, M., "Web Linking", RFC 8288,
              DOI 10.17487/RFC8288, October 2017,
              <https://www.rfc-editor.org/info/rfc8288>.

7.2.  Informative References

   [I-D.handrews-json-schema-hyperschema]
              Andrews, H. and A. Wright, "JSON Hyper-Schema: A
              Vocabulary for Hypermedia Annotation of JSON", draft-
              handrews-json-schema-hyperschema-01 (work in progress),
              January 2018.

   [I-D.ietf-core-resource-directory]
              Shelby, Z., Koster, M., Bormann, C., Stok, P., and C.
              Amsuess, "CoRE Resource Directory", draft-ietf-core-
              resource-directory-13 (work in progress), March 2018.

   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
              STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
              <http://www.rfc-editor.org/info/rfc1034>.
              <https://www.rfc-editor.org/info/rfc1034>.

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
              November 1987, <https://www.rfc-editor.org/info/rfc1035>.

   [RFC1123]  Braden, R., Ed., "Requirements for Internet Hosts -
              Application and Support", STD 3, RFC 1123,
              DOI 10.17487/RFC1123, October 1989,
              <http://www.rfc-editor.org/info/rfc1123>.
              <https://www.rfc-editor.org/info/rfc1123>.

   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part One: Format of Internet Message
              Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
              <https://www.rfc-editor.org/info/rfc2045>.

   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
              2003, <http://www.rfc-editor.org/info/rfc3629>. <https://www.rfc-editor.org/info/rfc3629>.

   [RFC5198]  Klensin, J. and M. Padlipsky, "Unicode Format for Network
              Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008,
              <http://www.rfc-editor.org/info/rfc5198>.
              <https://www.rfc-editor.org/info/rfc5198>.

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

Acknowledgements

   This document was split off out from [I-D.ietf-core-resource-directory].
   TODO: Copy over relevant acknowledgements.
   Zach Shelby was a co-author of the original version of this draft.

Authors' Addresses

   Kerry Lynn
   Verizon Labs
   50 Sylvan Rd
   Waltham, MA  02451
   USA
   Consultant

   Phone: +1 781 296 9722 978-460-4253
   Email: kerlyn@ieee.org

   Peter van der Stok
   consultant
   Consultant

   Phone: +31-492474673 +31 492474673 (Netherlands), +33-966015248 +33 966015248 (France)
   Email: consultancy@vanderstok.org
   URI:   www.vanderstok.org
   Michael Koster
   SmartThings
   665 Clyde Avenue
   Mountain View  94043
   USA

   Phone: +1-707-502-5136 +1 707-502-5136
   Email: Michael.Koster@smartthings.com

   Christian Amsuess (editor)
   Energy Harvesting Solutions
   Hollandstr. 12/4
   1020
   Austria

   Phone: +43-664-9790639 +43 664-9790639
   Email: c.amsuess@energyharvesting.at