<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-coap-over-gatt-00" category="std" consensus="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title>CoAP over GATT (Bluetooth Low Energy Generic Attributes)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-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="2026" month="April" day="22"/>
    <workgroup>CoRE</workgroup>
    <keyword>CoAP, bluetooth, gatt</keyword>
    <abstract>
      <?line 57?>

<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 removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Constrained RESTful Environments Working Group mailing list (core@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/core-wg/coap-over-gatt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> 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"/>) 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"/>.
In that, it is similar to CoAP-over-WebSockets <xref target="RFC8323"/>.
GATT, which has read and write semantics, is not a perfect match for CoAP's request/response semantics;
this specification bridges the gap in order to make CoAP transportable over what is sometimes the only available protocol.</t>
      <section anchor="application-example">
        <name>Application 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 anchor="alternatives">
        <name>Alternatives</name>
        <t>Several approaches were considered, but considered unsuitable for the intended use cases:</t>
        <ul spacing="normal">
          <li>
            <t>CoAP over 6LoWPAN over BLE (BLE IPSP):
While this is the natural choice for transporting CoAP over BLE,
it is unavailable on typical end user devices.
There is no clear path toward how that would be integrated in platforms like Android or iOS,
and even if it were, creating a network connection to a nearby device from within an application might not be possible (if how WLAN networks are managed is any indication).  </t>
            <t>
[ TBD: Illustrate how easy IPSP is when only working link-local like CoAP-over-GATT does,
see also <eref target="https://gitlab.com/chrysn/coap-over-gatt/-/issues/10">https://gitlab.com/chrysn/coap-over-gatt/-/issues/10</eref>. ]</t>
          </li>
          <li>
            <t>GoldenGate <xref target="goldengate"/>:
This introduces significant network overhead,
and burdens the end user device application with shipping a full network stack
that is executed in a position where it can not integrate fully with the operating system's network stack.  </t>
            <t>
Moreover, this places a retransmission layer on top of a partially reliable transport (GATT),
duplicating effort and possibly aggravating congestion situations.</t>
          </li>
          <li>
            <t>CoAP over UDP over SLIP over GATT UART <xref target="nefzger"/>:
This is similar to the GoldenGate approach,
but built on the GATT UART provided with Nordic Semiconductor's libraries<!-- https://learn.adafruit.com/introducing-adafruit-ble-bluetooth-low-energy-friend/uart-service -->.  </t>
            <t>
This shares the network stack duplication and retransmission concerns of GoldenGate.</t>
          </li>
          <li>
            <t>slipmux <xref target="I-D.bormann-t2trg-slipmux"/> over BLE GATT UART service:
This is similar to the previous item;
the stack duplication concern is addressed,
but retransmissions are still active atop of a service that already provides some reliability.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
    </section>
    <section anchor="protocol-description">
      <name>Protocol description</name>
      <section anchor="gatt-basics">
        <name>Boundary conditions: GATT properties</name>
        <t>[ This section may be shortened in later iterations,
but is kept around while the protocol is being developed
to easily fix mistakes made from wrong assumptions. ]</t>
        <t>CoAP-over-GATT has different properties than UDP transported over the Internet:</t>
        <ul spacing="normal">
          <li>
            <t>Messages sent by one party are received by the other party in the order in which they are sent.
There is no re-ordering.  </t>
            <t>
(There is also a total order on all message exchanged between two peers,
but that property is not useful because it's often not accessible through the Bluetooth stacks.)</t>
          </li>
          <li>
            <t>There is limited reliabiliy built into the protocol.  </t>
            <t>
Data transmissions initiated by the data source can be
unreliable ("write without response", "notify")
or reliable ("write with response", "indicate").  </t>
            <t>
The caveat with their relability is that acknowledgements are sent by the BLE stack,
without consulting with the application.
(This is not only done for simplicity but also for power efficiency:
There is only a short time window in which the data source is listening for confirmations).
Thus, these confirmations can not serve to acknowledge that the a CoAP request contained in the event was read, understood and is being processed.  </t>
            <t>
The reliability mechanisms are still useful, though:
Both "write" and "notify"/"indicate" update the GATT characteristic's state,
and while a slow application may miss data when sent in fast succession,
it is reasonable to expect from the BLE stack to deliver the last data to the application
when no more data is sent.</t>
          </li>
          <li>
            <t>Reads and writes may be subtly confused:
When a characteristic is written to,
and it is read before the BLE server application has had time to interact with its BLE stack,
the written value may be echoed back at read time.  </t>
            <t>
This is likely not problematic when "notify"/"indicate" is used
instead of polling reads,
but it seems prudent to take precautions.</t>
          </li>
        </ul>
      </section>
      <section anchor="requests-and-responses">
        <name>Requests and responses</name>
        <t>CoAP-over-GATT uses a GATT Characteristics to transport requst and response messages.
Similar CoAP-over-UDP it offers both reliable and unreliable transfer and message deduplication,
but as GATT's properties (see <xref target="gatt-basics"/>) differ from UDP's,
it uses a different serialization and a different kind of message IDs.</t>
        <t>Tokens are used like with other CoAP transports,
and allow keeping multiple requests active at the same time.</t>
        <t>A GATT server announces service of UUID 8df804b7-3300-496d-9dfa-f8fb40a236bc (abbreviated US in this document),
with one or more pairs of characteristics of UUID 8bf52767-5625-43ca-a678-70883a366866 (the downstream characteristic, abbreviated UCD)
and ab3720c8-7fc0-41f8-aa2a-9a45c2c01a4b (the upstream characteristic, abbreviated UCU)
through BLE advertisements from a BLE peripheral (typically a constrained device),
which are discovered by a BLE central (typically an end user device).
The server and client roles of CoAP and GATT are independent of each other:
either BLE participant can send requests in a CoAP client role.</t>
        <t>It is expected that as this document matures,
shorter (16 or 32 bit) identifiers will be requested and assigned.
[ See also <eref target="https://gitlab.com/chrysn/coap-over-gatt/-/issues/7">https://gitlab.com/chrysn/coap-over-gatt/-/issues/7</eref>. ]</t>
        <section anchor="message-sub-layer">
          <name>Message sub-layer</name>
          <t>At the UCU/UCD pair of CoAP-over-GATT characteristics, each party maintains a single bit Message ID (initialized at 1 when a connection is created),
and the last Message ID sent by the peer (initialized at 0 when a connection is created).</t>
          <t>Messages are serialized as GATT values.
The GATT client sends a message by writing it to UCD (reliably using the "write with response" or unreliably using "write without response" operation);
the GATT server sends them reliably using an "indicate" or unreliably "notify" event on UCU.
The serialization format is the same for all, and illustrated in <xref target="fig-message"/>:</t>
          <figure anchor="fig-message">
            <name>Components of a message</name>
            <artwork><![CDATA[
0   1   2   3   4       8       16      varying
+---+---+---+---+-------+-------+-------+---------+----+---------+
| R | M | C | A |  TKL  |  Code | Token | Options | ff | Payload |
+---+---+---+---+-------+-------+-------+---------+----+---------+
]]></artwork>
          </figure>
          <ul spacing="normal">
            <li>
              <t>a single message description byte,
compose of 4 bits R (reserved), M (Message ID), C (Confirm) and A (Acknowledge ID),
followed by 4 bits of token length (TKL).</t>
            </li>
            <li>
              <t>Code, token, options, payload marker and payload as in <xref target="RFC7252"/>.  </t>
              <t>
Unlike there, there is no 16-bit Message ID field
(a similar role is taken by bits M and A),
and in empty messages,
the code is not sent.</t>
            </li>
          </ul>
          <t>The bits are set as follows:</t>
          <ul spacing="normal">
            <li>
              <t>The R bit is reserved for future extensions;
it MUST be written as 0,
and when a value of 1 is written,
the whole written value MUST be ignored.</t>
            </li>
            <li>
              <t>The Message ID bit is always set to the current Message ID of the sender.</t>
            </li>
            <li>
              <t>The Confirm bit is set if the sender asks the peer to acknowledge that the message has been noted.</t>
            </li>
            <li>
              <t>The Acknowledge ID is always set to the peer's last sent Message ID that had the Confirm bit set.</t>
            </li>
          </ul>
          <t>When receiving a message with the C bit set,
the recipient MUST eventually send a response message with radio reliability.</t>
        </section>
        <section anchor="minimal-use-of-the-message-sub-layer">
          <name>Minimal use of the message sub-layer</name>
          <t>Unless an implementation sends fast bursts of updates or large quantities of data
and tunes for their througput,
it can use a simple subset of the message sub-layer functionality
and still interoperate with any peer.</t>
          <t>Such an application needs to</t>
          <ul spacing="normal">
            <li>
              <t>always send reliably (i.e., use Write with Response and Inform)</t>
            </li>
            <li>
              <t>set the Message ID to 0 on the first message it sends,</t>
            </li>
            <li>
              <t>set the Confirm bit on every non-empty message it sends
(and leaves it unset on empty messages),</t>
            </li>
            <li>
              <t>wait for the peer to send a message with Acknowledge matching the last Message ID it sent
before sending another non-empty message, and</t>
            </li>
            <li>
              <t>always send an acknowledgement right after receiving a non-empty message with the Confirm bit set.</t>
            </li>
          </ul>
          <t>This way,
there is no need to keep track of whether the Confirm bit is strictly necessary,
and whether more messages may be sent with the same message ID.</t>
        </section>
        <section anchor="using-the-message-sub-layer">
          <name>Using the message sub-layer</name>
          <t>[ This section reflects ongoing experimentation with the above serialization format and rules.
Senders may use other patterns as long as they do not stall their peer by not sending any messages after the Confirm bit was set. ]</t>
          <t>To send a message unreliably in terms of CoAP transmission,
a sender sets its latest Message ID in the M bit, sets C to 0, and populates the remaining bits per the rules above.
It then sends the message unreliably on the radio
(it may be sent reliably, especially when the peer set the C bit before).
After a CoAP-unreliable message, the sender may send more CoAP-unreliable messages.
It should avoid sending multiple messages in the same connection event
(because the peer's BLE stack would be likely to not pass on the earlier message).</t>
          <t>To send a message reliably in terms of CoAP transmission,
a sender sets its latest Message ID in the M bit, sets C to 1, and populates the remaining bits per the rules above.
It then sends the message reliably on the radio
(it may send unreliably if a message is expected from the peer soon, but then needs to be prepared to send the same message again).
After sending that message,
the sender does not send any other message until a message is received with A equal to the sent message's M bit.
The sender may need to send the very same message again if no earlier transmission of the message happened reliably.
[ Do we need to give timing guidance here? Probably not, because it only happens if there is some expectation in the first place. ]
The sender may cancel the transmission by sending an empty message with the same M and C bits,
or by sending different message with these bits (which are then all unreliable transmissions).</t>
          <t>When receiving a message with the C bit set,
it is up to the recipient when to send the radio-reliable message.
If it is expected that a radio-reliable message will be sent soon,
it is permissible and useful to send unrelated unreliable messages that already account for the set C bit in their A bit.</t>
        </section>
        <section anchor="message-deduplication">
          <name>Message deduplication</name>
          <t>CoAP-over-GATT participants MUST ignore a message arriving at a characteristic
if it is identical to the one received previously in the same connection.
(The first message is never ignored).</t>
          <t>Recipients MAY limit deduplication to the message up to and including the token.
This has no practical impact on reliable transmission:
If a sender desires one precise message to be sent, it will increment M, set C,
and not send another message until A has matched M.</t>
          <t>Note that it is not possible to send two identical consecutive messages unreliably.
When sending identical requests, the sender may vary the token.
Sending identical responses generally is rarely significant, even with the generalized <xref target="I-D.bormann-core-responses"/>,
because the mechanism to make responses "non-matching" in that document's terminology typically incurs variation.
When it does not, but the repetition is still significant, sending the messages reliably becomes necessary.</t>
        </section>
        <section anchor="requests-and-responses-1">
          <name>Requests and responses</name>
          <t>CoAP requests and responses are built on the message sub-layer
as they are in <xref target="RFC7252"/>:
requests are sent with a token chosen by the CoAP client,
and the CoAP server sends a response with the same token.</t>
          <t>Responses and message-layer acknowledgments can happen in the same message.
Unlike in <xref target="RFC7252"/>, there is no association between a request and its message ID:
Any message may serve as an acknowledgement;
it is always only the token that matches requests to responses.</t>
        </section>
        <section anchor="fragmentation">
          <name>Fragmentation</name>
          <t>Attribute values are limited to 512 Bytes (<xref target="bluetooth52"/> Part F Section 3.2.9),
practically limiting blockwise operation (<xref target="RFC7959"/>) 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. [ TBD: Verify: ]</t>
        </section>
        <section anchor="multiple-characteristics">
          <name>Multiple characteristics</name>
          <t>If a server provides multiple UCU and UCD typed characteristics,
they form pairs in the sequence in which they are listed.
By using them in parallel,
multiple messages can be sent without waiting for individual confirmation.
This is similar to using RFC7252 with NSTART &gt; 1,
and may be used by the GATT client if the GATT server lists multiple pairs of UCU/UCD characteristics.
The GATT server can send messages only through UCU characteristics on which the GATT client enabled "indicate" or "notify";
if the GATT client does not support multiple characteristics,
it will just pick any pair, and only enable them on the pair's UCU.</t>
          <t>Each characteristic has its independent message ID bits.
All characteristics of a service share a single token space,
and responses need not necessarily be sent on the characteristic the request was sent on.</t>
          <t>The use of muliple characteristics is primarily practical
when large amounts of data are to be transferred,
or when low-latency notifications are required while simultaneously sending reliable messages.
These transfers can utilize much of BLE's bandwidth
because they make it easy to send much data within a single BLE connection event.</t>
          <t>Implementers are encouraged to benchmark their applications
and show that their throughput is limited by the number of characteristics used
before supporting multiple characteristics.</t>
        </section>
        <section anchor="communication-example">
          <name>Communication example</name>
          <t>The example illustrated in <xref target="fig-communication"/>
shows an observation request
with reliable and unreliable responses.
It chooses the most typical configuration
where the GATT server is also the BLE peripheral
(and thus sends avertisements).
The GATT client is also the CoAP client here.</t>
          <figure anchor="fig-communication">
            <name>Example message flow</name>
            <artwork><![CDATA[
    GATT server                          GATT client

  Send BLE advertisement with one UCU and one UCD ---------->

(Pairing in Just-Works mode and discovery not illustrated)

  <----- Write+Resp. M=1 C=1 A=0 T="01" GET /temp, Observe: 0

(The server sends temperature values unreliably for some time)

  Notify M=1 C=0 A=1 T="01" 2.05 Content, Obs: 1, "22°C" --->

  Notify M=1 C=0 A=1 T="01" 2.05 Content, Obs: 2, "21°C" --->

  <----- Write+Resp. M=0 C=1 A=0 T="02" GET /model

  Indicate M=1 C=1 A=0 T="02" 2.05 Content, "ExampleScan" -->

  <----- Write+Resp. M=0 C=0 A=1 empty

  Notify M=0 C=0 A=0 T="01" 2.05 Content, Obs: 3, "20°C" --->

(At this point, the temperature isn't changing for some time,
and the server sends a reliable notification)

  Indicate M=0 C=1 A=0 T="01" 2.05 Content, Obs: 4, "20°C" ->

  <----- Write+Resp. M=0 C=0 A=0 empty
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="addresses">
        <name>Addresses</name>
        <t>The URI scheme associated with CoAP over GATT is "coap"
as per the recommendation of <xref section="6" sectionFormat="of" target="I-D.ietf-core-transport-indication"/>.
The default value of Uri-Host is the MAC address of the CoAP server,
in hexadecimal encoding, followed by <tt>.ble.arpa</tt>.
<cref anchor="arpa-alt">The use of <tt>.ble.alt</tt> as defined in <xref target="RFC9476"/> was considered instead of <tt>.ble.arpa</tt>, but rejected for lack of management of its subdomains. Language from the <tt>.alt</tt> specification may be used when it comes to describing how this is not disturbing DNS operations.</cref></t>
        <t>User information and port are always absent with this scheme.</t>
        <t>Assembling the URI of a request for the discovery resource of a BLE device with the MAC address 00:11:22:33:44:55 would thus be assembled, under the rules of <xref section="6.4" sectionFormat="of" target="RFC7252"/>, to <tt>coap://001122334455.ble.arpa/.well-known/core</tt>.</t>
        <t>These addresses do not convey a particular version of CoAP-over-GATT
(or, more generally, scheme of transporting CoAP over other Bluetooth mechanisms):
When the referenced device is found, Bluetooth's discovery mechanisms are used,
and discovering the service US indicates availability of CoAP-over-GATT as specified in this document.</t>
        <t>Locally defined host or service name registries may be used to create names
that are more suitable for human interaction.
For DNS, which is widely used for this purpose,
no record types are registered that map to Bluetooth MAC addresses at the time of writing.</t>
        <t>Note that on some platforms (e.g. Web Bluetooth <xref target="webbluetooth"/>),
the peer's or the own address may not be known application.
They may come up with an application-internal registered name component
(e. g. <tt>coap://id-SomeInternalIdentifier.alt/.well-known/core</tt>,
in this case using the <tt>.alt</tt> zone from <xref target="RFC9476"/>),
but must be aware that those can not be expressed towards anything outside the local stack --
the same way they would avoid using IPv6 zone identifiers or URIs whose host name is <tt>localhost</tt>.</t>
        <section anchor="use-with-persistent-addresses">
          <name>Use with persistent addresses</name>
          <t>When services are meant to provide long-lived and universally usable URIs,
addresses based on MAC addresses can be impractical,
because they fluctuate on hardware changes.
(Moreover, privacy mechanisms on the device or the platform can render them unusable even before hardware changes).</t>
          <t>In the absence of a usable host or service name registry,
implementers may opt for non-GATT addresses right away.
<xref section="2.4.1" sectionFormat="of" target="I-D.ietf-core-transport-indication"/> provides the means to advertise a different canonical address,
and to announce availability of that advertised service on the present transport.</t>
          <t>When long-lived addresses circumvent privacy preserving measures,
considerations concering the tracking of devices [ are TBD along the lines of "don't make it discoverable to unauthorized sources, and in case of doubt let the peer show its credentials first" ].</t>
        </section>
      </section>
    </section>
    <section anchor="further-development">
      <name>Further development</name>
      <section anchor="compression-and-reinterpretation-of-non-coap-characteristics">
        <name>Compression and reinterpretation of non-CoAP characteristics</name>
        <t>The use of SCHC is being evaluated in combination with CoAP-over-GATT;
the device can use the characteristic UUID to announce the static context used.</t>
        <t>Together with non-traditional response forms (<xref target="I-D.bormann-core-responses"/>
and contexts that expand, say, a numeric value 0x1234 to a message like</t>
        <artwork><![CDATA[
2.05 Content
Response-For: GET /temperature
Content-Format: application/senml+cbor
Payload (in JSON-ish equivalent):
[
    {1 /* unit */: "K", 2 /* value */: 0x1234}
]
]]></artwork>
        <t>This enables a different use case than dealing with limited environments:
Accessing BLE devices via CoAP without application specific gateways.
Any required information about the application can be expressed in the SCHC context.</t>
      </section>
      <section anchor="additional-use-of-advertisements">
        <name>Additional use of advertisements</name>
        <t>In the current specification,
advertisements are used to indicate that CoAP-over-GATT is being used.</t>
        <t>Possible extensions include:</t>
        <ul spacing="normal">
          <li>
            <t>Additional data can be used to identify the device.  </t>
            <t>
Suitable fields are Service Data (currently unavailable in the Web Bluetooth implementation)
and Manufacturer Data (requires a registered Company Identifier of a SIG member; available in the Web Bluetooth implementation).  </t>
            <t>
Those can allow quick selection of a device to contact
even when selection by MAC address is unavailable (as are .  </t>
            <t>
These identifiers can also form a suitable host component
through a manufacturer specific (Manufacturer Data)
or to-be-defined (Service Data) mechanism.  </t>
            <t>
Service Data is currently not a practical attribute,
both because it is not implemented in any web browser,
and because it practically requires a 16-bit UUID as the US (otherwise it exceeds available space).</t>
          </li>
          <li>
            <t>Some resource metadata might already be transported in advertisements.  </t>
            <t>
These would need to be compact (in the order of magnitude of 10 bytes or less),
and could contain data otherwise only discovered by querying the .well-known/core resource,
or (hashes of) AS and audience values for ACE
to facilitate connection creation with a device known by its managed identity.</t>
          </li>
          <li>
            <t>Advertisements could contain broadcast CoAP messages.  </t>
            <t>
Given that these non-traditional responses can not have embedded requests (as defined in <xref target="I-D.bormann-core-responses"/>) due to size contraints,
a mechanism such as <xref target="I-D.ietf-core-observe-multicast-notifications"/> could be used to distribute some consensus request:
Devices would learn that there is a consensus multicast request,
and convey any response by sending BLE advertisements.  </t>
            <t>
In some cases,
a consensus request may be global:
For example,
devices willing to participate in an <xref target="I-D.ietf-lake-authz"/> mediated enrollment
would respond to a conensus request that is an empty POST to their /.well-known/edhoc resource.
A field in an advertisement "responding" to that may then contain an EDHOC message 1,
and receivers can attempt to process it without further radio traffic,
only establishing a GATT connection upon success.
The kind of request that elicited that response, as well as possibly some constant prefix
(fixed method or suites)
is encoded in the type of field (possibly a dedicated service with own service data).</t>
          </li>
        </ul>
      </section>
      <section anchor="protocol-details">
        <name>Protocol details</name>
        <ul spacing="normal">
          <li>
            <t>Is there any good reason to allow read operations?  </t>
            <t>
A GATT client that is waiting for a Confirm bit to be acknowledged might attempt a Read
(for the case that the confirmation arrived in an unreliable message),
but might just as well perform the last write again.  </t>
            <t>
Reading would be more efficient (because it can happen without application intervention, and no data is sent),
but the added complexity might not be worth the enhancements.</t>
          </li>
          <li>
            <t>Fragmentation.
If the current approach of requiring devices to support large MTU sizes turns out to be impractical,
or if GATT level fragmentation vastly outperforms CoAP fragmentation,
it may be necessary to use composite reads and writes on GATT.  </t>
            <t>
Care has to be taken to use only operations supported by <xref target="webbluetooth"/>: that API does not expose reads with offsets.  </t>
            <t>
Offset based fragmentation may also be incompatible with the write-with-response approach suggested for reliability.</t>
          </li>
          <li>
            <t>Usability from WebBluetooth  </t>
            <t>
WebBluetooth clients may be unaware that two protocol instances
are running between the client and the server at the same time,
without any indication on the BLE side.  </t>
            <t>
Is there anything this protocol can do to help the clients discover
(or even resolve) the situation?  </t>
            <t>
See also <eref target="https://gitlab.com/chrysn/coap-over-gatt/-/issues/9">https://gitlab.com/chrysn/coap-over-gatt/-/issues/9</eref>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA considerations</name>
      <section anchor="blearpa">
        <name>ble.arpa</name>
        <t>IANA is asked to create two new reserved domain names in the .arpa name space as described in <xref target="rfc6761"/>:
the suffixes <tt>.ble.arpa</tt>.</t>
        <t>The expectation for Application Software are
that no DNS resolution is attempted;
instead, the hexadecimal prefix is processed into a 6-byte binary address,
and any operation on that address is pointed to the Bluetooth Low Energy device
with the indicated MAC address.</t>
        <t>The Domain Reservation Considerations from <xref section="5" sectionFormat="of" target="RFC6761"/> for both domains are:</t>
        <ul spacing="normal">
          <li>
            <t>Users:
Users are not expected to recognize those names as special, merely as distinct from other names.</t>
          </li>
          <li>
            <t>Application Software:
Writers of application software are expected to pass them on to their CoAP implementation.
CoAP implementations are expected to recognize them as Bluetooth addresses,
and use their Bluetooth addresses
and MUST NOT pass them on to DNS based resolvers
(unless the API resolver happens to explicitly support resolution into BLE addresses, see below).</t>
          </li>
          <li>
            <t>Name resolution APIs and libraries:
Name resolution APIs and libraries MAY indicate that .ble.arpa names resolve to the BLE MAC address literals encoded inside them
(but no details for this are specified in known resolution APIs or libraries).
Otherwise, they SHOULD report them as NXDOMAIN.</t>
          </li>
          <li>
            <t>Caching DNS Servers:
Caching DNS servers MAY recognize the special domains and report them as NXDOMAIN.
Otherwise, they will cache the .arpa DNS servers' responses.</t>
          </li>
          <li>
            <t>Authoritative DNS Servers:
Authoritative DNS servers MAY recognize the special domains and report them as NXDOMAIN.
Otherwise, they will cache the .arpa DNS servers' responses.</t>
          </li>
          <li>
            <t>DNS Server Operators:
No impact on DNS server operators is expected.</t>
          </li>
          <li>
            <t>DNS Registries/Registrars:
Any changes to .ble.arpa or .ble-sd.arpa go through updates to this document and IANA.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>All data received over GATT is considered untrusted;
secure communication can be achieved using OSCORE <xref target="RFC8613"/>.</t>
      <t>Physical proximity can not be inferred from this means of communication.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <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>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7595">
          <front>
            <title>Guidelines and Registration Procedures for URI Schemes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <date month="June" year="2015"/>
            <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>
          <seriesInfo name="BCP" value="35"/>
          <seriesInfo name="RFC" value="7595"/>
          <seriesInfo name="DOI" value="10.17487/RFC7595"/>
        </reference>
        <reference anchor="rfc6761">
          <front>
            <title>Special-Use Domain Names</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes what it means to say that a Domain Name (DNS name) is reserved for special use, when reserving such a name is appropriate, and the procedure for doing so. It establishes an IANA registry for such domain names, and seeds it with entries for some of the already established special domain names.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6761"/>
          <seriesInfo name="DOI" value="10.17487/RFC6761"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7668">
          <front>
            <title>IPv6 over BLUETOOTH(R) Low Energy</title>
            <author fullname="J. Nieminen" initials="J." surname="Nieminen"/>
            <author fullname="T. Savolainen" initials="T." surname="Savolainen"/>
            <author fullname="M. Isomaki" initials="M." surname="Isomaki"/>
            <author fullname="B. Patil" initials="B." surname="Patil"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <date month="October" year="2015"/>
            <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>
          <seriesInfo name="RFC" value="7668"/>
          <seriesInfo name="DOI" value="10.17487/RFC7668"/>
        </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="goldengate" target="https://fitbit.github.io/golden-gate/">
          <front>
            <title>Golden Gate</title>
            <author initials="" surname="Fitbit, Inc">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="nefzger" target="https://www.maibornwolff.de/en/blog/talk-coap-me-iot-over-bluetooth-low-energy">
          <front>
            <title>Talk CoAP to me – IoT over Bluetooth Low Energy</title>
            <author initials="" surname="Matthias Nefzger">
              <organization/>
            </author>
            <date year="2021" month="March" day="01"/>
          </front>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <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>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <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>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby"/>
            <date month="August" year="2016"/>
            <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>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </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>
        <reference anchor="I-D.bormann-t2trg-slipmux">
          <front>
            <title>Slipmux: Using an UART interface for diagnostics, configuration, and packet transfer</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Tobias Kaupat" initials="T." surname="Kaupat">
              <organization>Lobaro UG</organization>
            </author>
            <date day="4" month="November" year="2019"/>
            <abstract>
              <t>   Many research and maker platforms for Internet of Things
   experimentation offer a serial interface.  This is often used for
   programming, diagnostic output, as well as a crude command interface
   ("AT interface").  Alternatively, it is often used with SLIP
   (RFC1055) to transfer IP packets only.

   The present report describes how to use a single serial interface for
   diagnostics, configuration commands and state readback, as well as
   packet transfer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-t2trg-slipmux-03"/>
        </reference>
        <reference anchor="I-D.bormann-core-responses">
          <front>
            <title>CoAP: Non-traditional response forms</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   In CoAP as defined by RFC 7252, responses are always unicast back to
   a client that posed a request.  The present memo describes two forms
   of responses that go beyond that model.

   The design spaces for the new CoAP Options proposed to represent
   these responses are now sufficiently understood that they can be
   developed to standards-track specifications, either in this document
   or by transferring the specification for an Option to a document that
   that Option closely works with.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-06"/>
        </reference>
        <reference anchor="I-D.ietf-core-transport-indication">
          <front>
            <title>CoAP Transport Indication</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Martine Sophie Lenders" initials="M. S." surname="Lenders">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP, [RFC7252]) is available
   over different transports (UDP, DTLS, TCP, TLS, WebSockets), but
   lacks a way to unify these addresses.  This document provides
   terminology and provisions based on Web Linking [RFC8288] and Service
   Bindings (SVCB, [RFC9460]) to express alternative transports
   available to a device, and to optimize exchanges using these.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-transport-indication-09"/>
        </reference>
        <reference anchor="RFC9476">
          <front>
            <title>The .alt Special-Use Top-Level Domain</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document reserves a Top-Level Domain (TLD) label "alt" to be used in non-DNS contexts. It also provides advice and guidance to developers creating alternative namespaces.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9476"/>
          <seriesInfo name="DOI" value="10.17487/RFC9476"/>
        </reference>
        <reference anchor="I-D.ietf-core-observe-multicast-notifications">
          <front>
            <title>Observe Notifications as CoAP Multicast Responses</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) allows clients to
   "observe" resources at a server and to receive notifications as
   unicast responses upon changes of the resource state.  In some use
   cases, such as based on publish-subscribe, it would be convenient for
   the server to send a single notification addressed to all the clients
   observing the same target resource.  This document updates RFC7252
   and RFC7641, and defines how a server sends observe notifications as
   response messages over multicast, synchronizing all the observers of
   the same resource on the same shared Token value.  Besides, this
   document defines how the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE) can be used to
   protect multicast notifications end-to-end between the server and the
   observer clients.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-observe-multicast-notifications-13"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Geovane Fedrecheski" initials="G." surname="Fedrecheski">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight
   authenticated key exchange protocol intended for use in constrained
   scenarios.  This document specifies Lightweight Authorization using
   EDHOC (ELA).  The procedure allows authorizing enrollment of new
   devices using the extension point defined in EDHOC.  ELA is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-07"/>
        </reference>
        <reference anchor="RFC6761">
          <front>
            <title>Special-Use Domain Names</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes what it means to say that a Domain Name (DNS name) is reserved for special use, when reserving such a name is appropriate, and the procedure for doing so. It establishes an IANA registry for such domain names, and seeds it with entries for some of the already established special domain names.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6761"/>
          <seriesInfo name="DOI" value="10.17487/RFC6761"/>
        </reference>
      </references>
    </references>
    <?line 615?>

<section anchor="change-log">
      <name>Change log</name>
      <t>Since draft-amsuess-core-coap-over-gatt-08:</t>
      <ul spacing="normal">
        <li>
          <t>Unmodified re-upload as adopted document.</t>
        </li>
      </ul>
      <t>Since -07:</t>
      <ul spacing="normal">
        <li>
          <t>Removed ble-sd.arpa and demoted other Service Data use.  </t>
          <t>
Service Data is currently not available in Web Bluetooth implementations.</t>
        </li>
        <li>
          <t>Limited message deduplication to the header.  </t>
          <t>
This makes the protocol implementable on constrained devices without a doubled buffer.</t>
        </li>
        <li>
          <t>Small additions around multiple characteristics and discovery interaction with addressing.</t>
        </li>
      </ul>
      <t>Since -06:</t>
      <ul spacing="normal">
        <li>
          <t>Sketch usage example with EDHOC message 1 in beacons.</t>
        </li>
        <li>
          <t>Restructured to group "further development" points together.</t>
        </li>
        <li>
          <t>Discourage multi-characteristic operation unless necessary.</t>
        </li>
        <li>
          <t>Minor clarifications.</t>
        </li>
      </ul>
      <t>Since -05:</t>
      <ul spacing="normal">
        <li>
          <t>Use <tt>coap://${MAC}.ble.arpa</tt> instead of <tt>coap+gatt://</tt>.</t>
        </li>
        <li>
          <t>Apply template to IANA considerations.</t>
        </li>
      </ul>
      <t>Since -04:</t>
      <ul spacing="normal">
        <li>
          <t>Point out .arpa / .alt considerations.</t>
        </li>
      </ul>
      <t>Since -03:</t>
      <ul spacing="normal">
        <li>
          <t>Define semantics of service data field, define ble-sd.arpa for that purpose.</t>
        </li>
        <li>
          <t>Switch to .arpa names for MAC addresses for consistency with service data names.</t>
        </li>
        <li>
          <t>Use one characteristic per data direction. This  </t>
          <ul spacing="normal">
            <li>
              <t>simplifies implementations on platforms with little control over change
events,</t>
            </li>
            <li>
              <t>removes the necessity to process the R bit, and</t>
            </li>
            <li>
              <t>frees up that bit in messages.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Add communication example.</t>
        </li>
        <li>
          <t>Reference more open issues, including intention to get shorter IDs.</t>
        </li>
      </ul>
      <t>Since -02:</t>
      <ul spacing="normal">
        <li>
          <t>Message format extended by a leading byte, the option to have a token.
This enables role reversal and concurrent requests.</t>
        </li>
        <li>
          <t>The UC identifier was changed to reflect the incompatible change in protocol.</t>
        </li>
        <li>
          <t>A section on used BLE properties was added.</t>
        </li>
        <li>
          <t>A section providing outlook on other data for advertisements was added.</t>
        </li>
      </ul>
      <t>Since -01:</t>
      <ul spacing="normal">
        <li>
          <t>Point out (possibly conflicting) development directions.</t>
        </li>
        <li>
          <t>Describe URI scheme more completely, including persistent addresses.</t>
        </li>
        <li>
          <t>Aim for standards track.</t>
        </li>
        <li>
          <t>Describe rejeced alternative approaches.</t>
        </li>
      </ul>
      <t>Since -00:</t>
      <ul spacing="normal">
        <li>
          <t>Add note on SCHC possibilities.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81965IbR5be/3qK2pYj1NAA6CubJDTSuNVNSb3LW7Cblh0z
41WiKgHUdqEKU5cGIU5P+B38HI7wA/iX9038JD7fOSezsgCQ0tgbDk8MRXaj
KvPkud/yYDQaRU3W5HYSH1yVl2/j8sFW8Q+Xd3fx4Xd5a5uybBbxy3Idvyhs
Nd/EP1j6O0viy6apsmnb2HpwEKVlUpglrZFWZtaMMtvMRklZWfqPWY2w5Ghu
mmZ0fBxlq2oSN1VbN6fHx8+PT6O6MUX6zyYvC8sf2CgxzSSumzRazyfxVfnu
RXS/xj8u3w7jqYNpGGPFyLTNoqwm0SjOipoeGseXy/pf/0ddR3EsIF0tqqxu
MlMEnyRlWzTVZhJfEhxVZuhXdmmyfBIn7ul/b5Z1a+t6nJTLqCirpWmyBzuh
J999f/X09Mmp++eT508mUVbMth+5uHiGf67t1MOMn+NY0f2TncYew/yBO0vM
/xvp37Gc7N04/qEyRbP/0zfj+F2b/TL60RbVv/63v7T2F/48NQ3tdHp8ejw6
Ph2dnvMvBVK3zY93r15O4kXTrOrJ0VEIbTIfz7Nm0U7HWYkPRv6TI3p3Xuap
LebYIDzVD/zr+Af6/a+f6fusmWbNML4pkvEWvL8K6YzfDSAUgMBnFvAVdvbL
3FY94O5Mfs98FDdlvLTx//ov/zW+Ke+E5/dx+68f4RUx4SIzdfxa9usf42R0
fDY6Pvl1tK/XY+K/aVkV6zKfzcapPbLF0TQv50cNAS1ytLSjrGxEnDwtRnm5
HlkHLTHes7PTM+XBZxcn7p9Pnz95vsWZfgnhZY+lDhFXJMLx7com2SwjoczK
In54Mj7tnfHk+ejkdHS274xvr7/vH9HvOC6r+REpjaUpjhYk/rmtavp5XeSl
Sen3Y1MvPvyB/vHPWfrN+dNnT08vIvrfaDSKzZQk1iRNFN0UjcW/ANasKpck
1csVKaSqjmnJOLF5Hq8WpFZqkDspC7yYFTaNU/uQJfTrrI7zbJk19KvpJm4W
Nk6z2cxWtmiIf5p1Wd3HjU0WRUmEyOiFtrbpMMLq+rx5IK1hprmNL9/e1OPo
bkFrEtztEmuktk5ISdKLhjSbKepVWTVAEr97FUB0uVrlDsVvq7IpkzKPD8Gq
A3rWNNi5DigjCnpHF+PdWZbbAcOYNQxxnBh6eSzoW2YpYTuKviCha6oybQV/
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

-->

</rfc>
