<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">

<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">

<!ENTITY RFC7252 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7252.xml">

<!--<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
 -->
<!ENTITY standndp PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4861.xml'>
<!ENTITY cool PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-veillette-core-cool-00.xml'>
<!--<!ENTITY yanglora PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-minaburo-yang-lora-00.xml'>-->
<!ENTITY noresponse PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.tcs-coap-no-response-option.xml'>
<!ENTITY coapsecurity PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.draft-marin-ace-wg-coap-eap-01.xml'>



]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-minaburo-6lpwa-cosol-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters abbrev="Abbreviated Title" -->

    <title>Constrained Signaling Over LPWA</title>

    <author fullname="Ana Minaburo" initials="A.M." role="editor"
            surname="Minaburo">
      <organization>Acklio</organization>

      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>2bis rue de la Chataigneraie</street>
          <code>35510</code>
          <city>Cesson-Sevigne</city>
          <region>Bretagne</region>
          <country>FR</country>
        </postal>
        <email>ana@ackl.io</email>
      </address>
    </author>
    
    
    <author fullname="Laurent Toutain" initials="L.T." role="editor"
            surname="Toutain">
      <organization>Institut MINES-TELECOM ; TELECOM Bretagne</organization>

      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>2 rue de la Chataigneraie</street>
          <code>35510</code>
          <city>Cesson-Sevigne</city>
          <region>Bretagne</region>
          <country>FR</country>
        </postal>
        <email>laurent.toutain@telecom-bretagne.eu</email>
      </address>
    </author>
    

    <author fullname="Yannick Delibie" initials="Y.D." role="editor"
            surname="Delibie">
      <organization>Kerlink</organization>

      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>1 rue Jacqueline Auriol</street>
          <code>35235</code>
          <city>Thorigne-Fouillard</city>
          <region>Bretagne</region>
          <country>FR</country>
        </postal>
        <email>yannick.delibie@kerlink.fr</email>
      </address>
    </author>
    
    <date/>
    <!-- date month="March" year="2007" / -->

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Applications and Real-Time Area (art)</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>CoAP</keyword>
    <keyword>Constrained Network Operation</keyword>
    <keyword>LR-WAN</keyword>
    <keyword>LPWAN</keyword>
    <keyword>LP-WAN</keyword>
    <keyword>LPWA</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document presents a new type of long-range, low-rate radio technologies and an extensible mechanism to operate these networks based on CoAP. The emerging Low-Power Wide-Area Networks (LPWA) present a particular set of constraints, which places them at the intersection of infrastructure networks, ultra-dense networks, delay-tolerant networks and low-power and lossy networks. The main objectives of LPWA signaling is to minimize the number of exchanged messages, minimize the size of each message in a secure and extensible manner, all with keeping the fundamental principle of technology-independence (L2-independence). This document describes the use of the Constrained Application Protocol (CoAP) as the main signaling protocol for LPWA, over which minimal messages are exchanged allowing the full operation of the network, such as authentication, authorization, and management. The use of CoAP signaling provides a generic mechanism that can be applied to different LPWA technologies.</t>
    </abstract>
  </front>

  <middle>
  
    <section title="Introduction">
    	<t>The goal of this document is to provide the necessary mechanisms to operate a Low-Power Wide-Area Network (LPWA) by using IETF CoAP <xref target="RFC7252" /> as a core signaling protocol.</t>
    
		<t>Long-range, low-rate radio technologies have emerged in the past several years, and are the base for building LPWAs. LPWAs generally have the following characteristics:        
            <list style="symbols">
            <t>Work in narrow, license-free (ISM) bands with good propagation properties (&lt; 1GHz)</t>
            <t>Low- to very-low throughput (1-200 kbps)</t>
            <t>Low-power operation (25 mW in Europe)</t>
            <t>Long-range communication capabilities (up to 30 km with line-of-sight, several km in urban environment)</t>
            <t>Strong channel access restrictions (1% to 10% duty cycling)</t>
            <t>Infrastructure-based</t>
            <t>Star topology</t>
            </list>
        </t>

        <t>LPWAs are built on radio communication technologies, which use advanced signal processing techniques and combination of appropriate modulation and coding approaches to provide the aforementioned radio characteristics.</t>        

        <t>The absence of license fees and the far-reaching connectivity allow for an extremely competitive pricing of LPWAs compared to other networking technologies, e.g. cellular or mesh. LPWAs are sometimes referred to as LP-WAN or LR-WAN (Low-Rate WAN). Even though LPWAs are extremely limited in terms of network performance, they are enough for a wide class of applications, among which <xref target="LTN001" />:
            <list style="symbols">
            <t>Metering (water, gas, electricity)</t>
            <t>Infrastructure networks (water, gas, electricity, roads, pipelines, drains)</t>
            <t>Environment/Smart City (waste management, air pollution monitoring and alerting, acoustic noise monitoring, public lighting management, parking management,  self service bike rental, digital board monitoring, water pipe leakage monitoring)</t>
            <t>Environment/Country side (soil quality, livestock surveillance, cattle and pet monitoring, climate, irrigation)</t>
            <t>Remote monitoring (house, building)</t>
            <t>Industrial (water tank, asset tracking)</t>
            <t>Automotive (vehicle tracking, impact detection, pay as you drive, assistance request, ...)</t>
            <t>Logistics (goods tracking, conservation monitoring)</t>
            <t>Healthcare (patient monitoring, home medical equipment usage)</t>
            <t>House appliances (pet tracking, white goods, personal asset)</t>
            <t>Truck (tyre monitoring)</t>
            <t>Identification (authentication)</t>
            </list>
        </t>

        <t>The IEEE is studying LPWAs, but limited to the case of low-energy critical infrastructure monitoring (LECIM), under the group IEEE 802.15.4k <xref target="IEEE.802-15.4k"/>.</t>

        <t>The combination of the above characteristics and the envisioned applications define a new class of networks with the following unique constraints:
            <list style="symbols">
            <t>Potentially extremely high density (expected of up to 10k-100k+ end-devices managed by a single radio antena)</t>
            <t>Coexistence of delay-tolerant and critical applications (metering and alarms)</t>
            <t>Low-power, low-throughput, lossy connectivity (use of ISM bands)</t>
            <t>Limited payload (100 bytes max, typically less than 50 bytes, 12 bytes for UNB)</t>
            </list>
        </t>
        
        <t>CoAP is a client-server protocol specialized for constrained networks and devices. CoAP is highly optimized, extensible, standard protocol, which in conjunction with the Concise Binary Object Representation (CBOR) is the ideal candidate for the signaling protocol of the control plane of an LPWA.</t>

        <t>It can be used during all stages of the lifecycle of the network, e.g. discovery, authentication, operation. Furthermore, this can be achieved by following RESTful management paradigm, by using a particular resource tree definition or adopting COOL <xref target='I-D.veillette-core-cool' />.</t>

    

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>



    <section anchor="lp_wan_technologies" title="LPWA Technologies">
            
        <section anchor="lp_wan_radio_technologies" title="Radio technologies">
            <t>There are two classes of LPWA radio technologies, using different radio modulation approaches:
                <list style="symbols">
                    <t>Ultra Narrow Band (UNB)</t>
                    <t>Spread-spectrum (SS)</t>
                </list>
            </t>
            
            <t>An example of UNB is the technology developed and promoted by SigFox <xref target="SigFox"/>. Semtech LoRa <xref target="LoRa"/> uses a direct-sequence spread-spectrum with orthogonal codes (OSSS).</t>

            <t>Both approaches have their advantages and will coexist in the future, as there are currently several operators, which deploy the two types in the same areas.</t>
        </section> <!-- End of lp_wan_technologies_fare -->
        
        <section anchor="lp_wan_technologies_phy" title="Physical Layer Characteristics">
            <t>At the physical layer, the important part is the possibility to reconstruct the signal at long distances. The used ISM bands are defined around the world (e.g. 868 MHz in Europe and 900 MHz in USA) and require a 1% (or 10%) duty cycling, or alternatively - advanced detection and channel reallocation techniques. In reality, all deployed networks use the duty cycling limitation, with the following distinction. There is one 100kHz band in which 10% duty cycling is allowed, with a slightly more emission power. The rest of the bands are limited at 1% duty cycling and very restricted power of emission (e.g. 25 mW in Europe).</t>

            <t>UNB LPWAs make the distinction between Uplink and Downlink, first depending on the modulation, and second with the 10% duty-cycling channel been used for the Downlink. OSSS LPWAs make no such distinction, although for the operation of a network, an operator can chose to use the same Uplink/Downlink channel separation.</t>

            <t>Note that the 1% or 10% duty-cycle limitation counts for all trafic originating from an electronic equipment, e.g. an antena managing 100k objects must obey the same limitation as an end-device, with all frames emitted from the antena (data, acknowledgements) counting towards its quota.</t>

            <section anchor="lp_wan_technologies_phy_unb" title="Ultra Narrowband LPWA radios">
                <t>Ultra Narrowband (UNB) technologies generally possess the following physical layer characteristics <xref target="LTN003" />:
                    <list style="symbols">
                    <t>Uplink: 
                        <list style="symbols">
                        <t>channelization mask 100kHz (600 kHz USA)</t>
                        <t>baud rate 100 bauds (600 bauds USA)</t>
                        <t>modulation BPSK</t>
                        </list></t>
                    <t>Downlink:
                        <list style="symbols">
                            <t>channelization mask: dynamic selection</t>
                            <t>down link baud rate: 600 baud</t>
                            <t>modulation scheme: GFSK</t>
                            <t>downlink transmission power: 500 mW, 10% duty cycle</t>
                        </list></t>
                    </list>
                </t>
            </section> <!-- End of lp_wan_technologies_phy_unb -->


            <section anchor="lp_wan_technologies_phy_ss" title="Spread-spectrum LPWA radios">
                <t>OSSS technologies possess the following physical layer characteristics <xref target="LTN003" />:
                    <list style="symbols">
                        <t>channelization mask: from 8 kHz to 500 kHz (depending on spreading factor)</t>
                        <t>chip rate: 8 kcps up to 500 kcps</t>
                        <t>data rate: 30-50 000 bps</t>
                        <t>modulation scheme: equivalent to DSSS with orthogonal signaling</t>
                        </list>
                    </t>

                    <t>No particular distinction is made between the Uplink and the Downlink.</t>
            </section> <!-- End of lp_wan_technologies_phy_ss -->

        </section> <!-- End of lp_wan_technologies_phy -->


        <section anchor="lp_wan_technologies_mac" title="MAC Layer Characteristics">
            <t>Several proprietary MAC frame formats exist for UNB and OSSS. However, they are designed to operate the network in a centralized, highly-vertically-integrated fashion. The only standard MAC frame format is the IEEE 802.15.4k, which is based on the well-known IEEE 802.15.4 with the addition of a fragmentation sub-layer.</t>

            <t>The channel access method is  based on ALOHA, although it is up to the network operator to chose if an appropriate end-node polling should be implemented.</t>
        </section> <!-- End of lp_wan_technologies_mac -->
    </section> <!-- End of lp_wan_technologies -->


    <section anchor="cosol_archi" title="CoSOL Architecture">
        
        <section anchor="cosol_archi_lp_wan_archi" title="General LPWA architecture">
        <t>We can identify three types of entities in a typical LPWA. These are:
            <list style="symbols">
            <t>Node-F: far-reachable node, e.g. the end-point, object, device.</t>
            <t>Node-R: radio relay, bridging the LPWA radio technology to a different medium (often a LAN or cellular WAN).</t>
            <t>Node-G: gateway node, interconnection between the radio-relay node and the Internet.</t>
            </list>
        </t>
        
        <figure align="center" anchor="fig_general_archi">
            <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
            <artwork align="left"><![CDATA[
+--------+                    +--------+            +--------+
| Node-F | <-- LPWA radio --> | Node-R | <-- IP --> | Node-G |
+--------+                    +--------+            +--------+
            ]]></artwork>
            <postamble>General architecture of an LPWA. LPWA radio technology is used only between the Node-F and the Node-R.</postamble>
        </figure>

        <t>Of these, only Node-F and Node-R communicate through an LPWA radio technology. However, due to the extreme constraints of these technologies, they are always behind a gateway (Node-G). Note, that the Node-R and Node-G can be collocated, e.g. on a single hardware equipment.</t>
        
        <t>The Node-G is connected to the Internet and is assumed to have sufficient computational resources to store a context for each of the Node-Fs. The strong limitation here is the radio link.</t>

        <t>In an actual deployment, a (limited) set of Node-Rs cover a large area with a potentially very-high number of Node-Fs. A single Node-G is capable of controlling all Node-Rs.</t>

        <figure align="center" anchor="fig_real_archi">
            <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
            <artwork align="left"><![CDATA[
                 o                           
      o        o                             
          o        (((*)))-------\
      o              o           |
         o          o            |
     o     (((*)))---------------+------Node-G
      o      o                   |
         o        o              |
 o     (((*)))-------------------+
            o                    |            
      o    o  o         o        |           
          o    (((*)))-----------/
       o            o               
            o          o              

                                              o      = Node-F
                                           (((*)))   = Node-R
            ]]></artwork>
            <postamble>An example coverage of an area with several Node-Rs. Note that a single Node-F may be covered by several Node-Rs.</postamble>
        </figure>
        </section> <!-- End of cosol_archi_lp_wan_archi -->
        

        <section anchor="cosol_archi_node_f" title="Node-F lifecycle">
        <t>Similar to other wireless infrastructure-based technologies, a Node-F can go through several stages:
            <list style="symbols">
                <t>Semi-Association</t>
                <t>Network Discovery</t>
                <t>Association</t>
                <t>Authentication</t>
                <t>Dissociation</t>
            </list></t>
        
        <t>The Node-F state machine is then the following:</t>

        <figure align="center" anchor="fig_connectivity_states">
            <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
            <artwork align="left"><![CDATA[
        +------------------------------------------------------+
        |                                                      |
        V                                                      |
 Semi-associated                                               |
        |                                                      |
        V                                                      |
 Disconnected  <->  Network discovery -> Associated -> Authenticated
        ^                                       |              |
        |                                       |              |
        +------------------------------------------------------+
            ]]></artwork>
            <postamble>Node-F connectivity state machine.</postamble>
        </figure>

        <t>The Node-F can be in Semi-Associated mode. Upon start, and depending on the application, a Node-F can use a state of uni-directional communication, where it is considered semi-associated to the network. In that state, the Node-F broadcasts frames, handled by the Node-G, but the network cannot join the Node-F on a regular basis. This is a degraded LPWA operating mode and if caution is not used, can lead to significant scalability and evolvability issues.</t> 

        <t>The Network Discovery can be reactive or proactive. The former is based on detecting beacon frames sent periodically by the network (e.g. Node-G). The latter is implemented by the Node-F broadcasting probe request frames, to which all appropriate Node-Gs must respond.</t>

        <t>Once a network has been discovered, the Node-F can associate to the network. The association creates the necessary (minimal) context on the Node-G, which initiates the authentication of the Node-F</t>
        
        <t>The authentication is initiated by the Node-G, which should allow for the necessary AAA exchanges to take place. If the authentication is successful, the Node-F enters the Authenticated state. In this stage there is bi-directional communication between the Node-F and the Node-G. If the authentication is not successful, the Node-F enters Disconnected state. Once in Authenticated state, the Node-F can downgrade its connectivity to Semi-Associated mode.</t>
        
        <t>The management of the node in Authenticated state is performed with COOL <xref target='I-D.veillette-core-cool' />. As an example, managing the parameters of a Semtech LoRa device can be achieved through the use of the YANG module defined in <!--<xref target='I-D.minaburo-yang-lora' />--></t>

        <t>Finally, the Node-F may decide to dissociate from the network by sending an explicit request. Upon dissociation the Node-G may release all contexts related to the Node-F and re-association requires going through the authentication stage again. Node mobility is achieved by explicitly dissociating from the old Node-G and then authenticating to the new Node-G. Implicit dissociation is also possible upon the expiration of predefined timers, or in case of mobility optimization.</t>
        </section> <!-- End of cosol_archi_node_f -->
        
        
        <section anchor="cosol_archi_coap" title="CoAP as Signaling Protocol for LPWAs">

        <t>Use as CoAP for signaling is implemented as follows. The MAC, network and/or transport layers MUST provide a mechanism to differentiate user data from signaling data frames (e.g. by using separate MAC addresses, IP addresses and/or UDP-ports). Both the Node-G and the Node-F are running CoAP servers for implementing the control plane. Frames exchanged over the LPWA radio interface and marked as "signaling data" are handled by the corresponding control plane CoAP servers.</t>

        <t>The Node-G runs a (virtual) CoAP server for each Node-F. This server is identified with a DNS name, e.g. "node123.home.node-g.example.com", which can be used explicitly in the CoAP messages via the Proxy-Uri option if needed.</t>
        
		<t>Note, that the Node-R acts only as a transceiver and as such is transparent from protocol point of view. As such, the following management scheme applies:</t>

        <figure align="center" anchor="fig_short_archi">
            <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
            <artwork align="left"><![CDATA[
+--------+                          +--------+
| Node-F | <-- LPWA constraints --> | Node-G |
+--------+                          +--------+
            ]]></artwork>
            <postamble>Node-F connectivity from protocol point of view.</postamble>
        </figure>


            <section anchor="cosol_archi_coap_semi_assoc" title="Semi-Association">
            <t>When in a semi-associated state, a Node-F broadcasts its messages without performing network discovery, or association. If the Node-F is under the coverage of a Node-G, the Node-G will receive the broadcast, and forward the user data. The frames SHOULD be signed, so that they could be authenticated by the network. Layer 2 acknowledgements MUST be used, and in some cases piggybacking on them can provoke the Node-F to associate to the network.</t>

            <t>The broadcast messages MUST include the necessary information to join the user data destination, and enough information for the Node-G to authenticate the message sender. This can be achieved through a Confirmable CoAP message, where the user data are POSTed to a well-known resource defined on the Node-G. DTLS with integrity check can be used, with long-lived keys negotiated by the Node-F and the network. Alternatively, COSE objects may provide the necessary mechanisms.</t>

            <t>Even though an application can be implemented by using only simplex association capabilities, there are non-negligible negative consequences related to scalability and evolvability in this case. For example, a Node-F which periodically broadcasts information will occupy the spectrum, even if there is no operator willing to accept its trafic. In addition, no channel access management can be applied.</t>
     
            <figure align="center" anchor="fig_semi_assoc">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[       
Node-F     Node-G
  |          |
  |          |
  +--------->|           Header: POST
  |   POST   |         Uri-Host: "destination.example.com"   
  |          |         Uri-Path: "temp"
  |          | 
  |          |
  |<---------+           Header: 2.01 Created
  |   2.01   |    
  |          |    
  |          |
                ]]></artwork>
                <postamble>Sending a message in a semi-associated state.</postamble>
            </figure>


            </section> <!-- End of cosol_archi_coap_semi_assoc -->    

            <section anchor="cosol_archi_coap_net_discovery" title="Network Discovery">
            <t>A network can be discovered by a Node-F reactively or proactively.</t>

            <t>Reactive network discovery is based on the detection of periodic beacons emitted by the Node-G. The beacons are implemented with CoAP messages with the No-Response option <xref target='I-D.tcs-coap-no-response-option' />.  The Node-G POSTs its information to a well-known resource, e.g. "/network/node-G/" or a resource alias "/g". Alternatively, this could be achieved by POST-ting to a COOL container (e.g. POST /cool with data node ID = 1 for example).</t>

            <figure align="center" anchor="fig_discovery_reactive">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
