<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc rfcedstyle="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc toc="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc comments="yes"?>
<?rfc inline="yes" ?>
<rfc category="info" ipr="trust200902" number="7554" submissionType="IETF" consensus="yes">
<front>
   <title abbrev="6TiSCH-TSCH">
      Using IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the Internet&nbsp;of&nbsp;Things (IoT):
      Problem Statement
   </title>

   <author initials="T" surname="Watteyne" fullname="Thomas Watteyne"
	   role="editor">
      <organization>Linear Technology</organization>
      <address>
         <postal>
            <street>32990 Alvarado-Niles Road, Suite 910</street>
            <city>Union City</city>
            <region>CA</region>
            <code>94587</code>
            <country>United States</country>
         </postal>
         <phone>+1 (510) 400-2978</phone>
         <email>twatteyne@linear.com</email>
      </address>  
   </author>
 
   <author initials="M." surname="Palattella" fullname="Maria Rita Palattella">
      <organization>University of Luxembourg</organization>
      <address>
         <postal>
            <street>Interdisciplinary Centre for Security, Reliability and
	    Trust</street>
            <street>4, rue Alphonse Weicker</street>
            <city>Luxembourg</city>
            <code>L-2721 </code>
            <country>Luxembourg</country>
         </postal>
         <phone>+352 46 66 44 5841</phone>
         <email>maria-rita.palattella@uni.lu</email>
      </address>
   </author>
   <author initials="L." surname="Grieco" fullname="Luigi Alfredo Grieco">
      <organization>Politecnico di Bari</organization>
      <address>
         <postal>
            <street>Department of Electrical and Information
	    Engineering</street>
            <street>Via Orabona 4</street>
            <city>Bari</city>
            <code>70125</code>
            <country>Italy</country>
         </postal>
         <phone>+39 08 05 96 3911</phone>
         <email>a.grieco@poliba.it</email>
      </address>
   </author>
   <date month="May" year="2015"/>
   <area>Internet Area</area>
   <workgroup>6TiSCH</workgroup>

   <abstract>
      <t>
         This document describes the environment, problem statement, and goals
	 for using the Time-Slotted Channel Hopping (TSCH) Medium 
         Access Control (MAC) protocol of IEEE 802.14.4e
         in the context of Low-Power and Lossy Networks (LLNs). The set of goals 
         enumerated in this document form an initial set only.
      </t>
   </abstract>
