ROLL                                                     P. Thubert, Ed.
Internet-Draft                                              J. Pylakutty
Intended status: Standards Track                                   Cisco
Expires: June September 11, 2017                               March 10, 2017                                 December 07, 2016

                  Root initiated routing state in RPL
                  draft-ietf-roll-dao-projection-00
                   draft-ietf-roll-dao-projection-01

Abstract

   This document proposes a protocol extension to RPL that enables to
   install a limited amount of centrally-computed routes in a RPL graph,
   enabling loose source routing down a non-storing mode DODAG, or
   transversal routes inside the DODAG.  As opposed to the classical
   route injection in RPL that are injected by DAO messages, the end devices, this
   draft projects the routes from enables the root of the DODAG. DODAG to projects the routes that are
   needed on the nodes where they should be installed.

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 April 27, September 11, 2017.

Copyright Notice

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

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  New RPL Control Message Options . . . . . . . . . . . . . . .   4   3
     3.1.  Via Information Option  . . . . . . . . . . . . . . . . .   4
   4.  Projected DAO . . . .   4
   4. . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Non-storing Mode Projected DAO  . . . . . . . . . . . . .   6
     4.2.  Storing-Mode Projected DAO  . . . . . . . . . . . . . . .   8
   5.  Applications  . . . . . . . . . . . . . . . . . . . . . . . .  10
     5.1.  Loose Source Routing in Non-storing Mode  . . . . . . . . . .   5
   5.  Centralized Computation of Optimized Peer-to-Peer  10
     5.2.  Transversal Routes in storing and non-storing modes . .   9 .  11
   6.  RPL Instances . . . . . . . . . . . . . . . . . . . . . . . .  13
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  12
   7.  14
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  12
   8.  14
   9.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  12
   9.  14
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  12
     9.1.  14
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  13
     9.2.  14
     10.2.  Informative References . . . . . . . . . . . . . . . . .  13  15
   Appendix A.  Examples . . . . . . . . . . . . . . . . . . . . . .  15
     A.1.  Using storing mode P-DAO in non-storing mode MOP  . . . .  16
     A.2.  Projecting a storing-mode transversal route . . . . . . .  17
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  14  18

1.  Introduction

   The Routing Protocol for Low Power and Lossy Networks (LLN)(RPL)
   [RFC6550] (LLN)
   (RPL) specification defines is a generic Distance Vector protocol that is designed well suited
   for very low energy consumption and adapted to application in a variety of LLNs. low energy Internet of Things (IoT)
   networks.  RPL forms Destination Oriented Directed Acyclic Graphs
   (DODAGs) in which the root often acts as the Border Router to connect
   the RPL domain to the Internet.  The root is responsible to select
   the RPL Instance that is used to forward a packet coming from the
   Internet into the RPL domain and set the related RPL information in
   the packets.

   In the non-storing mode (NSM) of

   The 6TiSCH architecture [I-D.ietf-6tisch-architecture] leverages RPL
   for its routing operation (MOP), and considers the root also
   computes routes down the DODAG towards Deterministic Networking
   Architecture [I-D.ietf-detnet-architecture] as one possible model
   whereby the end device resources and leverages
   source routing capabilities are exposed to get there, while the default route via the root is
   used for an
   external controller which installs routing upwards within the LLN and to the Internet at large.
   NSM is states into the dominant MOP because because networks may get arbitrary
   large and network
   based on some objective functions that reside in Storing Mode, the amount that external
   entity.

   Based on heuristics of memory in nodes close to the
   root may unexpectedly require memory beyond a node's capabilities.

   But usage, path length, and knowledge of device
   capacity and available resources such as battery levels and
   reservable buffers, a network gets deep, the size of Path Computation Element ([PCE]) with a global
   visibility on the source routing header system could install additional P2P routes that are
   more optimized for the root must add to all current needs as expressed by the downward packets may also become an
   issue for far away target devices.  In some use cases, objective
   function.

   This draft enables a RPL network
   forms long lines root, with optionally the assistance of a
   PCE, to install and maintain additional storing and non-storing mode
   routes within the RPL domain, along a limited amount selected set of well-targeted routing state
   would allow to make nodes and for a
   selected duration, thus providing routes more suitable than those
   obtained with the source routing distributed operation loose as opposed to
   strict, of RPL.  Those routes may be
   installed in either storing and save packet size.  Limiting non-storing modes RPL instances,
   resulting in potentially hybrid situations where the packet size mode of the
   projected routes is directly
   beneficial to different from that of the energy budget, but, mostly, it reduces other routes in the chances
   of frame loss and/or packet fragmentation, which is highly
   detrimental to the LLN operation.  Because the capability
   instance.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to store a
   routing state be interpreted as described in every node is limited, the decision of which route [RFC2119].

   The Terminology used in this document is installed where can only be optimized consistent with a global knowledge of
   the system, a knowledge and
   incorporates that the root has described in non-storing mode.

   Additionally, RPL storing mode is optimized or Point-to-Multipoint
   (P2MP), root to leaves `Terminology in Low power And Lossy
   Networks' [RFC7102] and Multipoint-to-Point (MP2P) leaves to root
   operations, whereby routes are always installed along the [RFC6550].

3.  New RPL DODAG.
   Transversal Peer Control Message Options

   Section 6.7 of [RFC6550] specifies Control Message Options (CMO) to Peer (P2P) routes
   be placed in a RPL network will generally
   suffer from some stretch since routing between 2 peers always happens
   via a common parent.  In NSM, all peer-to-peer routes travel all messages such as the
   way to Destination Advertisement
   Object (DAO) message.  The RPL Target Option and the root, which adds Transit
   Information Option (TIO) are such options; the former indicates a source routing header
   node to be reached and forwards the
   packet down latter specifies a parent that can be used
   to reach that node.  Options may be factorized; one or more
   contiguous TIOs apply to the destination, resulting one or more contiguous Target options
   that immediately precede the TIOs in the longest stretch and
   overload of RPL message.

   This specification introduces a new Control Message Option, the radio bandwidth near Via
   Information option (VIO).  Like the root.  A controller, for
   instance collocated with the RPL root, with enough topological
   awareness of TIO, the connectivity between nodes, would VIO MUST be able to compute
   more direct routes, avoiding the vicinity of the root whenever
   possible.

   The 6TiSCH architecture [I-D.ietf-6tisch-architecture] leverages the
   Deterministic Networking Architecture [I-D.finn-detnet-architecture]
   as preceded by
   one possible model whereby the device resources and capabilities
   are exposed or more RPL Target options to an external controller which installs routing states
   into it applies.  Unlike the network based on some objective functions that reside in
   that external entity.

   Based on heuristics of usage, path length, and knowledge of device
   capacity and available resources such as battery levels and
   reservable buffers, a Path Computation Element ([PCE]) with a global
   visibility on TIO,
   the system could install additional P2P routes that VIO are
   more optimized for the current needs as expressed by the objective
   function.

   This draft enables a RPL root, with optionally the assistance not factorized: multiple contiguous Via options indicate
   an ordered sequence of a
   PCE, routers to install and maintain additional storing mode routes within reach the RPL domain, along a selected set of nodes and for a selected
   duration, thus providing routes from suitable than those obtained
   from target(s), presented in
   the distributed operation order of RPL in either storing and non-
   storing modes.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", the packet stream, source to destination, and "OPTIONAL" in this
   document are to which a
   routing state must be interpreted as described in [RFC2119]. installed.

   The Terminology used in this document is consistent with and
   incorporates that described in `Terminology in Low power And Lossy
   Networks' [RFC7102] and [RFC6550].

