Internet DRAFT - draft-ietf-6tisch-6top-interface

draft-ietf-6tisch-6top-interface







6TiSCH                                                      Q. Wang, Ed.
Internet-Draft                           Univ. of Sci. and Tech. Beijing
Intended status: Informational                             X. Vilajosana
Expires: January 7, 2016                 Universitat Oberta de Catalunya
                                                            July 6, 2015


               6TiSCH Operation Sublayer (6top) Interface
                  draft-ietf-6tisch-6top-interface-04

Abstract

   This document defines a generic data model for the 6TiSCH Operation
   Sublayer (6top), using the YANG data modeling language.  This data
   model can be used for network management solutions defined by the
   6TiSCH working group.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 7, 2016.

Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Wang & Vilajosana        Expires January 7, 2016                [Page 1]

Internet-Draft            6tisch-6top-interface                July 2015


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  6TiSCH Operation Sublayer (6top) Overview . . . . . . . . . .   3
     3.1.  Cell Model  . . . . . . . . . . . . . . . . . . . . . . .   4
       3.1.1.  hard cells  . . . . . . . . . . . . . . . . . . . . .   5
       3.1.2.  soft cells  . . . . . . . . . . . . . . . . . . . . .   6
     3.2.  Data Transfer Model . . . . . . . . . . . . . . . . . . .   6
   4.  Generic Data Model  . . . . . . . . . . . . . . . . . . . . .   8
     4.1.  YANG model of the 6top MIB  . . . . . . . . . . . . . . .   8
     4.2.  Yang Model for the Security aspects of 6top . . . . . . .  32
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  32
     5.1.  Normative References  . . . . . . . . . . . . . . . . . .  32
     5.2.  Informative References  . . . . . . . . . . . . . . . . .  32
     5.3.  External Informative References . . . . . . . . . . . . .  33
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  33

1.  Introduction

   This document defines a generic data model for the 6TiSCH Operation
   Sublayer (6top), using the YANG data modeling language defined in
   [RFC6020].  This data model can be used for future network management
   solutions defined by the 6TiSCH working group.  This data model gives
   access to metrics (e.g. cell state), TSCH configuration and control
   procedures, and support for the different scheduling mechanisms
   described in [I-D.ietf-6tisch-architecture].  The 6top sublayer
   addresses the set of management information and functionalities
   described in [I-D.ietf-6tisch-tsch].

   For example, network formation in a TSCH network is handled by the
   use of Enhanced Beacons (EB).  EBs include information for joining
   nodes to be able to synchronize and set up an initial network
   topology.  However, [IEEE802154e] does not specify how the period of
   EBs is configured, nor the rules for a node to select a particular
   node to join.  6top offers a set of commands so control mechanisms
   can be introduced on top of TSCH to configure nodes to join a
   specific node and obtain a unique 16-bit identifier from the network.
   Once a network is formed, 6top maintains the network's health,
   allowing for nodes to stay synchronized.  It supplies mechanisms to
   manage each node's time source neighbor and configure the EB
   interval.  Network layers running on top of 6top take advantage of
   the TSCH MAC layer information so routing metrics, topological
   information, energy consumption and latency requirements can be
   adjusted to TSCH, and adapted to application requirements.

   TSCH requires a mechanism to manage its schedule; 6top provides a set
   of commands for upper layers to set up specific schedules, either



Wang & Vilajosana        Expires January 7, 2016                [Page 2]

Internet-Draft            6tisch-6top-interface                July 2015


   explicitly by detailing specific cell information, or by allowing
   6top to establish a schedule given a bandwidth or latency
   requirement. 6top is designed to enable decentralized, centralized or
   hybrid scheduling solutions. 6top enables internal TSCH queuing
   configuration, size of buffers, packet priorities, transmission
   failure behavior, and defines mechanisms to encrypt and authenticate
   MAC slotframes.

   As described in [morell04label], due to the slotted nature of a TSCH
   network, it is possible to use a label switched architecture on top
   of TSCH cells.  As a cell belongs to a specific track, a label header
   is not needed at each packet; the input cell (or bundle) and the
   output cell (or bundle) uniquely identify the data flow.  The 6top
   sublayer provides operations to manage the cell mappings.

2.  Requirements Language

   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 RFC 2119 [RFC2119].

3.  6TiSCH Operation Sublayer (6top) Overview

   6top is a sublayer which is the next-higher layer for TSCH
   (Figure 1), as detailed in [I-D.ietf-6tisch-architecture]. 6top
   offers both management and data interfaces to an upper layer, and
   includes monitoring and statistics collection, both of which are
   configurable through its management interface.  The detail of 6top-
   sublayer is described in [I-D.wang-6tisch-6top-sublayer]






















Wang & Vilajosana        Expires January 7, 2016                [Page 3]

Internet-Draft            6tisch-6top-interface                July 2015


   Protocol Stack

      +-----------------------------------+
      | PCEP | CoAP |      | 6LoWPAN |    |
      | PCC  | DTLS | PANA |    ND   |RPL |
      +------------------------------------------+
      | TCP  |     UDP     |     ICMP     | RSVP |
      +------------------------------------------+
      |                 IPv6                     |
      +------------------------------------------+
      |               6LoWPAN HC                 |
      +------------------------------------------+
      |                 6top                     |
      +------------------------------------------+
      |          IEEE802.15.4e TSCH              |
      +------------------------------------------+
      |             IEEE802.15.4                 |
      +------------------------------------------+

                                 Figure 1

   6top distinguishes between hard cells and soft cells.  It therefore
   requires an extra flag to all cells in the TSCH schedule, as detailed
   in Section 3.1.

   When a higher layer gives 6top a 6LoWPAN packet for transmission,
   6top maps it to the appropriate outgoing priority-based queue, as
   detailed in Section 3.2.

   Section 4 contains a generic data model for the 6top sublayer,
   described in the YANG data modeling language.