</front>
<middle>
   <section title="Introduction">
      <t>
         IEEE 802.15.4e <xref target="IEEE.802.15.4e"/> was published in 2012 as
	 an amendment to the Medium Access Control (MAC) protocol defined by
	 the IEEE 802.15.4 standard (of 2011) <xref target="IEEE.802.15.4"/>. IEEE 802.15.4e will be rolled into the next revision of
	 IEEE 802.15.4, scheduled to be published in 2015.  The Time-Slotted
	 Channel Hopping (TSCH) mode of IEEE 802.15.4e is the object of this
	 document.  The term "TSCH" refers to TSCH as used in <xref target="IEEE.802.15.4e"/>.
      </t>
      <t>
         This document describes the main issues arising from the adoption of
	 the TSCH in the LLN context, following the terminology
	 defined in <xref target="TERMS-6TISCH"/>. <xref
	 target="appendix_highlights"/> further gives an overview of the key
	 features of the TSCH amendment to IEEE 802.15.4e. <xref target="appendix_features"/> details features of
	 TSCH, which might be interesting for the work of the
	 6TiSCH WG.
      </t>
      <t>
         TSCH was designed to allow IEEE 802.15.4 devices to support a wide
	 range of applications including, but not limited to, industrial ones
	 <xref target="IEEE.802.15.4e"/>. At its core is a medium access
	 technique that uses time synchronization to achieve low-power
	 operation and channel hopping to enable high
	 reliability. Synchronization accuracy impacts power consumption and
	 can vary from microseconds to milliseconds depending on the
	 solution. This is very different from the "legacy" IEEE 802.15.4 MAC
	 protocol and is therefore better described as a "redesign". TSCH
	 does not amend the physical layer, i.e., it can operate on any
	 hardware that is compliant with IEEE 802.15.4.
      </t>
      <t>
         IEEE 802.15.4e is the latest generation of ultra-lower power and
	 reliable networking solutions for LLNs. <xref target="RFC5673"/>
	 discusses industrial applications and highlights the harsh operating
	 conditions as well as the stringent reliability, availability, and
	 security requirements for an LLN to operate in an industrial
	 environment. In these environments, vast deployment environments with
	 large (metallic) equipment cause multi-path fading and interference
	 to thwart any attempt of a single-channel solution to be reliable;
	 the channel agility of TSCH is the key to its ultra-high
	 reliability.  Commercial networking solutions are available today in
	 which nodes consume 10's of microamps on average <xref
	 target="CurrentCalculator"/> with end-to-end packet delivery ratios
	 over 99.999% <xref target="Doherty07channel"/>.
      </t>
      <t>
         IEEE 802.15.4e has been designed for low-power constrained devices,
	 often called "motes". Several terms are used in the IETF to refer to
	 those devices, including "LLN nodes" <xref target="RFC7102"/> and
	 "constrained nodes" <xref target="RFC7228"/>. In this document, we
	 use the generic (and shorter) term "node", used as a synonym for "LLN
	 node", "constrained node", or "mote".
      </t>
      <t>
         Enabling the LLN protocol stack to operate in industrial environments
	 opens up new application domains for these networks. Sensors deployed
	 in smart cities <xref target="RFC5548"/> will be able to be installed
	 for years without needing battery replacement. "Umbrella" networks
	 will interconnect smart elements from different entities in smart
	 buildings <xref target="RFC5867"/>. Peel-and-stick switches will
	 obsolete the need for costly conduits for lighting solutions in smart
	 homes <xref target="RFC5826"/>.
      </t>
      <t>
         TSCH focuses on the MAC layer only. This clean layering
	 allows for TSCH to fit under an IPv6-enabled protocol stack for LLNs,
	 running an IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) 
         <xref target="RFC6282"/>, the IPv6 Routing Protocol for
	 Low-Power and Lossy Networks (RPL) <xref target="RFC6550"/>, and the
	 Constrained Application Protocol (CoAP) <xref
	 target="RFC7252"/>. 


         What is missing is a functional entity that is
	 in charge of scheduling TSCH time slots for frames to be sent on. In
	 this document, we refer to this entity as the "Logical Link Control"
	 (LLC), bearing in mind that realizations of this entity can be of
	 different types, including a distributed protocol or a centralized
	 server in charge of scheduling.
      </t>
      <t>
         While <xref target="IEEE.802.15.4e"/> defines the mechanisms for a TSCH
	 node to communicate, it does not define the policies to build and
	 maintain the communication schedule, match that schedule to the
	 multi-hop paths maintained by RPL, adapt the resources allocated
	 between neighbor nodes to the data traffic flows, enforce a
	 differentiated treatment for data generated at the application layer
	 and signaling messages needed by 6LoWPAN and RPL to discover
	 neighbors, react to topology changes, self-configure IP addresses, or
	 manage keying material.
      </t>
      <t>
         In other words, TSCH is designed to allow optimizations
	 and strong customizations, simplifying the merging of TSCH with a
	 protocol stack based on IPv6, 6LoWPAN, and RPL.
      </t>
    </section>
   <section title="TSCH in the LLN Context">
      <t>
         To map the services required by the IP layer to the services provided
	 by the link layer, an adaptation layer is used <xref
	 target="Palattella12standardized"/>. In 2007, the 6LoWPAN WG
	 started working on specifications for transmitting IPv6
	 packets over IEEE 802.15.4 networks <xref
	 target="RFC4919"/>. A low-power Wireless Personal Area Network (WPAN)
	 is typically composed of a large number of battery-powered devices that are 
         deployed at locations that are unknown a priori. Nodes form a star or a mesh 
         topology and communicate with one another at a low datarate and using short frames. 
         The wireless nature of the links means that they are unreliable in nature. 
         Nodes turn off their radio interface most of the time to conserve energy.

         Given these features, it is
	 clear that the adoption of IPv6 on top of a low-power WPAN is not
	 straightforward but poses strong requirements for the optimization
	 of this adaptation layer.
      </t>
      <t>
         For instance, due to the IPv6 default minimum MTU size (1280 bytes),
	 an unfragmented IPv6 packet is too large to fit in an IEEE 802.15.4
	 frame. Moreover, the overhead due to the 40-byte-long IPv6 header
	 wastes the scarce bandwidth available at the PHY layer <xref
	 target="RFC4944"/>. For these reasons, the 6LoWPAN WG has
	 defined an effective adaptation layer <xref
	 target="RFC6282"/>. Further issues encompass the autoconfiguration
	 of IPv6 addresses <xref target="RFC2460"/><xref target="RFC4862"/>,
	 the compliance with the recommendation on supporting link-layer
	 subnet broadcast in shared networks <xref target="RFC3819"/>, the
	 reduction of routing and management overhead <xref
	 target="RFC6606"/>, the adoption of lightweight application protocols
	 (or novel data encoding techniques), and the support for security
	 mechanisms (confidentiality and integrity protection, device
	 bootstrapping, key establishment, and management).
      </t>
      <t>
         These features can run on top of TSCH. There are, however, important
	 issues to solve, as highlighted in <xref target="sec_problems"/>.
      </t>
      <t>
         Routing issues are challenging for 6LoWPAN, given the low-power and
	 lossy radio links, the battery-powered nodes, the multi-hop mesh
	 topologies, and the frequent topology changes due to
	 mobility. Successful solutions take into account the specific
	 application requirements, along with IPv6 behavior and 6LoWPAN
	 mechanisms <xref target="Palattella12standardized"/>. The ROLL
	 WG has defined RPL in <xref target="RFC6550"/>. RPL can
	 support a wide variety of link layers, including ones that are
	 constrained, potentially lossy, or typically utilized in conjunction
	 with host or router devices with very limited resources, as in
	 building/home automation <xref target="RFC5867"/><xref
	 target="RFC5826"/>, industrial environments <xref target="RFC5673"/>,
	 and urban applications <xref target="RFC5548"/>. RPL is able to
	 quickly build up network routes, distribute routing knowledge among
	 nodes, and adapt to a changing topology. In a typical setting, nodes
	 are connected through multi-hop paths to a small set of root devices,
	 which are usually responsible for data collection and
	 coordination. For each of them, a Destination-Oriented Directed
	 Acyclic Graph (DODAG) is created by accounting for link costs, node
	 attributes/status information, and an Objective Function, which maps
	 the optimization requirements of the target scenario.
      </t>
      <t>
         The topology is set up based on a Rank metric, which encodes the
	 distance of each node with respect to its reference root, as
	 specified by the Objective Function. Regardless of the way it is
	 computed, the Rank monotonically decreases along the DODAG towards
	 the root, building a gradient. RPL encompass different kinds of
	 traffic and signaling information. Multipoint-to-Point (MP2P) is the
	 dominant traffic in LLN applications. Data is routed towards nodes
	 with some application relevance, such as the LLN gateway to the
	 larger Internet or to the core of private IP networks. In general,
	 these destinations are the DODAG roots and act as data collection
	 points for distributed monitoring applications. Point-to-Multipoint
	 (P2MP) data streams are used for actuation purposes, where messages
	 are sent from DODAG roots to destination nodes. Point-to-Point (P2P)
	 traffic allows communication between two devices belonging to the
	 same LLN, such as a sensor and an actuator. A packet flows from the
	 source to the common ancestor of those two communicating devices,
	 then downward towards the destination. Therefore, RPL has to discover
	 both upward routes (i.e., from nodes to DODAG roots) in order to
	 enable MP2P and P2P flows and downward routes (i.e., from DODAG roots
	 to nodes) to support P2MP and P2P traffic.
      </t>
      <t>
         <xref target="sec_problems" /> highlights the challenges that need to
	 be addressed to use RPL on top of TSCH.
      </t>
      <t>
         Open-source initiatives have emerged around TSCH, with the OpenWSN
	 project <xref target="OpenWSN"/><xref target="OpenWSNETT"/> being the
	 first open-source implementation of a standards-based protocol
	 stack. This implementation was used as the foundation for an IP for
	 the Smart Objects Alliance (IPSO) <xref target="IPSO"/> interoperability
	 event in 2011. In the absence of a standardized scheduling mechanism
	 for TSCH, a "slotted Aloha" schedule was used.
      </t>
    </section>
   <section title="Problems and Goals" anchor="sec_problems">
      <t>
         As highlighted in <xref target="appendix_highlights"/>, TSCH differs
	 from other low-power MAC protocols because of its scheduled
	 nature. TSCH defines the mechanisms to execute a communication
	 schedule; yet, it is the entity that sets up the schedule that
	 controls the topology of the network. This scheduling entity also
	 controls the resources allocated to each link in that topology.
      </t>
      <t>
         How this entity should operate is out of scope of TSCH. The remainder
	 of this section highlights the problems this entity needs to
	 address. For simplicity, we refer to this entity by the generic name
	 "LLC". Note that the 6top sublayer, currently being defined in <xref
	 target="SUBLAYER-6top"/>, can be seen as an
	 embodiment of this generic "LLC".
      </t>
      <t>
         Some of the issues the LLC needs to target might overlap with the
	 scope of other protocols (e.g., 6LoWPAN, RPL, and RSVP). In this
	 case, the LLC will profit from the services
	 provided by other protocols to pursue these objectives.

      </t>
      <section title="Network Formation" anchor="sec_formation">
         <t>
            The LLC needs to control the way the network is formed, including
	    how new nodes join and how already joined nodes advertise the
	    presence of the network. The LLC needs to:
            <list style="numbers">
               <t>Define the Information Elements included in the Enhanced
	       Beacons (EBs) <xref target="IEEE.802.15.4e"/> advertising the presence
	       of the network.</t>

               <t>(For a new node), define rules to process and filter received
	       EBs.</t>

               <t>Define the joining procedure. This might include a mechanism
	       to assign a unique 16-bit address to a node and the management
	       of initial keying material.</t>

               <t>Define a mechanism to secure the joining process and the
	       subsequent optional process of scheduling more communication
	       cells.</t>
            </list>
         </t>
      </section>
      <section title="Network Maintenance">
         <t>
            Once a network is formed, the LLC needs to maintain the network's
	    health, allowing for nodes to stay synchronized. The LLC needs to:
            <list style="numbers">
               <t>Manage each node's time source neighbor.</t>
               <t>Define a mechanism for a node to update the join priority it
	       announces in its EB.</t>
               <t>Schedule transmissions of EBs to advertise the
	       presence of the network.</t>
            </list>
         </t>
      </section>
      <section title="Multi-Hop Topology">
         <t>
            RPL, given a weighted connectivity graph, determines multi-hop
	    routes. The LLC needs to:
            <list style="numbers">
               <t>Define a mechanism to gather topological information, node
	       and link state, which it can then feed to RPL.</t>
               <t>Ensure that the TSCH schedule contains cells along the
	       multi-hop routes identified by RPL (a cell in a TSCH schedule
	       is an atomic "unit" of resource, see <xref
	       target="sec_resourcemgmt"/>).</t>
               <t>Where applicable, maintain independent sets of cells to
	       transport independent flows of data.</t>
            </list>
         </t>
      </section>
      <section title="Routing and Timing Parents">
         <t>
            At all times, a TSCH node needs to have a time-source neighbor to which it
	    can synchronize. Therefore, LLC needs to assign a time-source neighbor to allow for correct operation of the TSCH
	    network. A time-source neighbor could, or not, be taken from the
	    RPL routing parent set.
         </t>
      </section>
      <section title="Resource Management" anchor="sec_resourcemgmt">
         <t>
            A cell in a TSCH schedule is an atomic "unit" of resource. The
	    number of cells to assign between neighbor nodes needs to be
	    appropriate for the size of the traffic flow. The LLC needs to:
            <list style="numbers">
               <t>Define a mechanism for neighbor nodes to exchange
	       information about their schedule and, if applicable, negotiate
	       the addition/deletion of cells.</t>
               <t>Allow for an entity (e.g., a set of devices, a distributed
	       protocol, a Path Computation Element (PCE), etc.) to take
	       control of the schedule.</t>
            </list>
         </t>
      </section>
      <section title="Dataflow Control">
         <t>
            TSCH defines mechanisms for a node to signal when it cannot accept an
	    incoming packet. It does not, however, define the policy that
	    determines when to stop accepting packets. The LLC needs to:
            <list style="numbers">
               <t>Allow for the implementation and configuration of policy to
	       queue incoming and outgoing packets.</t>

               <t>Manage the buffer space, and indicate to TSCH when to stop
	       accepting incoming packets.</t>

               <t>Handle transmissions that have failed. A transmission is
	       declared failed when TSCH has retransmitted the packet multiple
	       times, without receiving an acknowledgment. This covers both
	       dedicated and shared cells.</t>
            </list>
         </t>
      </section>
      <section title="Deterministic Behavior">
         <t>
            As highlighted in <xref target="RFC5673"/>, in some applications,
	    data is generated periodically and has a well-understood data
	    bandwidth requirement, which is deterministic and predictable. The
	    LLC needs to:
            <list style="numbers">
               <t>Ensure that the data is delivered to its final destination
	       before a deadline possibly determined by the application.</t>
               <t>Provide a mechanism for such deterministic flows to coexist
	       with bursty or infrequent traffic flows of different
	       priorities.</t>
            </list>
         </t>
      </section>
      <section title="Scheduling Mechanisms">
         <t>
            Several scheduling mechanisms can be envisioned and could possibly
	    coexist in the same network. For example, <xref
	    target="RPL"/> describes
	    how the allocation of bandwidth can be optimized by an external
	    PCE <xref target="RFC4655"/>. Another
	    centralized (PCE-based) traffic-aware scheduling algorithm is
	    defined in <xref target="TASA-PIMRC"/>. Alternatively, two
	    neighbor nodes can adapt the number of cells autonomously by
	    monitoring the amount of traffic and negotiating the allocation
	    to extra cell when needed. An example of a decentralized algorithm
	    (i.e., no PCE is needed) is provided in <xref
	    target="Tinka10decentralized"/>. This mechanism can be used to
	    establish multi-hop paths in a fashion similar to RSVP <xref
	    target="RFC2205"/>. The LLC needs to:
            <list style="numbers">
               <t>Provide a mechanism for two devices to negotiate the
	       allocation and deallocation of cells between them.</t>

               <t>Provide a mechanism for the device to monitor and manage the
	       capabilities of a node several hops away.</t>

               <t>Define a mechanism for these different scheduling
	       mechanisms to coexist in the same network.</t>
            </list>
         </t>
      </section>
      <section title="Secure Communication" anchor="sec_securirty">
         <t>
            Given some keying material, TSCH defines mechanisms to encrypt and
	    authenticate MAC frames. It does not define how this keying
	    material is generated. The LLC needs to:
            <list style="numbers">
               <t>Define the keying material and authentication mechanism
	       needed by a new node to join an existing network.</t>
               <t>Define a mechanism to allow for the secure transfer of
	       application data between neighbor nodes.</t>
               <t>Define a mechanism to allow for the secure transfer of
	       signaling data between nodes and the LLC.</t>
            </list>
         </t>
      </section>
    </section>
 
   <section title="Security Considerations">
      <t>
         This memo is an informational overview of existing standards and
	 does not define any new mechanisms or protocols.
      </t>
      <t>
         It does describe the need for the 6TiSCH WG to define a secure
	 solution. In particular, <xref target="sec_formation" /> describes
	 security in the join process. <xref target="sec_securirty" />
	 discusses data-frame protection.
      </t>
   </section>
 </middle>