3.  New RPL Control Message Options

   Section 6.7 of [RFC6550] specifies Control Message Options (CMO) to
   be placed in RPL messages such as the DAO message.  The RPL Target
   Option and the Transit Information Option (TIO) are such options; the
   former indicates a node to be reached and the latter specifies a
   parent that can be used to reach that node.  Options may be
   factorized; one or more contiguous TIOs apply to the one or more
   contiguous Target options that immediately precede the TIOs in the
   RPL message.

   This specification introduces a new Control Message Option, the Via
   Information option (VIO).  Like the TIO, the VIO MUST be preceded by
   one or more RPL Target options to which it applies.  Unlike the TIO,
   the VIO are not factorized: multiple contiguous Via options indicate
   an ordered sequence of hops to reach the target(s), presented in the
   same order as they would appear in a routing header.

3.1.  Via Information

   The Via Information option MAY be present Via Information option MUST contain at least one Via Address.

3.1.  Via Information Option

   The Via Information option MAY be present in DAO messages, and its
   format is as follows:

        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Type = 0x0A | Option Length | Path Sequence | Path Lifetime |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       .                                                               .
       .                     Next-Hop                     Via Address 1                             .
       .                                                               .
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       .                              ....                             .
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +                                                               +
       .                                                               .
       .                     Via Address n                             .
       .                                                               .
       +                                                               +
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 1: Eliding the RPLInstanceID Via Information option format

   Option Type:  0x0A (to be confirmed by IANA)

   Option Length:  Variable,  In bytes; variable, depending on whether or not Parent Address
         is present. the number of Via
         Addresses.

   Path Sequence:  8-bit unsigned integer.  When a RPL Target option is
         issued by the root of the DODAG (i.e. in a DAO message), that
         root sets the Path Sequence and increments the Path Sequence
         each time it issues a RPL Target option with updated
         information.  The indicated sequence deprecates any state for a
         given Target that was learned from a previous sequence and adds
         to any state that was learned for that sequence.

   Path Lifetime:  8-bit unsigned integer.  The length of time in
         Lifetime Units (obtained from the Configuration option) that
         the prefix is valid for route determination.  The period starts
         when a new Path Sequence is seen.  A value of all one bits
         (0xFF) represents infinity.  A value of all zero bits (0x00)
         indicates a loss of reachability.  A DAO message that contains
         a Via Information option with a Path Lifetime of 0x00 for a
         Target is referred as a No-Path (for that Target) in this
         document.

   Next-Hop

   Via Address:  8 or  16 bytes.  IPv6 Address of the next hop towards the
         destination(s) indicated in the target option that immediately
         precede the VIO.  The  TBD: See how the /64 prefix can be elided if
         it is the same as that of (all of) the target(s).  In that
         case, the Next-Hop Address is could be expressed as the 8-bytes
         suffix only, otherwise it is expressed as 16 bytes.

4.  Loose Source Routing in Non-storing Mode

   A classical RPL implementation bytes, at least in
         storing mode.