3.1.  Cell Model

   [IEEE802154e] defines a set of options attached to each cell.  A cell
   can be a Transmit cell, a Receive cell, a Shared cell or a
   Timekeeping cell.  These options are not exclusive, as a cell can be
   qualified with more than one of them.  The MLME-SET-LINK.request
   command defined in [IEEE802154e] uses a linkOptions bitmap to specify
   the options of a cell.  Acceptable values are:

         b0 = Transmit

         b1 = Receive

         b2 = Shared

         b3 = Timekeeping



Wang & Vilajosana        Expires January 7, 2016                [Page 4]

Internet-Draft            6tisch-6top-interface                July 2015


         b4-b7 = Reserved

   Only Transmit cells can also be marked as Shared cells.  When the
   shared bit is set, a back-off procedure is applied to handle
   collisions.  Shared behavior does not apply to Receive cells.

   6top allows an upper layer to schedule a cell at a specific
   slotOffset and channelOffset, in a specific slotframe.

   In addition, 6top allows an upper layer to schedule a certain amount
   of bandwidth to a neighbor, without having to specify the exact
   slotOffset(s) and channelOffset(s).  Once bandwidth is reserved, 6top
   is in charge of ensuring that this requirement is continuously
   satisfied. 6top dynamically reallocates cells if needed, and over-
   provisions if required.

   6top allows an upper layer to associate a cell with a specific track
   by using a TrackID.  A TrackID is a tuple
   (TrackOwnerAddr,InstanceID), where TrackOwnerAddr is the address of
   the node which initializes the process of creating the track, i.e.,
   the owner of the track; and InstanceID is an instance identifier
   given by the owner of the track.  InstanceID comes from upper layer;
   InstanceID could for example be the local instance ID defined in RPL.

   If the TrackID is set to (0,0), the cell can be used by the best-
   effort QoS configuration or as a Shared cell.  If the TrackID is not
   set to (0,0), i.e., the cell belongs to a specific track, the cell
   MUST not be set as Shared cell.

   6top allows an upper layer to ask a node to manage a portion of a
   slotframe, which is named as chunk.  Chunks can be delegated
   explicitly by the PCE to a node, or claimed automatically by any node
   that participates to the distributed cell scheduling process.  The
   resource in a chunk can be appropriated by the node, i.e. the owner
   of the chunk.

   Given this mechanism, 6top defines hard cells (which have been
   requested specifically) and soft cells (which can be reallocated
   dynamically).  The hard/soft flag is introduced by the 6top sublayer
   named as CellType, 0: soft cell, 1: hard cell.  This option is
   mandatory; all cells are either hard or soft.

3.1.1.  hard cells

   A hard cell is a cell that cannot be dynamically reallocated by 6top.
   The CellType MUST be set to 1.  The cell is installed by 6top given
   specific slotframe ID, slotOffset, and channelOffset.




Wang & Vilajosana        Expires January 7, 2016                [Page 5]

Internet-Draft            6tisch-6top-interface                July 2015


3.1.2.  soft cells

   A soft cell is a cell that can be reallocated by 6top dynamically.
   The CellType MUST be set to 0.  This cell is installed by 6top given
   a specific bandwidth requirement.  Soft cells are installed through
   the soft cell negotiation procedure described in
   [I-D.wang-6tisch-6top-sublayer].

3.2.  Data Transfer Model

   Once a TSCH schedule is established, 6top is responsible for feeding
   the data from the upper layer into TSCH.  This section describes how
   6top shapes data from the upper layer (e.g., RPL, 6LoWPAN), and feeds
   it to TSCH.  Since 6top is a sublayer between TSCH and 6LoWPAN, the
   properties associated with a packet/fragment from the upper layer
   includes the next hop neighbor (DestAddr) and expected sending
   priority of the packet (Priority), and/or TrackID(s).  The output to
   TSCH is the fragment corresponding to the next active cell in the
   TSCH schedule.
































Wang & Vilajosana        Expires January 7, 2016                [Page 6]

Internet-Draft            6tisch-6top-interface                July 2015


   6top Data Transfer Model

                          |
                          | (DestAddr, Priority, Fragment)
                          |
      +---------------------------------------+
      |                 I-MUX                 |
      +---------------------------------------+
        |       |       |       |    ....   |
        |       |       |       |           |
      +---+   +---+   +---+   +---+       +---+
      |   |   |   |   |   |   |   |       |   |
      |Q1 |   |Q2 |   |Q3 |   |Q4 |       |Qn |
      |   |   |   |   |   |   |   |       |   |
      +---+   +---+   +---+   +---+       +---+
        |       |       |       |           |
        |       |       |       |           |
      +---------------------------------------+
      |                 MUX                   |
      +---------------------------------------+
                         |
                         |
                       +---+
                       |PDU|
                       +---+
                         |
                         | TSCH MAC-payload
                         |

                                 Figure 2

   In Figure 2, Qi represents a queue, which is either broadcast or
   unicast, and has an assigned priority.  The number of queues is
   configurable.  The relationship between queues and tracks is
   configurable.  For example, for a given queue, only one specific
   track can be used, all of the tracks can be used, or a subset of the
   tracks can be used.

   When 6top receives a packet to transmit, the I-MUX module selects a
   queue in which to insert it.  If the packet's destination address is
   a unicast (resp. broadcast) address, it will be inserted into a
   unicast (resp. broadcast) queue.

   The MUX module is invoked at each scheduled transmit cell by TSCH.
   When invoked, the MUX module goes through the queues, looking for the
   best matching frame to send.  If it finds a frame, it hands it over
   to TSCH for transmission.  If the next active cell is a broadcast
   cell, it selects a fragment only from broadcast queues.