<back>
   <references title="Normative References">

      <reference anchor="IEEE.802.15.4e">
         <front>
            <title>IEEE Standard for Local and metropolitan area networks -- Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs) Amendment 1: MAC sublayer</title>
            <author>
               <organization>IEEE</organization>
            </author>
            <date month="April" year="2012"/>
         </front>
        <seriesInfo name="IEEE Std." value="802.15.4e-2012" />
      </reference>

      <reference anchor="IEEE.802.15.4">
         <front>
            <title>IEEE Standard for Local and metropolitan area networks -- Part. 15.4: Low-Rate
	    Wireless Personal Area Networks</title>
            <author>
               <organization>IEEE</organization>
            </author>
            <date month="September" year="2011"/>
         </front>

 <seriesInfo name="IEEE Std." value="802.15.4-2011" />
      </reference>

   </references>

   <references title="Informative References">

      <?rfc include='reference.RFC.7252'?>
      <?rfc include='reference.RFC.7228'?> 
      <?rfc include='reference.RFC.7102'?> 
      <?rfc include='reference.RFC.6606'?> 
      <?rfc include='reference.RFC.6550'?>
      <?rfc include='reference.RFC.6282'?> 
      <?rfc include='reference.RFC.5867'?> 
      <?rfc include='reference.RFC.5826'?> 
      <?rfc include='reference.RFC.5673'?> 
      <?rfc include='reference.RFC.5548'?> 
      <?rfc include='reference.RFC.4944'?> 
      <?rfc include='reference.RFC.4919'?> 
      <?rfc include='reference.RFC.4862'?> 
      <?rfc include='reference.RFC.4655'?> 
      <?rfc include='reference.RFC.3819'?>
      <?rfc include='reference.RFC.2460'?> 
      <?rfc include='reference.RFC.2205'?>