Node-F     Node-G
  |          |
  |          |
  |<---------+           Header: POST
  |  POST /g |         Uri-Path: "g"   
  |          |          [No-Responce]
  |          |        
  |          |
                ]]></artwork>
                <postamble>Reactive network discovery. The Node-G sends periodically beacon messages, containing information pertinent to this network.</postamble>
            </figure>

            <t>The CoAP POST request is processed at the Node-F. A resource is created locally, with the representation, which provides the appropriate network parameters, e.g. network ID, Node-G ID, and other radio-related parameters, such as channel, beacon frequency and so forth. This information allows the Node-F to begin the authentication phase.</t>

            <t>A Node-F may chose to proactively probe for the existence of network coverage. In that case, it sends a Confirmable CoAP GET request to obtain the information from a well-known resource, normally published by the beacon messages, e.g. "/network/node-G/" or a resource alias "/g" or COOL data node ID ("/cool" data node ID = 2 for example).</t>

            <figure align="center" anchor="fig_discovery_proactive">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
Node-F    Node-G
  |          |
  |          |
  +--------->|           Header: GET
  |  GET /g  |         Uri-Path: "g"
  |          |           Accept: application/cbor
  |          |
  |          |
  |<---------+           Header: 2.05 Content
  |   2.05   |          Payload: ...
  |          |
                ]]></artwork>
                <postamble>Proactive network discovery. The Node-F request the information of all surrounding Node-Gs.</postamble>
            </figure>
       
            <t>Once the network is discovered, the Node-F has all necessary information to start the authentication phase.</t>

            </section> <!-- End of cosol_archi_coap_net_discovery -->    
            
            
            <section anchor="cosol_archi_coap_assoc" title="Association">
            <t>Before being able to communicate, the Node-F must associate to the network, and then eventually authenticate. The association phase signals to the Node-G that there is a new device willing to communicate with the network. This association SHOULD provide enough information to allow the Node-G to start the authentication process. For example, it may provide the AAA server, which could authenticate the Node-F, or its EAP-Identity. Note, that the Node-F may elect to mark the association message with the No-response option <xref target="I-D.tcs-coap-no-response-option" />, waiting for the subsequent authentication request from the Node-G.</t>

            <figure align="center" anchor="fig_association">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