4.  Projected DAO

   This draft adds a very constrained LLN uses the
   non-storing mode of operation whereby a RPL node indicates a parent-
   child relationship to the root, using a Destination Advertisement
   Object (DAO) that is unicast from the node directly to the root, and
   the root builds a path to a destination down the DODAG by
   concatenating this information.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+                      ^     |        |
                    |                         | DAO | ACK    |
              o    o   o    o                 |     |        | Strict
          o o   o  o   o  o  o o   o          |     |        | Source
         o  o o  o o    o   o   o  o  o       |     |        | Route
         o   o    o  o     o  o    o  o  o    |     |        |
        o  o   o  o   o         o   o o       |     v        v
        o          o             o     o
                          LLN

                    Figure 2: RPL non-storing operation

   Nodes are not expected capability to store downward routing state via their
   children, and the routing operates in strict source routing mode as
   detailed in An IPv6 Routing Header for Source Routes with RPL
   [RFC6554]

   This draft proposes an addition whereby the root projects a route
   through an extended DAO message called a Projected-DAO (P-DAO) to an
   arbitrary node router down the DODAG, indicating a child next hop or a direct sequence
   of children routers via which a certain destination (target) indicated in the Target
   Information option may be reached.  The root is expected to
   use the mechanism optimally

   A P-DAO message MUST contain at least a Target Information option and with required parsimony to fit within
   at least one VIA Information option following it.

   Like a classical DAO message, a P-DAO is processed only if it is
   "new" per section 9.2.2.  "Generation of DAO Messages" of the device resources, but how RPL
   specification [RFC6550]; this is determined using the root figures Path Sequence
   information from the amount VIO as opposed to a TIO.  Also, a Path Lifetime
   of
   resources that are available is out of scope.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+                      |     ^        |
                    |                         | DAO | ACK    |
              o    o   o    o                 |     |        | Loose
          o o   o  o   o  o  o o   o          |  ^           | Source
         o  o o  o o    o   o   o  o  o       |  | DAO       | Route
         o   o    o  o     o  o    o  o  o    | ^            |
        o  o   o  o   o         o   o o       v | DAO        v
        o          o             o     o
                          LLN

                Figure 2: Non-Storing with Projected routes

   When a RPL domain operates 0 in non-storing Mode of Operation (NS-MOP),
   only the root possesses routing information about the whole network.
   A packet a VIO indicates that is generated within the domain first reaches the root,
   which can then apply a source routing information route is to reach be removed.

   There are two kinds of P-DAO, the
   destination.  Similarly, storing mode and the non-storing
   mode ones.

      The non-storing mode P-DAO discussed in section Section 4.1 has a packet coming from
      single VIO with one or more Via Addresses in it, the outside list of Via
      Addresses indicating the
   domain for a destination that is expected source-routed path to the target to be
      installed in a RPL domain
   reaches the root.

   In NS-MOP, router that receives the root, or some associated centralized computation
   engine, can thus determine message, which replies
      to the amount of packets that reach root directly with a
   destination DAO-ACK message.

      The storing mode P-DAO discussed in section Section 4.2 has at
      least two Via Information options with one Via Address each, for
      the RPL domain, ingress and thus the amount egress of energy and
   bandwidth that is wasted for transmission, between itself the path, and more if there are
      intermediate routers.  The Via Addresses indicate the
   destination, as well as routers in
      which the risk routing state to the target have to be installed via the
      next Via Address in the sequence of fragmentation, any potential
   delays because VIO.  In normal operations,
      the P-DAO is propagated along the chain of Via Routers from the
      egress router of the path till the ingress one, which confirms the
      installation to the root with a paths longer than necessary (shorter paths exist DAO-ACK message.  Note that would not traverse the root).

   Additionally, the DAG
      root knows may be the whole DAG topology, so when ingress and it may be the
   source egress of a packet is the path, that
      it can also be neither but it cannot be both.

   The root is expected to use these mechanisms optimally and with
   required parsimony to limit the state installed in the RPL domain, devices to fit
   within their resources, but how the root can determine figures the common parent amount of
   resources that would have been used is available in storing mode, and thus
   the list each device is out of nodes in scope for this
   document.

   In particular, the path between draft expects that the common parent and root has enough information
   about the
   destination.  For capability for each node to store a number of routes, which
   can be discovered for instance using a Network Management System
   (NMS) and/or the RPL routing extensions specified in Routing for Path
   Calculation in LLNs [RFC6551].

   A route that is installed by a P-DAO is not necessarily installed
   along the below diagram, if DODAG, though how the source is 41 root and the destination 52, optional PCE obtain the common parent
   additional topological information to compute other routes is out of
   scope for this document