Wang & Vilajosana        Expires January 7, 2016                [Page 7]

Internet-Draft            6tisch-6top-interface                July 2015


   How the MUX module selects the best frame is configurable.  The
   following rules are a typical example:

         The frame's layer 2 destination address MUST match the neighbor
         address associated with the transmit cell.

         If the transmit cell is associated with a specific track, the
         frames in the queue corresponding to the TrackID have the
         highest priority.

         If the transmit cell is not associated with a specific track,
         i.e., TrackID=(0,0), frames from a queue with a higher priority
         MUST be sent before frames from a queue with a lower priority.

   Further rules can be configured to satisfy specific QoS requirements.

4.  Generic Data Model

   This section presents the generic data model of the 6top sublayer,
   using the YANG data modeling langage.  This data model can be used
   for future network management solutions defined by the 6TiSCH working
   group.  The data model consists of the MIB (management information
   base) defined in 6top, and part of the PIB (personal area network
   information base) defined in [IEEE802154e] and [IEEE802154].

4.1.  YANG model of the 6top MIB

  module ietf-6top {

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-6top";
    prefix
      "ietf";


     contact
         "WG Web:   <http://tools.ietf.org/wg/6tisch/>
          WG List:  <mailto:6tisch@ietf.org>

          WG Chair: Pascal Thubert
                    <mailto:pthubert@cisco.com>

          WG Chair: Thomas Watteyne
                    <mailto:thomas.watteyne@inria.fr>

          Editor:   Qin Wang
                    <mailto:wangqin@ies.ustb.edu.cn>";




Wang & Vilajosana        Expires January 7, 2016                [Page 8]

Internet-Draft            6tisch-6top-interface                July 2015


    description
      "Data model for the 6top sublayer";
    organization
         "IETF 6TiSCH Working Group";
    revision 2015-06-16 {
      description
        "v4 revision.";
      reference
        "draft-ietf-6tisch-6top-interface";
    }


    typedef nodeaddresstype {
      type uint64;
      description
        "The type to store a node's address. It can be a 64-bit EUI;
         or the short address defined by 6top, constrained by TSCH
         macNodeAddress size, 2-octets. If using TSCH as MAC, the
         higher 6 octets should be filled with 0, and lowest 2-octets
         is neighbor short address";
    }
    typedef asntype {
      type string {
        length "0..5";
      }
      description
        "The type to store ASN. String of 5 bytes";
    }

    list Version {
      key "major minor";
      description
        "Provides a unique identification for the set of resources
         defined in this draft. Provides a major and minor version
         number that may be accessible independently";

      leaf major {
        type uint8;
        description
          "major revision number";
      }
      leaf minor {
        type uint8;
        description
          "minor revision number";
      }
    }




Wang & Vilajosana        Expires January 7, 2016                [Page 9]

Internet-Draft            6tisch-6top-interface                July 2015


    list SlotframeList {
      key "SlotframeID";
      min-elements 1;
      description
        "List of all of the slotframes used by the node.";

      leaf SlotframeID {
        type uint8;
        mandatory true;
        description
          "Equal to SlotframeHandle defined in TSCH";
        reference
          "IEEE802154e";
      }
      leaf NumOfSlots {
        mandatory true;
        type uint16 {
          range "1..max";
        }
        description
          "indicates how many timeslots in the slotframe";
      }
    }

    list CellList {
      key "CellID";
      min-elements 1;
      unique "SlotframeID SlotOffset ChannelOffset";
      description
        "List of scheduled cells of a node with all of its neighbors,
         in all of its slotframes.";



      leaf CellID {
        type uint16;
        description
          "Equal to Linkhandle in the linkTable of TSCH";
        reference
          "IEEE802154e";
      }
      leaf SlotframeID {
        type leafref {
          path "/SlotframeList/SlotframeID";
        }
        description
          "SlotframeID, one in SlotframeList, indicates the slotframe
           the cell belongs to.";



Wang & Vilajosana        Expires January 7, 2016               [Page 10]

Internet-Draft            6tisch-6top-interface                July 2015


        reference
          "IEEE802154e";
      }
      leaf SlotOffset {
        type uint16;
        description
          "Defined in IEEE802154e.";
        reference
          "IEEE802154e";
      }
      leaf ChannelOffset {
        type uint16;
        description
          "Defined in IEEE802154e. Value range is 0..15";
        reference
          "IEEE802154e";
      }
      leaf LinkOption {
        type bits {
          bit Transmit {
            position 0;
          }
          bit Receive {
            position 1;
          }
          bit Share {
            position 2;
          }
          bit Timekeeping {
            position 3;
          }
        }
        description
          "Defined in IEEE802154e.";
        reference
          "IEEE802154e";
      }
      leaf LinkType {
        type enumeration {
          enum NORMAL;
          enum ADVERTISING;
        }
        description
          "Defined in IEEE802154";
        reference
          "IEEE802154";
      }
      leaf CellType {



Wang & Vilajosana        Expires January 7, 2016               [Page 11]

Internet-Draft            6tisch-6top-interface                July 2015


        type enumeration {
          enum SOFT;
          enum HARD;
        }
        description
          "Defined in 6top";
      }
      leaf NodeAddress {
        type nodeaddresstype;
        description
          "specify the target node address.";
      }
      leaf TrackID {
        type leafref {
          path "/TrackList/TrackId";
        }
        description
          "A TrackID is one in the TrackList, pointing to a tuple
           (TrackOwnerAddr,InstanceID) , where TrackOwnerAddr is the
           address of the node which initializes the process of
           creating the track, i.e., the owner of the track; and
           InstanceID is an instance identifier given by the owner of
           the track.";
      }
      container Statistic {
        description
           "The Statistic container";
        leaf NumOfStatistic {
          mandatory true;
          type uint8;
          description
            "Number of statistics collected on the cell";
        }
        list MeasureList {
          key "StatisticsMetricsID";
          min-elements 1;
          description
             "The list of measures.";
          leaf StatisticsMetricsID{
            type leafref {
              path "/StatisticsMetricsList/StatisticsMetricsID";
            }
            description
              "An index of StatisticsMetricList, which defines how
               to collect data and get the statistic value";
          }
          leaf StatisticsValue{
            type uint16;



Wang & Vilajosana        Expires January 7, 2016               [Page 12]

Internet-Draft            6tisch-6top-interface                July 2015


            config false;
            description
              "updated by 6top according to the statistics method
               specified by StatisticsMetricsID";
          }
        }
      }
    }

    list MonitoringStatusList {
      key "MonitoringStatusID";
      min-elements 1;
      unique "SlotframeID NodeAddress";
      description
        "List of the monitoring configuration and results per
         slotframe and neighbor. Basically, it is used for Monitoring
         Function of 6top to re-allocate softcells or initial the
         softcell negotiation process to increase/decrease number of
         softcells. Upper layer can use it also.";

      leaf MonitoringStatusID {
        type uint16;
        description
             "The monitoring status ID.";
      }
      leaf SlotframeID {
        type leafref {
          path "/SlotframeList/SlotframeID";
        }
        description
          "SlotframeID, one in SlotframeList, indicates the slotframe
           being monitored";
        reference
          "IEEE802154e";
      }
      leaf NodeAddress {
        type nodeaddresstype;
         description
             "The lead node address";
      }
      leaf EnforcePolicy {
        type enumeration {
          enum DISABLE;
          enum BESTEFFORT;
          enum STRICT;
          enum OVERPROVISION;
        }
        default DISABLE;



Wang & Vilajosana        Expires January 7, 2016               [Page 13]

Internet-Draft            6tisch-6top-interface                July 2015


        description
          "Currently enforced QoS policy. DISABLE-no QoS;
           BESTEFFORT- best effort policy is used; STRICT- Strict
           Priority Queueing; OVERPROVISION- cell overprovision";
      }
      leaf AllocatedHard {
        type uint16;
        config false;
        description
          "Number of hard cells allocated";
      }
      leaf AllocatedSoft {
        type uint16;
        config false;
        description
          "Number of soft cells allocated";
      }
      leaf OverProvision {
        type uint16;
        config false;
        must "../EnforcePolicy <> DISABLE ./";
        description
          "Overprovisioned cells. 0 if EnforcePolicy is
           DISABLE";
      }
      leaf QoS {
        type uint16;
        config false;
        description
          "Current QoS including overprovisioned cells, i.e. the
           bandwidth obtained including the overprovisioned cells.";
      }
      leaf NQoS {
        type uint16;
        config false;
        description
          "Real QoS without over provisioned cells, i.e. the actual
           bandwidth without taking into account the overprovisioned
           cells.";
      }
    }

    list StatisticsMetricsList {
      key "StatisticsMetricsID";
      min-elements 1;
      unique "SlotframeID SlotOffset ChannelOffset NodeAddress";
      description
        "List of Statistics Metrics used in the node.";



Wang & Vilajosana        Expires January 7, 2016               [Page 14]

Internet-Draft            6tisch-6top-interface                July 2015


      leaf StatisticsMetricsID {
        type uint16;
        description
             "The metrics ID for statistics.";
      }
      leaf SlotframeID {
        type leafref {
          path "/SlotframeList/SlotframeID";
        }
        description
          "SlotframeID, one in SlotframeList, specifies the
           slotframe to which the statistics metrics applies to.
           If empty, applies to all slotframes";
        reference
          "IEEE802154e";
      }
      leaf SlotOffset {
        type uint16;
        description
          "Specific slotOffset to which the statistics metrics applies
           to. If empty, applies to all timeslots";
        reference
          "IEEE802154e";
      }
      leaf ChannelOffset {
        type uint16;
        description
          "Specific channelOffset to which the statistics metrics
          applies to. If empty, applies to all channels";
        reference
          "IEEE802154e";
      }

      leaf NodeAddress {
        type nodeaddresstype;
        description
          "If NodeAddress is empty, applies to all neighbor nodes.";
      }

      leaf Metrics {
        type enumeration {
          enum macCounterOctets;
          enum macRetryCount;
          enum macMultipleRetryCount;
          enum macTXFailCount;
          enum macTXSuccessCount;
          enum macFCSErrorCount;
          enum macSecurityFailure;



Wang & Vilajosana        Expires January 7, 2016               [Page 15]

Internet-Draft            6tisch-6top-interface                July 2015


          enum macDuplicateFrameCount;
          enum macRXSuccessCount;
          enum macNACKcount;
          enum PDR;
          enum ETX;
          enum RSSI;
          enum LQI;
        }
        description
          "The metric to be monitored. Include those provided by
           underlying IEEE 802.15.4e TSCH -- see table 4i (2012).
           PDR,ETX,RSSI,LQI are maintained by 6top. ";
      }
      leaf Window {
        type uint16;
        description
          "measurement period, in Number of the slotframe size";
      }
      leaf Enable {
        type enumeration {
          enum DISABLE;
          enum ENABLE;
        }
        default DISABLE;
        description
          "indicates the StatisticsMetric is active or not";
      }
    }

    list EBList {
      key "EbID";
      min-elements 1;
      description
        "List of information related with the EBs used by the node";

      leaf EbID {
        type uint8;
        description
          "The EB id.";

      }
      leaf CellID {
        type leafref {
          path "/CellList/CellID";
        }
        description
          "CellID, one in CellList, indicates the cell used
          to send EB";



Wang & Vilajosana        Expires January 7, 2016               [Page 16]

Internet-Draft            6tisch-6top-interface                July 2015


      }
      leaf Peroid {
        type uint16;
        description
          "The EBs period, in seconds, indicates the interval between
           two EB sendings";
      }
      leaf Expiration {
        type enumeration {
          enum NEVERSTOP;
          enum EXPIRATION;
        }
        description
          "NEVERSTOP- the period of the EB never stops; EXPIRATION-
           when the Period arrives, the EB will stop.";
      }
      leaf Priority {
        type uint8;
        description
          "The joining priority model that will be used for
           advertisements. Joining priority MAY be for example
           SAME_AS_PARENT, RANDOM, BEST_PARENT+1 or
           DAGRANK(rank).";
      }
    }

    container TimeSource {
      description
        "specify the timesource selection policy and some relative
        statistics. ";
      leaf policy {
        type enumeration {
          enum ALLPARENT;
          enum BESTCONNECTED;
          enum LOWESTJOINPRIORITY;
        }
        default LOWESTJOINPRIORITY;
        description
          "indicates the policy to choose timesource.
           ALLPARENT- choose from all parents;
           BESTCONNECTED- choose the best-connected node;
           LOWESTJOINPRIORITY- choose the node with lowest
           priority in its EB.";
      }
      leaf NodeAddress {
        type nodeaddresstype;
        description
          "Specifies the address of selected time source neighbors.";



Wang & Vilajosana        Expires January 7, 2016               [Page 17]

Internet-Draft            6tisch-6top-interface                July 2015


      }
      leaf MinTimeCorrection {
        type uint16;
        config false;
        description
          "measured in microsecond";
      }
      leaf MaxTimeCorrection {
        type uint16;
        config false;
        description
          "measured in microsecond";
      }
      leaf AveTimeCorrection {
        type uint16;
        config false;
        description
          "measured and computed in microsecond";
      }
    }

    list NeighborList {
      key "NodeAddress";
      description
        "statistics per communication link. ";
      leaf NodeAddress {
        type nodeaddresstype;
        description
          "Specifies the address of the neighbor.";
      }
      leaf RSSI {
        type uint8;
        config false;
        description
          "The received signal strength";
      }
      leaf LinkQuality {
        type uint8;
        config false;
        description
          "The LQI metric";
      }
      leaf ASN {
        type asntype;
        config false;
        description
          "The 5 ASN bytes, indicates the most recent
          timeslot when a packet from the neighbor was received";



Wang & Vilajosana        Expires January 7, 2016               [Page 18]

Internet-Draft            6tisch-6top-interface                July 2015


      }
    }

    list QueueList {
      key "QueueId";
      min-elements 1;
      description
        "List of Queues, including configuration and statistics.";
      leaf QueueId {
        type uint8;
        description
          "Queue Identifier";
      }
      leaf TxqLength {
        type uint8;
        description
          "The TX queue length in number of packets";
      }
      leaf RxqLength {
        type uint8;
        description
          "The RX queue length in number of packets";
      }
      leaf NumrTx {
        type uint8;
        description
          "Number of allowed retransmissions.";
      }
      leaf Age {
        type uint16;
        description
          "In seconds. Discard packet according to its age
           on the queue. 0 if no discards are allowed.";
      }
      leaf RTXbackoff {
        type uint8;
        description
          "retransmission backoff in number of slotframes.
           0 if next available timeslot wants to be used.";
      }
      leaf StatsWindow {
        type uint16;
        description
          "In second, window of time used to compute stats.";
      }
      leaf QueuePriority {
        type uint8;
        description



Wang & Vilajosana        Expires January 7, 2016               [Page 19]

Internet-Draft            6tisch-6top-interface                July 2015


          "The priority for this queue.";
      }
      list TrackIds {
        key "TrackID";
        leaf TrackID{
          type leafref {
            path "/TrackList/TrackId";
          }
          description
            "The TrackID, one in TrackList, indicates the Track is
             associated with the Queue.";
        }
        description
             "The track IDs.";
      }
      leaf MinLenTXQueue {
        type uint8;
        config false;
        description
          "Statistics, lowest TX queue length registered
           in the window.";
      }
      leaf MaxLenTXQueue {
        type uint8;
        config false;
        description
          "Statistics, largest TX queue length registered
           in the window.";
      }
      leaf AvgLenTXQueue {
        type uint8;
        config false;
        description
          "Statistics, avg TX queue length registered
          in the window.";
      }
      leaf MinLenRXQueue {
        type uint8;
        config false;
        description
          "Statistics, lowest RX queue length registered
           in the window.";
      }
      leaf MaxLenRXQueue {
        type uint8;
        config false;
        description
          "Statistics, largest RX queue len registered



Wang & Vilajosana        Expires January 7, 2016               [Page 20]

Internet-Draft            6tisch-6top-interface                July 2015


           in the window.";
      }
      leaf AvgLenRXQueue {
        type uint8;
        config false;
        description
          "Statistics, avg RX queue length registered
           in the window.";
      }
      leaf MinRetransmissions {
        type uint8;
        config false;
        description
          "Statistics, lowest number of retransmissions registered
           in the window.";
      }
      leaf MaxRetransmissions {
        type uint8;
        config false;
        description
          "Statistics, largest number of retransmissions registered
           in the window.";
      }
      leaf AvgRetransmissions {
        type uint8;
        config false;
        description
          "Statistics, average number of retransmissions registered
           in the window.";
      }
      leaf MinPacketAge {
        type uint16;
        config false;
        description
          "Statistics, in seconds, minimum time a packet stayed in
           the queue during the observed window.";
      }
      leaf MaxPacketAge {
        type uint16;
        config false;
        description
          "Statistics, in seconds, maximum time a packet stayed
           in the queue during the observed window.";
      }
      leaf AvgPacketAge {
        type uint16;
        config false;
        description



Wang & Vilajosana        Expires January 7, 2016               [Page 21]

Internet-Draft            6tisch-6top-interface                July 2015


          "Statistics, in seconds, average time a packet stayed in
           the queue during the observed window.";
      }
      leaf MinBackoff {
        type uint8;
        config false;
        description
          "Statistics, in number of slotframes, minimum Backoff
           for a packet in the queue during the observed window.";
      }
      leaf MaxBackoff {
        type uint8;
        config false;
        description
          "Statistics, in number of slotframes, maximum Backoff
           for a packet in the queue during the observed window.";
      }
      leaf AvgBackoff {
        type uint8;
        config false;
        description
          "Statistics, in number of slotframes, average Backoff
           for a packet in the queue during the observed window.";
      }
    }

    list LabelSwitchList {
      key "LabelSwitchID";
      description
        "List of Label switch' configuration on the node";

      leaf LabelSwitchID {
        type uint16;
        description
           "The label switch ID.";

      }
      list InputCellIds {
        key "CellID";
        leaf CellID{
          type leafref {
            path "/CellList/CellID";
          }
          description
            "The CellID, indicates the Rx cell on which the packet
             will come in.";
        }
        description



Wang & Vilajosana        Expires January 7, 2016               [Page 22]

Internet-Draft            6tisch-6top-interface                July 2015


             "The input cell IDs.";
      }
      list OutputCellIds {
        key "CellID";
        leaf CellID{
          type leafref {
            path "/CellList/CellID";
          }
          description
            "The CellID, indicates the Tx cell on which the received
             packet should be sent out.";
        }
        description
             "The output cell IDs.";

      }
      leaf LoadBalancingPolicy {
        type enumeration {
          enum ROUNDROBIN;
          enum OTHER;
        }
        description
          "The load-balancing policy.
           ROUNDROBIN- Round Robin algorithm is used for
           forwarding scheduling.";
      }
    }

    list TrackList {
      key "TrackId";
      min-elements 1;
      unique "TrackOwnerAddr InstanceID";
      description
        "List of the tracks through the node. At lease the best effort
        track is existing";

      leaf TrackId {
        type uint16;
        description
          "Track Identifier, named locally. It is used to refer to the
           tuple (TrackOwnerAddr, InstanceID).";
      }
      leaf TrackOwnerAddr {
        type uint64;
        description
          "The address of the node which initializes the process of
           creating the track, i.e., the owner of the track;";
      }



Wang & Vilajosana        Expires January 7, 2016               [Page 23]

Internet-Draft            6tisch-6top-interface                July 2015


      leaf InstanceID {
        type uint16;
        description
          "InstanceID is an instance identifier given by
           the owner of the track. InstanceID comes from
           upper layer; InstanceID could for example be
           the local instance ID defined in RPL.";
      }
    }

    list ChunkList {
      key "ChunkId";
      description
        "List of the chunks assigned to the node.";

      leaf ChunkId{
        type uint16;
        description
          "The identifier of a chunk";
      }
      leaf SlotframeId{
        type leafref {
          path "/SlotframeList/SlotframeID";
        }
        description
          "SlotframeID, one in SlotframeList, indicates the
           slotframe to which the chunk belongs";
      }
      leaf SlotBase {
        type uint16;
        description
          "the base slotOffset of the chunk in the slotframe";
      }
      leaf SlotStep {
        type uint8;
        description
          "the slot incremental of the chunk";
      }
      leaf ChannelBase {
        type uint16;
        description
          "the base channelOffset of the chunk";
      }
      leaf ChannelStep {
        type uint8;
        description
          "the channel incremental of the chunk";
      }



Wang & Vilajosana        Expires January 7, 2016               [Page 24]

Internet-Draft            6tisch-6top-interface                July 2015


      leaf ChunkSize {
        type uint8;
        description
          "the number of cells in the chunk. The chunk is the set
           of (slotOffset(i), channelOffset(i)),
           i=0..Chunksize-1,
           slotOffset(i)= (slotBase + i * slotStep) % slotframeLen,
           channelOffset(i) = (channelBase + i * channelStep) % 16";
      }
    }

    list ChunkCellList {
      key "SlotOffset ChannelOffset";
      description
        "List of all of the cells assigned to the node via the
         assignment of chunks.";

      leaf SlotOffset{
        type uint16;
        description
          "The slotoffset of a cell which belongs to a Chunk";
      }
      leaf ChannelOffset{
        type uint16;
        description
          "The channeloffset of a cell which belongs to a chunk.";
      }
      leaf ChunkId {
        type leafref{
          path "/ChunkList/ChunkId";
        }
        description
          "Identifier of the chunk the cell belongs to";
      }
      leaf CellID{
        type leafref {
          path "/CellList/CellID";
        }
        description
          "Initial value of CellID is 0xFFFF. When the cell is
           scheduled, the value of CellID is same as that in
           CellList";
      }
      leaf ChunkCellStatus {
        type enumeration {
          enum UNSCHEDULED;
          enum SCHEDULED;
        }



Wang & Vilajosana        Expires January 7, 2016               [Page 25]

Internet-Draft            6tisch-6top-interface                July 2015


        description
          "The Cell status in a Chunk.";

      }
    }

    container TSCHSpecificPIBAttributes {
      description
        "TSCH specific MAC PIB attributes.";
      reference
        "table 52b in IEEE802.15.4e-2012.";

      leaf macMinBE {
        type uint8;
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           The minimum value of the backoff exponent (BE) in the
           CSMA-CA algorithm or the TSCH-CA algorithm. default:
           3-CSMA-CA, 1-TSCH-CA";
      }
      leaf macMaxBE {
        type uint8;
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           The maximum value of the backoff exponent (BE) in the
           CSMA-CA algorithm or the TSCH-CA algorithm. default:
           5-CSMA-CA, 7-TSCH-CA";
      }
      leaf macDisconnectTime {
        type uint16;
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           Time (in Timeslots) to send out Disassociate frames
           before disconnecting, default: 0x00ff";
      }
      leaf macJoinPriority {
        type uint8;
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           The lowest join priority from the TSCH Synchronization
           IE in an Enhanced beacon, default: 1";
      }
      leaf macASN {
        type asntype;
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           The Absolute Slot Number, i.e., the number of slots
           that ha elapsed since the start of the network.";



Wang & Vilajosana        Expires January 7, 2016               [Page 26]

Internet-Draft            6tisch-6top-interface                July 2015


      }
      leaf macNoHLBuffers {
        type enumeration {
          enum TRUE;
          enum FALSE;
        }
        description
          "defined in Table 52b of IEEE802.15.4e-2012,
           If the value is TRUE, the higher layer receiving the
           frame payload cannot buffer it, and the device should
           acknowledge frames with a NACK; If FALSE, the higher
           layer can accept the frame payload. default: FALSE";
      }
    }

    list TSCHmacTimeslotTemplate {
      key "macTimeslotTemplateId";
      min-elements 1;
      description
        "List of all timeslot templates used in the node.";
      reference
        "table 52e in IEEE802.15.4e-2012.";

      leaf macTimeslotTemplateId {
        type uint8;
        description
          "defined in Table 52e of IEEE802.15.4e-2012.
           Identifier of Timeslot Template. default: 0";
      }
      leaf macTsCCAOffset {
        type uint16;
        description
          "The time between the beginning of timeslot and start
           of CCA operation, in microsecond. default: 1800";
      }
      leaf macTsCCA {
        type uint16;
        description
          "Duration of CCA, in microsecond. default: 128";
      }
      leaf macTsTxOffset {
        type uint16;
        description
          "The time between the beginning of the timeslot and
           the start of frame transmission, in microsecond.
           default: 2120";
      }
      leaf macTsRxOffset {



Wang & Vilajosana        Expires January 7, 2016               [Page 27]

Internet-Draft            6tisch-6top-interface                July 2015


        type uint16;
        description
          "Beginning of the timeslot to when the receiver shall
           be listening, in microsecond. default: 1120";
      }
      leaf macTsRxAckDelay {
        type uint16;
        description
          "End of frame to when the transmitter shall listen for
           Acknowledgment, in microsecond. default: 800";
      }
      leaf macTsTxAckDelay {
        type uint16;
        description
          "End of frame to start of Acknowledgment, in
           microsecond.
           default: 1000";
      }
      leaf macTsRxWait {
        type uint16;
        description
          "The time to wait for start of frame, in microsecond.
           default: 2200";
      }
      leaf macTsAckWait {
        type uint16;
        description
          "The minimum time to wait for start of an
           Acknowledgment, in microsecond. default: 400";
      }
      leaf macTsRxTx {
        type uint16;
        description
          "Transmit to Receive turnaround, in microsecond.
           default: 192";
      }
      leaf macTsMaxAck {
        type uint16;
        description
          "Transmission time to send Acknowledgment,in
           microsecond. default: 2400";
      }
      leaf macTsMaxTx {
        type uint16;
        description
          "Transmission time to send the maximum length frame,
           in microsecond. default: 4256";
      }



Wang & Vilajosana        Expires January 7, 2016               [Page 28]

Internet-Draft            6tisch-6top-interface                July 2015


      leaf macTsTimeslotLength {
        type uint16;
        description
          "The total length of the timeslot including any unused
           time after frame transmission and Acknowledgment,
           in microsecond. default: 10000";
      }
    }

    list TSCHHoppingSequence {
      key "macHoppingSequenceID";
      min-elements 1;
      description
        "List of all channel hopping sequences used in the
         nodes";
      reference
        "Table 52f of IEEE802.15.4e-2012";

      leaf macHoppingSequenceID {
        type uint8;
        description
          "defined in Table 52f of IEEE802.15.4e-2012.
           Each hopping sequence has a unique ID. default: 0";
      }
      leaf macChannelPage {
        type uint8;
        description
          "Corresponds to the 5 MSBs (b27, ..., b31) of a row
           in phyChannelsSupported. Note this may not correspond
           to the current channelPage in use.";
      }
      leaf macNumberOfChannels {
        type uint16;
        description
          "Number of channels supported by the PHY on this
           channelPage.";
      }
      leaf macPhyConfiguration {
        type uint32;
        description
          "For channel pages 0 to 6, the 27 LSBs(b0, b1, ...,
           b26) indicate the status (1 = to be used, 0 = not to
           be used) for each of the up to 27 valid channels
           available to the PHY. For pages 7 and 8, the 27 LSBs
           indicate the configuration of the PHY, and the channel
           list is contained in the extendedBitmap.";
      }
      leaf macExtendedBitmap {



Wang & Vilajosana        Expires January 7, 2016               [Page 29]

Internet-Draft            6tisch-6top-interface                July 2015


        type uint64;
        description
          "For pages 7 and 8, a bitmap of numberOfChannels bits,
           where bk shall indicate the status of channel k for
           each of the up to numberOfChannels valid channels
           supported by that channel page and phyConfiguration.
           Otherwise field is empty.";
      }
      leaf macHoppingSequenceLength {
        type uint16;
        description
          "The number of channels in the Hopping Sequence.
           Does not necessarily equal numberOfChannels.";
      }
      list macHoppingSequenceList {
        key "HoppingChannelID";
        leaf HoppingChannelID {
          type uint16;
          description
            "channels to be hopped over";
        }
        description
         "The hopping sequence";

      }
      leaf macCurrentHop {
        type uint16;
        config false;
        description
          "Index of the current position in the hopping sequence
           list.";
      }
    }

    container SecurityAttributes{
      description
          "The Security Attributes Container.";

      leaf-list K1{
        type uint8;
        config true;
        min-elements 16;
        description
           "The key is used to authenticate EBs.
           The default value of the key is
           36 54 69 53 43 48 20 6D 69 6E 69 6D 61 6C 31 35
           ,i.e. 6TiSCH minimal15.";
        }



Wang & Vilajosana        Expires January 7, 2016               [Page 30]

Internet-Draft            6tisch-6top-interface                July 2015


      leaf EBSecurityLevel{
           type enumeration {
              enum NONE;
              enum MIC-32;
           }
           description
              "The security level respective to the EB key.";
        }

      list K2List{
        key "NodeAddress";
        description
          "The keys are shared with neighbors, used to authenticate
          and/or encrypt DATA, ACKNOWLEDGEMENT, MAC COMMAND frame.";

        leaf NodeAddress {
           type nodeaddresstype;
           description
              "Specifies the address of the neighbor(s) sharing the key.
               The address could be broadcast/unicast address.";
        }
        leaf-list K2{
           type uint8;
           min-elements 16;
           config true;
           description
             "The key is used as shared key with
             the specific neighbor";
        }
        leaf SecurityLevel{
           type enumeration {
              enum NONE;
              enum MIC-32;
              enum MIC-64;
              enum MIC-128;
              enum ENC;
              enum ENC-MIC-32;
              enum ENC-MIC-64;
              enum ENC-MIC-128;
           }
           description
              "The security level respective to
              the specific shared key.";
        }
      }
    }
  }