Node-F     Node-G
  |          |
  |          |
  +--------->|           Header: POST
  | POST /n  |         Uri-Path: "n" 
  |          |          Payload: ...
  |          |
  |<---------+           Header: 2.01 Created
  |   2.01   |    Location-Path: "/n/n705"
  |          |        
                ]]></artwork>
                <postamble>Node-F associates to a network, by creating a corresponding resource element on the Node-G.</postamble>
            </figure>
            </section> <!-- End of cosol_archi_coap_assoc -->    
            
            
            <section anchor="cosol_archi_coap_auth" title="Authentication">
            <t>The EAP-over-CoAP <xref target="I-D.marin-ace-wg-coap-eap" />  specifies an approach to encapsulating EAP messages over CoAP. This allows to authenticate a Node-F, which wishes to join an LPWA, and negotiate the L2 encryption keys, and DTLS keying material.</t>

            <t>As the Node-F has already associated to the Node-G, it is the Node-G that initiates the authentification request, by going directly to Step 1) of the EAP-over-CoAP specification.</t>

            <figure align="center" anchor="fig_authentication">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
  Node-F       Node-G
    |            |
    |            |
1)  |<-----------+           Header: POST
    | POST /auth |         Uri-Path: "auth"   
    |            |          [No-Responce]
    |            |
    |            |