4.1.  Non-storing Mode Projected DAO

   As illustrated in Figure 2, the node 22.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL non-storing mode P-DAO enables the
   root to install a source-routed path towards a target in any
   particular router; with this path information the router can add a
   source routed header reflecting the path to any packet for which the
   current destination either is the said target or can be reached via
   the target, for instance a loose source routed packet for which the
   next loose hop is the target, or a packet for which the router has a
   routing state to the final destination via the target.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+                   | \  \____
                 /   \       \  P  ^            |
                    |                      | DAO | ACK        | Loose
              o 11    o 12   o  13
              /    o     router   V     |       /  \            | Source
          o 22 o 23   o 24  o 25
           /  \       | \      \   o 31  o 32  o      o  o 35
        /      /      |    \            |    \ P-DAO   . Route
         o  o o  o o 41    o 42   o   o  o 45  o 46
       |      |             | Source  . Path
         o   o    o  o     o  o    o  o  o          |    \ Route   . From
        o  o   o  o   o         o   o o             | Path    . Root
           o 51  o 52  o 53  o             o 55    target       V         . To
          o 56       o               o    o                      | Desti-
        o          o             o     o                      | nation
                                      destination             V

                          LLN

                 Figure 3: Non-Storing with Projected routes

   With this draft, the root can install routing states along 2: Projecting a segment non-storing route

   A router that is either itself to the destination, or from one or more common
   parents for receives a particular source/destination pair non-storing P-DAO installs a source routed
   path towards that
   destination (in our example, this would be the segment made each of nodes
   22, 32, 42).

   The draft expects that the root has enough information about consecutive targets via a source route path
   indicated in the
   capability for each node following VIO.

   When forwarding a packet to store a number of routes, which can be
   discovered destination for instance using a Network Management System (NMS) and/
   or which the RPL router
   determines that routing extensions specified happens via the target, the router inserts
   the source routing header in Routing for Path
   Calculation the packet to reach the target.

   In order to do so, the router encapsulates the packet with an IP in LLNs [RFC6551].  Based on that information,
   IP header and a non-storing mode source routing header (SRH)
   [RFC6554].

   In the root
   computes which segment should uncompressed form the source of the packet would be routed and which relevant state
   should self, the
   destination would be installed the first Via Address in which nodes.  The algorithm is out of scope
   but it is envisaged that the root could compute VIO, and the ratio between SRH
   would contain the
   optimal path (existing path not traversing list of the root, remaining Via Addresses and then the current
   path),
   target.

   In practice, the application SLA for specific flows that could benefit from
   shorter paths, router will normally use the energy wasted IPv6 over Low-Power
   Wireless Personal Area Network (6LoWPAN) Paging Dispatch [RFC8025] to
   compress the RPL artifacts as indicated in the network, local congestion on
   various links 6LoWPAN Routing Header
   [I-D.ietf-roll-routing-dispatch] specification.  In that would benefit from having flows routed along other
   paths.

   This draft introduces a new mode case, the
   router indicates self as encapsulator in an IP-in-IP 6LoRH Header,
   and places the list of operation for loose source
   routing Via Addresses in the LLN, order of the Non-Storing with Projected routes MOP.  With
   this new MOP, VIO and then
   the root sends a unicast target in the SRH 6LoRH Header.

4.2.  Storing-Mode Projected DAO message to

   As illustrated in Figure 3, the last node
   of storing mode P-DAO enables the root
   to install a routing state towards a target in the routers along a
   segment that must be installed.  The DAO message
   contains between an ingress and an egress router; this enables the ordered list of hops
   routers to forward along the segment as a list of Via
   Information options that are preceded by one or more RPL Target
   options to segment any packet for which they relate.  Each Via Information option contains the next
   loose hop is the said target, for instance a
   lifetime loose source routed
   packet for which state the next loose hop is to be maintained.

   The root sends the DAO directly target, or a packet for
   which the router has a routing state to the last node in final destination via the segment,
   which is expected to be able to
   target.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+                      |     ^        |
                    |                         | DAO | ACK    |
              o    o   o    o                 |     |        | Loose
          o o   o  o   o  o  o o   o          |  ^           | Source
         o  o o  o o    o   o   o  o  o       |  | DAO       | Route
         o   o    o  o     o  o    o  o  o    | ^            |
        o  o   o  o   o         o   o o       v | DAO        v
        o          o             o     o

                          LLN

                       Figure 3: Projecting a route to the targets

   Based on its own.

   The last available topological, usage and capabilities node in the segment may have another information to reach
   information, the target(s), such as a connected route root or an already installed
   projected route.  If it does not have such a route then the node associated PCE computes which segment
   should lookup the address on the be optimized and which relevant interfaces.  If one of the
   targets cannot state should be located, the node MUST answer to installed in
   which nodes.  The algorithm is out of scope but it is envisaged that
   the root with a
   negative DAO-ACK listing the target(s) that could compute the ratio between the optimal path (existing
   path not be located
   (suggested status 10), traversing the root, and continue the process current path), the application
   service level agreement (SLA) for those targets specific flows that could be located if any.

   For benefit
   from shorter paths, the targets that could be located, last node energy wasted in the network, local
   congestion on various links that would benefit from having flows
   routed along alternate paths.

   In order to install the relevant routing state along the segment
   generates
   between an ingress and an egress routers, the root sends a DAO unicast
   P-DAO message to its loose predecessor in the egress router of the routing segment as indicated
   in that must
   be installed.  The P-DAO message contains the ordered list of hops
   along the segment as a direct sequence of Via Information options.

   The node strips the last options
   that are preceded by one or more RPL Target options to which they
   relate.  Each Via Information option contains a Path Lifetime for
   which corresponds the state is to
   self, and uses it as source address for be maintained.

   The root sends the DAO P-DAO directly to the predecessor.
   The address egress node of the predecessor to be used as segment,
   which In that P-DAO, the destination for IP address matches the DAO
   message is found Via
   Address in the now last Via Information option.  The
   predecessor VIO.  This is expected to have how the egress recognizes its role.
   In a route to similar fashion, the address used as
   source, either connected, installed previously ingress node recognizes its role as another DAO, or
   from other means. it
   matches Via Address in the first VIO.

   The predecessor egress node of the segment is expected to have the only node in the path that does
   not install a route in response to the address used as
   source and that P-DAO; it is his successor. expected to be
   already able to route to the target(s) on its own.  It may either be
   the target, or may have some existing information to reach the
   target(s), such as a connected route or an already installed
   projected route.  If it does not and cannot locate one of the successor, targets cannot be located, the predecessor node
   MUST answer to the root with a negative DAO-ACK indicating the successor that could not be located.
   The DAO-ACK contains listing the list of targets target(s)
   that could not be routed to located (suggested status 11). 10 to be confirmed by
   IANA).

   If the predecessor egress node can route to reach all the successor node, targets, then it installs
   a route to the targets via forwards the successor.  If that route is not
   connected then a recursive lookup will take place
   P-DAO with unchanged content to reach the
   target(s).  From there, its loose predecessor in the node strips segment
   as indicated in the last list of Via Information
   option options, and either answers to recursively
   the root with a positive DAO-ACK that
   contains message is propagated unchanged along the list sequence of targets that could routers
   indicated in the P-DAO, but in the reverse order, from egress to
   ingress.

   The address of the predecessor to be routed to, or propagates used as destination of the
   propagated DAO to its own predecessor.

   A NULL lifetime message is found in the Via Information option along the segment is
   used to clean up the state.

   In
   precedes the example below, say one that there is a lot of traffic to nodes 55
   and 56 and contain the root decides to reduce address of the size propagating node,
   which is used as source of routing headers to
   those destinations.  The root can first send a DAO to node 45
   indicating target 55 and the packet.

   Upon receiving a Via segment (35, 45), propagated DAO, an intermediate router as well as another
   DAO to node 46 indicating target 56 and
   the ingress router install a Via segment (35, 46).  This
   will save one entry in route towards the routing header on both sides.  The root
   may then send a DAO to node 35 indicating targets 55 target(s) via its
   successor in the P-DAO; the router locates the VIO that contains its
   address, and 56 a uses as next hop the address found in the Via
   segment (13, 24, 35) to fully optimize Address
   field in the following VIO.  The router MAY install additional routes
   towards the addresses that path.

   Alternatively, are located in VIOs that are after the root may send
   next one, if any, but in case of a DAO to node 45 indicating target
   55 and conflict or a Via segment (13, 24, 35, 45) and then lack of resource, a DAO
   route to node 46
   indicating target 56 and a Via segment (13, 24, 35, 46), indicating target installed by the same DAO Sequence.

