6tisch                                                    S. Anamalamudi
Internet-Draft                                                  M. Zhang
Intended status: Standards Track                     Huawei Technologies
Expires: January 19, 2017                                     C. Perkins
                                                               Futurewei
                                                             S.V.R.Anand
                                             Indian Institute of Science
                                                           July 18, 2016


   Scheduling Function One (SF1) for hop-by-hop Scheduling in 6tisch
                                Networks
                    draft-satish-6tisch-6top-sf1-01

Abstract

   This document defines a 6top Scheduling Function called "Scheduling
   Function One" (SF1) to reserve, label and schedule the end-to-end
   resources hop-by-hop through distributed Resource Reservation
   Protocol(RSVP).  SF1 uses the 6P signaling messages with a global
   TrackID to add/delete cells in end-to-end L2-bundles of isolated
   instance.

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 19, 2017.

Copyright Notice

   Copyright (c) 2016 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



Anamalamudi, et al.     Expires January 19, 2017                [Page 1]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Operation of Scheduling Function one (SF1)  . . . . . . . . .   3
     2.1.  Resource Reservation Protocol(RSVP-lite)  . . . . . . . .   4
     2.2.  RSVP-PATH message . . . . . . . . . . . . . . . . . . . .   4
     2.3.  RSVP-RESV message . . . . . . . . . . . . . . . . . . . .   5
     2.4.  Reroute and Bandwidth Increase mechanism  . . . . . . . .   8
     2.5.  Error Codes . . . . . . . . . . . . . . . . . . . . . . .   8
   3.  Scheduling Function Identifier  . . . . . . . . . . . . . . .   8
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     6.1.  References  . . . . . . . . . . . . . . . . . . . . . . .   9
     6.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   With Scheduling Function Zero (SF0) [I-D.dujovne-6tisch-6top-sf0],
   on-the-fly cell scheduling (ADD/DELETE) to 1-hop neighbors can be
   achieved for aggregated (best-effort) traffic flows.  In other words,
   all the instances from nodeA to nodeB in Fig. 1 are scheduled in a
   single L3-bundle (IP link).

                  L3-bundle(Instance-1,Instance-2,...Instance-n)
               ------------------------------------------------->
         nodeA<-------------------------------------------------  nodeB
                  L3-bundle(Instance-1,Instance-2,...Instance-n)

    Figure 1: L3-bundle for aggregated traffic flows in 1-hop with SF0.

   Some applications (e.g.  Industrial M2M) require end-to-end dedicated
   L2-bundles to protect the control/data streams for time-critical
   applications [I-D.ietf-detnet-use-cases].  For such applications,
   per-instance based L2-bundles need to be scheduled hop-by-hop in
   between application sender and receiver nodes
   [I-D.ietf-6tisch-architecture].  In addition, cells in the scheduled
   end-to-end L2-bundles of each instance have to be dynamically adapted
   for bursty time-critical traffic flows.  To achieve, end-to-end track
   has to be installed with a global TrackID that is associated with the



Anamalamudi, et al.     Expires January 19, 2017                [Page 2]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   L2-bundles of each instance.  With 1-hop based SF0 cell scheduling,
   it is difficult to schedule dedicated end-to-end cells for isolated
   traffic flows.  In addition, global bandwidth estimation through
   Resource Reservation protocol is required for bandwidth allocation in
   multi-hop cell scheduling.  This draft proposes a Scheduling Function
   One (SF1) to schedule end-to-end dedicated L2-bundles for each
   instance, and to dynamically adapt the cells in scheduled L2-bundles
   of ongoing instance through RSVP protocol(see Fig. 2).

                L2-bundle(Instance-1)       L2-bundle(Instance-1)
             ----------------------->      ------------------>
            <------------------------      <-------------------
                L2-bundle(Instance-1)       L2-bundle(Instance-1)

                L2-bundle(Instance-2)       L2-bundle(Instance-2)
             ---------------------->       ----------------->
      Sender<-----------------------nodeB <----------------- Receiver
                L2-bundle(Instance-2)      L2-bundle(Instance-2)
                        .                          .
                        .                          .
                L2-bundle(Instance-n)      L2-bundle(Instance-n)
             ----------------------->     -------------------->
            <------------------------     <--------------------
                L2-bundle(Instance-n)      L2-bundle(Instance-n)

   Figure 2: Dedicated L2-bundles for end-to-end isolated traffic flows
                                 with SF1

