summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6997.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc6997.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc6997.txt')
-rw-r--r--doc/rfc/rfc6997.txt2243
1 files changed, 2243 insertions, 0 deletions
diff --git a/doc/rfc/rfc6997.txt b/doc/rfc/rfc6997.txt
new file mode 100644
index 0000000..1446e2c
--- /dev/null
+++ b/doc/rfc/rfc6997.txt
@@ -0,0 +1,2243 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) M. Goyal, Ed.
+Request for Comments: 6997 Univ. of Wisconsin Milwaukee
+Category: Experimental E. Baccelli
+ISSN: 2070-1721 M. Philipp
+ INRIA
+ A. Brandt
+ Sigma Designs
+ J. Martocci
+ Johnson Controls
+ August 2013
+
+
+ Reactive Discovery of Point-to-Point Routes
+ in Low-Power and Lossy Networks
+
+Abstract
+
+ This document specifies a point-to-point route discovery mechanism,
+ complementary to the Routing Protocol for Low-power and Lossy
+ Networks (RPL) core functionality. This mechanism allows an IPv6
+ router to discover "on demand" routes to one or more IPv6 routers in
+ a Low-power and Lossy Network (LLN) such that the discovered routes
+ meet specified metrics constraints.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for examination, experimental implementation, and
+ evaluation.
+
+ This document defines an Experimental Protocol for the Internet
+ community. This document is a product of the Internet Engineering
+ Task Force (IETF). It represents the consensus of the IETF
+ community. It has received public review and has been approved for
+ publication by the Internet Engineering Steering Group (IESG). Not
+ all documents approved by the IESG are a candidate for any level of
+ Internet Standard; see Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc6997.
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 1]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+Copyright Notice
+
+ Copyright (c) 2013 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 2]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+Table of Contents
+
+ 1. Introduction ....................................................4
+ 2. The Use Cases ...................................................4
+ 3. Terminology .....................................................5
+ 4. Applicability ...................................................6
+ 5. Functional Overview .............................................7
+ 6. P2P Route Discovery Mode of Operation ..........................10
+ 6.1. Setting a P2P Mode DIO ....................................10
+ 7. P2P Route Discovery Option (P2P-RDO) ...........................15
+ 8. The P2P Discovery Reply Object (P2P-DRO) .......................18
+ 8.1. Secure P2P-DRO ............................................20
+ 8.2. Setting a P2P-RDO Carried in a P2P Discovery Reply
+ Object ....................................................21
+ 9. P2P-RPL Route Discovery by Creating a Temporary DAG ............21
+ 9.1. Joining a Temporary DAG ...................................21
+ 9.2. Trickle Operation for P2P Mode DIOs .......................22
+ 9.3. Processing a P2P Mode DIO .................................24
+ 9.4. Additional Processing of a P2P Mode DIO at an
+ Intermediate Router .......................................26
+ 9.5. Additional Processing of a P2P Mode DIO at the Target .....27
+ 9.6. Processing a P2P-DRO at an Intermediate Router ............28
+ 9.7. Processing a P2P-DRO at the Origin ........................30
+ 10. The P2P Discovery Reply Object Acknowledgement (P2P-DRO-ACK) ..31
+ 11. Secure P2P-RPL Operation ......................................32
+ 12. Packet Forwarding along a Route Discovered Using P2P-RPL ......33
+ 13. Interoperability with Core RPL ................................34
+ 14. Security Considerations .......................................34
+ 15. IANA Considerations ...........................................36
+ 15.1. Additions to Mode of Operation ...........................36
+ 15.2. Additions to RPL Control Message Options .................36
+ 15.3. Additions to RPL Control Codes ...........................36
+ 16. Known Issues and Future Work ..................................37
+ 17. Acknowledgements ..............................................37
+ 18. References ....................................................38
+ 18.1. Normative References .....................................38
+ 18.2. Informative References ...................................38
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 3]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+1. Introduction
+
+ Targeting Low-power and Lossy Networks (LLNs), the IPv6 Routing
+ Protocol for LLNs (RPL) [RFC6550] provides paths along a Directed
+ Acyclic Graph (DAG) rooted at a single router in the network.
+ Establishment and maintenance of a DAG are performed by routers in
+ the LLN using Destination-Oriented DAG (DODAG) Information Object
+ (DIO) messages. When two arbitrary routers (neither of which is the
+ DAG's root) need to communicate, the data packets are restricted to
+ travel only along the links in the DAG. Such point-to-point (P2P)
+ routing functionality may not be sufficient for several home
+ automation [RFC5826] and building automation [RFC5867] applications,
+ due to the following reasons:
+
+ o The need to pre-establish routes: Each potential destination in
+ the network must declare itself as such ahead of the time a source
+ needs to reach it.
+
+ o The need to route only along the links in the DAG: A DAG is built
+ to optimize the routing cost to reach the root. Restricting P2P
+ routes to use only the in-DAG links may result in significantly
+ suboptimal routes and severe traffic congestion near the DAG root.
+
+ This document describes an extension to core RPL (i.e., the RPL
+ functionality described in [RFC6550]) that enables an IPv6 router in
+ the LLN to discover routes to one or more IPv6 routers in the LLN "on
+ demand". The discovered routes may not be the best available but are
+ guaranteed to meet the specified routing metric constraints. Thus,
+ such routes are considered "good enough" from the application's
+ perspective. This reactive P2P route discovery mechanism is
+ henceforth referred to as P2P-RPL.
+
+ A mechanism to measure the end-to-end cost of an existing route is
+ specified in [RFC6998]. As discussed in Section 4, measuring the
+ end-to-end cost of an existing route may help in deciding whether to
+ initiate the discovery of a better route using P2P-RPL and the metric
+ constraints to be used for this purpose.
+
+2. The Use Cases
+
+ One use case, common in home [RFC5826] and commercial building
+ [RFC5867] environments, involves a device (say, a remote control)
+ that suddenly needs to communicate with another device (say, a lamp)
+ to which it does not already have a route (and whose network address
+ it knows a priori). In this case, the remote control must be able to
+ discover a route to the lamp "on demand".
+
+
+
+
+
+Goyal, et al. Experimental [Page 4]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ Another use case, common in a commercial building environment,
+ involves a large LLN deployment where P2P communication along a
+ particular DAG among hundreds (or thousands) of routers creates
+ severe traffic congestion near that DAG's root. In this case, it is
+ desirable to discover direct routes between various source-
+ destination pairs that do not pass through the DAG's root.
+
+ Other use cases involve scenarios where energy or latency constraints
+ are not satisfied by the P2P routes along an existing DAG because
+ they involve traversing many more routers than necessary to reach the
+ destination.
+
+3. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ [RFC2119].
+
+ Additionally, this document uses terminology from [RFC6550] and
+ [RFC6554]. Further terminology may be found in [ROLL-TERMS]. This
+ document introduces the following terms:
+
+ Origin: The IPv6 router initiating the P2P-RPL route discovery.
+
+ Target: The IPv6 router at the other end point of the P2P route(s)
+ to be discovered. A P2P-RPL route discovery can discover routes
+ to multiple Targets at the same time.
+
+ Intermediate Router: An IPv6 router that is neither the Origin nor a
+ Target.
+
+ Forward direction: The direction from the Origin to the Target.
+
+ Reverse direction: The direction from the Target to the Origin.
+
+ Forward Route: A route in the Forward direction.
+
+ Reverse Route: A route in the Reverse direction.
+
+ Bidirectional Route: A route that can be used in both Forward and
+ Reverse directions.
+
+ Ingress-only Interface: A network interface that can only receive
+ packets.
+
+ Egress-only Interface: A network interface that can only send
+ packets.
+
+
+
+Goyal, et al. Experimental [Page 5]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ Source Route: A complete and ordered list of routers that can be
+ used by a packet to travel from a source to a destination node.
+
+ Hop-by-hop Route: The route characterized by each router on the
+ route using its routing table to determine the next hop on the
+ route.
+
+ RPL Security Configuration: The values for the Counter is Time,
+ Security Algorithm, Key Identifier Mode, and Security Level
+ fields, as defined in Section 6.1 of [RFC6550], inside the
+ Security section of a secure RPL control message.
+
+4. Applicability
+
+ A route discovery using P2P-RPL may be performed by an Origin when no
+ route exists between itself and the Target(s) or when the existing
+ routes do not satisfy the application requirements. P2P-RPL is
+ designed to discover Hop-by-hop or Source Routes to one or more
+ Targets such that the discovered routes meet the specified
+ constraints. In some application contexts, the constraints that the
+ discovered routes must satisfy are intrinsically known or can be
+ specified by the application. For example, an Origin that expects
+ its Targets to be less than 5 hops away may use "hop-count < 5" as
+ the constraint. In other application contexts, the Origin may need
+ to measure the cost of the existing route to a Target to determine
+ the constraints. For example, an Origin that measures the total
+ expected transmission count (ETX) along its current route to a Target
+ to be 20 may use "ETX < x*20", where x is a fraction that the Origin
+ chooses, as the constraint. A mechanism to measure the cost of an
+ existing route between two IPv6 routers is specified in [RFC6998].
+ If there is no existing route between the Origin and the Target(s) or
+ the cost measurement for the existing routes fails, the Origin will
+ have to guess the constraints to be used in the initial route
+ discovery. Once the initial route discovery succeeds or fails, the
+ Origin will have a better estimate for the constraints to be used in
+ the subsequent route discovery.
+
+ P2P-RPL may result in discovery of better P2P routes than those
+ available along a global DAG designed to optimize routing cost to the
+ DAG's root. The improvement in route quality depends on a number of
+ factors, including the network topology, the "distance" between the
+ Origin and the Target (in terms of the routing metrics in use), and
+ the prevalent conditions in the network. In general, a P2P-RPL route
+ may be better than the one along a global DAG if the Origin and the
+ Target are nearby. Similarly, a P2P-RPL route may not be much better
+ than the one along a global DAG if the Origin and the Target are far
+ apart. Note that even when P2P-RPL routes are not much better than
+ those along a global DAG, P2P-RPL routes may still be able to avoid
+
+
+
+Goyal, et al. Experimental [Page 6]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ congestion that might occur near the root if the routing takes place
+ only along a global DAG. In general, the cost associated with a
+ P2P-RPL route discovery (in terms of the control messages -- mostly
+ DIOs -- generated) increases with the distance between the Origin and
+ the Target. However, it is possible to limit the cost of route
+ discovery by carefully setting the routing constraints, the Trickle
+ parameters (which govern DIO generation), and the time duration for
+ which a router maintains its membership in the temporary DAG created
+ for the route discovery. A network designer may take into
+ consideration both the benefits (potentially better routes; no need
+ to maintain routes proactively; avoid congestion near the global
+ DAG's root) and costs when using P2P-RPL. The latency associated
+ with a P2P-RPL route discovery again depends on the distance between
+ the Origin and the Target and on the Trickle parameters.
+
+ Like core RPL [RFC6550], P2P-RPL operation requires that links have
+ bidirectional reachability. For this reason, the routers
+ participating in a P2P-RPL route discovery must ensure that
+
+ o Links that do not have bidirectional reachability do not become
+ part of the route being discovered; and
+
+ o IPv6 addresses belonging to Ingress-only (or Egress-only)
+ Interfaces do not become part of the route being discovered.
+
+5. Functional Overview
+
+ This section contains a high-level description of P2P-RPL.
+
+ A P2P-RPL route discovery takes place by forming a DAG rooted at the
+ Origin. As is the case with core RPL, P2P-RPL uses IPv6 link-local
+ multicast DIO messages to establish a DAG. However, unlike core RPL,
+ this DAG is temporary in nature. The routes are discovered and
+ installed while the DAG is alive. Once the specified duration of
+ their membership in the DAG is over, the routers leave the DAG, and
+ hence the DAG ceases to exist. However, the installed routes are
+ retained for their specified lifetime (which is different than the
+ specified duration of a router's membership in the DAG) even though
+ the DAG that caused their installation no longer exists. In P2P-RPL,
+ the sole purpose of DAG creation is to discover routes to the
+ Target(s), and DIOs serve as the route discovery messages. Each
+ router joining the DAG determines a rank for itself in the DAG and
+ ignores the subsequent DIOs received from lower-ranked (higher in
+ numerical value) neighbors. Thus, the route discovery messages
+ propagate away from the Origin rather than return to it. As in core
+ RPL, DIO generation at a router is controlled by a Trickle timer
+ [RFC6206], which allows a router to avoid generating unnecessary
+ messages while providing protection against packet loss. P2P-RPL
+
+
+
+Goyal, et al. Experimental [Page 7]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ also uses the routing metrics [RFC6551], Objective Functions, and
+ packet-forwarding framework [RFC6554] [RFC6553] developed for
+ core RPL.
+
+ An Origin may use P2P-RPL to discover routes to one or more Targets
+ identified by one or more unicast/multicast addresses. P2P-RPL
+ allows for the discovery of one Hop-by-hop Route or up to four Source
+ Routes per Target. The discovered routes are guaranteed to meet the
+ specified routing metric constraints but may not be the best
+ available. P2P-RPL may fail to discover any route if the specified
+ routing constraints are overly strict.
+
+ The Origin initiates a P2P-RPL route discovery by forming a temporary
+ DAG rooted at itself. The DIOs used to create the temporary DAG are
+ identified by a new Mode of Operation (P2P Route Discovery mode,
+ defined in Section 6). The DIOs listing the P2P Route Discovery mode
+ as the Mode of Operation are henceforth referred to as the P2P mode
+ DIOs. A P2P mode DIO always carries exactly one P2P Route Discovery
+ Option (P2P-RDO, defined in Section 7) in which the Origin specifies
+ the following information:
+
+ o The IPv6 address of a Target. This could be a unicast address or
+ a multicast address. Any additional Targets may be specified by
+ including one or more RPL Target options [RFC6550] inside the DIO.
+
+ o The nature of the route(s) to be discovered: Hop-by-hop or Source
+ Routes. This specification allows for the discovery of one
+ Hop-by-hop Route or up to four Source Routes per Target.
+
+ o The desired number of routes (if Source Routes are being
+ discovered).
+
+ o Whether the Target(s) should send P2P Discovery Reply Object
+ (P2P-DRO) messages (defined in Section 8) back to the Origin on
+ receiving a DIO message. A P2P-DRO message carries a discovered
+ Source Route back to the Origin or establishes a Hop-by-hop Route
+ between the Origin and the Target.
+
+ A P2P-RDO also includes the best route from the Origin that the
+ router, generating the P2P mode DIO, has seen so far.
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 8]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ A P2P mode DIO MAY also carry:
+
+ o One or more Metric Container options to specify:
+
+ * The relevant routing metrics.
+
+ * The constraints that the discovered route must satisfy. These
+ constraints also limit how far the DIO messages may travel.
+
+ o One or more RPL Target options to specify additional unicast or
+ multicast Targets.
+
+ As the routers join the temporary DAG, they keep track of the best
+ route(s) (so far from the Origin) they have seen and advertise these
+ routes, along with the corresponding routing metrics, in their P2P
+ mode DIOs. A router, including the Target(s), discards a received
+ P2P mode DIO if the aggregated routing metrics on the route
+ advertised by the DIO do not satisfy the listed constraints. These
+ constraints can be used to limit the propagation of P2P mode DIO
+ messages. A router may also discard a received P2P mode DIO if it
+ does not wish to be a part of the discovered route due to limited
+ resources or due to policy reasons.
+
+ When a Target receives a P2P mode DIO, it contains inside the P2P-RDO
+ a complete Source Route from the Origin to this Target. Since the
+ links in the discovered route have bidirectional reachability
+ (Section 7), the Target may use the discovered route to reach the
+ Origin. Thus, a router that provides a particular service in the LLN
+ (e.g., an outside temperature server) could initiate a P2P-RPL route
+ discovery listing all its potential clients as Targets, thereby
+ allowing the clients to discover a Source Route back to the server.
+ In this case, the Origin (the server) might want to disable the
+ generation of P2P-DRO messages by the Targets (the clients). If the
+ Origin has requested that P2P-DRO messages be sent back, the Target
+ may select the discovered route in the received DIO for further
+ processing, as described next. This document does not specify a
+ particular method for the Target to use to select a route for further
+ processing. Example methods include selecting any route that meets
+ the constraints or selecting the best route(s) discovered over a
+ certain time period.
+
+ If one or more Source Routes are being discovered, the Target sends
+ the selected Source Route(s) to the Origin via P2P-DRO messages, with
+ one P2P-DRO message carrying one discovered route. On receiving a
+ P2P-DRO message, the Origin stores the discovered route in its
+ memory. This specification allows the Origin to discover up to four
+ Source Routes per Target, thereby allowing the Origin to have
+ sufficient ready-to-use alternatives should one or more of these
+
+
+
+Goyal, et al. Experimental [Page 9]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ routes fail. If a Hop-by-hop Route is being discovered, the Target
+ sends a P2P-DRO message containing the selected route to the Origin.
+ The P2P-DRO message travels back to the Origin along the selected
+ route, establishing state for the Forward Route in the routers on
+ the path.
+
+ The Target may request that the Origin acknowledge the receipt of a
+ P2P-DRO message by sending back a P2P-DRO Acknowledgement
+ (P2P-DRO-ACK) message (defined in Section 10). The Origin unicasts a
+ P2P-DRO-ACK message to the Target. If the Target does not receive
+ the requested P2P-DRO-ACK within a certain time interval of sending a
+ P2P-DRO, it resends the P2P-DRO message (up to a certain number of
+ times) carrying the same route as before.
+
+ The use of Trickle timers to delay the propagation of DIO messages
+ may cause some nodes to generate these messages even when the desired
+ routes have already been discovered. In order to preempt the
+ generation of such unnecessary messages, the Target may set a "Stop"
+ flag in the P2P-DRO message to let the nodes in the LLN know about
+ the completion of the route discovery process. The routers receiving
+ such a P2P-DRO should not generate any more DIOs for this temporary
+ DAG, nor should they process any received DIOs for this temporary DAG
+ in the future. However, such routers must still process the P2P-DROs
+ received for this temporary DAG.
+
+6. P2P Route Discovery Mode of Operation
+
+ This section specifies a new RPL Mode of Operation (MOP), P2P Route
+ Discovery mode (or P2P mode, for short), with value 4. A DIO message
+ listing P2P mode as the MOP is identified as performing a P2P-RPL
+ route discovery by creating a temporary DAG. A P2P mode DIO MUST
+ carry exactly one P2P Route Discovery Option (P2P-RDO, specified in
+ Section 7).
+
+6.1. Setting a P2P Mode DIO
+
+ The Base object in a P2P mode DIO message MUST be set in the
+ following manner:
+
+ o RPLInstanceID: RPLInstanceID MUST be a local value as described in
+ Section 5.1 of [RFC6550]. The Origin chooses the RPLInstanceID to
+ be used for a particular route discovery in accordance with the
+ following rules:
+
+ * The Origin SHOULD NOT reuse a RPLInstanceID for a route
+ discovery if some routers might still maintain membership in
+ the DAG that the Origin had initiated for the previous route
+ discovery using this RPLInstanceID. As described in Section 7,
+
+
+
+Goyal, et al. Experimental [Page 10]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ a router's membership in a DAG created for a P2P-RPL route
+ discovery lasts for the time duration (say, 't' seconds)
+ indicated by the L field inside the P2P-RDO. In general, there
+ is no upper bound on the time duration by when all the routers
+ have left the DAG created for a P2P-RPL route discovery. In
+ the specific case where the discovered route must be at most
+ 'n' hops in length, all the routers must have left the DAG
+ "(n+1)*t" seconds after its initiation by the Origin. In
+ practice, all the routers should have joined the DAG within 't'
+ seconds of its initiation (since the route discovery must
+ complete while the Origin still belongs to the DAG), and hence
+ all the routers should have left the DAG within "2*t" seconds
+ of its initiation. Hence, it is usually sufficient that the
+ Origin wait for twice the duration indicated by the L field
+ inside the P2P-RDO used for the previous route discovery before
+ reusing the RPLInstanceID for a new route discovery.
+ Individual P2P-RPL deployments are encouraged to share their
+ experience with various RPLInstanceID reuse policies to help
+ guide the development of a Standards Track version of the
+ protocol.
+
+ * When initiating a new route discovery to a particular Target,
+ the Origin MUST NOT reuse the RPLInstanceID used in a previous
+ route discovery to this Target if the state created during the
+ previous route discovery might still exist in some routers.
+ Note that it is possible that the previous route discovery did
+ not succeed yet some routers still ended up creating state.
+ The Default Lifetime and Lifetime Unit parameters in the DODAG
+ Configuration Option specify the lifetime of the state that the
+ routers, including the Origin and the Target, maintain for a
+ Hop-by-hop or Source Route discovered using P2P-RPL. Suppose
+ this lifetime is 'X' seconds. As discussed above, any state
+ created during the previous route discovery was likely created
+ within "2*t" seconds of its initiation. Hence, it is
+ sufficient that the Origin lets a time duration equal to
+ "X+2*t" seconds pass since the initiation of the previous route
+ discovery before initiating a new route discovery to the same
+ Target using the same RPLInstanceID.
+
+ o Version Number: This field MUST be set to zero. The temporary DAG
+ used for P2P-RPL route discovery does not exist long enough to
+ have new versions.
+
+ o Grounded (G) Flag: This flag MUST be set to one. Unlike a global
+ RPL instance, the concept of a floating DAG, used to provide
+ connectivity within a sub-DAG detached from a grounded DAG, does
+ not apply to a local RPL instance. Hence, an Origin MUST always
+ set the G flag to one when initiating a P2P-RPL route discovery.
+
+
+
+Goyal, et al. Experimental [Page 11]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ Further, item 3 of Section 8.2.2.2 in [RFC6550] does not apply,
+ and a node MUST NOT initiate a new DAG if it does not have any
+ parent left in a P2P-RPL DAG.
+
+ o Mode of Operation (MOP): This field MUST be set to four,
+ corresponding to P2P Route Discovery mode.
+
+ o Destination Advertisement Trigger Sequence Number (DTSN): This
+ field MUST be set to zero on transmission and ignored on
+ reception.
+
+ o DODAGPreference (Prf): This field MUST be set to zero (least
+ preferred).
+
+ o DODAGID: This field MUST be set to an IPv6 address of the Origin.
+
+ o The other fields in the DIO Base object can be set in the desired
+ fashion as per the rules described in [RFC6550].
+
+ A received P2P mode DIO MUST be discarded if it does not follow the
+ above-listed rules regarding the RPLInstanceID, Version Number,
+ G flag, MOP, and Prf fields inside the Base object.
+
+ The DODAG Configuration Option inside a P2P mode DIO MUST be set in
+ the following manner:
+
+ o The Origin MUST set the MaxRankIncrease parameter to zero to
+ disable local repair of the temporary DAG. A received P2P mode
+ DIO MUST be discarded if the MaxRankIncrease parameter inside the
+ DODAG Configuration Option is not zero.
+
+ o The Origin SHOULD set the Trickle parameters
+ (DIOIntervalDoublings, DIOIntervalMin, DIORedundancyConstant) as
+ recommended in Section 9.2.
+
+ o The Origin sets the Default Lifetime and Lifetime Unit parameters
+ to indicate the lifetime of the state that the routers, including
+ the Origin and the Target(s), maintain for a Hop-by-hop or Source
+ Route discovered using P2P-RPL.
+
+ o The Origin sets the other fields in the DODAG Configuration
+ Option, including the Objective Code Point (OCP) identifying the
+ Objective Function, in the desired fashion as per the rules
+ described in [RFC6550].
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 12]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o As discussed in Section 14, P2P-RPL does not distinguish between
+ the "preinstalled" and "authenticated" security modes described in
+ [RFC6550]. Consequently, the Origin MUST set the Authentication
+ Enabled (A) flag to zero. A received P2P mode DIO MUST be
+ discarded if the A flag inside the DODAG Configuration Option is
+ not zero.
+
+ o An Intermediate Router (or a Target) MUST set various fields in
+ the DODAG Configuration Option in the outgoing P2P mode DIOs to
+ the values they had in the incoming P2P mode DIOs for this DAG.
+
+ A default DODAG Configuration Option takes effect if a P2P mode DIO
+ does not carry an explicit one. The default DODAG Configuration
+ Option has the following parameter values:
+
+ o Authentication Enabled: 0
+
+ o DIOIntervalMin: 6, which translates to 64 ms as the value for the
+ Imin parameter in a Trickle operation. This value is roughly one
+ order of magnitude larger than the typical transmission delay on
+ IEEE 802.15.4 links and corresponds to the recommendation in
+ Section 9.2 for well-connected topologies.
+
+ o DIORedundancyConstant: 1. See the discussion in Section 9.2.
+
+ o MaxRankIncrease: 0 (to disable local repair of the temporary DAG).
+
+ o Default Lifetime: 0xFF, to correspond to infinity.
+
+ o Lifetime Unit: 0xFFFF, to correspond to infinity.
+
+ o Objective Code Point: 0, i.e., OF0 [RFC6552] is the default
+ Objective Function (OF).
+
+ o The remaining parameters have default values as specified in
+ [RFC6550].
+
+ Individual P2P-RPL deployments are encouraged to share their
+ experience with these default values to help guide the development of
+ a Standards Track version of the protocol.
+
+ The routing metrics and constraints [RFC6551] used in P2P-RPL route
+ discovery are included in one or more Metric Container options
+ [RFC6550] inside the P2P mode DIO. Note that a DIO need not include
+ a Metric Container if OF0 is the Objective Function in effect. In
+ that case, a P2P mode DIO may still specify an upper limit on the
+ maximum rank, that a router may have in the temporary DAG, inside
+ the P2P-RDO.
+
+
+
+Goyal, et al. Experimental [Page 13]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ A P2P mode DIO:
+
+ o MUST carry one (and only one) P2P-RDO. The P2P-RDO allows for the
+ specification of one unicast or multicast address for the Target.
+ A received P2P mode DIO MUST be discarded if it does not contain
+ exactly one P2P-RDO.
+
+ o MAY carry one or more RPL Target options to specify additional
+ unicast/multicast addresses for the Target. If a unicast address
+ is specified, it MUST be a global address or a unique-local
+ address.
+
+ o MAY carry one or more Metric Container options to specify routing
+ metrics and constraints.
+
+ o MAY carry one or more Route Information Options [RFC6550]. In the
+ context of P2P-RPL, a Route Information Option advertises to the
+ Target(s) the Origin's connectivity to the prefix specified in the
+ option.
+
+ o MAY carry one DODAG Configuration Option. If a P2P mode DIO does
+ not carry an explicit DODAG Configuration Option, the default
+ DODAG Configuration Option defined in this section is considered
+ to be in effect.
+
+ A RPL option other than those listed above MUST be ignored when found
+ inside a received P2P mode DIO and MUST NOT be included in the P2P
+ mode DIOs that the receiving router generates.
+
+ In accordance with core RPL, a P2P mode DIO MUST propagate via link-
+ local multicast. The IPv6 source address in a P2P mode DIO MUST be a
+ link-local address, and the IPv6 destination address MUST be the
+ link-local multicast address all-RPL-nodes [RFC6550]. A P2P mode DIO
+ MUST be transmitted on all interfaces the router has in this RPL
+ routing domain [RFC6554].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 14]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+7. P2P Route Discovery Option (P2P-RDO)
+
+ This section defines a new RPL control message option: the P2P Route
+ Discovery Option (P2P-RDO).
+
+ 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 |R|H| N | Compr | L |MaxRank/NH |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ | TargetAddr |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ | Address[1..n] |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 1: Format of the P2P Route Discovery Option (P2P-RDO)
+
+ The format of a P2P Route Discovery Option (P2P-RDO) is illustrated
+ in Figure 1. A P2P mode DIO and a P2P-DRO message (defined in
+ Section 8) MUST carry exactly one P2P-RDO. A P2P-RDO consists of the
+ following fields:
+
+ o Option Type: 0x0a.
+
+ o Option Length: This field is an 8-bit unsigned integer
+ representing the length in octets of the option, not including the
+ Option Type and Option Length fields.
+
+ o Reply (R): The Origin sets this flag to one to allow the Target(s)
+ to send P2P-DRO messages back to the Origin. If this flag is set
+ to zero, a Target MUST NOT generate any P2P-DRO messages.
+
+ o Hop-by-hop (H): This flag is valid only if the R flag is set to
+ one. The Origin sets this flag to one if it desires Hop-by-hop
+ Routes. The Origin sets this flag to zero if it desires Source
+ Routes. This specification allows for the establishment of one
+ Hop-by-hop Route or up to four Source Routes per Target. The
+ Hop-by-hop Route is established in the Forward direction, i.e.,
+ from the Origin to the Target. This specification does not allow
+ for the establishment of Hop-by-hop Routes in the Reverse
+ direction.
+
+
+
+
+Goyal, et al. Experimental [Page 15]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o Number of Routes (N): This field is valid only if the R flag is
+ set to one and the H flag is set to zero, i.e., the Targets are
+ allowed to generate P2P-DRO messages carrying discovered Source
+ Routes back to the Origin. In this case, the value in the N field
+ plus one indicates the number of Source Routes that each Target
+ should convey to the Origin. When Hop-by-hop Routes are being
+ discovered, the N field MUST be set to zero on transmission and
+ ignored on reception.
+
+ o Compr: This field is a 4-bit unsigned integer indicating the
+ number of prefix octets that are elided from the Target field and
+ the Address vector. For example, the Compr value will be zero if
+ full IPv6 addresses are carried in the Target field and the
+ Address vector.
+
+ o Lifetime (L): This is a 2-bit field that indicates the exact
+ duration that a router joining the temporary DAG, including the
+ Origin and the Target(s), MUST maintain its membership in the DAG.
+ A router MUST leave the temporary DAG once the time elapsed since
+ it joined reaches the value indicated by this field. The mapping
+ between the value in this field and the duration of the router's
+ membership in the temporary DAG is as follows:
+
+ * 0x00: 1 second
+
+ * 0x01: 4 seconds
+
+ * 0x02: 16 seconds
+
+ * 0x03: 64 seconds
+
+ The Origin sets this field based on its expectation regarding the
+ time required for the route discovery to complete, which includes
+ the time required for the DIOs to reach the Target(s) and the
+ P2P-DROs to travel back to the Origin. The time required for the
+ DIOs to reach the Target(s) would in turn depend on the Trickle
+ parameters (Imin and the redundancy constant) as well as the
+ expected distance (in terms of hops and/or ETX) to the Target(s).
+ While deciding on the value in this field, the Origin should also
+ take into account the fact that all routers joining the temporary
+ DAG would need to stay in the DAG for this much time.
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 16]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o MaxRank/NH:
+
+ * When a P2P-RDO is included in a P2P mode DIO, this field
+ indicates the upper limit on the integer portion of the rank
+ (calculated using the DAGRank() macro defined in [RFC6550])
+ that a router may have in the temporary DAG being created. An
+ Intermediate Router MUST NOT join a temporary DAG being created
+ by a P2P mode DIO if the integer portion of its rank would be
+ equal to or higher (in numerical value) than the MaxRank limit.
+ A Target can join the temporary DAG at a rank whose integer
+ portion is equal to the MaxRank. A router MUST discard a
+ received P2P mode DIO if the integer part of the advertised
+ rank equals or exceeds the MaxRank limit. A value of 0 in this
+ field indicates that the MaxRank is infinity.
+
+ * When a P2P-RDO is included in a P2P-DRO message, this field
+ indicates the index of the next-hop (NH) address inside the
+ Address vector.
+
+ o TargetAddr: This is an IPv6 address of the Target after eliding
+ Compr number of prefix octets. When the P2P-RDO is included in a
+ P2P mode DIO, this field may contain a unicast address or a
+ multicast address. If a unicast address is specified, it MUST be
+ a global address or a unique-local address. Any additional Target
+ addresses can be specified by including one or more RPL Target
+ options [RFC6550] in the DIO. When the P2P-RDO is included in a
+ P2P-DRO, this field MUST contain a unicast global or unique-local
+ IPv6 address of the Target generating the P2P-DRO.
+
+ o Address[1..n]: This is a vector of IPv6 addresses representing a
+ complete route so far in the Forward direction:
+
+ * Each element in the Address vector has size (16 - Compr) octets
+ and MUST contain a valid global or unique-local IPv6 address
+ with the first Compr octets elided.
+
+ * The total number of elements inside the Address vector is given
+ by n = (Option Length - 2 - (16 - Compr))/(16 - Compr).
+
+ * The IPv6 address that a router adds to the vector MUST belong
+ to the interface on which the router received the DIO
+ containing this P2P-RDO. Further, this interface MUST NOT be
+ an Ingress-only Interface. This allows the route accumulated
+ in the Address vector to be a Bidirectional Route that can be
+ used by a Target to send a P2P-DRO message to the Origin.
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 17]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ * The Address vector MUST carry the accumulated route in the
+ Forward direction, i.e., the first element in the Address
+ vector must contain the IPv6 address of the router next to the
+ Origin, and so on.
+
+ * The Origin and Target addresses MUST NOT be included in the
+ Address vector.
+
+ * A router adding its address to the vector MUST ensure that none
+ of its addresses already exist in the vector. A Target
+ specifying a complete route in the Address vector MUST ensure
+ that the vector does not contain any address more than once.
+
+ * The Address vector MUST NOT contain any multicast addresses.
+
+8. The P2P Discovery Reply Object (P2P-DRO)
+
+ This section defines two new RPL control message types: the P2P
+ Discovery Reply Object (P2P-DRO), with code 0x04; and the Secure
+ P2P-DRO, with code 0x84. A P2P-DRO serves one of the following
+ functions:
+
+ o carries a discovered Source Route from a Target to the Origin;
+
+ o establishes a Hop-by-hop Route as it travels from a Target to the
+ Origin.
+
+ A P2P-DRO message can also serve the function of letting the routers
+ in the LLN know that a P2P-RPL route discovery is complete and no
+ more DIO messages need to be generated for the corresponding
+ temporary DAG. A P2P-DRO message MUST carry one (and only one)
+ P2P-RDO whose TargetAddr field MUST contain a unicast IPv6 address of
+ the Target that generates the P2P-DRO. A P2P-DRO message MUST travel
+ from the Target to the Origin via link-local multicast along the
+ route specified inside the Address vector in the P2P-RDO, as included
+ in the P2P-DRO. The IPv6 source address in a P2P-DRO message MUST be
+ a link-local address, and the IPv6 destination address MUST be the
+ link-local multicast address all-RPL-nodes [RFC6550]. A P2P-DRO
+ message MUST be transmitted on all interfaces the router has in this
+ RPL routing domain [RFC6554].
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 18]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RPLInstanceID | Version |S|A|Seq| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ | DODAGID |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Option(s)...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...
+
+ Figure 2: Format of the Base P2P Discovery Reply Object (P2P-DRO)
+
+ The format of the base P2P Discovery Reply Object (P2P-DRO) is shown
+ in Figure 2. A base P2P-DRO consists of the following fields:
+
+ o RPLInstanceID: This field provides the RPLInstanceID of the
+ temporary DAG used for route discovery.
+
+ o Version: This field provides the Version of the temporary DAG used
+ for route discovery. Since a temporary DAG always has value zero
+ for the Version, this field MUST always be set to zero.
+
+ o Stop (S): This flag, when set to one by a Target, indicates that
+ the P2P-RPL route discovery is over. All the routers receiving
+ such a P2P-DRO, including those not listed in the route carried
+ inside a P2P-RDO,
+
+ * SHOULD NOT process any more DIOs received for this
+ temporary DAG;
+
+ * SHOULD NOT generate any more DIOs for this temporary DAG;
+
+ * SHOULD cancel any pending DIO transmissions for this
+ temporary DAG.
+
+ Note that the Stop flag serves to stop further DIO
+ generation/processing for a P2P-RPL route discovery but does not
+ affect the processing of P2P-DRO messages at either the Origin or
+ the Intermediate Routers. In other words, a router (the Origin or
+ an Intermediate Router) MUST continue to process the P2P-DRO
+ messages even if an earlier P2P-DRO message (with the same
+ RPLInstanceID and DODAGID fields) had the Stop flag set to one.
+ When set to zero, this flag does not imply anything and MUST be
+ ignored on reception.
+
+
+
+
+Goyal, et al. Experimental [Page 19]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o Ack Required (A): This flag, when set to one by the Target,
+ indicates that the Origin MUST unicast a P2P-DRO-ACK message
+ (defined in Section 10) to the Target when it receives the
+ P2P-DRO.
+
+ o Sequence Number (Seq): This 2-bit field indicates the sequence
+ number for the P2P-DRO. This field is relevant when the A flag is
+ set to one, i.e., the Target requests an acknowledgement from the
+ Origin for a received P2P-DRO. The Origin includes the
+ RPLInstanceID, the DODAGID, and the Sequence Number of the
+ received P2P-DRO inside the P2P-DRO-ACK message it sends back to
+ the Target.
+
+ o Reserved: These bits are reserved for future use. These bits MUST
+ be set to zero on transmission and MUST be ignored on reception.
+
+ o DODAGID: This field provides the DODAGID of the temporary DAG used
+ for route discovery. The DODAGID also identifies the Origin. The
+ RPLInstanceID, the Version, and the DODAGID together uniquely
+ identify the temporary DAG used for route discovery and can be
+ copied from the DIO message advertising the temporary DAG.
+
+ o Options: The P2P-DRO message:
+
+ * MUST carry one (and only one) P2P-RDO that MUST specify a
+ complete route between the Target and the Origin. A received
+ P2P-DRO message MUST be discarded if it does not contain
+ exactly one P2P-RDO.
+
+ * MAY carry one or more Metric Container options that contain the
+ aggregated routing metrics values for the route specified in
+ the P2P-RDO.
+
+ A RPL option other than those listed above MUST be ignored when
+ found inside a received P2P-DRO message.
+
+8.1. Secure P2P-DRO
+
+ A Secure P2P-DRO message follows the format shown in Figure 7 of
+ [RFC6550], where the base format is the base P2P-DRO shown in
+ Figure 2.
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 20]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+8.2. Setting a P2P-RDO Carried in a P2P Discovery Reply Object
+
+ A P2P Discovery Reply Object MUST carry one (and only one) P2P-RDO,
+ which MUST be set as defined in Section 7. Specifically, the
+ following fields MUST be set as follows:
+
+ o Reply (R): This flag MUST be set to zero on transmission and
+ ignored on reception.
+
+ o Hop-by-Hop (H): The H flag in the P2P-RDO included in a P2P-DRO
+ message MUST have the same value as the H flag in the P2P-RDO
+ inside the corresponding DIO message.
+
+ o Number of Routes (N): This field MUST be set to zero on
+ transmission and ignored on reception.
+
+ o Lifetime (L): This field MUST be set to zero on transmission and
+ ignored on reception.
+
+ o MaxRank/NH: This field indicates the index of the next-hop address
+ in the Address vector. When a Target generates a P2P-DRO message,
+ the NH field is set to n = (Option Length - 2 - (16 - Compr))/
+ (16 - Compr).
+
+ o TargetAddr: This field MUST contain a unicast global or unique-
+ local IPv6 address of the Target generating the P2P-DRO.
+
+ o Address[1..n]: The Address vector MUST contain a complete route
+ between the Origin and the Target such that the first element in
+ the vector contains the IPv6 address of the router next to the
+ Origin and the last element contains the IPv6 address of the
+ router next to the Target.
+
+9. P2P-RPL Route Discovery by Creating a Temporary DAG
+
+ This section details the P2P-RPL route discovery operation.
+
+9.1. Joining a Temporary DAG
+
+ All the routers participating in a P2P-RPL route discovery, including
+ the Origin and the Target(s), MUST join the temporary DAG being
+ created for that purpose. When a router joins a temporary DAG
+ advertised by a P2P mode DIO, it MUST maintain its membership in the
+ temporary DAG for the duration indicated by the L field inside the
+ P2P-RDO. The only purpose of a temporary DAG's existence is to
+ facilitate the P2P-RPL route discovery process. The temporary DAG
+ MUST NOT be used to route data packets. In other words, joining a
+ temporary DAG does not allow a router to provision routing table
+
+
+
+Goyal, et al. Experimental [Page 21]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ entries listing the router's parents in the temporary DAG as the next
+ hops (i.e., the last bullet point in Section 3.2.8 of [RFC6550] is
+ not applicable when the DAG is a temporary DAG created for the
+ purpose of a P2P-RPL route discovery).
+
+ Given the nature of a temporary DAG created for a P2P-RPL route
+ discovery, this document disallows the solicitation of P2P mode DIOs
+ using DODAG Information Solicitation (DIS) messages as described in
+ [RFC6550]. A router participating in a P2P-RPL route discovery MUST
+ NOT reset its Trickle timer, which controls the transmission of P2P
+ mode DIOs in response to a multicast DIS. Also, the router MUST NOT
+ send a P2P mode DIO in response to a unicast DIS. In other words,
+ the rules in Section 8.3 of [RFC6550] regarding a router's response
+ to a multicast/unicast DIS are not applicable for P2P mode DIOs.
+
+ A router MUST detach from the temporary DAG created for a P2P-RPL
+ route discovery once the duration of its membership in the DAG has
+ reached the value indicated by the L field inside the P2P-RDO. After
+ receiving a P2P-DRO with the Stop flag set to one, a router SHOULD
+ NOT send or process any more DIOs for this temporary DAG and SHOULD
+ also cancel any pending DIO transmissions.
+
+9.2. Trickle Operation for P2P Mode DIOs
+
+ A RPL router uses a Trickle timer [RFC6206] to control DIO
+ transmissions. The Trickle control of DIO transmissions provides
+ quick resolution of any "inconsistency" while avoiding redundant DIO
+ transmissions. The Trickle algorithm also imparts protection against
+ loss of DIOs due to inherent lack of reliability in LLNs. When
+ controlling the transmissions of a P2P mode DIO, a Trickle timer
+ SHOULD follow the following rules:
+
+ o The receipt of a P2P mode DIO that allows the router to advertise
+ a better route (in terms of the routing metrics and the OF in use)
+ than before is considered "inconsistent" and hence resets the
+ Trickle timer. Note that the first receipt of a P2P mode DIO
+ advertising a particular temporary DAG is always considered an
+ "inconsistent" event.
+
+ o The receipt of a P2P mode DIO from a parent in the temporary DAG
+ is considered neither "consistent" nor "inconsistent" if it does
+ not allow the router to advertise a better route than before.
+ Thus, the receipt of such DIOs has no impact on the Trickle
+ operation. Note that this document does not impose any
+ requirements on how a router might choose its parents in the
+ temporary DAG.
+
+
+
+
+
+Goyal, et al. Experimental [Page 22]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o The receipt of a P2P mode DIO is considered "consistent" if the
+ source of the DIO is not a parent in the temporary DAG and either
+ of the following conditions is true:
+
+ * The DIO advertises a better route than the router but does not
+ allow the router to advertise a better route itself; or
+
+ * The DIO advertises a route as good as the route (to be)
+ advertised by the router.
+
+ Note that the Trickle algorithm's DIO suppression rules are in
+ effect at all times. Hence, a P2P-RPL router may suppress a DIO
+ transmission even if it has not made any DIO transmissions yet.
+
+ o The receipt of a P2P mode DIO that advertises a worse route than
+ what the router advertises (or would advertise when it gets a
+ chance to generate its DIO) is considered neither "consistent" nor
+ "inconsistent", i.e., the receipt of such a DIO has no impact on
+ the Trickle operation.
+
+ o The Imin parameter SHOULD be set taking into account the
+ connectivity within the network. For highly connected networks, a
+ small Imin value (on the order of the typical transmission delay
+ for a DIO) may lead to congestion in the network as a large number
+ of routers reset their Trickle timers in response to the first
+ receipt of a DIO from the Origin. These routers would generate
+ their DIOs within the Imin interval and cause additional routers
+ to reset their Trickle timers and generate more DIOs. Thus, for
+ highly connected networks, the Imin parameter SHOULD be set to a
+ value at least one order of magnitude larger than the typical
+ transmission delay for a DIO. For sparsely connected networks,
+ the Imin parameter can be set to a value that is a small multiple
+ of the typical transmission delay for a DIO. Note that the Imin
+ value has a direct impact on the time required for a P2P-RPL route
+ discovery to complete. In general, the time required for a
+ P2P-RPL route discovery would increase approximately linearly with
+ the value of the Imin parameter. Since the route discovery must
+ complete while the Origin still belongs to the temporary DAG
+ created for that purpose, the Origin should set the time duration
+ for which a router maintains its membership in the temporary DAG
+ (indicated by the L field inside the P2P-RDO) to a large enough
+ value, taking into account the Imin value as well as the expected
+ distance (in terms of hops and/or ETX) to the Target(s).
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 23]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o The Imax parameter SHOULD be set to a large value (several orders
+ of magnitude higher than the Imin value) and is unlikely to be
+ critical for P2P-RPL operation. This is because the first receipt
+ of a P2P mode DIO for a particular temporary DAG is considered an
+ inconsistent event and would lead to the resetting of the Trickle
+ timer duration to the Imin value. Given the temporary nature of
+ the DAGs used in P2P-RPL, the Trickle timer may not get a chance
+ to increase much.
+
+ o The recommended value of redundancy constant "k" is 1. With this
+ value of "k", a DIO transmission will be suppressed if the router
+ receives even a single "consistent" DIO during a timer interval.
+ This setting for the redundancy constant is designed to reduce the
+ number of messages generated during a route discovery process and
+ is suitable for environments with low or moderate packet loss
+ rates. However, this setting may result in an increase in the
+ time required for the route discovery process to complete. A
+ higher value for the redundancy constant may be more suitable in
+
+ * environments with high packet loss rates; or
+
+ * deployments where the time required for the route discovery
+ process to complete needs to be as small as possible; or
+
+ * deployments where specific destinations are reachable only
+ through specific Intermediate Routers (and hence these
+ Intermediate Routers should not suppress their DIOs).
+
+ A particular deployment should take into account the above-
+ mentioned factors when deciding on the value of the redundancy
+ constant.
+
+ Individual P2P-RPL deployments are encouraged to share their
+ experience with these rules to help guide the development of a
+ Standards Track version of the protocol. Applicability Statements
+ that specify the use of P2P-RPL MUST provide guidance for setting
+ Trickle parameters, particularly Imin and the redundancy constant.
+
+9.3. Processing a P2P Mode DIO
+
+ The rules for DIO processing and transmission as described in
+ Section 8 of RPL [RFC6550] apply to P2P mode DIOs as well, except as
+ modified in this document. In particular, in accordance with
+ Section 8.2.3 of RPL [RFC6550], a received P2P mode DIO MUST be
+ discarded if it is malformed, according to the rules specified in
+ this document and in [RFC6550].
+
+
+
+
+
+Goyal, et al. Experimental [Page 24]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ The following rules for processing a received P2P mode DIO apply to
+ both Intermediate Routers and the Target.
+
+ A router SHOULD discard a received P2P mode DIO with no further
+ processing if it does not have bidirectional reachability with the
+ neighbor that generated the received DIO. Note that bidirectional
+ reachability does not mean that the link must have the same values
+ for a routing metric in both directions. A router SHOULD calculate
+ the values of the link-level routing metrics included in the received
+ DIO, taking into account the metric's value in both Forward and
+ Reverse directions. Bidirectional reachability along a discovered
+ route allows the Target to use this route to reach the Origin. In
+ particular, the P2P-DRO messages travel from the Target to the Origin
+ along a discovered route.
+
+ A router MUST discard a received P2P mode DIO with no further
+ processing:
+
+ o if the DIO advertises INFINITE_RANK as defined in Section 17
+ of [RFC6550]
+
+ o if the integer part of the rank advertised in the DIO equals or
+ exceeds the MaxRank limit listed in the P2P Route Discovery Option
+
+ o if the routing metric values do not satisfy one or more of the
+ mandatory route constraints listed in the DIO or if the router
+ cannot evaluate the mandatory route constraints, e.g., if the
+ router does not support the metrics used in the constraints
+
+ o if the router previously received a P2P-DRO message with the same
+ RPLInstanceID and DODAGID as the received DIO and with the Stop
+ flag set to one
+
+ The router MUST check the Target addresses listed in the P2P-RDO and
+ any RPL Target options included in the received DIO. If one of its
+ IPv6 addresses is listed as a Target address or if it belongs to the
+ multicast group specified as one of the Target addresses, the router
+ considers itself a Target and processes the received DIO as specified
+ in Section 9.5. Otherwise, the router considers itself an
+ Intermediate Router and processes the received DIO as specified in
+ Section 9.4.
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 25]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+9.4. Additional Processing of a P2P Mode DIO at an Intermediate Router
+
+ An Intermediate Router MUST discard a received P2P mode DIO with no
+ further processing
+
+ o if the DIO is received on an Ingress-only Interface; or
+
+ o if the receiving interface does not have a global or unique-local
+ IPv6 address configured with the address prefix implied by the
+ Compr field in the P2P-RDO inside the received DIO; or
+
+ o if the router cannot uniquely identify the address prefix implied
+ by the Compr field in the P2P-RDO (this might happen if the
+ receiving interface has multiple global/unique-local IPv6
+ addresses, each configured with a different address prefix); or
+
+ o if adding its IPv6 address to the route in the Address vector
+ inside the P2P-RDO would result in the route containing multiple
+ addresses belonging to this router.
+
+ On receiving a P2P mode DIO, an Intermediate Router MUST do the
+ following. The router MUST determine whether this DIO advertises a
+ better route than the router itself and whether the receipt of the
+ DIO would allow the router to advertise a better route than before.
+ Accordingly, the router SHOULD consider this DIO as
+ consistent/inconsistent from the Trickle perspective, as described in
+ Section 9.2. Note that the route comparison in a P2P-RPL route
+ discovery is performed using the parent selection rules of the OF in
+ use as specified in Section 14 of RPL [RFC6550]. If the received DIO
+ would allow the router to advertise a better route, the router MUST
+ add a unicast IPv6 address of the receiving interface (after eliding
+ Compr prefix octets) to the route in the Address vector inside the
+ P2P-RDO and remember this route for inclusion in its future DIOs.
+
+ When an Intermediate Router adds an IPv6 address to a route, it MUST
+ ensure that
+
+ o the IPv6 address is a unicast global or unique-local IPv6 address
+ assigned to the interface on which the DIO containing the route
+ was received;
+
+ o the IPv6 address was configured with the address prefix implied by
+ the Compr field in the P2P-RDO inside the received DIO.
+
+ To improve the diversity of the routes being discovered, an
+ Intermediate Router SHOULD keep track of multiple routes (as long as
+ all these routes are the best seen so far), one of which SHOULD be
+ selected in a uniform random manner for inclusion in the P2P-RDO
+
+
+
+Goyal, et al. Experimental [Page 26]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ inside the router's next DIO. Note that the route accumulation in a
+ P2P mode DIO MUST take place even if the Origin does not want any
+ P2P-DRO messages to be generated (i.e., the R flag inside the P2P-RDO
+ is set to zero). This is because the Target may still be able to use
+ the accumulated route as a Source Route to reach the Origin.
+
+9.5. Additional Processing of a P2P Mode DIO at the Target
+
+ The Target MAY remember the discovered route contained in the P2P-RDO
+ in the received DIO for use as a Source Route to reach the Origin.
+ The lifetime of this Source Route is specified by the Default
+ Lifetime and Lifetime Unit parameters inside the DODAG Configuration
+ Option currently in effect. This lifetime can be extended (or
+ shortened) appropriately, following a hint from an upper-layer
+ protocol.
+
+ If the Reply flag inside the P2P-RDO in the received DIO is set to
+ one, the Target MUST select one or more discovered routes and send
+ one or more P2P-DRO messages, carrying one discovered route each,
+ back to the Origin. If the H flag inside the P2P-RDO is set to one,
+ the Target needs to select one route and send a P2P-DRO message along
+ this route back to the Origin. As this P2P-DRO message travels back
+ to the Origin, the routers on the path establish a hop-by-hop routing
+ state, thereby establishing a Hop-by-hop Route in the Forward
+ direction. If the H flag is set to zero, the number of Source Routes
+ to be selected (and the number of P2P-DRO messages to be sent back)
+ is given by one plus the value of the N field in the P2P-RDO. The
+ Target may select the discovered route inside the received DIO as one
+ or more of the routes that would be carried inside a P2P-DRO message
+ back to the Origin. This document does not prescribe a particular
+ method for the Target to select the routes. Example methods include
+ selecting each route that meets the specified routing constraints
+ until the desired number of routes has been selected, or selecting
+ the best routes discovered over a certain time period. If multiple
+ routes are to be selected, the Target SHOULD avoid selecting routes
+ that have large segments in common.
+
+ If the Target selects the route contained in the P2P-RDO in the
+ received DIO, it sends a P2P-DRO message back to the Origin
+ (identified by the DODAGID field in the DIO). The P2P-DRO message
+ MUST include a P2P-RDO that contains the selected route inside the
+ Address vector. Various fields inside the P2P-RDO MUST be set as
+ specified in Section 8.2. The Target MAY set the A flag inside the
+ P2P-DRO message to one if it desires the Origin to send back a
+ P2P-DRO-ACK message on receiving the P2P-DRO. In this case, the
+ Target waits for the duration of P2P_DRO_ACK_WAIT_TIME for the
+ P2P-DRO-ACK message to arrive. Failure to receive the P2P-DRO-ACK
+ message within this time duration causes the Target to retransmit the
+
+
+
+Goyal, et al. Experimental [Page 27]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ P2P-DRO message. The Target MAY retransmit the P2P-DRO message in
+ this fashion up to MAX_P2P_DRO_RETRANSMISSIONS times. Both
+ P2P_DRO_ACK_WAIT_TIME and MAX_P2P_DRO_RETRANSMISSIONS are
+ configurable parameters to be chosen based on the characteristics of
+ individual deployments. Note that all P2P-DRO transmissions and
+ retransmissions MUST take place while the Target is still a part of
+ the temporary DAG created for the route discovery. A Target MUST NOT
+ transmit a P2P-DRO if it no longer belongs to this DAG.
+
+ The Target MAY set the Stop flag inside the P2P-DRO message to one if
+
+ o this router is the only Target specified in the corresponding DIO,
+ i.e., the corresponding DIO specified a unicast address of the
+ router as the TargetAddr inside the P2P-RDO with no additional
+ Targets specified via RPL Target options; and
+
+ o the Target has already selected the desired number of routes.
+
+ The Target MAY include a Metric Container option in the P2P-DRO
+ message. This Metric Container contains the end-to-end routing
+ metric values for the route specified in the P2P-RDO. The Target
+ MUST transmit the P2P-DRO message via a link-local multicast.
+
+ A Target MUST NOT forward a P2P mode DIO any further if no other
+ Targets are to be discovered, i.e., if a unicast IPv6 address (of
+ this Target) is specified as the TargetAddr inside the P2P-RDO and no
+ additional Targets are specified via RPL Target options inside the
+ DIOs for this route discovery. Otherwise, the Target MUST generate
+ DIOs for this route discovery as an Intermediate Router would.
+
+9.6. Processing a P2P-DRO at an Intermediate Router
+
+ If the DODAGID field in the received P2P-DRO does not list a router's
+ own IPv6 address, the router considers itself an Intermediate Router
+ and MUST process the received message in the following manner:
+
+ o The router MUST discard the received P2P-DRO with no further
+ processing if it does not belong to the temporary DAG identified
+ by the RPLInstanceID and the DODAGID fields in the P2P-DRO.
+
+ o If the Stop flag inside the received P2P-DRO is set to one, the
+ router SHOULD NOT send or receive any more DIOs for this temporary
+ DAG and SHOULD cancel any pending DIO transmissions.
+
+ o The router MUST ignore any Metric Container options contained in
+ the P2P-DRO message.
+
+
+
+
+
+Goyal, et al. Experimental [Page 28]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o If an Address[NH] element inside the P2P-RDO lists the router's
+ own unicast IPv6 address, the router is a part of the route
+ carried in the P2P-RDO. In this case, the router MUST do the
+ following:
+
+ * To prevent loops, the router MUST discard the P2P-DRO message
+ with no further processing if the Address vector in the P2P-RDO
+ includes multiple IPv6 addresses assigned to the router's
+ interfaces.
+
+ * If the H flag inside the P2P-RDO is set to one, the router MUST
+ store the state for the Forward Hop-by-hop Route carried inside
+ the P2P-RDO. This state consists of:
+
+ + the RPLInstanceID and the DODAGID fields of the P2P-DRO
+
+ + the route's destination, the Target (identified by the
+ TargetAddr field inside the P2P-RDO)
+
+ + the IPv6 address of the next hop, Address[NH+1] (unless the
+ NH value equals the number of elements in the Address
+ vector, in which case the Target itself is the next hop)
+
+ This Hop-by-hop routing state MUST expire at the end of the
+ lifetime specified by the Default Lifetime and Lifetime Unit
+ parameters inside the DODAG Configuration Option used in P2P
+ mode DIOs for this route discovery.
+
+ * If the router already maintains a Hop-by-hop state listing the
+ Target as the destination and carrying the same RPLInstanceID
+ and DODAGID fields as the received P2P-DRO, and the next-hop
+ information in the state does not match the next hop indicated
+ in the received P2P-DRO, the router MUST discard the P2P-DRO
+ message with no further processing. Note that this situation
+ would occur in the following two cases:
+
+ + When the route listed in the Address vector inside the
+ P2P-RDO contains a previously undetected loop. In this
+ case, this rule causes the P2P-DRO messages to be discarded.
+
+ + When a Hop-by-hop Route between the Origin and the Target,
+ previously established using the same RPLInstanceID and
+ DODAGID as the route currently being established, still
+ exists and at least partially overlaps the route currently
+ being established.
+
+ * The router MUST decrement the NH field inside the P2P-RDO and
+ send the P2P-DRO message further via link-local multicast.
+
+
+
+Goyal, et al. Experimental [Page 29]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+9.7. Processing a P2P-DRO at the Origin
+
+ When a router receives a P2P-DRO message that lists its IPv6 address
+ in the DODAGID field, the router recognizes itself as the Origin for
+ the corresponding P2P-RPL route discovery, notes the Target that
+ originated this message (from the TargetAddr field inside the
+ P2P-RDO), and processes the message in the following manner:
+
+ o The Origin MUST discard the received P2P-DRO with no further
+ processing if it no longer belongs to the temporary DAG identified
+ by the RPLInstanceID and the DODAGID fields in the P2P-DRO.
+
+ o If the Stop flag inside the received P2P-DRO is set to one, the
+ Origin SHOULD NOT generate any more DIOs for this temporary DAG
+ and SHOULD cancel any pending DIO transmissions.
+
+ o If the P2P-RDO inside the P2P-DRO has the H flag set to zero, the
+ Address vector inside the P2P-RDO contains a Source Route to this
+ Target. The Origin MUST set the lifetime of this Source Route to
+ the value specified by the Default Lifetime and Lifetime Unit
+ parameters inside the DODAG Configuration Option in the P2P mode
+ DIOs used for this route discovery. This lifetime could be
+ extended (or shortened) appropriately, following a hint from an
+ upper-layer protocol.
+
+ o If the P2P-RDO inside the P2P-DRO has the H flag set to one, the
+ P2P-DRO message is establishing a Hop-by-hop Route to this Target,
+ and the Origin MUST store in its memory the state for this
+ Hop-by-hop Route in the manner described in Section 9.6. This
+ Hop-by-hop routing state MUST expire at the end of the lifetime
+ specified by the Default Lifetime and Lifetime Unit parameters
+ inside the DODAG Configuration Option used in P2P mode DIOs for
+ this route discovery. A Standards Track version of P2P-RPL may
+ consider specifying a signaling mechanism that will allow the
+ Origin to extend (or shorten) the lifetime of a P2P-RPL Hop-by-hop
+ Route, following a suitable hint from an upper-layer protocol.
+
+ o If the received P2P-DRO message contains one or more Metric
+ Container options, the Origin MAY store the values of the routing
+ metrics associated with the discovered route in its memory. This
+ information may be useful in formulating the constraints for any
+ future P2P-RPL route discovery to this Target.
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 30]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ o If the A flag is set to one in the received P2P-DRO message, the
+ Origin MUST generate a P2P-DRO-ACK message as described in
+ Section 10 and unicast the message to the Target. The Origin MAY
+ use the route just discovered to send the P2P-DRO-ACK message to
+ the Target. Section 12 describes how a packet may be forwarded
+ along a Source/Hop-by-hop Route discovered using P2P-RPL.
+
+10. The P2P Discovery Reply Object Acknowledgement (P2P-DRO-ACK)
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | RPLInstanceID | Version |Seq| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ | DODAGID |
+ | |
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 3: Format of the Base P2P Discovery Reply Object
+ Acknowledgement (P2P-DRO-ACK)
+
+ A P2P-DRO message may fail to reach the Origin due to a number of
+ reasons. Unlike the DIO messages, which benefit from Trickle-
+ controlled retransmissions, the P2P-DRO messages are prone to loss
+ due to unreliable packet transmission in LLNs. Since a P2P-DRO
+ message travels via link-local multicast, it cannot use link-level
+ acknowledgements to improve the reliability of its transmission.
+ Also, an Intermediate Router may drop the P2P-DRO message (e.g.,
+ because of its inability to store the state for the Hop-by-hop Route
+ that the P2P-DRO is establishing). To protect against the potential
+ failure of a P2P-DRO message to reach the Origin, the Target MAY
+ request that the Origin send back a P2P-DRO Acknowledgement
+ (P2P-DRO-ACK) message on receiving a P2P-DRO message. Failure to
+ receive such an acknowledgement within the P2P_DRO_ACK_WAIT_TIME
+ interval of sending the P2P-DRO message forces the Target to resend
+ the message (as described in Section 9.5).
+
+ This section defines two new RPL control message types: the P2P-DRO
+ Acknowledgement (P2P-DRO-ACK), with code 0x05; and the Secure
+ P2P-DRO-ACK, with code 0x85. A P2P-DRO-ACK message MUST travel as a
+ unicast message from the Origin to the Target. The IPv6 source and
+ destination addresses used in a P2P-DRO-ACK message MUST be global or
+ unique-local. The format of a base P2P-DRO-ACK message is shown in
+ Figure 3. Various fields in a P2P-DRO-ACK message MUST have the same
+ values as the corresponding fields in the P2P-DRO message. The field
+ marked as "Reserved" MUST be set to zero on transmission and MUST be
+
+
+
+Goyal, et al. Experimental [Page 31]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ ignored on reception. A Secure P2P-DRO-ACK message follows the
+ format shown in Figure 7 of [RFC6550], where the base format is the
+ same as the base P2P-DRO-ACK shown in Figure 3.
+
+11. Secure P2P-RPL Operation
+
+ Each RPL control message type, including those defined in this
+ document, has a secure version. A secure RPL control message is
+ identified by the value 1 in the most significant bit of the Code
+ field. Each secure RPL control message contains a Security section
+ (see Figures 7 and 8 of [RFC6550]) whose contents are described in
+ Section 6.1 of [RFC6550]. Sections 6.1, 10, and 19 of [RFC6550]
+ describe core RPL's security apparatus. These sections are
+ applicable to P2P-RPL's secure operation as well, except as
+ constrained in this section.
+
+ Core RPL allows a router to decide locally on a per-packet basis
+ whether to use security and, if yes, what Security Configuration (see
+ definition in Section 3) to use (the only exception being the
+ requirement to send a Secure DIO in response to a Secure DIS; see
+ Section 10.2 of [RFC6550]). In contrast, this document requires that
+ routers participating in a P2P-RPL route discovery follow the
+ Origin's lead regarding security. The Origin decides whether to use
+ security, and the particular Security Configuration to be used for
+ this purpose. All the routers participating in this route discovery
+ MUST generate only secure control messages if the Origin so decides
+ and MUST use for this purpose the Security Configuration that the
+ Origin chose. The Origin MUST NOT set the "Key Identifier Mode"
+ field inside the chosen Security Configuration to value 1, since this
+ setting indicates the use of a per-pair key, which is not suitable
+ for securing messages that travel by (link-local) multicast (e.g.,
+ DIOs) or that travel over multiple hops (e.g., P2P-DROs). The Origin
+ MUST use the chosen Security Configuration to secure all the control
+ messages (DIOs and P2P-DRO-ACKs) it generates.
+
+ A router MUST NOT join the temporary DAG being created for a P2P-RPL
+ route discovery if:
+
+ o it receives both secure and unsecure DIOs or Secure DIOs with
+ different Security Configurations pertaining to this route
+ discovery (i.e., referring to the same RPLInstanceID and DODAGID
+ combination) prior to joining; or
+
+ o it cannot use the Security Configuration found in the Secure DIOs
+ pertaining to this route discovery.
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 32]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ When a router (an Intermediate Router or a Target) joins a temporary
+ DAG being created using Secure DIOs, it MUST remember the common
+ Security Configuration used in the received Secure DIOs and MUST use
+ this configuration to secure all the control messages (DIOs and
+ P2P-DROs) it generates.
+
+ If an Intermediate Router (or a Target) encounters a control message
+ (a DIO or a P2P-DRO or a P2P-DRO-ACK) pertaining to this route
+ discovery that is either not secure or does not follow the Security
+ Configuration the router remembers for this route discovery, the
+ router MUST enter the "lock down" mode for the remainder of its stay
+ in this temporary DAG. An Intermediate Router (or a Target) in the
+ "lock down" mode MUST NOT generate or process any control messages
+ (irrespective of the Security Configuration used) pertaining to this
+ route discovery. If the Origin receives a control message (a
+ P2P-DRO) that does not follow the Security Configuration the Origin
+ has chosen for this route discovery, it MUST discard the received
+ message with no further processing.
+
+12. Packet Forwarding along a Route Discovered Using P2P-RPL
+
+ An Origin uses the Source Routing Header (SRH) [RFC6554] to send a
+ packet along a Source Route discovered using P2P-RPL.
+
+ Travel along a Hop-by-hop Route, established using P2P-RPL, requires
+ specifying the RPLInstanceID and the DODAGID (of the temporary DAG
+ used for the route discovery) to identify the route. This is because
+ a P2P-RPL route discovery does not use globally unique RPLInstanceID
+ values, and hence both the RPLInstanceID (a local value assigned by
+ the Origin) and the DODAGID (an IPv6 address of the Origin) are
+ required to uniquely identify a P2P-RPL Hop-by-hop Route to a
+ particular destination.
+
+ An Origin includes a RPL option [RFC6553] inside the IPv6 Hop-by-Hop
+ Options header of a packet to send it along a Hop-by-hop Route
+ established using P2P-RPL. For this purpose, the Origin MUST set the
+ DODAGID of the temporary DAG used for the route discovery as the
+ source IPv6 address of the packet. Further, the Origin MUST specify
+ inside the RPL option the RPLInstanceID of the temporary DAG used for
+ the route discovery and set the O flag inside the RPL option to one.
+ On receiving this packet, an Intermediate Router checks the O flag
+ and correctly infers the source IPv6 address of the packet as the
+ DODAGID of the Hop-by-hop Route. The router then uses the DODAGID,
+ the RPLInstanceID, and the destination address to identify the
+ routing state to be used to forward the packet further.
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 33]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+13. Interoperability with Core RPL
+
+ This section describes how RPL routers that implement P2P-RPL
+ interact with RPL routers that do not. In general, P2P-RPL operation
+ does not affect core RPL operation, and vice versa. However, core
+ RPL does allow a router to join a DAG as a leaf node even if it does
+ not understand the Mode of Operation (MOP) used in the DAG. Thus, a
+ RPL router that does not implement P2P-RPL may conceivably join a
+ temporary DAG being created for a P2P-RPL route discovery as a leaf
+ node and maintain its membership even though the DAG no longer
+ exists. This may impose a drain on the router's memory. However,
+ such RPL-only leaf nodes do not interfere with P2P-RPL route
+ discovery, since a leaf node may only generate a DIO advertising an
+ INFINITE_RANK and all routers implementing P2P-RPL are required to
+ discard such DIOs. Note that core RPL does not require that a router
+ join a DAG whose MOP it does not understand. Moreover, RPL routers
+ in a particular deployment may have strict restrictions on the DAGs
+ they may join, thereby mitigating the problem.
+
+ The P2P-RPL mechanism described in this document works best when all
+ the RPL routers in the LLN implement P2P-RPL. In general, the
+ ability to discover routes, as well as the quality of discovered
+ routes, would deteriorate with the fraction of RPL routers that
+ implement P2P-RPL.
+
+14. Security Considerations
+
+ In general, the security considerations for the operation of P2P-RPL
+ are similar to those for the operation of RPL (as described in
+ Section 19 of the RPL specification [RFC6550]). Sections 6.1 and 10
+ of [RFC6550] describe RPL's security framework, which provides data
+ confidentiality, authentication, replay protection, and delay
+ protection services. This security framework can also be used in
+ P2P-RPL after taking into account the constraints specified in
+ Section 11. P2P-RPL requires that all routers participating in a
+ secure route discovery use the Security Configuration chosen by the
+ Origin. The intention is to avoid compromising the overall security
+ of a route discovery due to some routers using a weaker Security
+ Configuration. With the "lock down" mechanism as described in
+ Section 11 in effect, it is unlikely that an Origin would accept a
+ route discovered under a Security Configuration other than the one it
+ intended. Any attempt to use a different Security Configuration
+ (than the one the Origin intended) is likely to result, in the worst
+ case, in the failure of the route discovery process. In the best-
+ case scenario, any such attempt by a rogue router would result in its
+ neighbors entering the "lock down" mode and acting as firewalls to
+ allow the route discovery to proceed in the remaining network.
+
+
+
+
+Goyal, et al. Experimental [Page 34]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ The RPL specification [RFC6550] describes three modes of security:
+ unsecured, preinstalled, and authenticated. In the unsecured mode,
+ secure control messages are not used, and the only available security
+ is the security provided by the link-layer protocols. In the
+ preinstalled mode, all the nodes use a preinstalled group key to join
+ a secure DAG as the "routers" or "hosts", where the term "router"
+ means a node that is capable of forwarding packets received from its
+ parents or children in the DAG, and the term "host" refers to nodes
+ that cannot function as "routers". In the authenticated mode, the
+ nodes can join a secure DAG as "hosts" using the preinstalled key but
+ then need to authenticate themselves to a key server to obtain the
+ key that will allow them to work as "routers". The temporary DAG
+ created for a P2P-RPL discovery cannot be used for routing packets.
+ Hence, it is not meaningful to say that a node joins this DAG as a
+ "router" or a "host" in the sense defined above. Hence, in P2P-RPL,
+ there is no distinction between the preinstalled and authenticated
+ modes. A router can join a temporary DAG created for a secure
+ P2P-RPL route discovery only if it can support the Security
+ Configuration in use, which also specifies the key in use. It does
+ not matter whether the key is preinstalled or dynamically acquired.
+ The router must have the key in use before it can join the DAG being
+ created for a secure P2P-RPL route discovery.
+
+ If a rogue router can support the Security Configuration in use (in
+ particular, if it knows the key in use), it can join the secure
+ P2P-RPL route discovery and cause various types of damage. Such a
+ rogue router could advertise false information in its DIOs in order
+ to include itself in the discovered route(s). It could generate
+ bogus P2P-DRO messages carrying bad routes or maliciously modify
+ genuine P2P-DRO messages it receives. A rogue router acting as the
+ Origin could launch denial-of-service attacks against the LLN
+ deployment by initiating fake P2P-RPL route discoveries; in this type
+ of scenario, RPL's authenticated mode of operation, where a node can
+ obtain the key to use for a P2P-RPL route discovery only after proper
+ authentication, would be useful.
+
+ Since a P2P-DRO message travels along a Source Route specified inside
+ the message, some of the security concerns that led to the
+ deprecation of Type 0 routing headers [RFC5095] may apply. To avoid
+ the possibility of a P2P-DRO message traveling in a routing loop,
+ this document requires that each Intermediate Router confirm that the
+ Source Route listed inside the message does not contain any routing
+ loop involving itself before the router could forward the message
+ further. As specified in Section 9.6, this check involves the router
+ making sure that its IPv6 addresses do not appear multiple times
+ inside the Source Route with one or more other IPv6 addresses in
+ between.
+
+
+
+
+Goyal, et al. Experimental [Page 35]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+15. IANA Considerations
+
+15.1. Additions to Mode of Operation
+
+ This document defines a new Mode of Operation, entitled "P2P Route
+ Discovery Mode of Operation" (see Section 6), assigned a value of 4
+ from the "Mode of Operation" space [RFC6550].
+
+ +-------+---------------------------------------+---------------+
+ | Value | Description | Reference |
+ +-------+---------------------------------------+---------------+
+ | 4 | P2P Route Discovery Mode of Operation | This document |
+ +-------+---------------------------------------+---------------+
+
+ Mode of Operation
+
+15.2. Additions to RPL Control Message Options
+
+ This document defines a new RPL option: "P2P Route Discovery" (see
+ Section 7), assigned a value of 0x0a from the "RPL Control Message
+ Options" space [RFC6550].
+
+ +-------+---------------------+---------------+
+ | Value | Meaning | Reference |
+ +-------+---------------------+---------------+
+ | 0x0a | P2P Route Discovery | This document |
+ +-------+---------------------+---------------+
+
+ RPL Control Message Options
+
+15.3. Additions to RPL Control Codes
+
+ This document defines the following new RPL messages:
+
+ o "P2P Discovery Reply Object" (see Section 8), assigned a value of
+ 0x04 from the "RPL Control Codes" space [RFC6550].
+
+ o "Secure P2P Discovery Reply Object" (see Section 8.1), assigned a
+ value of 0x84 from the "RPL Control Codes" space [RFC6550].
+
+ o "P2P Discovery Reply Object Acknowledgement" (see Section 10),
+ assigned a value of 0x05 from the "RPL Control Codes"
+ space [RFC6550].
+
+ o "Secure P2P Discovery Reply Object Acknowledgement" (see
+ Section 10), assigned a value of 0x85 from the "RPL Control Codes"
+ space [RFC6550].
+
+
+
+
+Goyal, et al. Experimental [Page 36]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ +--------+----------------------------------------+-----------------+
+ | Code | Description | Reference |
+ +--------+----------------------------------------+-----------------+
+ | 0x04 | P2P Discovery Reply Object | This document |
+ | 0x84 | Secure P2P Discovery Reply Object | This document |
+ | 0x05 | P2P Discovery Reply Object | This document |
+ | | Acknowledgement | |
+ | 0x85 | Secure P2P Discovery Reply Object | This document |
+ | | Acknowledgement | |
+ +--------+----------------------------------------+-----------------+
+
+ RPL Control Codes
+
+16. Known Issues and Future Work
+
+ This document is presented as an Experimental specification to
+ facilitate P2P-RPL's deployment in LLN scenarios where reactive P2P
+ route discovery is considered useful or necessary. It is anticipated
+ that, once sufficient operational experience has been gained, this
+ specification will be revised to progress it on to the Standards
+ Track. Experience reports regarding P2P-RPL implementation and
+ deployment are encouraged, particularly with respect to:
+
+ o Secure P2P-RPL operation (Section 11);
+
+ o Rules governing Trickle operation (Section 9.2);
+
+ o Values in the default DODAG Configuration Option (Section 6.1);
+
+ o The RPLInstanceID reuse policy (Section 6.1);
+
+ o Utility and implementation complexity of allowing multiple Target
+ addresses in a P2P-RPL route discovery.
+
+17. Acknowledgements
+
+ The authors gratefully acknowledge the contributions of the following
+ individuals (in alphabetical order) in the development of this
+ document: Dominique Barthel, Jakob Buron, Cedric Chauvenet, Thomas
+ Clausen, Robert Cragie, Ralph Droms, Adrian Farrel, Stephen Farrell,
+ Brian Haberman, Ted Humpal, Richard Kelsey, Phil Levis, Charles
+ Perkins, Joseph Reddy, Michael Richardson, Zach Shelby, Martin
+ Stiemerling, Pascal Thubert, Hristo Valev, and JP Vasseur.
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 37]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+18. References
+
+18.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko,
+ "The Trickle Algorithm", RFC 6206, March 2011.
+
+ [RFC6550] Winter, T., Thubert, P., 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, March 2012.
+
+ [RFC6551] Vasseur, JP., Kim, M., Pister, K., Dejean, N., and D.
+ Barthel, "Routing Metrics Used for Path Calculation in
+ Low-Power and Lossy Networks", RFC 6551, March 2012.
+
+ [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,
+ March 2012.
+
+18.2. Informative References
+
+ [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation
+ of Type 0 Routing Headers in IPv6", RFC 5095,
+ December 2007.
+
+ [RFC5826] Brandt, A., Buron, J., and G. Porcu, "Home Automation
+ Routing Requirements in Low-Power and Lossy Networks",
+ RFC 5826, April 2010.
+
+ [RFC5867] Martocci, J., De Mil, P., Riou, N., and W. Vermeylen,
+ "Building Automation Routing Requirements in Low-Power and
+ Lossy Networks", RFC 5867, June 2010.
+
+ [RFC6552] Thubert, P., "Objective Function Zero for the Routing
+ Protocol for Low-Power and Lossy Networks (RPL)",
+ RFC 6552, March 2012.
+
+ [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low-
+ Power and Lossy Networks (RPL) Option for Carrying RPL
+ Information in Data-Plane Datagrams", RFC 6553,
+ March 2012.
+
+
+
+
+
+Goyal, et al. Experimental [Page 38]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+ [RFC6998] Goyal, M., Ed., Baccelli, E., Brandt, A., and J. Martocci,
+ "A Mechanism to Measure the Routing Metrics along a Point-
+ to-Point Route in a Low-Power and Lossy Network",
+ RFC 6998, August 2013.
+
+ [ROLL-TERMS]
+ Vasseur, JP., "Terminology in Low power And Lossy
+ Networks", Work in Progress, March 2013.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 39]
+
+RFC 6997 Reactive P2P Route Discovery: P2P-RPL August 2013
+
+
+Authors' Addresses
+
+ Mukul Goyal (editor)
+ University of Wisconsin Milwaukee
+ 3200 N. Cramer St.
+ Milwaukee, WI 53201
+ USA
+
+ Phone: +1-414-229-5001
+ EMail: mukul@uwm.edu
+
+
+ Emmanuel Baccelli
+ INRIA
+
+ Phone: +33-169-335-511
+ EMail: Emmanuel.Baccelli@inria.fr
+ URI: http://www.emmanuelbaccelli.org/
+
+
+ Matthias Philipp
+ INRIA
+
+ Phone: +33-169-335-511
+ EMail: matthias-philipp@gmx.de
+
+
+ Anders Brandt
+ Sigma Designs
+ Emdrupvej 26A, 1.
+ Copenhagen, Dk-2100
+ Denmark
+
+ Phone: +45-29609501
+ EMail: abr@sdesigns.dk
+
+
+ Jerald Martocci
+ Johnson Controls
+ 507 E. Michigan Street
+ Milwaukee, WI 53202
+ USA
+
+ Phone: +1-414-524-4010
+ EMail: jerald.p.martocci@jci.com
+
+
+
+
+
+
+Goyal, et al. Experimental [Page 40]
+