<!--I-D.ietf-6tisch-terminology, Active -->
<reference anchor='TERMS-6TISCH'>
<front>
<title>Terminology in IPv6 over the TSCH mode of IEEE 802.15.4e</title>
<author initials='M' surname='Palattella' fullname='Maria Palattella'>
    <organization />
</author>
<author initials='P' surname='Thubert' fullname='Pascal Thubert'>
    <organization />
</author>
<author initials='T' surname='Watteyne' fullname='Thomas Watteyne'>
    <organization />
</author>
<author initials='Q' surname='Wang' fullname='Qin Wang'>
    <organization />
</author>
<date month='March' year='2015' />
</front>
<seriesInfo name='Work in Progress,' value='draft-ietf-6tisch-terminology-04' />
</reference>

 <!--I-D.wang-6tisch-6top-sublayer, Expired-->
<reference anchor='SUBLAYER-6top'>
<front>
<title>6TiSCH Operation Sublayer (6top)</title>
<author initials='Q' surname='Wang' fullname='Qin Wang'>
    <organization />
</author>
<author initials='X' surname='Vilajosana' fullname='Xavier Vilajosana'>
    <organization />
</author>
<author initials='T' surname='Watteyne' fullname='Thomas Watteyne'>
    <organization />
</author>
<date month='July' year='2014' />
</front>
<seriesInfo name='Work in Progress,' value='draft-wang-6tisch-6top-sublayer-01' />
</reference>