5.  Centralized Computation of Optimized Peer-to-Peer Routes

   With root has precedence.

   The process recurses till the initial specifications P-DAO is propagated to ingress router
   of RPL [RFC6550], the P2P path from segment, which answers with a
   source DAO-ACK to a destination is often stretched, as illustrated the root.

   Also, the path indicated in
   [RFC6550]:

      - a P-DAO may be loose, in non-storing mode, all packets routed within the DODAG flow
      all which case the way up
   reachability to the root of the DODAG.  If next hop has to be asserted.  Each router along
   the destination is path indicated in
      the same DODAG, the root must encapsulate the packet a P-DAO is expected to place be able to reach its
   successor, either with a
      Routing Header connected route (direct neighbor), or by
   routing, for instance following a route installed previously by a DAO
   or a P-DAO message.  If that has the strict source route information down is not connected then a recursive
   lookup may take place at packet forwarding time to find the DODAG next hop
   to reach the destination.  This will be target(s).  If it does not and cannot reach the case even if next
   router in the
      destination is relatively close to P-DAO, the source and router MUST answer to the root is
      relatively far off.

      - in storing mode, unless with a
   negative DAO-ACK indicating the destination successor that is a child unreachable
   (suggested status 11 to be confirmed by IANA).

   A Path Lifetime of the
      source, the packets will follow the default route 0 in a Via Information option is used to clean up
   the DODAG state.  The P-DAO is forwarded as
      well.  If described above, but the destination DAO is
   interpreted as a No-Path DAO and results in cleaning up existing
   state as opposed to refreshing an existing one or installing a new
   one.

5.  Applications