2)  +----------->|           Header: 2.01 Created
    | ACK /auth  |    Location-Path: "/auth/5"
    |            |           
    |            |
    |            |
3)  |<-----------+           Header: PUT
    | PUT /auth/5|         Uri-Path: "auth/5"   
    |            |          Payload: EAP-PSK MSG 1 
    |            |
    |            |
4)  +----------->|           Header: 2.04 Changed
    | ACK /auth/5|          Payload: EAP-PSK MSG 2
    |            |           
        ......
                ]]></artwork>
                <postamble>Node-F and Node-G perform mutual authentication following EAP-over-CoAP.</postamble>
            </figure>
  
            <t>Upon the end of the authentication phase, a Master Shared Key (MSK) is known by the Node-F and the Node-G, and is used to generate DTLS encryption or integrity keys. Further communications should be encrypted/signed with the freshly derived keys.</t>
            </section> <!-- End of cosol_archi_coap_auth -->   
            

            
            <section anchor="cosol_archi_coap_operation" title="Operation">
            <t>Once the Node-F is authenticated to the network, it can send user data via the Node-G to any other end-point on the Internet.</t>

            <t>During the operation of the Node-F, the network may need to change one or more parameters concerning the LPWA radio parameters of the Node-F. These changes may even concern parameters related to the Node-F itself (such as sleep cycles), its network parameters (e.g. IP addresses), and so forth. This is achieved through the use of COOL <xref target='I-D.veillette-core-cool' />. The appropriate YANG modules must be present on the Node-F (e.g. a Semtech LoRa Node-F should implement the <!-- <xref target='I-D.minaburo-yang-lora' /> module)-->.</t>

            <figure align="center" anchor="fig_operation">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
  Node-F       Node-G
    |            |
    |            |
    |<-----------+           Header: PUT
    | PUT /cool  |         Uri-Path: "cool"   
    |            |          Payload: {5:10,6:2}
    |            |
    |            |
    +----------->|           Header: 2.04 Changed
    |    2.04    |
    |            |           

                ]]></artwork>
                <postamble>Example, in which the Node-G changes the Spreading Factor (e.g. COOL data node ID = 5) to 10, and the Channel (e.g. COOL data node ID = 6) to 2. Note, that the payload is encoded in CBOR.</postamble>
            </figure>
            </section> <!-- End of cosol_archi_coap_operation -->    
            
             
             
            <section anchor="cosol_archi_coap_dissociation" title="Dissociation">