Wang & Vilajosana        Expires January 7, 2016               [Page 31]

Internet-Draft            6tisch-6top-interface                July 2015


4.2.  Yang Model for the Security aspects of 6top

   The [I-D.ietf-6tisch-architecture] and
   [I-D.richardson-6tisch--security-6top] define the attributes needed
   to secure network bootstraping and joining and authentication
   processes.  The SecurityAttributes container in the included yang
   model above contains attributes that are exposed by 6top interface to
   enable access and configuration to the security mechanisms carried
   out by 6top management entity.

5.  References

5.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

5.2.  Informative References

   [RFC6020]  Bjorklund, M., "YANG - A Data Modeling Language for the
              Network Configuration Protocol (NETCONF)", RFC 6020,
              October 2010.

   [I-D.ietf-6tisch-tsch]
              Watteyne, T., Palattella, M., and L. Grieco, "Using
              IEEE802.15.4e TSCH in an IoT context: Overview, Problem
              Statement and Goals", draft-ietf-6tisch-tsch-06 (work in
              progress), March 2015.

   [I-D.ietf-6tisch-architecture]
              Thubert, P., "An Architecture for IPv6 over the TSCH mode
              of IEEE 802.15.4", draft-ietf-6tisch-architecture-08 (work
              in progress), May 2015.

   [I-D.ietf-6tisch-terminology]
              Palattella, M., Thubert, P., Watteyne, T., and Q. Wang,
              "Terminology in IPv6 over the TSCH mode of IEEE
              802.15.4e", draft-ietf-6tisch-terminology-04 (work in
              progress), March 2015.

   [I-D.ietf-6tisch-minimal]
              Vilajosana, X. and K. Pister, "Minimal 6TiSCH
              Configuration", draft-ietf-6tisch-minimal-09 (work in
              progress), June 2015.