5.1.  Loose Source Routing in Non-storing Mode

   A RPL implementation operating in a very constrained LLN typically
   uses the same DODAG, they will
      eventually reach non-storing mode of operation whereby a common parent that has RPL node indicates a DAO route
   parent-child relationship to the
      destination; at worse, the common parent may also be the root.
      From that common parent, the packet will follow root, using a path down the
      DODAG Destination
   Advertisement Object (DAO) that is optimized for unicast from the Objective Function that was used node directly to build
   the DODAG.

   It results that it is often beneficial to enable additional P2P
   routes, either if root, and the RPL route present root typically builds a stretch from shortest path,
   or if the new route is engineered with source routed path to a different objective.
   destination down the DODAG by recursively concatenating this
   information.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+
                       X                      ^    v     |        |
                    |                         | DAO | ACK    |
              o    o
             ^   o    o  v                 |     |        | Strict
          o o   o  o   o
            ^  o  o o v   o          |     |        | Source
         o  o o  o
            ^ o    o  v   o   o  o  o       |     |        | Route
         o
           S   o    o  o   D     o  o    o  o  o    |     |        |
        o  o   o  o   o         o   o o       |     v        v
        o          o             o     o
                          LLN

                Figure 4: Routing Stretch

   For that reason, earlier work at the IETF introduced the Reactive
   Discovery of Point-to-Point Routes in Low Power and Lossy Networks
   [RFC6997], which specifies a distributed method for establishing
   optimized P2P routes.  This draft proposes an alternate based on a
   centralized route computation.

   It must be noted that RPL has a concept of instance but does not have
   a concept non-storing mode of an administrative distance, which exists operation

   Based on the parent-children relationships expressed in certain
   proprietary implementations to sort out conflicts between multiple
   sources.  This draft conforms the instance model as follows:

      - if non-
   storing DAO messages,the root possesses topological information about
   the PCE needs to influence a particular instance whole network, though this information is limited to add
      better routes in conformance with the routing objectives in that
      instance, it may do so.  When
   structure of the PCE modifies an existing
      instance then DODAG for which it is the added routes must not create a loop in destination.  A packet
   that
      instance.  This is achieved by generated within the domain will always preferring a route obtained
      from reach the PCE over root, which
   can then apply a route that source routing information to reach the destination
   if the destination is learned via RPL.

      - If also in the PCE installs a more specific (Traffic Engineering) route
      between a particular pair of nodes then it should use DODAG.  Similarly, a Local
      Instance packet coming
   from the ingress node outside of the domain for a destination that path.  Only packets
      associated with that instance will is expected to
   be routed along in a RPL domain reaches the root.

   It results that path.

   In all cases, the path is indicated by VIA options, root, or then some associated centralized
   computation engine such as a PCE, can determine the amount of packets
   that reach a destination in the RPL domain, and thus the flow amount of
   energy and bandwidth that is
   similar to wasted for transmission, between itself
   and the destination, as well as the risk of fragmentation, any
   potential delays because of a paths longer than necessary (shorter
   paths exist that would not traverse the root).

   As a network gets deep, the size of the flow used to obtain loose source routing.

   The routing header that
   the root sends must add to all the DAO with downward packets becomes an issue for
   nodes that are many hops away.  In some use cases, a RPL network
   forms long lines and a limited amount of well-targeted routing state
   would allow to make the target option source routing operation loose as opposed to
   strict, and save packet size.  Limiting the Via Option packet size is directly
   beneficial to the lest router energy budget, but, mostly, it reduces the chances
   of frame loss and/or packet fragmentation, which is highly
   detrimental to the LLN operation.  Because the capability to store a
   routing state in every node is limited, the path; decision of which route
   is installed where can only be optimized with a global knowledge of
   the last router removes system, a knowledge that the last Via
   Option and passes root or an associated PCE may
   possess by means that are outside of the DAO scope of this specification.

   This specification enables to store source-routed or storing mode
   state in intermediate routers, which enables to limit the previous hop.

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                       | Projected DAO message to C
                 o    |   o    o
             o o   o |    o  o  o o   o
            o  o o  | o    o   o   o  o  o
            o   o   V  o     o  o    o  o  o
           S  A  B  C   D         o   o o
           o          o             o     o
                             LLN

                     Figure 5: Projected DAO from root

   The process recurses till excursion
   of the destination which sends source route headers in deep networks.  Once a DAO-ACK to
   the root.  In the example above, P-DAO exchange
   has taken place for target D, a given target, if the list root operates in non
   storing mode, then it may elide the sequence of via
   options is S, A, B and C.  The projected DAO routers that is sent by
   installed in the root to

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                     ^ Projected DAO-ACK network from S
                 /    o   o    o
              /   o o    o  o  o o   o
            |  o o  o o    o   o   o  o  o
            |   o   o  o     o  o    o  o  o
           S  A  B  C   D         o   o o
           o          o             o     o
                             LLN

                    Figure 6: Projected DAO-ACK its source route headers to root

   The process recurses till the destination which sends a DAO-ACK to
   the root.  In the example above, for target D, the list of
   that are reachable via
   options is S, A, B that target, and C.  The projected DAO is sent by the source route headers
   effectively become loose.

5.2.  Transversal Routes in storing and non-storing modes

   RPL is optimized for Point-to-Multipoint (P2MP), root to
                 ------+---------
                       |          Internet
                       |
                    +-----+ leaves and
   Multipoint-to-Point (MP2P) leaves to root operations, whereby routes
   are always installed along the RPL DODAG.  Transversal Peer to Peer
   (P2P) routes in a RPL network will generally suffer from some stretch
   since routing between 2 peers always happens via a common parent, as
   illustrated in Figure 5:

   o  in non-storing mode, all packets routed within the DODAG flow all
      the way up to the root of the DODAG.  If the destination is in the
      same DODAG, the root must encapsulate the packet to place a
      Routing Header that has the strict source route information down
      the DODAG to the destination.  This will be the case even if the
      destination is relatively close to the source and the root is
      relatively far off.

   o  In storing mode, unless the destination is a child of the source,
      the packets will follow the default route up the DODAG as well.
      If the destination is in the same DODAG, they will eventually
      reach a common parent that has a route to the destination; at
      worse, the common parent may also be the root.  From that common
      parent, the packet will follow a path down the DODAG that is
      optimized for the Objective Function that was used to build the
      DODAG.

                      ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                       |
                 o    o   o    o
             o
                       X
                 ^    v   o    o
             ^ o   o  v   o  o  o o   o
            ^  o o  o v    o   o   o  o  o
            ^   o    o  v     o  o    o  o  o
           S  o   o  o
           S>>A>>>B>>C>>>D   D         o   o o
           o          o             o     o
                             LLN

       Figure 7: Projected Transversal Route

6.  Security Considerations

   This draft uses messages 5: Routing Stretch between S and D via common parent X

   It results that are already present in [RFC6550] with
   optional secured versions.  The same secured versions may be used
   with this draft, and whatever security it is deployed for a given
   network also applies often beneficial to enable transversal P2P
   routes, either if the flows in this draft.

