Skip to main content

1. Introduction

This section preserves the RFC text for RPL DAO Projection and root-initiated routing state, including P-DAO, P-DAO-ACK, P-DAO-REQ, PDR-ACK, VIO, SIO, RPI, SRH, Storing and Non-Storing P-Routes, Tracks, IANA registrations, and normative behavior.

Original RFC Text

1.  Introduction

The Routing Protocol for Low-Power and Lossy Networks (RPL) [RPL], is
a Distance Vector protocol that is well-suited for application in a
variety of low-energy Internet of Things (IoT) networks where
constrained nodes cannot maintain the full view of the topology and
stretched paths are acceptable (as opposed to the signaling and state
overhead involved in maintaining the shortest paths across).
Additionally, RPL is anisotropic, meaning that its operation depends
on the orientation of the links, down from or up towards the Root,
with the default route advertised down and more-specific paths
advertised up along a limited set of links.

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 IP backbone. Routers inside the DODAG route along the
graph up towards the Root for the default route and down towards
destinations in the RPL domain for more-specific routes. As a
prerequisite, this specification expects a pre-existing RPL Instance
with an associated DODAG and RPL Root, which are referred to as the
main Instance, main DODAG, and main Root, respectively. The main
Instance is operated in RPL Non-Storing Mode of Operation (MOP).

With this specification, an abstract routing function called a Path
Computation Element (PCE) (e.g., located in a central controller or
collocated with the main Root) interacts with the main Root to
compute additional paths between nodes in the main Instance. In Non-
Storing Mode, the base topological information to be passed to the
PCE, i.e., the knowledge of the main DODAG, is already available at
the Root. This specification introduces protocol extensions that
enrich the topological information available to the Root with sibling
relationships that are usable but not leveraged to form the main
DODAG.

Based on usage, path length, and knowledge of available resources
such as battery levels and reservable buffers in the nodes, the PCE,
which has a global visibility of the system, can optimize the
computed routes for application needs, including the capability to
provide path redundancy. This specification also introduces protocol
extensions that enable the Root to project (i.e., advertise from a
remote location) the computed paths in the RPL domain as Projected
Routes (a.k.a. P-Routes) on behalf of the PCE.

A P-Route may be installed in either Storing or Non-Storing Mode,
potentially resulting in hybrid situations where the Mode in which
the P-Route operates is different from that of the RPL main Instance.
P-Routes can be used as stand-alone segments meant to reduce the size
of the Source Routing Headers (SRHs), leveraging loose source routing
operations down the main RPL DODAG. A P-Route can also be used as a
protection path, and it can be combined and interleaved with other
P-Routes to form a recovery graph called a Track. A Track is
signaled as a separate RPL Instance that is associated with a main
RPL Instance such that the RPL routers that form the Track are also
members of the main DODAG. The Track provides underlay shortcuts
using its own RIB, which is separate from the RIB of the main
Instance and has a higher precedence.