Zum Hauptinhalt springen

2. Terminology

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​

2.  Terminology

2.1.  Requirements Language

   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
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   In addition, the terms "Extends" and "Amends" are used as per
   [NEW-TAGS], Section 3.

2.2.  Terms and Concepts

   In this document, readers will encounter terms and concepts that are
   discussed in the following:

   *  "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks"
      [RPL]

   *  "An Architecture for IPv6 over the Time-Slotted Channel Hopping
      Mode of IEEE 802.15.4 (6TiSCH)" [RFC9030]

   *  "Deterministic Networking Architecture" [RFC8655]

   *  "Using RPI Option Type, Routing Header for Source Routes, and
      IPv6-in-IPv6 Encapsulation in the RPL Data Plane" [RFC9008]

   *  "Reliable and Available Wireless (RAW) Architecture" [RAW-ARCH]

   *  "Terms Used in Routing for Low-Power and Lossy Networks" [RFC7102]

   The 6TiSCH, Deterministic Networking (DetNet), and RAW architectures
   utilize the terms "Track" and "recovery graph" to represent the same
   concept even though they are in different environments.  This
   document uses "Track" to represent that concept and only builds
   Tracks that are DODAGs, meaning that all links are oriented from
   ingress to egress.  This specification also utilizes the terms
   "segment" and "protection path", which are also defined in the RAW
   architecture.

   As opposed to routing trees, RPL DODAGs are typically constructed to
   provide redundancy and dynamically adapt the forwarding operation to
   the state of the Low-Power and Lossy Network (LLN) links.  Note that
   the plain forwarding operation over DODAGs does not provide
   redundancy for all nodes, since at least the node nearest to the Root
   does not have an alternate feasible successor.

   RAW solves that problem by defining protection paths that can be
   interleaved to form new paths that can be activated dynamically upon
   failures.  This requires additional control in order to make the
   routing decision early enough along the Track to route around the
   failure.

   RAW only uses single-ended DODAGs, meaning that they can be reversed
   in another DODAG by reversing all the links.  The ingress of the
   Track is the Root of the DODAG, whereas the egress is the Root of the
   reversed DODAG.  From the RAW perspective, single-ended DODAGs are
   special Tracks that only have forward links, and that can be
   leveraged to provide protection services by defining destination-
   oriented protection paths within the DODAG.

2.3.  Glossary

   This document often uses the following abbreviations:

   6LoRH:       6LoWPAN Routing Header

   6LR:         6LoWPAN Router (e.g., a RPL router in an LLN)

   ARQ:         Automatic Repeat Request (in other words, retries)

   CMO:         Control Message Option

   DAG:         Directed Acyclic Graph

   DAO:         Destination Advertisement Object

   DIO:         DODAG Information Object

   DODAG:       Destination-Oriented Directed Acyclic Graph.  A DAG with
                only one vertex (i.e., node) that has no outgoing edge
                (i.e., link).

   FEC:         Forward Error Correction

   GUA:         Global Unicast Address

   HARQ:        Hybrid Automatic Repeat Request (combines FEC and ARQ)

   LLN:         Low-Power and Lossy Network

   MOP:         Mode of Operation

   NSM-VIO:     Non-Storing Mode Via Information Option.  Source-routed
                VIO used in Non-Storing Mode P-DAO messages.

   P-DAO:       Projected DAO

   P-DAO-ACK:   Projected DAO Acknowledgment

   P-DAO-REQ:   Projected DAO Request

   P-Route:     Projected Route

   PCE:         Path Computation Element

   PDR-ACK      Projected DAO Request Acknowledgment

   PLR:         Point of Local Repair

   RAL:         RPL-Aware Leaf

   RAN:         RPL-Aware Node (either a RPL router or a RPL-Aware Leaf)

   RH:          Routing Header

   RIB:         Routing Information Base (i.e., the routing table)

   RPI:         RPL Packet Information

   RPL:         Routing Protocol for Low-Power and Lossy Networks

   RTO:         RPL Target Option

   RUL:         RPL-Unaware Leaf

   SIO:         Sibling Information Option

   SLO:         Service Level Objective

   SM-VIO:      Storing Mode Via Information Option.  Strict VIO used in
                Storing Mode P-DAO messages.

   SRH:         Source Routing Header (i.e., IPv6 RH type 3); see
                Section 2.4.5.7.2.

   SRH-6LoRH:   Source Routing Header 6LoRH.  A compressed form of SRH
                defined in "IPv6 over Low-Power Wireless Personal Area
                Network (6LoWPAN) Routing Header" [RFC8138].

   TIO:         Transit Information Option

   ULA:         Unique Local Address

   VIO:         Via Information Option.  It can be an SM-VIO or NSM-VIO.