7.  IANA Considerations

   This document updates RPL route presents a stretch from shortest
   path, or if the IANA registry for new route is engineered with a different objective.
   For that reason, earlier work at the Mode IETF introduced the Reactive
   Discovery of Operation
   (MOP)

      4: Non-Storing with Point-to-Point Routes in Low Power and Lossy Networks
   [RFC6997], which specifies a distributed method for establishing
   optimized P2P routes.  This draft proposes an alternate based on a
   centralized route computation.

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                       |
                 o    o   o    o
             o o   o  o   o  o  o o   o
            o  o o  o o    o   o   o  o  o
            o   o    o  o     o  o    o  o  o
           S>>A>>>B>>C>>>D         o   o o
           o          o             o     o
                             LLN

                   Figure 6: Projected routes [this] Transversal Route

   This document updates IANA registry for the RPL Control Message
   Options

      0x0A: Via descriptor [this]

8.  Acknowledgments

   The authors wish specification enables to acknowledge JP Vasseur and Patrick Wetterwald for
   their contributions store source-routed or storing mode
   state in intermediate routers, which enables to limit the ideas developed here.

9.  References
9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use stretch of
   a P2P route and maintain the characteristics within a given SLA.  An
   example of service using this mechanism oculd be a control loop that
   would be installed in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC6550]  Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
              Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
              JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
              Low-Power and Lossy Networks", RFC 6550,
              DOI 10.17487/RFC6550, March 2012,
              <http://www.rfc-editor.org/info/rfc6550>.

   [RFC6551]  Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N.,
              and D. Barthel, "Routing Metrics Used a network that uses classical RPL for Path Calculation
   asynchronous data collection.  In that case, the P2P path may be
   installed in Low-Power and Lossy Networks", RFC 6551,
              DOI 10.17487/RFC6551, March 2012,
              <http://www.rfc-editor.org/info/rfc6551>.

   [RFC6554]  Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
              Routing Header for Source Routes a different RPL Instance, with the Routing Protocol
              for Low-Power and Lossy Networks (RPL)", RFC 6554,
              DOI 10.17487/RFC6554, March 2012,
              <http://www.rfc-editor.org/info/rfc6554>.

   [RFC7102]  Vasseur, JP., "Terms Used a different objective
   function.

6.  RPL Instances

   It must be noted that RPL has a concept of instance but does not have
   a concept of an administrative distance, which exists in Routing for Low-Power and
              Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January
              2014, <http://www.rfc-editor.org/info/rfc7102>.

9.2.  Informative References

   [I-D.finn-detnet-architecture]
              Finn, N. and P. Thubert, "Deterministic Networking
              Architecture", draft-finn-detnet-architecture-08 (work certain
   proprietary implementations to sort out conflicts between multiple
   sources.  This draft conforms the instance model as follows:

   o  if the PCE needs to influence a particular instance to add better
      routes in
              progress), August 2016.

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

   [PCE]      IETF, "Path Computation Element",
              <https://datatracker.ietf.org/doc/charter-ietf-pce/>.

   [RFC6997]  Goyal, M., Ed., Baccelli, E., Philipp, M., Brandt, A., and
              J. Martocci, "Reactive Discovery that
      instance, it may do so.  When the PCE modifies an existing
      instance then the added routes must not create a loop in that
      instance.  This is achieved by always preferring a route obtained
      from the PCE over a route that is learned via RPL.

   o  If the PCE installs a more specific (Traffic Engineering) route
      between a particular pair of Point-to-Point Routes nodes then it should use a Local
      Instance from the ingress node of that path.  Only packets
      associated with that instance will be routed along that path.

   In all cases, the path is indicated by a new Via Information option,
   and the flow is similar to the flow used to obtain loose source
   routing.

7.  Security Considerations

   This draft uses messages that are already present in Low-Power [RFC6550] with
   optional secured versions.  The same secured versions may be used
   with this draft, and Lossy Networks", whatever security is deployed for a given
   network also applies to the flows in this draft.

8.  IANA Considerations

   This document updates the IANA registry for the Mode of Operation
   (MOP)

      4: Non-Storing with Projected routes [this]

   This document updates IANA registry for the RPL Control Message
   Options

      0x0A: Via descriptor [this]

9.  Acknowledgments

   The authors wish to acknowledge JP Vasseur and Patrick Wetterwald for
   their contributions to the ideas developed here.

10.  References

10.1.  Normative References

   [I-D.ietf-roll-routing-dispatch]
              Thubert, P., Bormann, C., Toutain, L., and R. Cragie,
              "6LoWPAN Routing Header", draft-ietf-roll-routing-
              dispatch-05 (work in progress), October 2016.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 6997, 2119,
              DOI 10.17487/RFC6997, August 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC6550]  Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
              Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
              JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
              Low-Power and Lossy Networks", RFC 6550,
              DOI 10.17487/RFC6550, March 2012,
              <http://www.rfc-editor.org/info/rfc6550>.

   [RFC6551]  Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N.,
              and D. Barthel, "Routing Metrics Used for Path Calculation
              in Low-Power and Lossy Networks", RFC 6551,
              DOI 10.17487/RFC6551, March 2012,
              <http://www.rfc-editor.org/info/rfc6551>.

   [RFC6554]  Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
              Routing Header for Source Routes with the Routing Protocol
              for Low-Power and Lossy Networks (RPL)", RFC 6554,
              DOI 10.17487/RFC6554, March 2012,
              <http://www.rfc-editor.org/info/rfc6554>.

   [RFC8025]  Thubert, P., Ed. and R. Cragie, "IPv6 over Low-Power
              Wireless Personal Area Network (6LoWPAN) Paging Dispatch",
              RFC 8025, DOI 10.17487/RFC8025, November 2016,
              <http://www.rfc-editor.org/info/rfc8025>.