<t>If the Node-F wishes to deregister from the network, it could do so by deleting the context created upon association:</t>
            <figure align="center" anchor="fig_dissociation">
                <!-- preamble>Preamble text - can be omitted or empty.</preamble -->
                <artwork align="left"><![CDATA[ 
Node-F           Node-G
  |                |
  |                |
  +--------------->|           Header: POST
  | DELETE /n/n705 |         Uri-Path: "n/n705" 
  |                |
  |                |
  |<---------------+           Header: 2.02 Deleted
  |      2.02      |    
  |                |        
                ]]></artwork>
                <postamble>Node-F dissociates from the network by deleting its associated resources.</postamble>
            </figure>
            </section> <!-- End of cosol_archi_coap_dissociation -->  
            
        </section> <!-- End of cosol_archi_coap -->            


    </section> <!-- End of cosol_archi -->


    <section anchor="Acknowledgements" title="Acknowledgements">
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>All drafts are required to have a security considerations section.
      See <xref target="RFC3552">RFC 3552</xref> for a guide.</t>
    </section>
        <section anchor="Greetings" title="Acknowledgements">
      <t>We want to thanks Alexander Pelov for all his inputs and corrections he has done to this work.</t>
    </section>
  </middle>
  
  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
        &RFC2119;
        &RFC7252;     
		    &cool;