<!--I-D.phinney-roll-rpl-industrial-applicability, Expired -->
<reference anchor='RPL'>
<front>
<title>RPL applicability in industrial networks</title>
<author initials='T' surname='Phinney' fullname='Tom Phinney'>
    <organization />
</author>
<author initials='P' surname='Thubert' fullname='Pascal Thubert'>
    <organization />
</author>
<author initials='R' surname='Assimiti' fullname='Robert Assimiti'>
    <organization />
</author>
<date month='February' year='2013' />
</front>
<seriesInfo name='Work in Progress,' value='draft-phinney-roll-rpl-industrial-applicability-02' />
</reference>
     
      <reference anchor="OpenWSN" target="http://www.openwsn.org/">
         <front>
            <title>Berkeley's OpenWSN Project Homepage</title>
            <author/>
            <date/>
         </front>
      </reference>

      <reference anchor="OpenWSNETT">
         <front>
            <title>OpenWSN: A Standards-Based Low-Power Wireless Development
	    Environment</title>
            <author initials="T." surname="Watteyne"   fullname="Thomas Watteyne" />
            <author initials="X." surname="Vilajosana" fullname="Xavier Vilajosana"  />
            <author initials="B." surname="Kerkez"     fullname="Branko Kerkez" />
            <author initials="F." surname="Chraim"     fullname="Fabien Chraim" />
            <author initials="K." surname="Weekly"     fullname="Kevin Weekly" />
            <author initials="Q." surname="Wang"       fullname="Qin Wang" />
            <author initials="S." surname="Glaser"     fullname="Steven Glaser" />
            <author initials="K." surname="Pister"     fullname="Kris Pister" />
            <date month="August" year="2012" />
         </front>
         <seriesInfo name="Transactions on Emerging Telecommunications
			   Technologies," value="Volume 23: Issue 5" />
      </reference>


      <reference anchor="IPSO" target="http://www.ipso-alliance.org/">
         <front>
            <title>IP for Smart Objects Alliance Homepage</title>
            <author><organization>IPSO Alliance</organization></author>
            <date/>
         </front>
      </reference>

      <reference anchor="CurrentCalculator" target="http://www.linear.com/docs/43189">
         <front>
            <title>Application Note: Using the Current Calculator to Estimate
	    Mote Power</title>
            <author>
               <organization>Linear Technology</organization>
            </author>
            <date month="August" year="2012" />
         </front>
      </reference>

      <reference anchor="Doherty07channel">
         <front>
            <title>Channel-Specific Wireless Sensor Network Path Data</title>
            <author initials="L." surname="Doherty" fullname="Lance Doherty" />
            <author initials="W." surname="Lindsay" fullname="William Lindsay"  />
            <author initials="J." surname="Simon"   fullname="Jonathan Simon" />
            <date year="2007" />
         </front>
         <seriesInfo name="IEEE International Conference on Computer
	   Communications and Networks (ICCCN)," value="pp. 89-94" />
      </reference>

      <reference anchor="Tinka10decentralized">
         <front>
            <title>A Decentralized Scheduling Algorithm for Time Synchronized
	    Channel Hopping</title>
            <author initials="A." surname="Tinka"    fullname="Andrew Tinka"/>
            <author initials="T." surname="Watteyne" fullname="Thomas Watteyne"/>
            <author initials="K." surname="Pister"   fullname="Kristofer S. J. Pister"/>
            <date year="2010" />
         </front>
         <seriesInfo name="Ad Hoc" value="Networks" />
      </reference>

      <reference anchor="Watteyne09reliability">
         <front>
            <title>Reliability Through Frequency Diversity: Why Channel
	    Hopping Makes Sense</title>
            <author initials="T." surname="Watteyne" fullname="Thomas Watteyne"/>
            <author initials="A." surname="Mehta"    fullname="Ankur Mehta"/>
            <author initials="K." surname="Pister"   fullname="Kristofer S. J. Pister"/>
            <date month= "October" year="2009" />
         </front>
         <seriesInfo name="Proceedings of the 6th ACM Symposium on Performance Evaluation
	   of Wireless Ad Hoc, Sensor, and Ubiquitous Networks (PE-WASUN),"
		     value="pp. 116-123" />
      </reference>

      <reference anchor="TASA-PIMRC">
         <front>
            <title>Traffic Aware Scheduling Algorithm for reliable low-power multi-hop IEEE
	    802.15.4e networks</title>
            <author initials="MR." surname="Palattella" fullname="Maria Rita Palattella"/>
            <author initials="N."  surname="Accettura"  fullname="Nicola Accettura"/>
            <author initials="M."  surname="Dohler"     fullname="Mischa Dohler"/>
            <author initials="LA." surname="Grieco"     fullname="Luigi Alfredo Grieco"/>
            <author initials="G."  surname="Boggia"     fullname="Gennaro Boggia"/>
            <date month="September" year="2012" />
         </front>
         <seriesInfo name="IEEE 23rd International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC)," value="pp. 327-332" />
      </reference>

      <reference anchor="Palattella12standardized">
         <front>
            <title>Standardized Protocol Stack For The Internet Of (Important)
	    Things</title>
            <author initials="MR." surname="Palattella" fullname="Maria Rita Palattella"/>
            <author initials="N."  surname="Accettura"  fullname="Nicola Accettura"/>
            <author initials="X."  surname="Vilajosana" fullname="Xavier Vilajosana"/>
            <author initials="T."  surname="Watteyne"   fullname="Thomas Watteyne"/>
            <author initials="LA." surname="Grieco"     fullname="Luigi Alfredo Grieco"/>
            <author initials="G."  surname="Boggia"     fullname="Gennaro Boggia"/>
            <author initials="M."  surname="Dohler"     fullname="Mischa Dohler"/>
            <date month="December" year="2012" />
         </front>
         <seriesInfo name="IEEE Communications Surveys and Tutorials,"
		     value="Volume: 15, Issue 3" />
      </reference>
    </references>

   <section title="TSCH Protocol Highlights" anchor="appendix_highlights">
      <t>
         This appendix gives an overview of the key features of the
	 IEEE 802.15.4e TSCH amendment. It makes
	 no attempt at repeating the standard, rather it focuses on the
	 following:
         <list style="symbols">
            <t>Concepts that are sufficiently different from other
	    IEEE 802.15.4 networking that they may need to be defined and
	    presented precisely.</t>

            <t>Techniques and ideas that are part of IEEE 802.15.4e and that
	    might be useful for the work of the 6TiSCH WG.</t>
         </list>
      </t>
      <section title="Time Slots">
         <t>
            All nodes in a TSCH network are synchronized. Time is sliced up
	    into time slots. A time slot is long enough for a MAC frame of
	    maximum size to be sent from node A to node B, and for node B to
	    reply with an acknowledgment (ACK) frame indicating successful
	    reception.
         </t>
         <t>
            The duration of a time slot is not defined by the standard. With
	    radios that are compliant with IEEE 802.15.4 operating in the 2.4 GHz frequency
	    band, a maximum-length frame of 127 bytes takes about 4 ms to
	    transmit; a shorter ACK takes about 1 ms. With a 10 ms slot (a
	    typical duration), this leaves 5 ms to radio turnaround, packet
	    processing, and security operations.
         </t>
      </section>
      <section title="Slotframes">
         <t>
            Time slots are grouped into one of more slotframes. A slotframe
	    continuously repeats over time. TSCH does not impose a slotframe
	    size. Depending on the application needs, these can range from
	    10's to 1000's of time slots. The shorter the slotframe, the more often a
	    time slot repeats, resulting in more available bandwidth, but also
	    in a higher power consumption.
         </t>
      </section>
      <section title="Node TSCH Schedule">
         <t>
            A TSCH schedule instructs each node what to do in each time slot:
	    transmit, receive, or sleep. The schedule indicates, for each
	    scheduled (transmit or receive) cell, a channelOffset and the
	    address of the neighbor with which to communicate.
         </t>
         <t>
            Once a node obtains its schedule, it executes it:
            <list style="symbols">
               <t>For each transmit cell, the node checks whether there is a
	       packet in the outgoing buffer that matches the neighbor
	       written in the schedule information for that time slot. If there
	       is none, the node keeps its radio off for the duration of the
	       time slot. If there is one, the node can ask for the neighbor to
	       acknowledge it, in which case it has to listen for the
	       acknowledgment after transmitting.</t>

               <t>For each receive cell, the node listens for possible
	       incoming packets. If none is received after some listening
	       period, it shuts down its radio. If a packet is received,
	       addressed to the node, and passes security checks, the node can
	       send back an acknowledgment.</t>
            </list>
         </t>
         <t>
            How the schedule is built, updated, and maintained, and by which
	    entity, is outside of the scope of the IEEE 802.15.4e standard.
         </t>
      </section>
      <section title="Cells and Bundles">
         <t>
            Assuming the schedule is well built, if node A is scheduled to
	    transmit to node B at slotOffset 5 and channelOffset 11, node B
	    will be scheduled to receive from node A at the same slotOffset
	    and channelOffset.
         </t>
         <t>
            A single element of the schedule characterized by a slotOffset and
	    channelOffset, and reserved for node A to transmit to node B (or
	    for node B to receive from node A) within a given slotframe, is
	    called a "scheduled cell".
         </t>
         <t>
            If there is a lot of data flowing from node A to node B, the
	    schedule might contain multiple cells from A to B, at different
	    times. Multiple cells scheduled to the same neighbor can be
	    equivalent, i.e., the MAC layer sends the packet on whichever of
	    these cells shows up first after the packet was put in the MAC
	    queue. The union of all cells between two neighbors, A and B, is
	    called a "bundle". Since the slotframe repeats over time (and the
	    length of the slotframe is typically constant), each cell gives a
	    "quantum" of bandwidth to a given neighbor. Modifying the number
	    of equivalent cells in a bundle modifies the amount of resources
	    allocated between two neighbors.
         </t>
      </section>
      <section title="Dedicated vs. Shared Cells">
         <t>
            By default, each scheduled transmit cell within the TSCH schedule
	    is dedicated, i.e., reserved only for node A to transmit to node
	    B. IEEE 802.15.4e also allows a cell to be marked as shared. In a shared
	    cell, multiple nodes can transmit at the same time, on the same
	    frequency. To avoid contention, TSCH defines a backoff algorithm
	    for shared cells.
         </t>
         <t>
            A scheduled cell can be marked as both transmitting and
	    receiving. In this case, a node transmits if it has an appropriate
	    packet in its output buffer, or listens otherwise. Marking a cell
	    as [transmit,receive,shared] results in slotted-Aloha behavior.
         </t>
      </section>
      <section title="Absolute Slot Number">
         <t>
            TSCH defines a timeslot counter called Absolute Slot Number
	    (ASN). When a new network is created, the ASN is initialized to 0;
	    from then on, it increments by 1 at each timeslot. In detail:
         </t>
         <t>
            ASN = (k*S+t)
         </t>
         <t>
            where k is the slotframe cycle (i.e., the number of slotframe
	    repetitions since the network was started), S the slotframe size,
	    and t the slotOffset. A node learns the current ASN when it joins
	    the network. Since nodes are synchronized, they all know the
	    current value of the ASN, at any time. The ASN is encoded as a
	    5-byte number: this allows it to increment for hundreds of years
	    (the exact value depends on the duration of a timeslot) without
	    wrapping over. The ASN is used to calculate the frequency to
	    communicate on and can be used for security-related operations.
         </t>
      </section>
      <section title="Channel Hopping" anchor="sec_channel_hopping">
         <t>
            For each scheduled cell, the schedule specifies a slotOffset and a
	    channelOffset. In a well-built schedule, when node A has a
	    transmit cell to node B on channelOffset 5, node B has a receive
	    cell from node A on the same channelOffset. The channelOffset is
	    translated by both nodes into a frequency using the following
	    function:
         </t>
         <t>
            frequency = F {(ASN + channelOffset) mod nFreq}
         </t>
         <t>
            The function F consists of a lookup table containing the set of
	    available channels. The value nFreq (the number of available
	    frequencies) is the size of this lookup table. There are as many
	    channelOffset values as there are frequencies available (e.g., 16
	    when using radios that are compliant with IEEE 802.15.4 at 2.4 GHz, when all
	    channels are used). Since both nodes have the same channelOffset
	    written in their schedule for that scheduled cell, and the same
	    ASN counter, they compute the same frequency. At the next
	    iteration (cycle) of the slotframe, however, while the
	    channelOffset is the same, the ASN has changed, resulting in the
	    computation of a different frequency.
         </t>
         <t>
            This results in "channel hopping": even with a static schedule,
	    pairs of neighbors "hop" between the different frequencies when
	    communicating. A way of ensuring communication happens on all
	    available frequencies is to set the number of timeslots in a
	    slotframe to a prime number. Channel hopping is a technique known
	    to efficiently combat multi-path fading and external interference
	    <xref target="Watteyne09reliability"/>.
         </t>
      </section>
      <section title="Time Synchronization">
         <t>
            Because of the slotted nature of communication in a TSCH network,
	    nodes have to maintain tight synchronization. All nodes are
	    assumed to be equipped with clocks to keep track of time. Yet,
	    because clocks in different nodes drift with respect to one
	    another, neighbor nodes need to periodically resynchronize.
         </t>
         <t>
            Each node needs to periodically synchronize its network clock to
	    another node, and it also provides its network time to its
	    neighbors. It is up to the entity that manages the schedule to
	    assign an adequate time source neighbor to each node, i.e., to
	    indicate in the schedule which neighbor is its "time source
	    neighbor". While setting the time source neighbor, it is important
	    to avoid synchronization loops, which could result in the
	    formation of independent clusters of synchronized nodes.
         </t>
         <t>
            TSCH adds timing information in all packets that are exchanged
	    (both data and ACK frames). This means that neighbor nodes can
	    resynchronize to one another whenever they exchange data.  In
	    detail, two methods are defined in IEEE 802.15.4e (of 2012) for allowing
	    a device to synchronize in a TSCH network: (i)
	    Acknowledgment-based and (ii) Frame-based synchronization. In both
	    cases, the receiver calculates the difference in time between the
	    expected time of frame arrival and its actual arrival. In
	    Acknowledgment-based synchronization, the receiver provides such
	    information to the sender node in its acknowledgment. In this
	    case, it is the sender node that synchronizes to the clock of the
	    receiver. In Frame-based synchronization, the receiver uses the
	    computed delta for adjusting its own clock. In this case, it is
	    the receiver node that synchronizes to the clock of the sender.
         </t>
         <t>
            Different synchronization policies are possible. Nodes can keep
	    synchronization exclusively by exchanging EBs. Nodes can also keep
	    synchronized by periodically sending valid frames to a time source
	    neighbor and use the acknowledgment to resynchronize. Both methods
	    (or a combination thereof) are valid synchronization policies;
	    which one to use depends on network requirements.
         </t>
      </section>
      <section title="Power Consumption" anchor="sec_power_consumption">
         <t>
            There are only a handful of activities a node can perform during a
	    timeslot: transmit, receive, or sleep. Each of these operations
	    has some energy cost associated to them; the exact value depends
	    on the the hardware used. Given the schedule of a node, it is
	    straightforward to calculate the expected average power
	    consumption of that node.
         </t>
      </section>
      <section title="Network TSCH Schedule">
         <t>
            The schedule entirely defines the synchronization and
	    communication between nodes. By adding/removing cells between
	    neighbors, one can adapt a schedule to the needs of the
	    application. Intuitive examples are:
            <list style="symbols">
               <t>
                  Make the schedule "sparse" for applications where nodes need
		  to consume as little energy as possible, at the price of
		  reduced bandwidth.
               </t>
               <t>
                  Make the schedule "dense" for applications where nodes
		  generate a lot of data, at the price of increased power
		  consumption.
               </t>
               <t>
                  Add more cells along a multi-hop route over which many
		  packets flow.
               </t>
            </list>
         </t>
      </section>
         <section title="Join Process">
         <t>
            Nodes already part of the network can periodically send
	    EB frames to announce the presence of the network. These
	    contain information about the size of the timeslot used in the
	    network, the current ASN, information about the slotframes and
	    timeslots the beaconing node is listening on, and a 1-byte join
	    priority. The join priority field gives information to make a
	    better decision of which node to join. 
            Even if a node is
	    configured to send all EB frames on the same channelOffset,
	    because of the channel hopping nature of TSCH described in <xref
	    target="sec_channel_hopping" />, this channelOffset translates
	    into a different frequency at different slotframe cycles. As a
	    result, EB frames are sent on all frequencies.
         </t>
         <t>
            A node wishing to join the network listens for EBs. Since EBs are
	    sent on all frequencies, the joining node can listen on any
	    frequency until it hears an EB. What frequency it listens on is
	    implementation specific. Once it has received one or more EBs, the
	    new node enables the TSCH mode and uses the ASN and the other
	    timing information from the EB to synchronize to the
	    network. Using the slotframe and cell information from the EB, it
	    knows how to contact other nodes in the network.
         </t>
         <t>
            The IEEE 802.15.4e TSCH standard does not define the steps beyond
	    this network "bootstrap".
         </t>
	 </section>
      <section title="Information Elements">
         <t>
            TSCH introduces the concept of Information Elements (IEs). An
	    IE is a list of Type-Length-Value containers
	    placed at the end of the MAC header. A small number of types are
	    defined for TSCH (e.g., the ASN in the EB is contained in an IE),
	    and an unmanaged range is available for extensions.
         </t>
         <t>
            A data bit in the MAC header indicates whether the frame contains
	    IEs. IEs are grouped into Header IEs, consumed by the MAC layer
	    and therefore typically invisible to the next higher layer, and
	    Payload IEs, which are passed untouched to the next higher layer,
	    possibly followed by regular payload. Payload IEs can therefore be
	    used for the next higher layers of two neighbor nodes to exchange
	    information.
         </t>
      </section>
      <section title="Extensibility">
         <t>
            The TSCH standard is designed to be extensible. It introduces the
	    mechanisms as "building block" (e.g., cells, bundles, slotframes,
	    etc.), but leaves entire freedom to the upper layer to assemble
	    those. The MAC protocol can be extended by defining new Header
	    IEs. An intermediate layer can be defined to manage the MAC layer
	    by defining new Payload IEs.
         </t>
      </section>
    </section>
   <section title="TSCH Features" anchor="appendix_features">
      <t>
         This section details features of TSCH, which might be
	 interesting for the work of the 6TiSCH WG. It does not define any
	 requirements.
      </t>
      <section title="Collision-Free Communication">
         <t>
            TSCH allows one to design a schedule that yields collision-free
	    communication. This is done by building the schedule with
	    dedicated cells in such a way that at most, one node communicates
	    with a specific neighbor in each slotOffset/channelOffset
	    cell. Multiple pairs of neighbor nodes can exchange data at the
	    same time, but on different frequencies.
         </t>
      </section>
      <section title="Multi-Channel vs. Channel Hopping">
         <t>
            A TSCH schedule looks like a matrix of width "slotframe size", S,
	    and of height "number of frequencies", nFreq. For a scheduling
	    algorithm, cells can be considered atomic "units" to schedule. In
	    particular, because of the channel hopping nature of TSCH, the
	    scheduling algorithm should not worry about the actual frequency
	    communication happens on, since it changes at each slotframe
	    iteration.
         </t>
      </section>
      <section title="Cost of (Continuous) Synchronization">
         <t>
            When there is traffic in the network, nodes that are
	    communicating implicitly resynchronize using the data frames they
	    exchange. In the absence of data traffic, nodes are required to
	    synchronize to their time source neighbor(s) periodically not to
	    drift in time. If they have not been communicating for some time
	    (typically 30 s), nodes can exchange a dummy data frame to
	    resynchronize. The frequency at which such messages need to be
	    transmitted depends on the stability of the clock source and on
	    how "early" each node starts listening for data (the "guard
	    time"). Theoretically, with a 10 ppm clock and a 1 ms guard time,
	    this period can be 100 s. Assuming this exchange causes the node's
	    radio to be on for 5 ms, this yields a radio duty cycle needed to
	    keep synchronized of 5 ms / 100 s = 0.005%.  While TSCH does require
	    nodes to resynchronize periodically, the cost of doing so is very
	    low.
         </t>
      </section>
      <section title="Topology Stability">
         <t>
            The channel hopping nature of TSCH causes links to be very
	    "stable". Wireless phenomena such as multi-path fading and
	    external interference impact a wireless link between two nodes
	    differently on each frequency. If a transmission from node A to
	    node B fails, retransmitting on a different frequency has a higher
	    likelihood of succeeding that retransmitting on the same
	    frequency. As a result, even when some frequencies are "behaving
	    bad", channel hopping "smoothens" the contribution of each
	    frequency, resulting in more stable links and therefore a more
	    stable topology.
         </t>
      </section>
      <section title="Multiple Concurrent Slotframes">
         <t>
            The TSCH standard allows for multiple slotframes to coexist in a
	    node's schedule. It is possible that, at some timeslot, a node has
	    multiple activities scheduled (e.g., transmit to node B on
	    slotframe 2, receive from node C on slotframe 1). To handle this
	    situation, the TSCH standard defines the following precedence
	    rules:
            <list style="numbers">
               <t>Transmissions take precedence over receptions;</t>
               <t>Lower slotframe identifiers take precedence over higher
	       slotframe identifiers.</t>
            </list>
            In the example above, the node would transmit to node B on
	    slotframe 2.
         </t>
      </section>
   </section>
  <section title="Acknowledgments" numbered="no">
      <t>
         Special thanks to Dominique Barthel, Patricia Brett, Guillaume
	 Gaillard, Pat Kinney, Ines Robles, Timothy J. Salo, Jonathan Simon,
	 Rene Struik, and Xavi Vilajosana for reviewing the document and providing
	 valuable feedback. Thanks to the IoT6 European Project (STREP) of the
	 7th Framework Program (Grant 288445).
      </t>
   </section>
 </back>
</rfc>
