<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<!-- You want a table of contents -->
<?rfc symrefs="yes"?>
<!-- Use symbolic labels for references -->
<?rfc sortrefs="yes"?>
<!-- This sorts the references -->
<?rfc iprnotified="no" ?>
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<?rfc compact="yes"?>
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<rfc category="std" docName="draft-rfmesh-anima-iot-management-00"
     ipr="trust200902">
  <front>
    <title abbrev="draft-rfmesh-anima-iot-management">ANI Applied in IoT
    Network Management</title>

    <author fullname="Bing Liu" initials="B." role="editor" surname="Liu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Q14, Huawei Campus</street>

          <street>No.156 Beiqing Road</street>

          <city>Hai-Dian District, Beijing</city>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <email>leo.liubing@huawei.com</email>
      </address>
    </author>

    <author fullname="Yuefeng Wu" initials="Y." surname="Wu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>N8, Huawei Campus</street>

          <street>No. 101 Ruanjian Road</street>

          <city>Yu-Hua-Tai District, Nanjing</city>

          <code>210000</code>

          <country>P.R. China</country>
        </postal>

        <email>wuyuefeng@huawei.com</email>
      </address>
    </author>

    <date day="3" month="July" year="2017"/>

    <abstract>
      <t>This document describes an IoT scenario where ACP and GRASP is
      suitable to act as a network management channel and a lightweight and
      extensible network management protocol. Relevent GRASP extention and
      options are also specified to fulfill the requirements of the
      scenario.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>When Anima ANI <xref target="I-D.ietf-anima-reference-model"/> was
      designed, IoT scenarios were under consideration. For example, one big
      reason of introducing CBOR encoding <xref target="RFC7049"/> in GRASP
      <xref target="I-D.ietf-anima-grasp"/> and choosing CoAP <xref
      target="RFC7252"/> for secure bootstrapping <xref
      target="I-D.ietf-anima-grasp"/> is for the effiecency of transporting
      packets over lossy IoT networks.</t>

      <t>This document discusses applying GRASP and ACP into a specific IoT
      scenario for some network management functions. The characterstics of
      the scenario is:<list style="symbols">
          <t>Low-power wireless field area network dedicated for industrial
          usage (e.g. 6LoWPAN-based electronic metering network).</t>

          <t>The topology is mesh. It is natrual for a wireless local
          network.</t>

          <t>IPv6 addressing, which is beneficial for auto-configuration</t>

          <t>L3 routing is enabled (e.g. RPL).</t>

          <t>Nodes are extremelly resource constraind. (E.g., one typical
          hardware model only has 128Kbytes RAM and 512Kbytes ROM. )</t>

          <t>Gateway is normally a resource rich device, which acts as a
          management server to the nodes.</t>

          <t>Normally nodes don't need to communicate with any other entities
          beyond the gateway.</t>
        </list></t>

      <t>However, some of the ANI designs are not specifically optimized for
      IoT scenarios:<list style="symbols">
          <t>Most of the GRASP messages (except M_Discovery and M_Flood) are
          over TCP, which is considered as a heavy burden on radio resources
          for many IoT LLNs.</t>

          <t>Since GRASP is based on TCP, it lacks reliable transport and
          fragmentation mechanisms by itself.</t>

          <t>VRF-based ACP is not applicapable for most of the small IoT
          devices.</t>
        </list></t>

      <t>This document discusses choosing GRASP as the management protocol
      over the other two candicates, which are IETF Core technologies and OMA
      LWM2M technologies. And also discusses a potential lightweight ACP.</t>
    </section>

    <section anchor="Term" title="Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in <xref
      target="RFC2119"/> when they appear in ALL CAPS. When these words are
      not in ALL CAPS (such as "should" or "Should"), they have their usual
      English meanings, and are not to be interpreted as <xref
      target="RFC2119"/>key words.</t>

      <t>This document use the key words defined in <xref target="RFC7575"/>
      .</t>

      <t>The following additional terms are used throughout this document:
      <list style="symbols">
          <t/>

          <t>IoT: Internet of Things</t>

          <t>BR: Bord Router</t>

          <t>CMD: Command</t>

          <t>ACK: Acknowledgement</t>

          <t>PLC: Power Line Communication</t>

          <t>LLN: Low-Power and Lossy Network</t>

          <t>RF: Radio Frequency</t>

          <t>TCP: Transport Controll Protocol</t>

          <t>RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks <xref
          target="RFC6550"/> .</t>
        </list></t>
    </section>

    <section anchor="Probs" title="Scenario Description">
      <t/>

      <t><figure>
          <preamble/>

          <artwork><![CDATA[         
                                    /--\
                                   |    |      /--\
                       /--\         \--/      |    |
                      |    |                   \--/
                       \--/                                  /--\
                                       /--\
    +--------+                        |    |                 \--/
    |        |                         \--/
    |Border  |                 /--\                /--\
    |Router  |                |    |  IoT Nodes   |    |
    |(Gatewa |       /--\      \--/                \--/
    |y)      |      |    |              /--\                    /--\
    +--------+       \--/              |    |                  |    |
                                        \--/                    \--/
                                                    /--\
                               /--\                |    |
                              |    |                \--/
                               \--/
]]></artwork>

          <postamble>Fig 1. Reference Scenario for Wireless Field Area IoT
          Networks</postamble>
        </figure></t>

      <t>As Fig 1 depicted, the BR is the root of the wireless network and act
      as a management server. Each node connects to the BR.</t>
    </section>

    <section title="Why Choose GRASP as Management Protocol">
      <t/>

      <section title="Candidate Technologies">
        <t/>

        <section title="IETF Core">
          <t>Some IoT network management standardization work has been
          initialed in the IETF Core working group. <xref
          target="I-D.ietf-core-comi"/> describes a network management
          interface for constrained devices and networks, called CoAP
          Management Interface (CoMI), which is used to access data resources
          specified in YANG, or SMIv2 converted to YANG; relevant YANG library
          for CoMI server <xref target="I-D.veillette-core-yang-library"/> and
          CBOR encoding of data modeled with YANG <xref
          target="I-D.ietf-core-yang-cbor"/> are also defined. In a nutshell,
          these work items can be considered as some adaption and optimization
          of Netconf/YANG technologies for IoT environment. </t>

          <t>Netconf/YANG mechanisms are capabal of manuplating data orgnized
          in a sophisticated tree structure. These capabilities are necessary
          and poweful in managing various device configurations, especially
          for the sophisticated devices such as router. However, they might be
          too heavy for an extremly resource constrained device as discribed
          above. There is neither enough space for storing the programs in
          ROM, nor running the codes in RAM.</t>
        </section>

        <section title="OMA LWM2M">
          <t>OMA had issued the LWM2M specification, which is also designed
          for IoT network management. LWM2M also chooses CoAP as the
          management protocol, but it doesn't choose YANG for data model,
          rather, it defined some OMA Objects.</t>

          <t>OMA objects less complete than YANG modeled data; the objects are
          flat rather than being orgnized as a tree structure. But OMA objects
          contain also some advanced features such as access control of each
          object. Plus the CoAP implementation, the LWM2M solution is still
          not ideal for the targeted scenarios in terms of ROM/RAM
          ocuppation.</t>
        </section>
      </section>

      <section title="Suitability of GRASP">
        <t>According to <xref target="IoTSig"/> , most of the IoT commands are
        more like "Signallings" rather than traditional "Configurations". It
        is reasonable because the IoT nodes need to auto-configure themselves
        as much as possible to gain maximum effiecency. Relying on a
        centralized server configuring each node is a big challenge to the
        lossy wireless links and might probably cause significant delay of
        deployment.</t>

        <t>Thus, we might need a different approach to consider IoT management
        than just simply re-using Netconf/YANG in a different context (e.g.
        CoAP). </t>
      </section>
    </section>

    <section title="GRASP Extention">
      <t>This section discusses potential GRASP extention to fulfill the IoT
      management requirements.</t>

      <section title="GRASP over UDP">
        <t>Since TCP requires three times handshake, which would consume too
        much radio resource, thus it is not acceptable in LLNs. Then UDP is
        needed.</t>
      </section>

      <section title="Reliable Transport">
        <t>For some critical messages, the sender would need to confirm the
        receiver had got the message, thus, there needs to be a reliable
        transport mechanism extended in application layer (GRASP).</t>
      </section>

      <section title="Fragmentation Handling">
        <t>Since the lack of TCP, GRASP also needs to be enhanced with some a
        fragmentation mechanism.</t>
      </section>
    </section>

    <section title="IoT Management Options Definition">
      <t/>

      <section anchor="IoTSig" title="IoT Management Signallings">
        <t>This section describes a set of IoT network management commands.
        These commands are based on a real commercial implementation, however,
        they are general network management functions that not coupled with
        any specific services. Thus, these command could be considered as a
        representative of the general requirements of similar scenarios.</t>

        <t>1. NETWORK_HEARTBEAT<list style="letters">
            <t>BR sends heartbeat to node, every node relay to forward, ACK is
            optional.</t>

            <t>node can send the ACK if needed.</t>
          </list>2. NETWORK_DISMISS<list style="letters">
            <t>CMD from BR to Node: No Options are associated with this CMD.
            This CMD will be sent in broadcast mode.</t>
          </list>3. NODE_REMOVE <list style="letters">
            <t>CMD from BR to Node: the destination IPv6 address will identify
            the target node to be removed. </t>

            <t>ACK from Node to BR.</t>
          </list></t>

        <t>4. NODE_LEFT_REPORT<list style="letters">
            <t>Parent node sends a command to BR that a node connected to it
            has left.</t>

            <t>BR sends ACK to the parent node.</t>
          </list></t>

        <t>5. NETWORK_PARA_CONFIG<list style="letters">
            <t>CMD from BR to Node. BR send RF config to every node, based on
            broadcast relay, ACK is optional.</t>
          </list></t>

        <t>6. NODE_STATUS<list style="letters">
            <t>Request.</t>

            <t>Response.</t>
          </list>7. NODE_STATISTICS<list style="letters">
            <t>Request.</t>

            <t>Response.</t>
          </list></t>

        <t>8. NODE_LOG<list style="letters">
            <t>Request.</t>

            <t>Response.</t>
          </list></t>

        <t>9. NODE_RESET<list style="letters">
            <t>first response then reset, when node received this message.</t>
          </list></t>

        <t>(Editor's Note: More commands to be extended.)</t>
      </section>

      <section title="GRASP Options">
        <t>We propose to define three Options as the following. Each of the
        above mentioned IoT management signallings could be fit into one of
        the three options as different elements.</t>

        <t>- IoT Node Status Reporting. (Details TBD.)</t>

        <t>- Management Commands to IoT Nodes. (Details TBD.)</t>

        <t>- IoT Network/Node Configuration. (Details TBD.)</t>
      </section>
    </section>

    <section title="Lightweight ACP">
      <t>TBD.</t>
    </section>

    <section title="Security">
      <t>TBD.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>Some technical design work was contributed by Shoushou Ren. Relative
      implementation experence was shared by Zongxin Dou, Wanhong Wang and
      Haiyan Mao.</t>

      <t>Valuable comments were received from Delei Yu, Sheng Jiang and Chuang
      Wang.</t>

      <t>This document was produced using the xml2rfc tool <xref
      target="RFC2629"/>.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.2629'?>

      <?rfc include='reference.RFC.7575'?>

      <?rfc include='reference.I-D.ietf-anima-grasp'?>

      <?rfc ?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.6550'?>

      <?rfc include='reference.RFC.7049'?>

      <?rfc include='reference.RFC.7252'?>

      <?rfc include='reference.I-D.ietf-anima-reference-model'?>

      <?rfc include='reference.I-D.ietf-anima-bootstrapping-keyinfra'?>

      <?rfc include='reference.I-D.ietf-anima-autonomic-control-plane'?>

      <?rfc include='reference.I-D.ietf-core-comi'?>

      <?rfc include='reference.I-D.ietf-core-yang-cbor'?>

      <?rfc include='reference.I-D.ietf-core-sid'?>

      <?rfc include='reference.I-D.veillette-core-yang-library'?>
    </references>

    <!-- current -->
  </back>
</rfc>