<!--    &yanglora;-->
        &noresponse;
        &coapsecurity;        
    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

         &RFC3552;

      <reference anchor="IEEE.802-15.4k">
		<front>
			<title>
				 Low-Rate Wireless Personal Area Networks (LR-WPANs) - Amendment 5: Physical Layer Specifications for Low Energy, Critical Infrastructure Monitoring Networks., IEEE 802.15.4k
			</title>
			<author>
			<organization>Institute of Electrical and Electronics Engineers</organization>
			</author>
			<date month="" year="2013"/>
		</front>
		<seriesInfo name="IEEE" value="Standard 802.15.4"/>
	</reference>
      <reference anchor="LTN001">
		<front>
			<title>
				 Low Throughput Networks (LTN); Use Cases for Low Throughput Networks, ETSI GS LTN 001
			</title>
			<author>
			<organization>European Telecommunications Standards Institute</organization>
			</author>
			<date month="" year="2014"/>
		</front>
		<seriesInfo name="IEEE" value="ETSI GS LTN 001"/>
	</reference>
    <reference anchor="LTN003">
		<front>
			<title>
				 Low Throughput Networks (LTN); Protocols and Interfaces, ETSI GS LTN 003
			</title>
			<author>
			<organization>European Telecommunications Standards Institute </organization>
			</author>
			<date month="" year="2014"/>
		</front>
		<seriesInfo name="IEEE" value="ETSI GS LTN 003"/>
	</reference>

    <reference anchor="SigFox">
		<front>
			<title>
		https://web.archive.org/web/20150628225901/http://www.sigfox.com/en/#!/technology
			</title>
			<author>
			<organization>SigFox</organization>
			</author>
			<date month="June" year="2015"/>
		</front>
	</reference>

    <reference anchor="LoRa">
		<front>
			<title>			https://web.archive.org/web/20150510011904/https://www.semtech.com/wireless-rf/lora.html
			</title>
			<author>
			<organization>Semtech</organization>
			</author>
			<date month="May" year="2015"/>
		</front>
	</reference>
	
	
	
    </references>

<!--
    <section anchor="app-additional" title="Additional Stuff">
      <t>This becomes an Appendix.</t>
    </section>
-->

    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                      v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                      other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                      Modified comments around figure to reflect non-implementation of
                      figure indent control.  Put in reference using anchor="DOMINATION".
                      Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                      added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                      images. Removed meta-characters from comments (causes problems).  -->
  </back>
</rfc>
