<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version  -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-amsuess-core-coap-over-gatt-00" category="exp" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 2.40.1 -->
  <front>
    <title>CoAP over GATT (Bluetooth Low Energy Generic Attributes)</title>
    <seriesInfo name="Internet-Draft" value="draft-amsuess-core-coap-over-gatt-00"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <date year="2020" month="March" day="04"/>
    <workgroup>CoRE</workgroup>
    <keyword>CoAP, bluetooth, gatt</keyword>
    <abstract>
      <t>Interaction from computers and cell phones to constrained devices is limited by the different network technologies used,
and by the available APIs.
This document describes a transport for the Constrained Application Protocol (CoAP) that uses Bluetooth GATT (Generic Attribute Profile)
and its use cases.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <t>Discussion of this document takes place on the
  CORE Working Group mailing list (core@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/">https://mailarchive.ietf.org/arch/browse/core/</eref>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/chrysn/coap-over-gatt/-/tree/master">https://gitlab.com/chrysn/coap-over-gatt/</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252" format="default"/> can be used with different network and transport technologies,
for example UDP on 6LoWPAN networks.</t>
      <t>Not all those network technologies are available at end user devices in the vicinity of the constrained devices,
which inhibits direct communication and necessitates the use of gateway devices or cloud services.
In particular, 6LoWPAN is not available at all in typical end user devices,
and while 6LoWPAN-over-BLE (IPSP, the Internet Protocol Support Profile of Bluetooth Low Energy (BLE), <xref target="RFC7668" format="default"/>) might be compatible from a radio point of view,
many operating systems or platforms lack support for it,
especially in a user-accessible way.</t>
      <t>As a workaround to access constrained CoAP devices from end user devices,
this document describes a way encapsulate generic CoAP exchanges in Bluetooth GATT (Generic Attribute Profile).
This is explicitly not designed as means of communication between two devices in full control of themselves -
those should rather build an IP based network and transport CoAP as originally specified.
It is intended as a means for an application to escape the limitations of its environment,
with a special focus on web applications that use the Web Bluetooth <xref target="webbluetooth" format="default"/>.
In that, it is similar to CoAP-over-WebSockets <xref target="RFC8323" format="default"/>.</t>
      <section anchor="procedural-status" numbered="true" toc="default">
        <name>Procedural status</name>
        <t>[ This section will be removed before publication. ]</t>
        <t>The path of this document is currently not clear.
It might attract interest in the CoRE working group,
but might be easier to process as an indpenendent submission.</t>
      </section>
      <section anchor="appplication-example" numbered="true" toc="default">
        <name>Appplication example</name>
        <t>Consider a network of home automation light bulbs and switches,
which internally uses CoAP on a 6LoWPAN network
and whose basic pairing configuration can be done without additional electronic devices.</t>
        <t>Without CoAP-over-GATT,
an application that offers advanced configuration requires the use of a dedicated gateway device
or a router that is equipped and configured to forward between the 6LoWPAN and the local network.
In practice, this is often delivered as a wired gateway device and a custom app.</t>
        <t>With CoAP-over-GATT,
the light bulbs can advertise themselves via BLE,
and the configuration application can run as a web site.
The user navigates to that web site, and it asks permission to contact the light bulbs using Web Bluetooth.
The web application can then exchange CoAP messages directly with the light bulb,
and have it proxy requests to other devices connected in the 6LoWPAN network.</t>
        <t>For browsers that do not support Web Bluetooth,
the same web application can be packaged into an native application
consisting of a proxy process that forwards requests received via CoAP-over-WebSockets on the loopback interface to CoAP-over-GATT,
and a browser view that runs the original web application in a configuration to use WebSockets rather than CoAP-over-GATT.</t>
        <t>That connection is no replacement when remote control of the system is desired
(in which case, again, a router is required that translates 6LoWPAN to the rest of the network),
but suffices for many commissioning tasks.</t>
      </section>
    </section>
    <section anchor="terminology" numbered="true" toc="default">
      <name>Terminology</name>
    </section>
    <section anchor="protocol-description" numbered="true" toc="default">
      <name>Protocol description</name>
      <section anchor="requests-and-responses" numbered="true" toc="default">
        <name>Requests and responses</name>
        <t>[ This section is not thought through or implemented yet,
and could probably end up very different. ]</t>
        <t>CoAP-over-GATT uses individual GATT Characteristics to model a reliable request-response mechanism.
Therefore, it has no message types or message IDs (in which it resembles CoAP-over-TCP <xref target="RFC8323" format="default"/>),
and no tokens.
In the place of tokens,
.
All messages use GATT to ensure reliable transmission.</t>
        <t>A GATT server announces service of UUID 8df804b7-3300-496d-9dfa-f8fb40a236bc (abbreviated US in this document),
with one or more characteristics of UUID 2a58fc3f-3c62-4ecc-8167-d66d4d9410c2 (abbreviated UC).</t>
        <t>[ Right now, this only supports requests from the GATT client to the GATT server; role reversal might be added later. ]</t>
        <t>A client can start a CoAP request by writing to the UC characteristic
a sequence composed of a single code byte, any options encoded in the option format of <xref target="RFC7252" format="default"/> Section 3.1,
optionally followed by a payload marker and the request payload.</t>
        <t>After the successful write,
the client can read the response back from the server on the same characteristic.
The client may need to attempt reading the characteristic several times
until the response is ready,
and may subscribe to indications to get notifiied when the response is ready.</t>
        <t>The server does not need to keep the response readable after it has been read successfully.</t>
        <t>If the request and initial response establish an observation,
the client may keep reading;
the server may keep the latest notification available indefinitely (especially if it turns out that "has been read successfully" is hard to determine)
or make it readable only once for each new state.</t>
        <t>Once the client writes a new request to a UC characteristic,
any later reads pertain to that request,
and any observation previously established is cancelled implicitly.</t>
        <t>Attribute values are limited to 512 Bytes (<xref target="bluetooth52" format="default"/> Part F Section 3.2.9),
practically limiting blockwise operation (<xref target="RFC7959" format="default"/>) to size exponents to 4 (resulting in a block size of 256 byte).
Even smaller messages might enhance the transfer efficiency
when they avoid fragmentation at the L2CAP level.</t>
        <t>If a server provides multiple OC typed characteristics,
parallel requests or observations are possible;
otherwise, this transport is limited to a single pending request.</t>
      </section>
      <section anchor="addresses" numbered="true" toc="default">
        <name>Addresses</name>
        <t>[ ... coap+bluetooth://00-11-22-33-44-55-66-77-88-99/.well-known/core ... ]</t>
        <t>Note that when using Web Bluetooth <xref target="webbluetooth" format="default"/>,
neither the own nor the peer's address are known to the application.
They may come up with an application-internal authority component
(e. g. <tt>coap+bluetooth://id-SomeInternalIdentifier/.well-known/core</tt>),
but must be aware that those can not be expressed towards anything outside the local stack.</t>
        <section anchor="scheme-free-alternative" numbered="true" toc="default">
          <name>Scheme-free alternative</name>
          <t>As an alternative to the abovementioned scheme,
a zone in .arpa could be registered to use addresses like</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
coap://001122334455.ble.arpa/.well-known/core
]]></artwork>
          <t>where the .ble.arpa address do not resolve to any IP addresses.</t>
          <t>[ Accepting this will require a .arpa registering IANA consideration to replace the URI one. ]</t>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA considerations</name>
      <section anchor="uniform-resource-identifier-uri-schemes" numbered="true" toc="default">
        <name>Uniform Resource Identifier (URI) Schemes</name>
        <t>IANA is asked to enter a new scheme into the "Uniform Resource Identifier (URI) Schemes" registry set up in <xref target="RFC7595" format="default"/>:</t>
        <ul spacing="normal">
          <li>URI Scheme: "coap+gatt"</li>
          <li>Description: CoAP over Bluetooth GATT (sharing the footnote of coap+tcp)</li>
          <li>Well-Known URI Support: yes, analogous to <xref target="RFC7252" format="default"/></li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security considerations</name>
      <t>All data received over GATT is considered untrusted;
secure communication can be achieved using OSCORE <xref target="RFC8613" format="default"/>.</t>
      <t>Physical proximity can not be inferred from this means of communication.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7252"/>
            <seriesInfo name="RFC" value="7252"/>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7595" target="https://www.rfc-editor.org/info/rfc7595">
          <front>
            <title>Guidelines and Registration Procedures for URI Schemes</title>
            <seriesInfo name="DOI" value="10.17487/RFC7595"/>
            <seriesInfo name="RFC" value="7595"/>
            <seriesInfo name="BCP" value="35"/>
            <author initials="D." surname="Thaler" fullname="D. Thaler" role="editor">
              <organization/>
            </author>
            <author initials="T." surname="Hansen" fullname="T. Hansen">
              <organization/>
            </author>
            <author initials="T." surname="Hardie" fullname="T. Hardie">
              <organization/>
            </author>
            <date year="2015" month="June"/>
            <abstract>
              <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes.  It obsoletes RFC 4395.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7668" target="https://www.rfc-editor.org/info/rfc7668">
          <front>
            <title>IPv6 over BLUETOOTH(R) Low Energy</title>
            <seriesInfo name="DOI" value="10.17487/RFC7668"/>
            <seriesInfo name="RFC" value="7668"/>
            <author initials="J." surname="Nieminen" fullname="J. Nieminen">
              <organization/>
            </author>
            <author initials="T." surname="Savolainen" fullname="T. Savolainen">
              <organization/>
            </author>
            <author initials="M." surname="Isomaki" fullname="M. Isomaki">
              <organization/>
            </author>
            <author initials="B." surname="Patil" fullname="B. Patil">
              <organization/>
            </author>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <author initials="C." surname="Gomez" fullname="C. Gomez">
              <organization/>
            </author>
            <date year="2015" month="October"/>
            <abstract>
              <t>Bluetooth Smart is the brand name for the Bluetooth low energy feature in the Bluetooth specification defined by the Bluetooth Special Interest Group.  The standard Bluetooth radio has been widely implemented and available in mobile phones, notebook computers, audio headsets, and many other devices.  The low-power version of Bluetooth is a specification that enables the use of this air interface with devices such as sensors, smart meters, appliances, etc.  The low-power variant of Bluetooth has been standardized since revision 4.0 of the Bluetooth specifications, although version 4.1 or newer is required for IPv6.  This document describes how IPv6 is transported over Bluetooth low energy using IPv6 over Low-power Wireless Personal Area Network (6LoWPAN) techniques.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="webbluetooth" target="https://webbluetoothcg.github.io/web-bluetooth/">
          <front>
            <title>Web Bluetooth</title>
            <author initials="R." surname="Grant">
              <organization/>
            </author>
            <author initials="O." surname="Ruiz-Henríquez">
              <organization/>
            </author>
            <date year="2020" month="February" day="24"/>
          </front>
        </reference>
        <reference anchor="RFC8323" target="https://www.rfc-editor.org/info/rfc8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <seriesInfo name="DOI" value="10.17487/RFC8323"/>
            <seriesInfo name="RFC" value="8323"/>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="S." surname="Lemay" fullname="S. Lemay">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <author initials="B." surname="Silverajan" fullname="B. Silverajan">
              <organization/>
            </author>
            <author initials="B." surname="Raymor" fullname="B. Raymor" role="editor">
              <organization/>
            </author>
            <date year="2018" month="February"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP.  The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports.  It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8613"/>
            <seriesInfo name="RFC" value="8613"/>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="J." surname="Mattsson" fullname="J. Mattsson">
              <organization/>
            </author>
            <author initials="F." surname="Palombini" fullname="F. Palombini">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <date year="2019" month="July"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7959" target="https://www.rfc-editor.org/info/rfc7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7959"/>
            <seriesInfo name="RFC" value="7959"/>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby" role="editor">
              <organization/>
            </author>
            <date year="2016" month="August"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks.  Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates.  In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS).  These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs.  In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers.  Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations.  Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="bluetooth52" target="https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=478726">
          <front>
            <title>Bluetooth Core Specification v5.2</title>
            <author>
              <organization/>
            </author>
            <date year="2019" month="December" day="31"/>
          </front>
        </reference>
      </references>
    </references>
    <!--
# Change log

Since -00:
-->



  </back>
  <!-- ##markdown-source:
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
ZeUIcx8AAA==

-->

</rfc>