Wang & Vilajosana        Expires January 7, 2016               [Page 32]

Internet-Draft            6tisch-6top-interface                July 2015


   [I-D.wang-6tisch-6top-sublayer]
              Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH
              Operation Sublayer (6top)", draft-wang-6tisch-6top-
              sublayer-01 (work in progress), July 2014.

   [I-D.ietf-6tisch-coap]
              Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and
              Interaction using CoAP", draft-ietf-6tisch-coap-03 (work
              in progress), March 2015.

   [I-D.richardson-6tisch--security-6top]
              Richardson, M., "6tisch secure join using 6top", draft-
              richardson-6tisch--security-6top-04 (work in progress),
              November 2014.

5.3.  External Informative References

   [IEEE802154e]
              IEEE standard for Information Technology, "IEEE std.
              802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area
              Networks (LR-WPANs) Amendment 1: MAC sublayer", April
              2012.

   [IEEE802154]
              IEEE standard for Information Technology, "IEEE std.
              802.15.4, Part. 15.4: Wireless Medium Access Control (MAC)
              and Physical Layer (PHY) Specifications for Low-Rate
              Wireless Personal Area Networks", June 2011.

   [OpenWSN]  Watteyne, T., Vilajosana, X., Kerkez, B., Chraim, F.,
              Weekly, K., Wang, Q., Glaser, S., and K. Pister, "OpenWSN:
              a Standards-Based Low-Power Wireless Development
              Environment", Transactions on Emerging Telecommunications
              Technologies , August 2012.

   [morell04label]
              Morell, A., Vilajosana, X., Lopez-Vicario, J., and T.
              Watteyne, "Label Switching over IEEE802.15.4e Networks.
              Transactions on Emerging Telecommunications Technologies",
              June 2013.

Authors' Addresses









Wang & Vilajosana        Expires January 7, 2016               [Page 33]

Internet-Draft            6tisch-6top-interface                July 2015


   Qin Wang (editor)
   Univ. of Sci. and Tech. Beijing
   30 Xueyuan Road
   Beijing, Hebei  100083
   China

   Phone: +86 (10) 6233 4781
   Email: wangqin@ies.ustb.edu.cn


   Xavier Vilajosana
   Universitat Oberta de Catalunya
   156 Rambla Poblenou
   Barcelona, Catalonia  08018
   Spain

   Phone: +34 (646) 633 681
   Email: xvilajosana@uoc.edu

































Wang & Vilajosana        Expires January 7, 2016               [Page 34]