2.  Operation of Scheduling Function one (SF1)

   With SF1, Sender determines when to reserve the end-to-end resources,
   support implicit label switching(GMPLS), schedule the labeled
   L2-bundles hop-by-hop, associate the global TrackID for labeled
   L2-bundles, and dynamically adapt the cells in ongoing instance
   through distributed Resource Reservation Protocol (RSVP-lite).  The
   triggering events in SF1 are as follows :

   1.  If Sender has any Outgoing Bandwidth Requirement for new instance
       to transmit data to Receiver.

   2.  If Sender has a New Outgoing Bandwidth Requirement for Ongoing
       Instance to transmit data to Receiver.

   In both cases, distributed RSVP-lite (explained in Section .2.1) is
   triggered to provide end-to-end resource reservations along with
   scheduling operations.





Anamalamudi, et al.     Expires January 19, 2017                [Page 3]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


2.1.  Resource Reservation Protocol(RSVP-lite)

   In this specification, an end-to-end route path is assumed to be
   available with reactive P2P-RPL (Storing or non-storing mode)
   protocols.  A distributed Resource Reservation Protocol (RSVP-lite)
   with 6tisch scheduling capability is designed to schedule the labeled
   reserved resources hop-by-hop for isolated instance.  SF1 of
   application sender will trigger the RSVP-lite operation, whenever it
   has time critical traffic flow towards the receiver.  The RSVP-lite
   has two messages namely (1) RSVP-PATH message(Sender to Receiver) and
   (2) RSVP-RESV message(Receiver to Sender).