10.2.  Informative References

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

   [I-D.ietf-detnet-architecture]
              Finn, N. and P. Thubert, "Deterministic Networking
              Architecture", draft-ietf-detnet-architecture-00 (work in
              progress), September 2016.

   [PCE]      IETF, "Path Computation Element",
              <https://datatracker.ietf.org/doc/charter-ietf-pce/>.

   [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>.

   [RFC7102]  Vasseur, JP., "Terms Used in Routing for Low-Power and
              Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January
              2014, <http://www.rfc-editor.org/info/rfc7102>.

Appendix A.  Examples
A.1.  Using storing mode P-DAO in non-storing mode MOP

   In non-storing mode, the DAG root maintains the knowledge of the
   whole DODAG topology, so when both the source and the destination of
   a packet are in the DODAG, the root can determine the common parent
   that would have been used in storing mode, and thus the list of nodes
   in the path between the common parent and the destination.  For
   instance in the diagram shown in Figure 7, if the source is node 41
   and the destination is node 52, then the common parent is node 22.

              ------+---------
                    |          Internet
                    |
                 +-----+
                 |     | Border Router
                 |     |  (RPL Root)
                 +-----+
                  | \  \____
                 /   \       \
               o 11   o 12     o  13
              /       |       /  \
            o 22      o 23   o 24  o 25
           /  \       | \      \
         o 31   o 32  o   o     o 35
        /      /      |    \    |    \
       o 41   o 42    o     o   o 45   o 46
       |      |       |     |    \     |
       o 51   o 52    o 53  o     o 55 o 56

                          LLN

          Figure 7: Example DODAG forming a logical tree topology

   With this draft, the root can install a storing mode routing states
   along a segment that is either from itself to the destination, or
   from one or more common parents for a particular source/destination
   pair towards that destination (in this particular example, this would
   be the segment made of nodes 22, 32, 42).

   In the example below, say that there is a lot of traffic to nodes 55
   and 56 and the root decides to reduce the size of routing headers to
   those destinations.  The root can first send a DAO to node 45
   indicating target 55 and a Via segment (35, 45), as well as another
   DAO to node 46 indicating target 56 and a Via segment (35, 46).  This
   will save one entry in the routing header on both sides.  The root
   may then send a DAO to node 35 indicating targets 55 and 56 a Via
   segment (13, 24, 35) to fully optimize that path.

   Alternatively, the root may send a DAO to node 45 indicating target
   55 and a Via segment (13, 24, 35, 45) and then a DAO to node 46
   indicating target 56 and a Via segment (13, 24, 35, 46), indicating
   the same DAO Sequence.

A.2.  Projecting a storing-mode transversal route

   In this example, say that a PCE determines that a path must be
   installed between node S and node D via routers A, B and C, in order
   to serve the needs of a particular application.

   The root sends a P-DAO with a target option indicating the
   destination D and a sequence Via Information option, one for S, which
   is the ingress router of the segment, one for A and then for B, which
   are an intermediate routers, and one for C, which is the egress
   router.

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                       | Projected DAO message to C
                 o    |   o    o
             o o   o |    o  o  o o   o
            o  o o  | o    o   o   o  o  o
            o   o   V  o     o  o    o  o  o
           S  A  B  C   D         o   o o
           o          o             o     o
                             LLN

                     Figure 8: Projected DAO from root

   Upon reception of the P-DAO, C validates that it can reach D, e.g.
   using IPv6 Neighbor Discovery, and if so, propagates the P-DAO
   unchanged to B.

   B checks that it can reach C and of so, installs a route towards D
   via C.  Then it propagates the P-DAO to A.

   The process recurses till the P-DAO reaches S, the ingress of the
   segment, which installs a route to D via A and sends a DAO-ACK to the
   root.

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                     ^ Projected DAO-ACK from S
                 /    o   o    o
              /   o o    o  o  o o   o
            |  o o  o o    o   o   o  o  o
            |   o   o  o     o  o    o  o  o
           S  A  B  C   D         o   o o
           o          o             o     o
                             LLN

                    Figure 9: Projected DAO-ACK to root

   As a result, a transversal route is installed that does not need to
   follow the DODAG structure.

                 ------+---------
                       |          Internet
                       |
                    +-----+
                    |     | Border Router
                    |     |  (RPL Root)
                    +-----+
                       |
                 o    o   o    o
             o o   o  o   o  o  o o   o
            o  o o  o o    o   o   o  o  o
            o   o    o  o     o  o    o  o  o
           S>>A>>>B>>C>>>D         o   o o
           o          o             o     o
                             LLN

                  Figure 10: Projected Transversal Route

Authors' Addresses
   Pascal Thubert (editor)
   Cisco Systems
   Village d'Entreprises Green Side
   400, Avenue de Roumanille
   Batiment T3
   Biot - Sophia Antipolis  06410
   FRANCE

   Phone: +33 4 97 23 26 34
   Email: pthubert@cisco.com

   James Pylakutty
   Cisco Systems
   Cessna Business Park
   Kadubeesanahalli
   Marathalli ORR
   Bangalore, Karnataka  560087
   INDIA

   Phone: +91 80 4426 4140
   Email: mundenma@cisco.com