2.4.  Domain Terms

   This specification uses the terminology defined in the sections that
   follow.

2.4.1.  Projected Route

   A RPL P-Route is a RPL route that is computed remotely by a PCE and
   installed and maintained by a RPL Root on behalf of the PCE.  It is
   installed as a state that signals that destinations (i.e., Targets)
   are reachable via or along a sequence of nodes.

2.4.2.  Projected DAO

   A Projected DAO (P-DAO) is a DAO message that is used to install a
   P-Route.

2.4.3.  Path

   Quoting (non-normatively) the definition of path in Section 1.3.3 of
   [INT-ARCH]:

   |  At a given moment, all the IP datagrams from a particular source
   |  host to a particular destination host will typically traverse the
   |  same sequence of gateways.  We use the term "path" for this
   |  sequence.  Note that a path is uni-directional; it is not unusual
   |  to have different paths in the two directions between a given host
   |  pair.

   See Section 3.1.1 of [RAW-ARCH] for a longer, more modern definition
   of path.

   It follows that the general acceptance of a path is a linear sequence
   of nodes, as opposed to a multi-dimensional graph.  In the context of
   this document, a path is observed by following one copy of a packet
   that is injected in a Track and possibly replicated within.

2.4.4.  Routing Stretch

   RPL is anisotropic, meaning that it is directional or, more
   precisely, polar.  RPL does not behave the same way "downwards" (Root
   towards leaves) with _multicast_ DODAG Information Object (DIO)
   messages that form the DODAG versus "upwards" (leaves towards Root)
   with _unicast_ DAO messages that follow the DODAG.  This is in
   contrast with traditional IGPs that operate the same way in all
   directions and are thus called isotropic.

   The term "routing stretch" denotes the length of a path, in
   comparison to the length of the shortest path, which can be an
   abstract concept in RPL when the metrics are statistical and dynamic,
   and the concept of distance varies with the Objective Function.

   The RPL DODAG optimizes Point-to-Multipoint (P2MP) paths (from the
   Root) and Multipoint-to-Point (MP2P) paths (towards the Root), but
   the Point-to-Point (P2P) traffic has to follow the same DODAG.
   Following the DODAG, the RPL datapath passes via a common parent in
   Storing Mode and via the Root in Non-Storing Mode.  This typically
   involves more hops and more latency than the minimum possible for a
   directional (i.e., forward) P2P path that an isotropic protocol would
   compute.  We refer to this elongated path as stretched.

