ROLL P. Thubert, Ed. Internet-Draft J. Pylakutty Intended status: Standards Track Cisco Expires:JuneSeptember 11, 2017 March 10, 2017December 07, 2016Root initiated routing state in RPLdraft-ietf-roll-dao-projection-00draft-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 byDAO messages,the end devices, this draftprojects the routes fromenables the root of theDODAG.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 onApril 27,September 11, 2017. Copyright Notice Copyright (c)20162017 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 . . . . . . . . . . . . . . .43 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-Peer10 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 . . . . . . . . . . . . . . . . .1315 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 . . . . . . . . . . . . . . . . . . . . . . .1418 1. Introduction The Routing Protocol for Low Power and Lossy Networks (LLN)(RPL) [RFC6550](LLN) (RPL) specification definesis a generic Distance Vector protocol that isdesignedwell suited forvery low energy consumption and adapted toapplication in a variety ofLLNs.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 operation (MOP), the root also computes routes down the DODAG towards the end device and leverages source routing to get there, while the default route via the root is used for routing upwards within the LLN and to the Internet at large. NSM is the dominant MOP because because networks may get arbitrary large and in Storing Mode, the amount of memory in nodes close to the root may unexpectedly require memory beyond a node's capabilities. But as a network gets deep, the size of the source routing header that the root must add to all the downward packets may also become an issue for far away target devices. In some use cases, a RPL network forms long lines and a limited amount of well-targeted routing state would allow to make the source routing operation loose as opposed to strict, and save packet size. Limiting the packet size is directly beneficial to the 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 decision of which route is installed where can only be optimized with a global knowledge of the system, a knowledge that the root has in non-storing mode. Additionally, RPL storing mode is optimized or Point-to-Multipoint (P2MP), root to 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. In NSM, all peer-to-peer routes travel all the way to the root, which adds a source routing header and forwards the packet down to the destination, resulting in the longest stretch and overload of the radio bandwidth near the root. A controller, for instance collocated with the RPL root, with enough topological awareness of the connectivity between nodes, would be able to compute more direct routes, avoiding the vicinity of the root whenever possible.The 6TiSCH architecture [I-D.ietf-6tisch-architecture] leverages RPL for its routing operation and considers the Deterministic Networking Architecture[I-D.finn-detnet-architecture][I-D.ietf-detnet-architecture] as one possible model whereby the device resources and capabilities are exposed to an external controller which installs routing states into 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 the system could install additional P2P routes that are more optimized for the current needs as expressed by the objective function. This draft enables a RPL 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 selected set of nodes and for a selected duration, thus providing routesfrommore suitable than those obtainedfromwith the distributed operation ofRPLRPL. Those routes may be installed in either storing andnon- storing modes.non-storing modes RPL instances, resulting in potentially hybrid situations where the mode of the projected routes is different from that of the other routes in the 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 be interpreted as described in [RFC2119]. 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 theDAODestination Advertisement Object (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 ofhopsrouters to reach the target(s), presented in thesameorderas they would appearof the packet stream, source to destination, and in which a routingheader.state must be installed. The 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-HopVia Address 1 . . . + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . .... . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + . . . Via Address n . . . + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1:Eliding the RPLInstanceIDVia Information option format Option Type: 0x0A (to be confirmed by IANA) Option Length:Variable,In bytes; variable, depending onwhether 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-HopVia Address:8 or16 bytes. IPv6 Address of the next hop towards the destination(s) indicated in the target option that immediately precede the VIO.TheTBD: 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 Addressiscould be expressed as the 8-bytes suffix only, otherwise it is expressed as 16bytes. 4. Loose Source Routing in Non-storing Mode A classical RPL implementationbytes, at least ina 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) +-----+ ^ | | | |storing mode. 4. Projected 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 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 draftproposes an additionadds a capability to RPL whereby the root projects a route through an extended DAO message called a Projected-DAO (P-DAO) to an arbitrarynoderouter down the DODAG, indicating achildnext hop or adirectsequence ofchildrenrouters via which a certain destination(target)indicated in the Target Information option may be reached. A P-DAO message MUST contain at least a Target Information option and 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 RPL specification [RFC6550]; this is determined using the Path Sequence information from the VIO as opposed to a TIO. Also, a Path Lifetime of 0 in a VIO indicates that a route is to be removed. There are two kinds of P-DAO, the storing mode and the non-storing mode ones. The non-storing mode P-DAO discussed in section Section 4.1 has a single VIO with one or more Via Addresses in it, the list of Via Addresses indicating the source-routed path to the target to be installed in the router that receives the message, which replies to the root directly with a 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 ingress and the egress of the path, and more if there are intermediate routers. The Via Addresses indicate the routers in which the routing state to the target have to be installed via the next Via Address in the sequence of 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 DAO-ACK message. Note that the root may be the ingress and it may be the egress of the path, that it can also be neither but it cannot be both. The root is expected to usethe mechanismthese mechanisms optimally and with required parsimony to limit the state installed in the devices to fit withinthe devicetheir resources, but how the root figures the amount of resources thatareis available in each device is out ofscope.scope for this document. In particular, the draft expects that the root has enough information about the 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 DODAG, though how the root and the optional PCE obtain the 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 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 o o o router V | || LooseSource o o o o o o o o o |^ | SourceP-DAO . Route o o o o o o o o o o || DAO | RouteSource . Path o o o o o o o o o |^Route . From o o o o o o o o | Path . Root o o o o o target V . To o o o ov|DAO vDesti- o o o o | nation destination V LLN Figure 2:Non-Storing with Projected routes WhenProjecting aRPL domain operates innon-storingModeroute A router that receives a non-storing P-DAO installs a source routed path towards each ofOperation (NS-MOP), onlytheroot possesses routing information aboutconsecutive targets via a source route path indicated in thewhole network. Afollowing VIO. When forwarding a packet to a destination for which the router determines thatis generated withinrouting happens via thedomain first reachestarget, the router inserts theroot, which can then apply asource routinginformationheader in the packet to reach thedestination. Similarly, a packet coming fromtarget. In order to do so, theoutside ofrouter encapsulates thedomain for a destination that is expected to bepacket with an IP in IP header and aRPL domain reaches the root.non-storing mode source routing header (SRH) [RFC6554]. InNS-MOP,theroot, or some associated centralized computation engine, can thus determineuncompressed form theamountsource ofpackets that reach athe packet would be self, the destinationinwould be theRPL domain, and thusfirst Via Address in theamount of energy and bandwidth that is wasted for transmission, between itselfVIO, and thedestination, as well asSRH would contain therisk of fragmentation, any potential delays becauselist ofa paths longer than necessary (shorter paths exist that would not traversetheroot). Additionally,remaining Via Addresses and then theDAG root knowstarget. In practice, thewhole DAG topology, so whenrouter will normally use thesource of a packet is also inIPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Paging Dispatch [RFC8025] to compress the RPLdomain, the root can determineartifacts as indicated in thecommon parent6LoWPAN Routing Header [I-D.ietf-roll-routing-dispatch] specification. In thatwould have been usedcase, the router indicates self as encapsulator instoring mode,an IP-in-IP 6LoRH Header, andthusplaces the list ofnodesVia Addresses in thepath betweenorder of thecommon parentVIO and then thedestination. For instancetarget in thebelow diagram, ifSRH 6LoRH Header. 4.2. Storing-Mode Projected DAO As illustrated in Figure 3, thesource is 41storing mode P-DAO enables the root to install a routing state towards a target in the routers along a segment between an ingress and an egress router; this enables thedestination 52,routers to forward along that segment any packet for which thecommon parentnext loose hop is thenode 22.said 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) +-----+ |\ \____ / \ \^ | | | DAO | ACK | o o11o12o13 /|/ \| | Loose o22o23o24o25 / \ | \ \o31o32o o o35 / /|\^ |\Source o o o o o41o42o o o45o46| | DAO | Route o o o o o o o o o |\^ | o51o52o53o o55o56o o v | DAO v o o o o LLN Figure 3:Non-Storing with Projected routes With this draft, the root can install routing states along a segment that is either itself to the destination, or from one or more common parents for a particular source/destination pair towards that destination (in our example, this would be the segment made of nodes 22, 32, 42). The draft expects that the root has enough information about the capability for each node to storeProjecting anumber 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].route Based onthatavailable topological, usage and capabilities node information, the root or an associated PCE computes which segment should beroutedoptimized and which relevant state should be installed in which nodes. The algorithm is out of scope but it is envisaged that the root could compute the ratio between the optimal path (existing path not traversing the root, and the current path), the applicationSLAservice level agreement (SLA) for specific flows that could benefit from shorter paths, the energy wasted in the network, local congestion on various links that would benefit from having flows routed alongotheralternate paths.This draft introduces a new mode of operation for loose source routing inIn order to install theLLN,relevant routing state along theNon-Storing with Projected routes MOP. With this new MOP,segment between an ingress and an egress routers, the root sends a unicastDAOP-DAO message to thelast nodeegress router of the routing segment that must be installed. TheDAOP-DAO message contains the ordered list of hops along the segment as alistdirect sequence of Via Information options that are preceded by one or more RPL Target options to which they relate. Each Via Information option contains alifetimePath Lifetime for which the state is to be maintained. The root sends theDAOP-DAO directly to thelastegress nodeinof the segment, which In that P-DAO, the destination IP address matches the Via Address in the last VIO. This is how the egress recognizes its role. In a similar fashion, the ingress node recognizes its role as it matches Via Address in the first VIO. The egress node of the segment is the only node in the path that does not install a route in response to the P-DAO; it is expected to be already able to route to thetargetstarget(s) on its own.The last node inIt may either be thesegmenttarget, or may haveanothersome existing information to reach the target(s), such as a connected route or an already installed projected route. Ifit does not have such a route then the node should lookup the address on the relevant interfaces. Ifone of the targets cannot be located, the node MUST answer to the root with a negative DAO-ACK listing the target(s) that could not be located (suggested status10), and continue the process for those targets that could10 to belocated if any. Forconfirmed by IANA). If thetargets that could be located, lastegress nodeincan reach all thesegment generates a DAOtargets, then it forwards the P-DAO with unchanged content to its loose predecessor in the segment as indicated in the list of Via Informationoptions. The node strips the last Via Information option which corresponds to self,options, anduses it as source address forrecursively theDAO tomessage is propagated unchanged along the sequence of routers indicated in the P-DAO, but in thepredecessor.reverse order, from egress to ingress. The address of the predecessor to be used as destinationforof the propagated DAO message is found in thenow lastVia Informationoption. The predecessor is expected to have a route tooption the precedes the one that contain the address of the propagating node, which is used assource, either connected, installed previously as anothersource of the packet. Upon receiving a propagated DAO,or from other means. The predecessor is expected to havean intermediate router as well as the ingress router install a routetotowards theaddress used as source andDAO target(s) via its successor in the P-DAO; the router locates the VIO thatis his successor. If it does notcontains its address, andcannot locateuses as next hop thesuccessor,address found in thepredecessor node MUST answerVia Address field in the following VIO. The router MAY install additional routes towards the addresses that are located in VIOs that are after the next one, if any, but in case of a conflict or a lack of resource, a route to a target installed by the root has precedence. The process recurses till the P-DAO is propagated to ingress router of the segment, which answers with anegativeDAO-ACKindicatingto thesuccessor that could not be located. The DAO-ACK containsroot. Also, thelist of targets that could notpath indicated in a P-DAO may beroutedloose, in which case the reachability to(suggested status 11). Ifthepredecessor can routenext hop has to be asserted. Each router along thesuccessor node, then it installspath indicated in arouteP-DAO is expected tothe targets via the successor.be able to reach its successor, either with a connected route (direct neighbor), or by routing, for instance following a route installed previously by a DAO or a P-DAO message. If that route is not connected then a recursive lookupwillmay take place at packet forwarding time to find the next hop to reach the target(s).From there,If it does not and cannot reach thenode stripsnext router in thelast Via Information option and either answersP-DAO, the router MUST answer to the root with apositivenegative DAO-ACKthat containsindicating thelist of targetssuccessor thatcould be routed to, or propagates the DAOis unreachable (suggested status 11 toits own predecessor.be confirmed by IANA). ANULL lifetimePath Lifetime of 0 inthea Via Information optionalong the segmentis used to clean up the state.InThe P-DAO is forwarded as described above, but theexample below, say that thereDAO is interpreted as alotNo-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 non-storing mode oftrafficoperation whereby a RPL node indicates a parent-child relationship tonodes 55 and 56the root, using a Destination Advertisement Object (DAO) that is unicast from the node directly to the root, and the rootdecidestypically builds a source routed path toreducea destination down thesizeDODAG by recursively 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 4: RPL non-storing mode ofrouting headers to those destinations. Theoperation Based on the parent-children relationships expressed in the non- storing DAO messages,the root possesses topological information about the whole network, though this information is limited to the structure of the DODAG for which it is the destination. A packet that is generated within the domain will always reach the root, which canfirst sendthen apply aDAOsource routing information tonode 45 indicating target 55 andreach the destination if the destination is also in the DODAG. Similarly, aVia segment (35, 45),packet coming from the outside of the domain for a destination that is expected to be in a RPL domain reaches the root. It results that the 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 amount of energy and bandwidth that is wasted for transmission, between itself and the destination, as well asanother DAO to node 46 indicating target 56 andthe risk of fragmentation, any potential delays because of aVia segment (35, 46). This will save one entry inpaths longer than necessary (shorter paths exist that would not traverse the root). As a network gets deep, the size of the source routing headeron both sides. Thethat the rootmay then send a DAOmust add tonode 35 indicating targets 55all the downward packets becomes an issue for nodes that are many hops away. In some use cases, a RPL network forms long lines and56aVia segment (13, 24, 35)limited amount of well-targeted routing state would allow tofully optimize that path. Alternatively,make theroot may send a DAOsource routing operation loose as opposed tonode 45 indicating target 55 and a Via segment (13, 24, 35, 45)strict, andthen a DAOsave packet size. Limiting the packet size is directly beneficial to the 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 node46 indicating target 56 andis limited, the decision of which route is installed where can only be optimized with aVia segment (13, 24, 35, 46), indicatingglobal knowledge of thesame DAO Sequence. 5. Centralized Computationsystem, a knowledge that the root or an associated PCE may possess by means that are outside ofOptimized Peer-to-Peer Routes Withtheinitial specificationsscope ofRPL [RFC6550],this specification. This specification enables to store source-routed or storing mode state in intermediate routers, which enables to limit theP2P path fromexcursion of the source route headers in deep networks. Once a P-DAO exchange has taken place for a given target, if the root operates in non storing mode, then it may elide the sequence of routers that is installed in the network from its source route headers toadestination that are reachable via that target, and the source route headers effectively become loose. 5.2. Transversal Routes in storing and non-storing modes RPL isoften stretched,optimized for Point-to-Multipoint (P2MP), root to 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[RFC6550]: -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.- ino 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 aDAOroute 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.It results that it is often beneficial to enable additional P2P routes, either if the RPL route present a stretch from shortest path, or if the new route is engineered with a different objective.------+--------- | Internet | +-----+ | | Border Router | | (RPL Root) +-----+ 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 D o o o o o o o LLN Figure4:5: Routing Stretch between S and D via common parent X It results that it is often beneficial to enable transversal P2P routes, either if the RPL route presents a stretch from shortest path, or if the new route is engineered with a different objective. 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. ------+--------- | 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 Transversal Route This specification enables to store source-routed or storing mode state in intermediate routers, which enables to limit the 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 a network that uses classical RPL for asynchronous data collection. In that case, the P2P path may be installed in a different RPL Instance, with 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 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 conformance with the routing objectives in 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 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 byVIA options,a new Via Information option, and the flow is similar to the flow used to obtain loose source routing.The root sends the DAO with the target option and the Via Option to the lest router in the path; the last router removes the last Via Option and passes the DAO to 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 the destination which sends a DAO-ACK to the root. In the example above, for target D, the list of via options is S, A, B and C. The projected DAO is sent by the root to ------+--------- | 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 6: Projected DAO-ACK 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 via options is S, A, B and C. The projected DAO is sent by the root to ------+--------- | 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 7: Projected Transversal Route 6.7. Security Considerations This draft uses messages that are already present in [RFC6550] with optional secured versions. The same secured versions may be used with this draft, and whatever security is deployed for a given network also applies to the flows in this draft.7.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]8.9. Acknowledgments The authors wish to acknowledge JP Vasseur and Patrick Wetterwald for their contributions to the ideas developed here.9.10. References9.1.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 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 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>.[RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power[RFC8025] Thubert, P., Ed. andLossy Networks",R. Cragie, "IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Paging Dispatch", RFC7102,8025, DOI10.17487/RFC7102, January 2014, <http://www.rfc-editor.org/info/rfc7102>. 9.2.10.17487/RFC8025, November 2016, <http://www.rfc-editor.org/info/rfc8025>. 10.2. Informative References[I-D.finn-detnet-architecture] Finn, N. and P. Thubert, "Deterministic Networking Architecture", draft-finn-detnet-architecture-08 (work in progress), August 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-10draft-ietf-6tisch-architecture-11 (work in progress),JuneJanuary 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