2.2.  RSVP-PATH message

   The basic RSVP-PATH message [RFC2205] is used to carry the "Sender
   Traffic Specification" along with "characterization parameters" from
   sender to receiver.  Since RSVP treat objects as opaque data, it is
   valid to assume other protocol(eg., GMPLS, 6P) as an object in RSVP-
   PATH messages.

   The format of PATH message with the support of 6tisch scheduling
   capabilities (6P and SF1) is as follows :

    <Path Message> ::=    <Common Header> [ <INTEGRITY> ]
                          [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
                          [ <MESSAGE_ID> ]
                          <SESSION> <RSVP_HOP>
                          <TIME_VALUES>
                          [ <EXPLICIT_ROUTE> ]
                          <LABEL_REQUEST>
                          [ <PROTECTION> ]
                          [ <LABEL_SET> ... ]
                          [<SF1 OPERATION REQUEST>]
                          [<6P OPERATION REQUEST>]
                          [ <SESSION_ATTRIBUTE> ]
                          [ <NOTIFY_REQUEST> ]
                          [ <ADMIN_STATUS> ]
                          [ <POLICY_DATA> ... ]
                          <sender descriptor>

   "SF1 OPERATION REQUEST" and "6P OPERATION REQUEST" are added in the
   PATH message to check for 6tisch scheduling capabilities within the
   intermediate nodes from sender to receiver.  "Cell Switching
   Capability(CSC)" is proposed to make use of cell as an implicit label
   in RSVP-GMPLS [RFC3473].  The message format of the "CSC" is out-of-
   scope in this specification.  "LABEL_REQUEST" in path message should
   set to "Cell Switching Capability".  "RPLInstanceID" is added in the
   "SENDER_TEMPLATE" to create Global TrackID during 6P transactions of



Anamalamudi, et al.     Expires January 19, 2017                [Page 4]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   RSVP-RESV message.  Whenever an intermediate node does not support
   the "Cell switching Capability" or "6P transactions" or "SF1
   operation" then it needs to send a "PathErr" message back to the
   application sender.  The message format for "PathErr" codes with
   respect to Scheduling capability is out-of-scope in this
   specification.

2.3.  RSVP-RESV message

   The basic RSVP-RESV messages [RFC2205] are transmitted upstream from
   receiver to sender to provide resource reservation along with "Label
   Distribution".  In this specification, hop-by-hop scheduling is
   extended to support both resource reservation and label distribution.
   The current specification is only defined for unicast point-to-point
   traffic flows, i.e., Fixed Filter (FF) reservation style.

   The format of RESV message with the support of 6tisch scheduling
   capabilities (6P and SF1) is as follows :

    <Resv Message> ::=    <Common Header> [ <INTEGRITY> ]
                          [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]
                          [ <MESSAGE_ID> ]
                          <SESSION> <RSVP_HOP>
                          <TIME_VALUES>
                          <LABEL>
                          [<SF1 OPERATION>]
                          [<6P OPERATION>]
                          [ <RESV_CONFIRM> ]  [ <SCOPE> ]
                          [ <NOTIFY_REQUEST> ]
                          [ <ADMIN_STATUS> ]
                          [ <POLICY_DATA> ... ]
                          <STYLE> <flow descriptor list>

   Upon arrival of the PATH message at an application receiver, the
   SENDER_TSPEC and ADSPEC objects are interpreted to select the
   resource reservation parameters.  Since the RSVP-lite provides
   receiver initiated resource reservation setup, the scheduling
   operation needs to be performed upstream from receiver to sender.
   Subsequently, the reserved resources (bandwidth) are mapped into
   6tisch cells through Scheduling Function and corresponding L2-bundle
   is created.  An aggregation of cells is called "bundle"(the
   directional link to a next-hop neighbor).  Every L2-bundle is
   associated with a global trackID to dynamically adapt the cells "hop-
   by-hop" to a scheduled instance.  In addition, the TrackID is used as
   a "packet filter" to switch the incoming tracks to outgoing tracks.
   The receiver will generate the TrackID with the combination of
   "Sender/Receiver IP address" and "RPLInstanceID" that is obtained
   from "SENDER_TEMPLATE/FILTER_SPEC" and "SESSION" object.



Anamalamudi, et al.     Expires January 19, 2017                [Page 5]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


                  next-hop node            Receiver
                 +--------------+       +--------------+
                 |     IPv6     |       |     IPv6     |
                 +--------------+       +--------------+
                 |   6LoWPAN    |       |   6LoWPAN    |
                 +--------------+       +--------------+
                 |     6top     |       |     6top     |
                 +--------------+       +--------------+
                 |   TSCH MAC   |       |   TSCH MAC   |
                 +--------------+       +--------------+
                 |   LLN PHY    |       |   LLN PHY    |
                 +--------------+       +--------------+
                      |                           |
                      |                           | Rspec:Reserves
                      |                           | bandwith
                      |                           |
                      |                           | SF1:Maps bandwidth to
                      |                           | cells
                      | RESV + 6P Request(TrackID)|
                      |<------------------------- |
 Rspec:Reserves       |                           |
 bandwith             |                           |
                      |                           |
 SF1:Maps bandwidth to|                           |
 cells                |6P Response (CellList[..]) |
                      |-------------------------->|
                      |                           |
                      |                           |
                      |                           |
                      |   6P confirmation         |LABEL SET
                      |   CellList[..]+ Label     |label=Channel+Slot
                      |<--------------------------|
      Resv state:"Cell|                           |
      label"          |                           |
                      |                           |
                      |                           |
                      |                           |

      Figure 3: Operation of RSVP-RESV message with 6P transactions.

   From [RFC6997], it is noteworthy that application sender that
   initiates the point-to-point (P2P) traffic is called "Parent node"
   and application receiver that receives the data is called "Child
   node".  Since the receiver (child node) performs the Scheduling
   operation upstream towards the sender, "3-step transaction" of 6P
   protocol needs to be triggered hop-by-hop to schedule the reserved
   resources(see Fig. 3).  Hence, "6P Request" with associated TrackID
   (in metadata field) is transmitted in "RESV" message from Receiver to



Anamalamudi, et al.     Expires January 19, 2017                [Page 6]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   next-hop node.  The "NumCells" field in the 6P Request is set to
   required number of cells whereas receive "CellList" should be empty.
   Once the outgoing interface of next-hop node receive the "RESV"
   message, it checks the service request specification(Rspec) and
   perform the resource reservation.  Subsequently, Scheduling Function
   of next-hop neighbor map the reserved resources into transmit cells.
   Later, "6P Response" with transmit "CellList"
   (slotOffset,channelOffset) is downstream to receiver.  When the
   receiver has cells (to receive data) available with the "CellList"
   specified in the "6P Response" then "6P Confirmation" with
   "IANA_6TOP_RC_SUCCESS" is upstream towards next-hop node.  Otherwise,
   "ResvErr" message should send back to the receiver with specific
   error.  Since the cell characteristics(slotOffset,channelOffset) is
   used as a label, the next-hop node will store the
   "SlotOffset+ChannelOffset" as a label to switch the traffic flow to
   receiver.  For the multiple cells (Bundle), a generalized label set
   is created where each label represents one cell to forward data to
   receiver.  The "Generalized Label Set" is transmitted in the metadata
   field of "6P confirmation" from receiver to upstream node.  Once the
   6P transaction is successful in between next-hop node and receiver, a
   labeled L2-bundle is created with the associated TrackID.
   Subsequently, "cell label set" is stored in the Resv state block at
   the next-hop node.  Later, SF1 of "next-hop node" maps the reserved
   bandwidth to the "receiving cells" to receive the data from its
   upstream node.  The "RESV" message with "6P Request" along with
   TrackID is transmitted upstream towards sender node.  With this, end-
   to-end Track is installed with a succession of paired L2-bundles(a
   receive bundle from the previous hop and a transmit bundle to the
   next hop) for a specific instance from sender to receiver(See Fig.
   4).

    +--------------+  <-Data transmission in end-to-end Track->
    |     IPv6     | Sender                             Receiver
    +--------------+   |                                     |
    |   6LoWPAN    |   |                                     |
    +--------------+   |                 nodeB               |
    |     6top     |   |                +----+               |
    +--------------+   |                |    |               |
    |   TSCH MAC   |   |                |    |               |
    +--------------+   |                |    |               |
    |   LLN PHY    |   |   L2-Bundle    |    |   L2-Bundle   |
    +--------------+   +----------------+    +---------------+
                       <--Dedicated cells for each Instance-->

         Figure 4: End-to-end cell scheduling with SF1 Scheduling

   During data transmission, SF1 of sender at 6top identifies the
   TrackID based on "Sender/Receiver IP address, RPLInstanceID" from the



Anamalamudi, et al.     Expires January 19, 2017                [Page 7]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   received IP packet with RPI header information [RFC6553].
   Subsequently, an associated L2-bundle is scheduled to forward the
   data to next-hop neighbor (nodeB in Fig.4).  Later, SF1 of the next-
   hop neighbor identifies the TrackID based on "Sender/Receiver IP
   address, RPLInstanceID" of the received data to switch the track
   towards receiver.  With this, end-to-end data transmission is
   achieved through "Track forwarding" at the 6top sub-layer (see Fig.
   4).  With "Cell Switching Capability" of RSVP-GMPLS [RFC3473], cells
   in paired L2-bundles are used as an implicit labels to label switch
   the data from Sender to Receiver at the 6top sub-layer.

2.4.  Reroute and Bandwidth Increase mechanism

   Whenever, the sender needs to setup a new tunnel that is capable of
   maintaining resource reservations without double counting(at same
   intermediate node) the resources with existing tunnel then "RSVP
   reroute mechanism" need to be initiated [RFC3209].  With this
   operation, bandwidth can increase/decrease end-to-end in the ongoing
   tunnel.  The detailed explanation of "Reroute mechanism" is explained
   in [RFC3209].

2.5.  Error Codes

   The detailed explanation of PathErr and ResvErr with different
   ERROR_SPEC to handle Scheduling and 6P operation errors will be
   described in later specification.

3.  Scheduling Function Identifier

   The Scheduling Function Identifier (SFID) of SF1 is
   IANA_SFID_SF1(TBD).

4.  IANA Considerations

   IANA is requested to allocate a new Scheduling Function
   (IANA_SFID_SF1) from the SF space of Scheduling Functions defined in
   [I-D.dujovne-6tisch-6top-sf0]

5.  Security Considerations

   TODO

6.  References








Anamalamudi, et al.     Expires January 19, 2017                [Page 8]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


6.1.  References

   [RFC2205]  Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
              Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
              Functional Specification", RFC 2205, DOI 10.17487/RFC2205,
              September 1997, <http://www.rfc-editor.org/info/rfc2205>.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
              <http://www.rfc-editor.org/info/rfc3209>.

   [RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
              Switching (GMPLS) Signaling Resource ReserVation Protocol-
              Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
              DOI 10.17487/RFC3473, January 2003,
              <http://www.rfc-editor.org/info/rfc3473>.

   [RFC6553]  Hui, J. and JP. Vasseur, "The Routing Protocol for Low-
              Power and Lossy Networks (RPL) Option for Carrying RPL
              Information in Data-Plane Datagrams", RFC 6553,
              DOI 10.17487/RFC6553, March 2012,
              <http://www.rfc-editor.org/info/rfc6553>.

   [RFC6997]  Goyal, M., Ed., Baccelli, E., Philipp, M., Brandt, A., and
              J. Martocci, "Reactive Discovery of Point-to-Point Routes
              in Low-Power and Lossy Networks", RFC 6997,
              DOI 10.17487/RFC6997, August 2013,
              <http://www.rfc-editor.org/info/rfc6997>.

6.2.  Informative References

   [I-D.dujovne-6tisch-6top-sf0]
              Dujovne, D., Grieco, L., Palattella, M., and N. Accettura,
              "6TiSCH 6top Scheduling Function Zero (SF0)", draft-
              dujovne-6tisch-6top-sf0-01 (work in progress), March 2016.

   [I-D.ietf-6tisch-6top-protocol]
              Wang, Q. and X. Vilajosana, "6top Protocol (6P)", draft-
              ietf-6tisch-6top-protocol-01 (work in progress), June
              2016.

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





Anamalamudi, et al.     Expires January 19, 2017                [Page 9]


Internet-Draft        draft-satish-6tisch-6top-sf1             July 2016


   [I-D.ietf-detnet-use-cases]
              Grossman, E., Gunther, C., Thubert, P., Wetterwald, P.,
              Raymond, J., Korhonen, J., Kaneko, Y., Das, S., Zha, Y.,
              Varga, B., Farkas, J., Goetz, F., and J. Schmitt,
              "Deterministic Networking Use Cases", draft-ietf-detnet-
              use-cases-10 (work in progress), July 2016.

Authors' Addresses

   Satish Anamalamudi
   Huawei Technologies
   No. 156 Beiqing Rd. Haidian District
   Beijing  100095
   China

   Email: satish.anamalamudi@huawei.com


   Mingui Zhang
   Huawei Technologies
   No. 156 Beiqing Rd. Haidian District
   Beijing  100095
   China

   Email: zhangmingui@huawei.com


   Charles E. Perkins
   Futurewei
   2330 Central Expressway
   Santa Clara  95050
   Unites States

   Email: charliep@computer.org


   S.V.R Anand
   Indian Institute of Science
   Bangalore
   560012
   India

   Email: anand@ece.iisc.ernet.in








Anamalamudi, et al.     Expires January 19, 2017               [Page 10]