2.4.5.  Track

   The concept of Track is inherited from the 6TiSCH architecture
   [RFC9030] and equals that of a recovery graph in the RAW architecture
   [RAW-ARCH].  A Track is a networking graph that can be followed to
   transport packets with equivalent treatment; as opposed to other
   definitions of a path (see Section 1.3.3 of [INT-ARCH] and
   Section 3.1.1 of [RAW-ARCH], a Track is not necessarily linear.  It
   may contain multiple paths that may fork and rejoin and that may
   enable RAW Packet Replication, Elimination, and Ordering Functions
   (PREOF).

   Figure 1 illustrates the mapping of the DODAG with the generic
   concept of a Track, with the DODAG Root acting as the ingress for the
   Track, and the mapping of protection paths and segments, i.e., only
   forward segments, meaning that they are directional and progressing
   towards the destination.  Note that East is represented on the left
   since the packets are forwarded East-West.

   North East                                   North West

          A ==> B ==> C -=- F ==> G ==> H     T1
        /              \   /              \ /
      I                  O                 E -=- T2
        \              /   \              / \
          P ==> Q ==> R -=- T ==> U ==> V     T3

   South East                                   South West

         I: ingress
         E: egress
         T1, T2, T3: external targets

                    Figure 1: A Track and Its Components

   Of note:

   I ==> A ==> B ==> C:  A segment to targets F and O

   I --> F --> E:  A protection path to targets T1, T2, T3

   I, A, B, C, F, G, H, E:  A path to T1, T2, T3

   This specification builds Tracks that are DODAGs oriented towards a
   Track ingress, and the forward direction for packets is from the
   Track ingress to one of the possible multiple Track egress nodes,
   which is also down the DODAG.

   The Track may be strictly connected, meaning that the vertices are
   adjacent, or loosely connected, meaning that the vertices are
   connected using segments that are associated to the same Track.

2.4.5.1.  TrackID

   A RPLInstanceID (typically of a Local Instance) identifies a Track
   using the namespace owned by the Track ingress.  For Local Instances,
   the TrackID is associated with the IPv6 address of the Track ingress
   that is used as the DODAGID, and together they form a unique
   identification of the Track (see the definition of DODAGID in
   Section 2 of [RPL]).

2.4.5.2.  Namespace

   The term "namespace" is used to refer to the scope of the TrackID.
   The TrackID is locally significant within its namespace.  For Local
   Instances, the namespace is identified by the DODAGID for the Track,
   and the tuple (DODAGID, TrackID) is globally unique.  For Global
   Instances, the namespace is the whole RPL domain.

2.4.5.3.  Complex Track

   A Complex Track is a Track that can be traversed via more than one
   path (e.g., a DODAG).

2.4.5.4.  Stand Alone

   Stand alone refers to a segment or a protection path that is
   installed with a single P-DAO that fully defines the path, e.g., a
   stand-alone segment is installed with a single Storing Mode Via
   Information Option (SM-VIO) all the way between the ingress and
   egress.

2.4.5.5.  Stitching

   This specification uses the term "stitching" to indicate that a Track
   is piped to another one, meaning that traffic out of the first Track
   is injected into the other Track.

2.4.5.6.  Protection Path

   The concept of protection path is defined in the RAW architecture
   [RAW-ARCH] as an end-to-end forward serial path.  With this
   specification, a protection path is installed by the Root of the main
   DODAG using a Non-Storing Mode P-DAO message, e.g., I --> F --> E in
   Figure 1.

   As the Non-Storing Mode Via Information Option (NSM-VIO) can only
   signal sequences of nodes, it takes one Non-Storing Mode P-DAO
   message per protection path to signal the structure of a Complex
   Track.

   Each NSM-VIO for the same TrackID but with a different SegmentID
   signals a different protection path that the Track ingress adds to
   the topology.

2.4.5.7.  Segment

   A segment is a serial path formed by a strict sequence of nodes along
   which a P-Route is installed, e.g., I ==> A ==> B ==> C in Figure 1.
   With this specification, a segment is typically installed by the Root
   of the main DODAG using Storing Mode P-DAO messages.  A segment is
   used as the topological edge of a Track joining the loose steps along
   the protection paths that form the structure of a Complex Track.  The
   same segment may be leveraged by more than one protection path where
   the protection paths overlap.

   Since this specification builds only DODAGs, all segments are
   oriented from the ingress (East) to egress (West), as opposed to the
   general Track model in the RAW architecture [RAW-ARCH], which allows
   North/South segments that can be bidirectional as well.

2.4.5.7.1.  Section of a Segment

   The section of a segment refers to a continuous subset of a segment
   that may be replaced while the segment remains.  For instance, in
   segment A=>B=>C=>D=>E=>F, say that the link C to D might be
   misbehaving.  The section B=>C=>D=>E in the segment may be replaced
   by B=>C'=>D'=>E to route around the problem.  The segment becomes
   A=>B=>C'=>D'=>E=>F.

2.4.5.7.2.  Segment Routing and SRH

   In a Non-Storing Mode RPL domain, the IPv6 Routing Header used for
   source routing is the RPL Source Route Header as defined in
   [RFC6554].  This specification operates in that context and uses the
   acronym SRH to mean IPv6 RH type 3, as opposed to IPv6 RH type 4
   defined in [RFC8754] for Segment Routing over IPv6 (SRv6) operation.

   If the network is a 6LoWPAN network, the expectation is that the SRH
   is compressed and encoded as a 6LoWPAN Routing Header (6LoRH), as
   specified in Section 5 of [RFC8138].

   This specification uses the term "Segment Routing" generically to
   refer to using source routing to hop over segments.  As such,
   forwarding along segments as specified hereafter can be seen as a
   form of Segment Routing [RFC8402] that leverages the RPL Source Route
   Header for its operation.

   Outside of LLNs, the RPL network may be less constrained and operated
   in Storing Mode, as discussed in Section 7.1.  In that case, this
   specification could be extended to accommodate the SRv6 RH.