diff options
Diffstat (limited to 'doc/rfc/rfc9030.txt')
-rw-r--r-- | doc/rfc/rfc9030.txt | 3228 |
1 files changed, 3228 insertions, 0 deletions
diff --git a/doc/rfc/rfc9030.txt b/doc/rfc/rfc9030.txt new file mode 100644 index 0000000..bfed0b1 --- /dev/null +++ b/doc/rfc/rfc9030.txt @@ -0,0 +1,3228 @@ + + + + +Internet Engineering Task Force (IETF) P. Thubert, Ed. +Request for Comments: 9030 Cisco Systems +Category: Informational May 2021 +ISSN: 2070-1721 + + + An Architecture for IPv6 over the Time-Slotted Channel Hopping Mode of + IEEE 802.15.4 (6TiSCH) + +Abstract + + This document describes a network architecture that provides low- + latency, low-jitter, and high-reliability packet delivery. It + combines a high-speed powered backbone and subnetworks using IEEE + 802.15.4 time-slotted channel hopping (TSCH) to meet the requirements + of low-power wireless deterministic applications. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + 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 candidates for any level of Internet + Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9030. + +Copyright Notice + + Copyright (c) 2021 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 + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction + 2. Terminology + 2.1. New Terms + 2.2. Abbreviations + 2.3. Related Documents + 3. High-Level Architecture + 3.1. A Non-broadcast Multi-access Radio Mesh Network + 3.2. A Multi-Link Subnet Model + 3.3. TSCH: a Deterministic MAC Layer + 3.4. Scheduling TSCH + 3.5. Distributed vs. Centralized Routing + 3.6. Forwarding over TSCH + 3.7. 6TiSCH Stack + 3.8. Communication Paradigms and Interaction Models + 4. Architecture Components + 4.1. 6LoWPAN (and RPL) + 4.1.1. RPL-Unaware Leaves and 6LoWPAN ND + 4.1.2. 6LBR and RPL Root + 4.2. Network Access and Addressing + 4.2.1. Join Process + 4.2.2. Registration + 4.3. TSCH and 6top + 4.3.1. 6top + 4.3.2. Scheduling Functions and the 6top Protocol + 4.3.3. 6top and RPL Objective Function Operations + 4.3.4. Network Synchronization + 4.3.5. Slotframes and CDU Matrix + 4.3.6. Distributing the Reservation of Cells + 4.4. Schedule Management Mechanisms + 4.4.1. Static Scheduling + 4.4.2. Neighbor-to-Neighbor Scheduling + 4.4.3. Remote Monitoring and Schedule Management + 4.4.4. Hop-by-Hop Scheduling + 4.5. On Tracks + 4.5.1. General Behavior of Tracks + 4.5.2. Serial Track + 4.5.3. Complex Track with Replication and Elimination + 4.5.4. DetNet End-to-End Path + 4.5.5. Cell Reuse + 4.6. Forwarding Models + 4.6.1. Track Forwarding + 4.6.2. IPv6 Forwarding + 4.6.3. Fragment Forwarding + 4.7. Advanced 6TiSCH Routing + 4.7.1. Packet Marking and Handling + 4.7.2. Replication, Retries, and Elimination + 5. IANA Considerations + 6. Security Considerations + 6.1. Availability of Remote Services + 6.2. Selective Jamming + 6.3. MAC-Layer Security + 6.4. Time Synchronization + 6.5. Validating ASN + 6.6. Network Keying and Rekeying + 7. References + 7.1. Normative References + 7.2. Informative References + Appendix A. Related Work in Progress + A.1. Unchartered IETF Work Items + A.1.1. 6TiSCH Zero-Touch Security + A.1.2. 6TiSCH Track Setup + A.1.3. Using BIER in a 6TiSCH Network + A.2. External (Non-IETF) Work Items + Acknowledgments + Contributors + Author's Address + +1. Introduction + + Wireless networks enable a wide variety of devices of any size to get + interconnected, often at a very low marginal cost per device, at any + range, and in circumstances where wiring may be impractical, for + instance, on fast-moving or rotating devices. + + On the other hand, Deterministic Networking maximizes the packet + delivery ratio within a bounded latency so as to enable mission- + critical machine-to-machine (M2M) operations. Applications that need + such networks are presented in [RFC8578] and [RAW-USE-CASES], which + presents a number of additional use cases for Reliable and Available + Wireless networks (RAW). The considered applications include + professional media, Industrial Automation and Control Systems (IACS), + building automation, in-vehicle command and control, commercial + automation and asset tracking with mobile scenarios, as well as + gaming, drones and edge robotic control, and home automation + applications. + + The Time-Slotted Channel Hopping (TSCH) [RFC7554] mode of the IEEE + Std 802.15.4 [IEEE802154] Medium Access Control (MAC) was introduced + with the IEEE Std 802.15.4e [IEEE802154e] amendment and is now + retrofitted in the main standard. For all practical purposes, this + document is expected to be insensitive to the revisions of that + standard, which is thus referenced without a date. TSCH is both a + Time-Division Multiplexing (TDM) and a Frequency-Division + Multiplexing (FDM) technique, whereby a different channel can be used + for each transmission. TSCH allows the scheduling of transmissions + for deterministic operations and applies to the slower and most + energy-constrained wireless use cases. + + The scheduled operation provides for a more reliable experience, + which can be used to monitor and manage resources, e.g., energy and + water, in a more efficient fashion. + + Proven deterministic networking standards for use in process control, + including ISA100.11a [ISA100.11a] and WirelessHART [WirelessHART], + have demonstrated the capabilities of the IEEE Std 802.15.4 TSCH MAC + for high reliability against interference, low-power consumption on + well-known flows, and its applicability for Traffic Engineering (TE) + from a central controller. + + To enable the convergence of information technology (IT) and + operational technology (OT) in Low-Power and Lossy Networks (LLNs), + the 6TiSCH architecture supports an IETF suite of protocols over the + IEEE Std 802.15.4 TSCH MAC to provide IP connectivity for energy and + otherwise constrained wireless devices. + + The 6TiSCH architecture relies on IPv6 [RFC8200] and the use of + routing to provide large scaling capabilities. The addition of a + high-speed federating backbone adds yet another degree of scalability + to the design. The backbone is typically a Layer 2 transit link such + as an Ethernet bridged network, but it can also be a more complex + routed structure. + + The 6TiSCH architecture introduces an IPv6 multi-link subnet model + that is composed of a federating backbone and a number of IEEE Std + 802.15.4 TSCH low-power wireless networks federated and synchronized + by Backbone Routers. If the backbone is a Layer 2 transit link, then + the Backbone Routers can operate as an IPv6 Neighbor Discovery (IPv6 + ND) proxy [RFC4861]. + + The 6TiSCH architecture leverages 6LoWPAN [RFC4944] to adapt IPv6 to + the constrained media and the Routing Protocol for Low-Power and + Lossy Networks (RPL) [RFC6550] for the distributed routing + operations. + + Centralized routing refers to a model where routes are computed and + resources are allocated from a central controller. This is + particularly helpful to schedule deterministic multihop + transmissions. In contrast, distributed routing refers to a model + that relies on concurrent peer-to-peer protocol exchanges for TSCH + resource allocation and routing operations. + + The architecture defines mechanisms to establish and maintain routing + and scheduling in a centralized, distributed, or mixed fashion, for + use in multiple OT environments. It is applicable in particular to + highly scalable solutions such as those used in Advanced Metering + Infrastructure [AMI] solutions that leverage distributed routing to + enable multipath forwarding over large LLN meshes. + +2. Terminology + +2.1. New Terms + + The document does not reuse terms from the IEEE Std 802.15.4 + [IEEE802154] standard such as "path" or "link", which bear a meaning + that is quite different from classical IETF parlance. + + This document adds the following terms: + + 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4): 6TiSCH defines an + adaptation sublayer for IPv6 over TSCH called 6top, a set of + protocols for setting up a TSCH schedule in distributed approach, + and a security solution. 6TiSCH may be extended in the future for + other MAC/Physical Layer (PHY) pairs providing a service similar + to TSCH. + + 6top (6TiSCH Operation Sublayer): The next higher layer of the IEEE + Std 802.15.4 TSCH MAC layer. 6top provides the abstraction of an + IP link over a TSCH MAC, schedules packets over TSCH cells, and + exposes a management interface to schedule TSCH cells. + + 6P (6top Protocol): The protocol defined in [RFC8480]. 6P enables + Layer 2 peers to allocate, move, or de-allocate cells in their + respective schedules to communicate. 6P operates at the 6top + sublayer. + + 6P transaction: A 2-way or 3-way sequence of 6P messages used by + Layer 2 peers to modify their communication schedule. + + ASN (Absolute Slot Number): Defined in [IEEE802154], the ASN is the + total number of timeslots that have elapsed since the Epoch time + when the TSCH network started. Incremented by one at each + timeslot. It is wide enough to not roll over in practice. + + bundle: A group of equivalent scheduled cells, i.e., cells + identified by different slotOffset/channelOffset, which are + scheduled for a same purpose, with the same neighbor, with the + same flags, and the same slotframe. The size of the bundle refers + to the number of cells it contains. For a given slotframe length, + the size of the bundle translates directly into bandwidth. A + bundle is a local abstraction that represents a half-duplex link + for either sending or receiving, with bandwidth that amounts to + the sum of the cells in the bundle. + + Layer 2 vs. Layer 3 bundle: Bundles are associated with either Layer + 2 (switching) or Layer 3 (routing) forwarding operations. A pair + of Layer 3 bundles (one for each direction) maps to an IP link + with a neighbor, whereas a set of Layer 2 bundles (of an + "arbitrary" cardinality and direction) corresponds to the relation + of one or more incoming bundle(s) from the previous-hop + neighbor(s) with one or more outgoing bundle(s) to the next-hop + neighbor(s) along a Track as part of the switching role, which may + include replication and elimination. + + CCA (Clear Channel Assessment): A mechanism defined in [IEEE802154] + whereby nodes listen to the channel before sending to detect + ongoing transmissions from other parties. Because the network is + synchronized, CCA cannot be used to detect colliding transmissions + within the same network, but it can be used to detect other radio + networks in the vicinity. + + cell: A unit of transmission resource in the CDU matrix, a cell is + identified by a slotOffset and a channelOffset. A cell can be + scheduled or unscheduled. + + Channel Distribution/Usage (CDU) matrix: : A matrix of cells (i,j) + representing the spectrum (channel) distribution among the + different nodes in the 6TiSCH network. The CDU matrix has width + in timeslots equal to the period of the network scheduling + operation, and height equal to the number of available channels. + Every cell (i,j) in the CDU, identified by slotOffset/ + channelOffset, belongs to a specific chunk. + + channelOffset: Identifies a row in the TSCH schedule. The number of + channelOffset values is bounded by the number of available + frequencies. The channelOffset translates into a frequency with a + function that depends on the absolute time when the communication + takes place, resulting in a channel-hopping operation. + + chunk: A well-known list of cells, distributed in time and + frequency, within a CDU matrix. A chunk represents a portion of a + CDU matrix. The partition of the CDU matrix in chunks is globally + known by all the nodes in the network to support the appropriation + process, which is a negotiation between nodes within an + interference domain. A node that manages to appropriate a chunk + gets to decide which transmissions will occur over the cells in + the chunk within its interference domain, i.e., a parent node will + decide when the cells within the appropriated chunk are used and + by which node among its children. + + CoJP (Constrained Join Protocol): The Constrained Join Protocol + (CoJP) enables a pledge to securely join a 6TiSCH network and + obtain network parameters over a secure channel. "Constrained + Join Protocol (CoJP) for 6TiSCH" [RFC9031] defines the minimal + CoJP setup with pre-shared keys defined. In that mode, CoJP can + operate with a single round-trip exchange. + + dedicated cell: A cell that is reserved for a given node to transmit + to a specific neighbor. + + deterministic network: The generic concept of a deterministic + network is defined in the "Deterministic Networking Architecture" + [RFC8655] document. When applied to 6TiSCH, it refers to the + reservation of Tracks, which guarantees an end-to-end latency and + optimizes the Packet Delivery Ratio (PDR) for well-characterized + flows. + + distributed cell reservation: A reservation of a cell done by one or + more in-network entities. + + distributed Track reservation: A reservation of a Track done by one + or more in-network entities. + + EB (Enhanced Beacon): A special frame defined in [IEEE802154] used + by a node, including the Join Proxy (JP), to announce the presence + of the network. It contains enough information for a pledge to + synchronize to the network. + + hard cell: A scheduled cell that the 6top sublayer may not relocate. + + hopping sequence: Ordered sequence of frequencies, identified by a + Hopping_Sequence_ID, used for channel hopping when translating the + channelOffset value into a frequency. + + IE (Information Element): Type-Length-Value containers placed at the + end of the MAC header and used to pass data between layers or + devices. Some IE identifiers are managed by the IEEE + [IEEE802154]. Some IE identifiers are managed by the IETF + [RFC8137]. [RFC9032] uses one subtype to support the selection of + the Join Proxy. + + join process: The overall process that includes the discovery of the + network by pledge(s) and the execution of the join protocol. + + join protocol: The protocol that allows the pledge to join the + network. The join protocol encompasses authentication, + authorization, and parameter distribution. The join protocol is + executed between the pledge and the JRC. + + joined node: The new device after having completed the join process, + often just called a node. + + JP (Join Proxy): A node already part of the 6TiSCH network that + serves as a relay to provide connectivity between the pledge and + the JRC. The JP announces the presence of the network by + regularly sending EB frames. + + JRC (Join Registrar/Coordinator): Central entity responsible for the + authentication, authorization, and configuration of the pledge. + + link: A communication facility or medium over which nodes can + communicate at the link layer, which is the layer immediately + below IP. In 6TiSCH, the concept is implemented as a collection + of Layer 3 bundles. Note: the IETF parlance for the term "link" + is adopted, as opposed to the IEEE Std 802.15.4 terminology. + + operational technology: OT refers to technology used in automation, + for instance in industrial control networks. The convergence of + IT and OT is the main object of the Industrial Internet of Things + (IIOT). + + pledge: A new device that attempts to join a 6TiSCH network. + + (to) relocate a cell: The action operated by the 6top sublayer of + changing the slotOffset and/or channelOffset of a soft cell. + + (to) schedule a cell: The action of turning an unscheduled cell into + a scheduled cell. + + scheduled cell: A cell that is assigned a neighbor MAC address + (broadcast address is also possible) and one or more of the + following flags: TX, RX, Shared, and Timekeeping. A scheduled + cell can be used by the IEEE Std 802.15.4 TSCH implementation to + communicate. A scheduled cell can either be a hard or a soft + cell. + + SF (6top Scheduling Function): The cell management entity that adds + or deletes cells dynamically based on application networking + requirements. The cell negotiation with a neighbor is done using + 6P. + + SFID (6top Scheduling Function Identifier): A 4-bit field + identifying an SF. + + shared cell: A cell marked with both the TX and Shared flags. This + cell can be used by more than one transmitter node. A back-off + algorithm is used to resolve contention. + + slotframe: A collection of timeslots repeating in time, analogous to + a superframe in that it defines periods of communication + opportunities. It is characterized by a slotframe_ID and a + slotframe_size. Multiple slotframes can coexist in a node's + schedule, i.e., a node can have multiple activities scheduled in + different slotframes based on the priority of its packets/traffic + flows. The timeslots in the slotframe are indexed by the + slotOffset; the first timeslot is at slotOffset 0. + + slotOffset: A column in the TSCH schedule, i.e., the number of + timeslots since the beginning of the current iteration of the + slotframe. + + soft cell: A scheduled cell that the 6top sublayer can relocate. + + time source neighbor: A neighbor that a node uses as its time + reference, and to which it needs to keep its clock synchronized. + + timeslot: A basic communication unit in TSCH that allows a + transmitter node to send a frame to a receiver neighbor and that + allows the receiver neighbor to optionally send back an + acknowledgment. + + Track: A Track is a Directed Acyclic Graph (DAG) that is used as a + complex multihop path to the destination(s) of the path. In the + case of unicast traffic, the Track is a Destination-Oriented DAG + (DODAG) where the Root of the DODAG is the destination of the + unicast traffic. A Track enables replication, elimination, and + reordering functions on the way (more on those functions in + [RFC8655]). A Track reservation locks physical resources such as + cells and buffers in every node along the DODAG. A Track is + associated with an owner, which can be for instance the + destination of the Track. + + TrackID: A TrackID is either globally unique or locally unique to + the Track owner, in which case the identification of the owner + must be provided together with the TrackID to provide a full + reference to the Track. Typically, the Track owner is the ingress + of the Track, the IPv6 source address of packets along the Track + can be used as identification of the owner, and a local InstanceID + [RFC6550] in the namespace of that owner can be used as TrackID. + If the Track is reversible, then the owner is found in the IPv6 + destination address of a packet coming back along the Track. In + that case, a RPL Packet Information [RFC6550] in an IPv6 packet + can unambiguously identify the Track and can be expressed in a + compressed form using [RFC8138]. + + TSCH: A medium access mode of the IEEE Std 802.15.4 [IEEE802154] + standard that uses time synchronization to achieve ultra-low-power + operation and channel hopping to enable high reliability. + + TSCH Schedule: A matrix of cells, with each cell indexed by a + slotOffset and a channelOffset. The TSCH schedule contains all + the scheduled cells from all slotframes and is sufficient to + qualify the communication in the TSCH network. The number of + channelOffset values (the "height" of the matrix) is equal to the + number of available frequencies. + + Unscheduled Cell: A cell that is not used by the IEEE Std 802.15.4 + TSCH implementation. + +2.2. Abbreviations + + This document uses the following abbreviations: + + 6BBR: 6LoWPAN Backbone Router (router with a proxy ND function) + + 6LBR: 6LoWPAN Border Router (authoritative on Duplicate Address + Detection (DAD)) + + 6LN: 6LoWPAN Node + + 6LR: 6LoWPAN Router (relay to the registration process) + + 6CIO: Capability Indication Option + + (E)ARO: (Extended) Address Registration Option + + (E)DAR: (Extended) Duplicate Address Request + + (E)DAC: (Extended) Duplicate Address Confirmation + + DAD: Duplicate Address Detection + + DODAG: Destination-Oriented Directed Acyclic Graph + + LLN: Low-Power and Lossy Network (a typical IoT network) + + NA: Neighbor Advertisement + + NCE: Neighbor Cache Entry + + ND: Neighbor Discovery + + NDP: Neighbor Discovery Protocol + + PCE: Path Computation Element + + NME: Network Management Entity + + ROVR: Registration Ownership Verifier (pronounced rover) + + RPL: IPv6 Routing Protocol for LLNs (pronounced ripple) + + RA: Router Advertisement + + RS: Router Solicitation + + TSCH: Time-Slotted Channel Hopping + + TID: Transaction ID (a sequence counter in the EARO) + +2.3. Related Documents + + The document conforms to the terms and models described in [RFC3444] + and [RFC5889], uses the vocabulary and the concepts defined in + [RFC4291] for the IPv6 architecture, and refers to [RFC4080] for + reservation. + + The document uses domain-specific terminology defined or referenced + in the following: + + * 6LoWPAN ND: "Neighbor Discovery Optimization for IPv6 over + Low-Power Wireless Personal Area Networks (6LoWPANs)" [RFC6775] + and "Registration Extensions for IPv6 over Low-Power Wireless + Personal Area Network (6LoWPAN) Neighbor Discovery" [RFC8505], + + * "Terms Used in Routing for Low-Power and Lossy Networks" + [RFC7102], and + + * RPL: "Objective Function Zero for the Routing Protocol for + Low-Power and Lossy Networks (RPL)" [RFC6552] and "RPL: IPv6 + Routing Protocol for Low-Power and Lossy Networks" [RFC6550]. + + Other terms in use in LLNs are found in "Terminology for + Constrained-Node Networks" [RFC7228]. + + Readers are expected to be familiar with all the terms and concepts + that are discussed in the following: + + * "Neighbor Discovery for IP version 6 (IPv6)" [RFC4861] and + + * "IPv6 Stateless Address Autoconfiguration" [RFC4862]. + + In addition, readers would benefit from reading the following prior + to this specification for a clear understanding of the art in ND- + proxying and binding: + + * "Problem Statement and Requirements for IPv6 over Low-Power + Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], + + * "Multi-Link Subnet Issues" [RFC4903], and + + * "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): + Overview, Assumptions, Problem Statement, and Goals" [RFC4919]. + +3. High-Level Architecture + +3.1. A Non-broadcast Multi-access Radio Mesh Network + + A 6TiSCH network is an IPv6 [RFC8200] subnet that, in its basic + configuration illustrated in Figure 1, is a single Low-Power and + Lossy Network (LLN) operating over a synchronized TSCH-based mesh. + + ---+-------- ............ ------------ + | External Network | + | +-----+ + +-----+ | NME | + | | LLN Border | PCE | + | | router (6LBR) +-----+ + +-----+ + o o o + o o o o o + o o 6LoWPAN + RPL o o + o o o o + + Figure 1: Basic Configuration of a 6TiSCH Network + + Inside a 6TiSCH LLN, nodes rely on 6LoWPAN header compression + (6LoWPAN HC) [RFC6282] to encode IPv6 packets. From the perspective + of the network layer, a single LLN interface (typically an IEEE Std + 802.15.4-compliant radio) may be seen as a collection of links with + different capabilities for unicast or multicast services. + + 6TiSCH nodes join a mesh network by attaching to nodes that are + already members of the mesh (see Section 4.2.1). The security + aspects of the join process are further detailed in Section 6. In a + mesh network, 6TiSCH nodes are not necessarily reachable from one + another at Layer 2, and an LLN may span over multiple links. + + This forms a homogeneous non-broadcast multi-access (NBMA) subnet, + which is beyond the scope of IPv6 Neighbor Discovery (IPv6 ND) + [RFC4861] [RFC4862]. 6LoWPAN Neighbor Discovery (6LoWPAN ND) + [RFC6775] [RFC8505] specifies extensions to IPv6 ND that enable ND + operations in this type of subnet that can be protected against + address theft and impersonation with [RFC8928]. + + Once it has joined the 6TiSCH network, a node acquires IPv6 addresses + and registers them using 6LoWPAN ND. This guarantees that the + addresses are unique and protects the address ownership over the + subnet, more in Section 4.2.2. + + Within the NBMA subnet, RPL [RFC6550] enables routing in the so- + called "route-over" fashion, either in storing (stateful) or non- + storing (stateless, with routing headers) mode. From there, some + nodes can act as routers for 6LoWPAN ND and RPL operations, as + detailed in Section 4.1. + + With TSCH, devices are time synchronized at the MAC level. The use + of a particular RPL Instance for time synchronization is discussed in + Section 4.3.4. With this mechanism, the time synchronization starts + at the RPL Root and follows the RPL loopless routing topology. + + RPL forms Destination-Oriented Directed Acyclic Graphs (DODAGs) + within Instances of the protocol, each Instance being associated with + an Objective Function (OF) to form a routing topology. A particular + 6TiSCH node, the LLN Border Router (6LBR), acts as RPL Root, 6LoWPAN + HC terminator, and Border Router for the LLN to the outside. The + 6LBR is usually powered. More on RPL Instances can be found in + Section 3.1 of RPL [RFC6550], in particular "3.1.2 RPL Identifiers" + and "3.1.3 Instances, DODAGs, and DODAG Versions". RPL adds + artifacts in the data packets that are compressed with a 6LoWPAN + Routing Header (6LoRH) [RFC8138]. In a preexisting network, the + compression can be globally turned on in a DODAG once all nodes are + migrated to support [RFC8138] using [RFC9035]. + + Additional routing and scheduling protocols may be deployed to + establish on-demand, peer-to-peer routes with particular + characteristics inside the 6TiSCH network. This may be achieved in a + centralized fashion by a Path Computation Element (PCE) [PCE] that + programs both the routes and the schedules inside the 6TiSCH nodes or + in a distributed fashion by using a reactive routing protocol and a + hop-by-hop scheduling protocol. + + This architecture expects that a 6LoWPAN node can connect as a leaf + to a RPL network, where the leaf support is the minimal functionality + to connect as a host to a RPL network without the need to participate + in the full routing protocol. The architecture also expects that a + 6LoWPAN node that is unaware of RPL may also connect as described in + [RFC9010]. + +3.2. A Multi-Link Subnet Model + + An extended configuration of the subnet comprises multiple LLNs as + illustrated in Figure 2. In the extended configuration, a Routing + Registrar [RFC8505] may be connected to the node that acts as the RPL + Root and/or 6LoWPAN 6LBR and provides connectivity to the larger + campus or factory plant network over a high-speed backbone or a back- + haul link. The Routing Registrar may perform IPv6 ND proxy + operations; redistribute the registration in a routing protocol such + as OSPF [RFC5340] or BGP [RFC2545]; or inject a route in a mobility + protocol such as Mobile IPv6 (MIPv6) [RFC6275], Network Mobility + (NEMO) [RFC3963], or Locator/ID Separation Protocol (LISP) [RFC6830]. + + Multiple LLNs can be interconnected and possibly synchronized over a + backbone, which can be wired or wireless. The backbone can operate + with IPv6 ND procedures [RFC4861] [RFC4862] or a hybrid of IPv6 ND + and 6LoWPAN ND [RFC6775] [RFC8505] [RFC8928]. + + | + +-----+ +-----+ +-----+ + (default) | | (Optional) | | | | IPv6 + Router | | 6LBR | | | | Node + +-----+ +-----+ +-----+ + | Backbone side | | + --------+---+--------------------+-+---------------+------+--- + | | | + +-----------+ +-----------+ +-----------+ + | Routing | | Routing | | Routing | + | Registrar | | Registrar | | Registrar | + +-----------+ +-----------+ +-----------+ + o Wireless side o o o o + o o o o o o o o o o o o o o + o 6TiSCH o 6TiSCH o o o o 6TiSCH o + o o LLN o o o o LLN o o LLN o + o o o o o o o o o o o o o o + + Figure 2: Extended Configuration of a 6TiSCH Network + + A Routing Registrar that performs proxy IPv6 ND operations over the + backbone on behalf of the 6TiSCH nodes is called a Backbone Router + (6BBR) [RFC8929]. The 6BBRs are placed along the wireless edge of a + backbone and federate multiple wireless links to form a single multi- + link subnet. The 6BBRs synchronize with one another over the + backbone, so as to ensure that the multiple LLNs that form the IPv6 + subnet stay tightly synchronized. + + The use of multicast can also be reduced on the backbone with a + registrar that would contribute to Duplicate Address Detection as + well as address lookup using only unicast request/response exchanges. + [ND-UNICAST-LOOKUP] is a proposed method that presents an example of + how this could be achieved with an extension of [RFC8505], using an + optional 6LBR as a subnet-level registrar, as illustrated in + Figure 2. + + As detailed in Section 4.1, the 6LBR that serves the LLN and the Root + of the RPL network need to share information about the devices that + are learned through either 6LoWPAN ND or RPL, but not both. The + preferred way of achieving this is to co-locate or combine them. The + combined RPL Root and 6LBR may be co-located with the 6BBR, or + directly attached to the 6BBR. In the latter case, it leverages the + extended registration process defined in [RFC8505] to proxy the + 6LoWPAN ND registration to the 6BBR on behalf of the LLN nodes, so + that the 6BBR may in turn perform classical ND operations over the + backbone as a proxy. + + The "Deterministic Networking Architecture" [RFC8655] studies Layer 3 + aspects of Deterministic Networks and covers networks that span + multiple Layer 2 domains. If the backbone is deterministic (such as + defined by the Time-Sensitive Networking (TSN) Task Group at IEEE), + then the Backbone Router ensures that the end-to-end deterministic + behavior is maintained between the LLN and the backbone. + +3.3. TSCH: a Deterministic MAC Layer + + Though at a different time scale (several orders of magnitude), both + IEEE Std 802.1 TSN and IEEE Std 802.15.4 TSCH standards provide + deterministic capabilities to the point that a packet pertaining to a + certain flow may traverse a network from node to node following a + precise schedule, as a train that enters and then leaves intermediate + stations at precise times along its path. + + With TSCH, time is formatted into timeslots, and individual + communication cells are allocated to unicast or broadcast + communication at the MAC level. The time-slotted operation reduces + collisions, saves energy, and enables more closely engineering the + network for deterministic properties. The channel-hopping aspect is + a simple and efficient technique to combat multipath fading and co- + channel interference. + + 6TiSCH builds on the IEEE Std 802.15.4 TSCH MAC and inherits its + advanced capabilities to enable them in multiple environments where + they can be leveraged to improve automated operations. The 6TiSCH + architecture also inherits the capability to perform a centralized + route computation to achieve deterministic properties, though it + relies on the IETF DetNet architecture [RFC8655] and IETF components + such as the PCE [PCE] for the protocol aspects. + + On top of this inheritance, 6TiSCH adds capabilities for distributed + routing and scheduling operations based on RPL and capabilities for + negotiating schedule adjustments between peers. These distributed + routing and scheduling operations simplify the deployment of TSCH + networks and enable wireless solutions in a larger variety of use + cases from operational technology in general. Examples of such use + cases in industrial environments include plant setup and + decommissioning, as well as monitoring a multiplicity of minor + notifications such as corrosion measurements, events, and access of + local devices by mobile workers. + +3.4. Scheduling TSCH + + A scheduling operation allocates cells in a TDM/FDM matrix called a + CDU either to individual transmissions or as multi-access shared + resources. The CDU matrix can be formatted in chunks that can be + allocated exclusively to particular nodes to enable distributed + scheduling without collision. More in Section 4.3.5. + + At the MAC layer, the schedule of a 6TiSCH node is the collection of + the timeslots at which it must wake up for transmission, and the + channels to which it should either send or listen at those times. + The schedule is expressed as one or more repeating slotframes. + Slotframes may collide and require a device to wake up at a same + time, in which case the slotframe with the highest priority is + actionable. + + The 6top sublayer (see Section 4.3 for more) hides the complexity of + the schedule from the upper layers. The link abstraction that IP + traffic utilizes is composed of a pair of Layer 3 cell bundles, one + to receive and one to transmit. Some of the cells may be shared, in + which case the 6top sublayer must perform some arbitration. + + Scheduling enables multiple simultaneous communications in a same + interference domain using different channels; but a node equipped + with a single radio can only either transmit or receive on one + channel at any point of time. Scheduled cells that fulfill the same + role, e.g., receive IP packets from a peer, are grouped in bundles. + + The 6TiSCH architecture identifies four ways a schedule can be + managed and CDU cells can be allocated: Static Scheduling, Neighbor- + to-Neighbor Scheduling, Centralized (or Remote) Monitoring and + Schedule Management, and Hop-by-Hop Scheduling. + + Static Scheduling: This refers to the minimal 6TiSCH operation + whereby a static schedule is configured for the whole network for + use in a Slotted ALOHA [S-ALOHA] fashion. The static schedule is + distributed through the native methods in the TSCH MAC layer and + does not preclude other scheduling operations coexisting on a same + 6TiSCH network. A static schedule is necessary for basic + operations such as the join process and for interoperability + during the network formation, which is specified as part of the + Minimal 6TiSCH Configuration [RFC8180]. + + Neighbor-to-Neighbor Scheduling: This refers to the dynamic + adaptation of the bandwidth of the links that are used for IPv6 + traffic between adjacent peers. Scheduling Functions such as the + "6TiSCH Minimal Scheduling Function (MSF)" [RFC9033] influence the + operation of the MAC layer to add, update, and remove cells in its + own and its peer's schedules using 6P [RFC8480] for the + negotiation of the MAC resources. + + Centralized (or Remote) Monitoring and Schedule Management: This + refers to the central computation of a schedule and the capability + to forward a frame based on the cell of arrival. In that case, + the related portion of the device schedule as well as other device + resources are managed by an abstract Network Management Entity + (NME), which may cooperate with the PCE to minimize the + interaction with, and the load on, the constrained device. This + model is the TSCH adaption of the DetNet architecture [RFC8655], + and it enables Traffic Engineering with deterministic properties. + + Hop-by-Hop Scheduling: This refers to the possibility of reserving + cells along a path for a particular flow using a distributed + mechanism. + + It is not expected that all use cases will require all those + mechanisms. Static Scheduling with minimal configuration is the only + one that is expected in all implementations, since it provides a + simple and solid basis for convergecast routing and time + distribution. + + A deeper dive into those mechanisms can be found in Section 4.4. + +3.5. Distributed vs. Centralized Routing + + 6TiSCH enables a mixed model of centralized routes and distributed + routes. Centralized routes can, for example, be computed by an + entity such as a PCE. 6TiSCH leverages RPL [RFC6550] for + interoperable, distributed routing operations. + + Both methods may inject routes into the routing tables of the 6TiSCH + routers. In either case, each route is associated with a 6TiSCH + topology that can be a RPL Instance topology or a Track. The 6TiSCH + topology is indexed by a RPLInstanceID, in a format that reuses the + RPLInstanceID as defined in RPL. + + RPL [RFC6550] is applicable to Static Scheduling and Neighbor-to- + Neighbor Scheduling. The architecture also supports a centralized + routing model for Remote Monitoring and Schedule Management. It is + expected that a routing protocol that is more optimized for point-to- + point routing than RPL [RFC6550], such as the "Asymmetric + AODV-P2P-RPL in Low-Power and Lossy Networks" (AODV-RPL) [AODV-RPL], + which derives from the "Ad Hoc On-demand Distance Vector (AODVv2) + Routing" [AODVv2], will be selected for Hop-by-Hop Scheduling. + + Both RPL and PCE rely on shared sources such as policies to define + global and local RPLInstanceIDs that can be used by either method. + It is possible for centralized and distributed routing to share the + same topology. Generally they will operate in different slotframes, + and centralized routes will be used for scheduled traffic and will + have precedence over distributed routes in case of conflict between + the slotframes. + +3.6. Forwarding over TSCH + + The 6TiSCH architecture supports three different forwarding models. + One is the classical IPv6 Forwarding, where the node selects a + feasible successor at Layer 3 on a per-packet basis and based on its + routing table. The second derives from Generalized MPLS (GMPLS) for + so-called Track Forwarding, whereby a frame received at a particular + timeslot can be switched into another timeslot at Layer 2 without + regard to the upper-layer protocol. The third model is the 6LoWPAN + Fragment Forwarding, which allows the forwarding individual 6LoWPAN + fragments along a route that is set up by the first fragment. + + In more detail: + + IPv6 Forwarding: This is the classical IP forwarding model, with a + Routing Information Base (RIB) that is installed by RPL and used + to select a feasible successor per packet. The packet is placed + on an outgoing link, which the 6top sublayer maps into a (Layer 3) + bundle of cells, and scheduled for transmission based on QoS + parameters. Besides RPL, this model also applies to any routing + protocol that may be operated in the 6TiSCH network and + corresponds to all the distributed scheduling models: Static, + Neighbor-to-Neighbor, and Hop-by-Hop Scheduling. + + GMPLS Track Forwarding: This model corresponds to the Remote + Monitoring and Schedule Management. In this model, a central + controller (hosting a PCE) computes and installs the schedules in + the devices per flow. The incoming (Layer 2) bundle of cells from + the previous node along the path determines the outgoing (Layer 2) + bundle towards the next hop for that flow as determined by the + PCE. The programmed sequence for bundles is called a Track and + can assume DAG shapes that are more complex than a simple direct + sequence of nodes. + + 6LoWPAN Fragment Forwarding: This is a hybrid model that derives + from IPv6 forwarding for the case where packets must be fragmented + at the 6LoWPAN sublayer. The first fragment is forwarded like any + IPv6 packet and leaves a state in the intermediate hops to enable + forwarding of the next fragments that do not have an IP header + without the need to recompose the packet at every hop. + + A deeper dive into these operations can be found in Section 4.6. + + Table 1 summarizes how the forwarding models apply to the various + routing and scheduling possibilities: + + +==================+==========+======================+ + | Forwarding Model | Routing | Scheduling | + +==================+==========+======================+ + | classical IPv6 / | RPL | Static (Minimal | + | 6LoWPAN Fragment | | Configuration) | + | | +----------------------+ + | | | Neighbor-to-Neighbor | + | | | (SF+6P) | + | +----------+----------------------+ + | | Reactive | Hop-by-Hop (AODV- | + | | | RPL) | + +------------------+----------+----------------------+ + | GMPLS Track | PCE | Remote Monitoring | + | Forwarding | | and Schedule Mgt | + +------------------+----------+----------------------+ + + Table 1 + +3.7. 6TiSCH Stack + + The IETF proposes multiple techniques for implementing functions + related to routing, transport, or security. + + The 6TiSCH architecture limits the possible variations of the stack + and recommends a number of base elements for LLN applications to + control the complexity of possible deployments and device + interactions and to limit the size of the resulting object code. In + particular, UDP [RFC0768], IPv6 [RFC8200], and the Constrained + Application Protocol (CoAP) [RFC7252] are used as the transport/ + binding of choice for applications and management as opposed to TCP + and HTTP. + + The resulting protocol stack is represented in Figure 3: + + +--------+--------+ + | Applis | CoJP | + +--------+--------+--------------+-----+ + | CoAP / OSCORE | 6LoWPAN ND | RPL | + +-----------------+--------------+-----+ + | UDP | ICMPv6 | + +-----------------+--------------------+ + | IPv6 | + +--------------------------------------+----------------------+ + | 6LoWPAN HC / 6LoRH HC | Scheduling Functions | + +--------------------------------------+----------------------+ + | 6top inc. 6top Protocol | + +-------------------------------------------------------------+ + | IEEE Std 802.15.4 TSCH | + +-------------------------------------------------------------+ + + Figure 3: 6TiSCH Protocol Stack + + RPL is the routing protocol of choice for LLNs. So far, there is no + identified need to define a 6TiSCH-specific Objective Function. The + Minimal 6TiSCH Configuration [RFC8180] describes the operation of RPL + over a static schedule used in a Slotted ALOHA fashion [S-ALOHA], + whereby all active slots may be used for emission or reception of + both unicast and multicast frames. + + 6LoWPAN header compression [RFC6282] is used to compress the IPv6 and + UDP headers, whereas the 6LoWPAN Routing Header (6LoRH) [RFC8138] is + used to compress the RPL artifacts in the IPv6 data packets, + including the RPL Packet Information (RPI), the IP-in-IP + encapsulation to/from the RPL Root, and the Source Routing Header + (SRH) in non-storing mode. "Using RPI Option Type, Routing Header + for Source Routes, and IPv6-in-IPv6 Encapsulation in the RPL Data + Plane" [RFC9008] provides the details on when headers or + encapsulation are needed. + + The Object Security for Constrained RESTful Environments (OSCORE) + [RFC8613] is leveraged by the Constrained Join Protocol (CoJP) and is + expected to be the primary protocol for the protection of the + application payload as well. The application payload may also be + protected by the Datagram Transport Layer Security (DTLS) [RFC6347] + sitting either under CoAP or over CoAP so it can traverse proxies. + + The 6TiSCH Operation Sublayer (6top) is a sublayer of a Logical Link + Control (LLC) that provides the abstraction of an IP link over a TSCH + MAC and schedules packets over TSCH cells, as further discussed in + the next sections, providing in particular dynamic cell allocation + with the 6top Protocol (6P) [RFC8480]. + + The reference stack presented in this document was implemented and + interoperability-tested by a combination of open source, IETF, and + ETSI efforts. One goal is to help other bodies to adopt the stack as + a whole, making the effort to move to an IPv6-based IoT stack easier. + + For a particular environment, some of the choices that are available + in this architecture may not be relevant. For instance, RPL is not + required for star topologies and mesh-under Layer 2 routed networks, + and the 6LoWPAN compression may not be sufficient for ultra- + constrained cases such as some Low-Power Wide Area (LPWA) networks. + In such cases, it is perfectly doable to adopt a subset of the + selection that is presented hereafter and then select alternate + components to complete the solution wherever needed. + +3.8. Communication Paradigms and Interaction Models + + Section 2.1 provides the terms of Communication Paradigms and + Interaction Models in combination with "On the Difference between + Information Models and Data Models" [RFC3444]. A Communication + Paradigm is an abstract view of a protocol exchange and has an + Information Model for the information that is being exchanged. In + contrast, an Interaction Model is more refined and points to standard + operation such as a Representational State Transfer (REST) "GET" + operation and matches a Data Model for the data that is provided over + the protocol exchange. + + Section 2.1.3 of [RPL-APPLICABILITY] and its following sections + discuss application-layer paradigms such as source-sink, which is a + multipeer-to-multipeer model primarily used for alarms and alerts, + publish-subscribe, which is typically used for sensor data, as well + as peer-to-peer and peer-to-multipeer communications. + + Additional considerations on duocast -- one sender, two receivers for + redundancy -- and its N-cast generalization are also provided. Those + paradigms are frequently used in industrial automation, which is a + major use case for IEEE Std 802.15.4 TSCH wireless networks with + [ISA100.11a] and [WirelessHART], which provides a wireless access to + [HART] applications and devices. + + This document focuses on Communication Paradigms and Interaction + Models for packet forwarding and TSCH resources (cells) management. + Management mechanisms for the TSCH schedule at the link layer (one + hop), network layer (multihop along a Track), and application layer + (remote control) are discussed in Section 4.4. Link-layer frame + forwarding interactions are discussed in Section 4.6, and network- + layer packet routing is addressed in Section 4.7. + +4. Architecture Components + +4.1. 6LoWPAN (and RPL) + + A RPL DODAG is formed of a Root, a collection of routers, and leaves + that are hosts. Hosts are nodes that do not forward packets that + they did not generate. RPL-aware leaves will participate in RPL to + advertise their own addresses, whereas RPL-unaware leaves depend on a + connected RPL router to do so. RPL interacts with 6LoWPAN ND at + multiple levels, in particular at the Root and in the RPL-unaware + leaves. + +4.1.1. RPL-Unaware Leaves and 6LoWPAN ND + + RPL needs a set of information to advertise a leaf node through a + Destination Advertisement Object (DAO) message and establish + reachability. + + "Routing for RPL Leaves" [RFC9010] details the basic interaction of + 6LoWPAN ND and RPL and enables a plain 6LN that supports [RFC8505] to + obtain return connectivity via the RPL network as a RPL-unaware leaf. + The leaf indicates that it requires reachability services for the + Registered Address from a Routing Registrar by setting an 'R' flag in + the Extended Address Registration Option [RFC8505], and it provides a + TID that maps to the "Path Sequence" defined in Section 6.7.8 of + [RFC6550], and its operation is defined in Section 7.2 of [RFC6550]. + + [RFC9010] also enables the leaf to signal with the RPLInstanceID that + it wants to participate by using the Opaque field of the EARO. On + the backbone, the RPLInstanceID is expected to be mapped to an + overlay that matches the RPL Instance, e.g., a Virtual LAN (VLAN) or + a virtual routing and forwarding (VRF) instance. + + Though, at the time of this writing, the above specification enables + a model where the separation is possible, this architecture + recommends co-locating the functions of 6LBR and RPL Root. + +4.1.2. 6LBR and RPL Root + + With the 6LoWPAN ND [RFC6775], information on the 6LBR is + disseminated via an Authoritative Border Router Option (ABRO) in RA + messages. [RFC8505] extends [RFC6775] to enable a registration for + routing and proxy ND. The capability to support [RFC8505] is + indicated in the 6LoWPAN Capability Indication Option (6CIO). The + discovery and liveliness of the RPL Root are obtained through RPL + [RFC6550] itself. + + When 6LoWPAN ND is coupled with RPL, the 6LBR and RPL Root + functionalities are co-located in order that the address of the 6LBR + is indicated by RPL DODAG Information Object (DIO) messages and to + associate the ROVR from the Extended Duplicate Address Request/ + Confirmation (EDAR/EDAC) exchange [RFC8505] with the state that is + maintained by RPL. + + Section 7 of [RFC9010] specifies how the DAO messages are used to + reconfirm the registration, thus eliminating a duplication of + functionality between DAO and EDAR/EDAC messages, as illustrated in + Figure 6. [RFC9010] also provides the protocol elements that are + needed when the 6LBR and RPL Root functionalities are not co-located. + + Even though the Root of the RPL network is integrated with the 6LBR, + it is logically separated from the Backbone Router (6BBR) that is + used to connect the 6TiSCH LLN to the backbone. This way, the Root + has all information from 6LoWPAN ND and RPL about the LLN devices + attached to it. + + This architecture also expects that the Root of the RPL network + (proxy-)registers the 6TiSCH nodes on their behalf to the 6BBR, for + whatever operation the 6BBR performs on the backbone, such as ND + proxy or redistribution in a routing protocol. This relies on an + extension of the 6LoWPAN ND registration described in [RFC8929]. + + This model supports the movement of a 6TiSCH device across the multi- + link subnet and allows the proxy registration of 6TiSCH nodes deep + into the 6TiSCH LLN by the 6LBR / RPL Root. This is why in [RFC8505] + the Registered Address is signaled in the Target Address field of the + Neighbor Solicitation (NS) message as opposed to the IPv6 Source + Address, which, in the case of a proxy registration, is that of the + 6LBR / RPL Root itself. + +4.2. Network Access and Addressing + +4.2.1. Join Process + + A new device, called the pledge, undergoes the join protocol to + become a node in a 6TiSCH network. This usually occurs only once + when the device is first powered on. The pledge communicates with + the Join Registrar/Coordinator (JRC) of the network through a Join + Proxy (JP), a radio neighbor of the pledge. + + The JP is discovered though MAC-layer beacons. When multiple JPs + from possibly multiple networks are visible, using trial and error + until an acceptable position in the right network is obtained becomes + inefficient. [RFC9032] adds a new subtype in the Information Element + that was delegated to the IETF [RFC8137] and provides visibility into + the network that can be joined and the willingness of the JP and the + Root to be used by the pledge. + + The join protocol provides the following functionality: + + * Mutual authentication + + * Authorization + + * Parameter distribution to the pledge over a secure channel + + The Minimal Security Framework for 6TiSCH [RFC9031] defines the + minimal mechanisms required for this join process to occur in a + secure manner. The specification defines the Constrained Join + Protocol (CoJP), which is used to distribute the parameters to the + pledge over a secure session established through OSCORE [RFC8613] and + which describes the secure configuration of the network stack. In + the minimal setting with pre-shared keys (PSKs), CoJP allows the + pledge to join after a single round-trip exchange with the JRC. The + provisioning of the PSK to the pledge and the JRC needs to be done + out of band, through a 'one-touch' bootstrapping process, which + effectively enrolls the pledge into the domain managed by the JRC. + + In certain use cases, the 'one-touch' bootstrapping is not feasible + due to the operational constraints, and the enrollment of the pledge + into the domain needs to occur in-band. This is handled through a + 'zero-touch' extension of the Minimal Security Framework for 6TiSCH. + The zero-touch extension [ZEROTOUCH-JOIN] leverages the + "Bootstrapping Remote Secure Key Infrastructure (BRSKI)" [RFC8995] + work to establish a shared secret between a pledge and the JRC + without necessarily having them belong to a common (security) domain + at join time. This happens through inter-domain communication + occurring between the JRC of the network and the domain of the + pledge, represented by a fourth entity, Manufacturer Authorized + Signing Authority (MASA). Once the zero-touch exchange completes, + the CoJP exchange defined in [RFC9031] is carried over the secure + session established between the pledge and the JRC. + + Figure 4 depicts the join process and where a Link-Local Address + (LLA) is used, versus a Global Unicast Address (GUA). + + 6LoWPAN Node 6LR 6LBR Join Registrar MASA + (pledge) (Join Proxy) (Root) /Coordinator (JRC) + | | | | | + | 6LoWPAN ND |6LoWPAN ND+RPL | IPv6 network |IPv6 network | + | LLN link |Route-Over mesh|(the Internet)|(the Internet)| + | | | | | + | Layer 2 | | | | + |Enhanced Beacon| | | | + |<--------------| | | | + | | | | | + | NS (EARO) | | | | + | (for the LLA) | | | | + |-------------->| | | | + | NA (EARO) | | | | + |<--------------| | | | + | | | | | + | (Zero-touch | | | | + | handshake) | (Zero-touch handshake) | (Zero-touch | + | using LLA | using GUA | handshake) | + |<------------->|<---------------------------->|<------------>| + | | | | | + | CoJP Join Req | | | | \ + | using LLA | | | | | + |-------------->| | | | | + | | CoJP Join Request | | | + | | using GUA | | | + | |----------------------------->| | | C + | | | | | | o + | | CoJP Join Response | | | J + | | using GUA | | | P + | |<-----------------------------| | | + |CoJP Join Resp | | | | | + | using LLA | | | | | + |<--------------| | | | / + | | | | | + + Figure 4: Join Process in a Multi-Link Subnet. Parentheses () + denote optional exchanges. + +4.2.2. Registration + + Once the pledge successfully completes the CoJP exchange and becomes + a network node, it obtains the network prefix from neighboring + routers and registers its IPv6 addresses. As detailed in + Section 4.1, the combined 6LoWPAN ND 6LBR and Root of the RPL network + learn information such as an identifier (device EUI-64 [RFC6775] or a + ROVR [RFC8505] (from 6LoWPAN ND)) and the updated Sequence Number + (from RPL), and perform 6LoWPAN ND proxy registration to the 6BBR on + behalf of the LLN nodes. + + Figure 5 illustrates the initial IPv6 signaling that enables a 6LN to + form a global address and register it to a 6LBR using 6LoWPAN ND + [RFC8505]. It is then carried over RPL to the RPL Root and then to + the 6BBR. This flow happens just once when the address is created + and first registered. + + 6LoWPAN Node 6LR 6LBR 6BBR + (RPL leaf) (router) (Root) + | | | | + | 6LoWPAN ND |6LoWPAN ND+RPL | 6LoWPAN ND | IPv6 ND + | LLN link |Route-Over mesh|Ethernet/serial| Backbone + | | | | + | RS (mcast) | | | + |-------------->| | | + |-----------> | | | + |------------------> | | + | RA (unicast) | | | + |<--------------| | | + | | | | + | NS(EARO) | | | + |-------------->| | | + | 6LoWPAN ND | Extended DAR | | + | |-------------->| | + | | | NS(EARO) | + | | |-------------->| + | | | | NS-DAD + | | | |------> + | | | | (EARO) + | | | | + | | | NA(EARO) |<timeout> + | | |<--------------| + | | Extended DAC | | + | |<--------------| | + | NA(EARO) | | | + |<--------------| | | + | | | | + + Figure 5: Initial Registration Flow over Multi-Link Subnet + + Figure 6 illustrates the repeating IPv6 signaling that enables a 6LN + to keep a global address alive and registered with its 6LBR using + 6LoWPAN ND to the 6LR, RPL to the RPL Root, and then 6LoWPAN ND again + to the 6BBR, which avoids repeating the Extended DAR/DAC flow across + the network when RPL can suffice as a keep-alive mechanism. + + 6LoWPAN Node 6LR 6LBR 6BBR + (RPL leaf) (router) (Root) + | | | | + | 6LoWPAN ND |6LoWPAN ND+RPL | 6LoWPAN ND | IPv6 ND + | LLN link |Route-Over mesh| ant IPv6 link | Backbone + | | | + | | | | + | NS(EARO) | | | + |-------------->| | | + | NA(EARO) | | | + |<--------------| | | + | | DAO | | + | |-------------->| | + | | DAO-ACK | | + | |<--------------| | + | | | NS(EARO) | + | | |-------------->| + | | | NA(EARO) | + | | |<--------------| + | | | | + | | | | + + Figure 6: Next Registration Flow over Multi-Link Subnet + + As the network builds up, a node should start as a leaf to join the + RPL network and may later turn into both a RPL-capable router and a + 6LR, so as to accept leaf nodes recursively joining the network. + +4.3. TSCH and 6top + +4.3.1. 6top + + 6TiSCH expects a high degree of scalability together with a + distributed routing functionality based on RPL. To achieve this + goal, the spectrum must be allocated in a way that allows for spatial + reuse between zones that will not interfere with one another. In a + large and spatially distributed network, a 6TiSCH node is often in a + good position to determine usage of the spectrum in its vicinity. + + With 6TiSCH, the abstraction of an IPv6 link is implemented as a pair + of bundles of cells, one in each direction. IP links are only + enabled between RPL parents and children. The 6TiSCH operation is + optimal when the size of a bundle minimizes both the energy wasted in + idle listening and the packet drops due to congestion loss, while + packets are forwarded within an acceptable latency. + + Use cases for distributed routing are often associated with a + statistical distribution of best-effort traffic with variable needs + for bandwidth on each individual link. The 6TiSCH operation can + remain optimal if RPL parents can adjust, dynamically and with enough + reactivity to match the variations of best-effort traffic, the amount + of bandwidth that is used to communicate between themselves and their + children, in both directions. In turn, the agility to fulfill the + needs for additional cells improves when the number of interactions + with other devices and the protocol latencies are minimized. + + 6top is a logical link control sitting between the IP layer and the + TSCH MAC layer, which provides the link abstraction that is required + for IP operations. The 6top Protocol, 6P, which is specified in + [RFC8480], is one of the services provided by 6top. In particular, + the 6top services are available over a management API that enables an + external management entity to schedule cells and slotframes, and + allows the addition of complementary functionality, for instance, a + Scheduling Function that manages a dynamic schedule based on observed + resource usage as discussed in Section 4.4.2. For this purpose, the + 6TiSCH architecture differentiates "soft" cells and "hard" cells. + +4.3.1.1. Hard Cells + + "Hard" cells are cells that are owned and managed by a separate + scheduling entity (e.g., a PCE) that specifies the slotOffset/ + channelOffset of the cells to be added/moved/deleted, in which case + 6top can only act as instructed and may not move hard cells in the + TSCH schedule on its own. + +4.3.1.2. Soft Cells + + In contrast, "soft" cells are cells that 6top can manage locally. + 6top contains a monitoring process that monitors the performance of + cells and that can add and remove soft cells in the TSCH schedule to + adapt to the traffic needs, or move one when it performs poorly. To + reserve a soft cell, the higher layer does not indicate the exact + slotOffset/channelOffset of the cell to add, but rather the resulting + bandwidth and QoS requirements. When the monitoring process triggers + a cell reallocation, the two neighbor devices communicating over this + cell negotiate its new position in the TSCH schedule. + +4.3.2. Scheduling Functions and the 6top Protocol + + In the case of soft cells, the cell management entity that controls + the dynamic attribution of cells to adapt to the dynamics of variable + rate flows is called a Scheduling Function (SF). + + There may be multiple SFs that react more or less aggressively to the + dynamics of the network. + + An SF may be seen as divided between an upper bandwidth-adaptation + logic that is unaware of the particular technology used to obtain and + release bandwidth and an underlying service that maps those needs in + the actual technology. In the case of TSCH using the 6top Protocol + as illustrated in Figure 7, this means mapping the bandwidth onto + cells. + + +------------------------+ +------------------------+ + | Scheduling Function | | Scheduling Function | + | Bandwidth adaptation | | Bandwidth adaptation | + +------------------------+ +------------------------+ + | Scheduling Function | | Scheduling Function | + | TSCH mapping to cells | | TSCH mapping to cells | + +------------------------+ +------------------------+ + | 6top cells negotiation | <- 6P -> | 6top cells negotiation | + +------------------------+ +------------------------+ + Device A Device B + + Figure 7: SF/6P Stack in 6top + + The SF relies on 6top services that implement the 6top Protocol (6P) + [RFC8480] to negotiate the precise cells that will be allocated or + freed based on the schedule of the peer. For instance, it may be + that a peer wants to use a particular timeslot that is free in its + schedule, but that timeslot is already in use by the other peer to + communicate with a third party on a different cell. 6P enables the + peers to find an agreement in a transactional manner that ensures the + final consistency of the nodes' state. + + MSF [RFC9033] is one of the possible Scheduling Functions. MSF uses + the rendezvous slot from [RFC8180] for network discovery, neighbor + discovery, and any other broadcast. + + For basic unicast communication with any neighbor, each node uses a + receive cell at a well-known slotOffset/channelOffset, which is + derived from a hash of their own MAC address. Nodes can reach any + neighbor by installing a transmit (shared) cell with slotOffset/ + channelOffset derived from the neighbor's MAC address. + + For child-parent links, MSF continuously monitors the load between + parents and children. It then uses 6P to install or remove unicast + cells whenever the current schedule appears to be under-provisioned + or over-provisioned. + +4.3.3. 6top and RPL Objective Function Operations + + An implementation of a RPL [RFC6550] Objective Function (OF), such as + the RPL Objective Function Zero (OF0) [RFC6552] that is used in the + Minimal 6TiSCH Configuration [RFC8180] to support RPL over a static + schedule, may leverage for its internal computation the information + maintained by 6top. + + An OF may require metrics about reachability, such as the Expected + Transmission Count (ETX) metric [RFC6551]. 6top creates and + maintains an abstract neighbor table, and this state may be leveraged + to feed an OF and/or store OF information as well. A neighbor table + entry may contain a set of statistics with respect to that specific + neighbor. + + The neighbor information may include the time when the last packet + has been received from that neighbor, a set of cell quality metrics, + e.g., received signal strength indication (RSSI) or link quality + indicator (LQI), the number of packets sent to the neighbor, or the + number of packets received from it. This information can be made + available through 6top management APIs and used, for instance, to + compute a Rank Increment that will determine the selection of the + preferred parent. + + 6top provides statistics about the underlying layer so the OF can be + tuned to the nature of the TSCH MAC layer. 6top also enables the RPL + OF to influence the MAC behavior, for instance, by configuring the + periodicity of IEEE Std 802.15.4 Extended Beacons (EBs). By + augmenting the EB periodicity, it is possible to change the network + dynamics so as to improve the support of devices that may change + their point of attachment in the 6TiSCH network. + + Some RPL control messages, such as the DODAG Information Object + (DIO), are ICMPv6 messages that are broadcast to all neighbor nodes. + With 6TiSCH, the broadcast channel requirement is addressed by 6top + by configuring TSCH to provide a broadcast channel, as opposed to, + for instance, piggybacking the DIO messages in Layer 2 Enhanced + Beacons (EBs), which would produce undue timer coupling among layers + and packet size issues, and could conflict with the policy of + production networks where EBs are mostly eliminated to conserve + energy. + +4.3.4. Network Synchronization + + Nodes in a TSCH network must be time synchronized. A node keeps + synchronized to its time source neighbor through a combination of + frame-based and acknowledgment-based synchronization. To maximize + battery life and network throughput, it is advisable that RPL ICMP + discovery and maintenance traffic (governed by the Trickle timer) be + somehow coordinated with the transmission of time synchronization + packets (especially with Enhanced Beacons). + + This could be achieved through an interaction of the 6top sublayer + and the RPL Objective Function, or could be controlled by a + management entity. + + Time distribution requires a loop-free structure. Nodes caught in a + synchronization loop will rapidly desynchronize from the network and + become isolated. 6TiSCH uses a RPL DAG with a dedicated global + Instance for the purpose of time synchronization. That Instance is + referred to as the Time Synchronization Global Instance (TSGI). The + TSGI can be operated in either of the three modes that are detailed + in Section 3.1.3 of RPL [RFC6550], "Instances, DODAGs, and DODAG + Versions". Multiple uncoordinated DODAGs with independent Roots may + be used if all the Roots share a common time source such as the + Global Positioning System (GPS). + + In the absence of a common time source, the TSGI should form a single + DODAG with a virtual Root. A backbone network is then used to + synchronize and coordinate RPL operations between the Backbone + Routers that act as sinks for the LLN. Optionally, RPL's periodic + operations may be used to transport the network synchronization. + This may mean that 6top would need to trigger (override) the Trickle + timer if no other traffic has occurred for such a time that nodes may + get out of synchronization. + + A node that has not joined the TSGI advertises a MAC-level Join + Priority of 0xFF to notify its neighbors that is not capable of + serving as time parent. A node that has joined the TSGI advertises a + MAC-level Join Priority set to its DAGRank() in that Instance, where + DAGRank() is the operation specified in Section 3.5.1 of [RFC6550], + "Rank Comparison". + + The provisioning of a RPL Root is out of scope for both RPL and this + architecture, whereas RPL enables the propagation of configuration + information down the DODAG. This applies to the TSGI as well; a Root + is configured, or obtains by unspecified means, the knowledge of the + RPLInstanceID for the TSGI. The Root advertises its DagRank in the + TSGI, which must be less than 0xFF, as its Join Priority in its IEEE + Std 802.15.4 EBs. + + A node that reads a Join Priority of less than 0xFF should join the + neighbor with the lesser Join Priority and use it as time parent. If + the node is configured to serve as time parent, then the node should + join the TSGI, obtain a Rank in that Instance, and start advertising + its own DagRank in the TSGI as its Join Priority in its EBs. + +4.3.5. Slotframes and CDU Matrix + + 6TiSCH enables IPv6 best-effort (stochastic) transmissions over a MAC + layer that is also capable of scheduled (deterministic) + transmissions. A window of time is defined around the scheduled + transmission where the medium must, as much as practically feasible, + be free of contending energy to ensure that the medium is free of + contending packets when the time comes for a scheduled transmission. + One simple way to obtain such a window is to format time and + frequencies in cells of transmission of equal duration. This is the + method that is adopted in IEEE Std 802.15.4 TSCH as well as the Long + Term Evolution (LTE) of cellular networks. + + The 6TiSCH architecture defines a global concept that is called a + Channel Distribution and Usage (CDU) matrix to describe that + formatting of time and frequencies. + + A CDU matrix is defined centrally as part of the network definition. + It is a matrix of cells with a height equal to the number of + available channels (indexed by channelOffsets) and a width (in + timeslots) that is the period of the network scheduling operation + (indexed by slotOffsets) for that CDU matrix. There are different + models for scheduling the usage of the cells, which place the + responsibility of avoiding collisions either on a central controller + or on the devices themselves, at an extra cost in terms of energy to + scan for free cells (more in Section 4.4). + + The size of a cell is a timeslot duration, and values of 10 to 15 + milliseconds are typical in 802.15.4 TSCH to accommodate for the + transmission of a frame and an ack, including the security validation + on the receive side, which may take up to a few milliseconds on some + device architecture. + + A CDU matrix iterates over a well-known channel rotation called the + hopping sequence. In a given network, there might be multiple CDU + matrices that operate with different widths, so they have different + durations and represent different periodic operations. It is + recommended that all CDU matrices in a 6TiSCH domain operate with the + same cell duration and are aligned so as to reduce the chances of + interferences from the Slotted ALOHA operations. The knowledge of + the CDU matrices is shared between all the nodes and used in + particular to define slotframes. + + A slotframe is a MAC-level abstraction that is common to all nodes + and contains a series of timeslots of equal length and precedence. + It is characterized by a slotframe_ID and a slotframe_size. A + slotframe aligns to a CDU matrix for its parameters, such as number + and duration of timeslots. + + Multiple slotframes can coexist in a node schedule, i.e., a node can + have multiple activities scheduled in different slotframes. A + slotframe is associated with a priority that may be related to the + precedence of different 6TiSCH topologies. The slotframes may be + aligned to different CDU matrices and thus have different widths. + There is typically one slotframe for scheduled traffic that has the + highest precedence and one or more slotframe(s) for RPL traffic. The + timeslots in the slotframe are indexed by the slotOffset; the first + cell is at slotOffset 0. + + When a packet is received from a higher layer for transmission, 6top + inserts that packet in the outgoing queue that matches the packet + best (Differentiated Services [RFC2474] can therefore be used). At + each scheduled transmit slot, 6top looks for the frame in all the + outgoing queues that best matches the cells. If a frame is found, it + is given to the TSCH MAC for transmission. + +4.3.6. Distributing the Reservation of Cells + + The 6TiSCH architecture introduces the concept of chunks + (Section 2.1) to distribute the allocation of the spectrum for a + whole group of cells at a time. The CDU matrix is formatted into a + set of chunks, possibly as illustrated in Figure 8, each of the + chunks identified uniquely by a chunk-ID. The knowledge of this + formatting is shared between all the nodes in a 6TiSCH network. It + could be conveyed during the join process, codified into a profile + document, or obtained using some other mechanism. This is as opposed + to Static Scheduling, which refers to the preprogrammed mechanism + specified in [RFC8180] and which existed before the distribution of + the chunk formatting. + + +-----+-----+-----+-----+-----+-----+-----+ +-----+ + chan.Off. 0 |chnkA|chnkP|chnk7|chnkO|chnk2|chnkK|chnk1| ... |chnkZ| + +-----+-----+-----+-----+-----+-----+-----+ +-----+ + chan.Off. 1 |chnkB|chnkQ|chnkA|chnkP|chnk3|chnkL|chnk2| ... |chnk1| + +-----+-----+-----+-----+-----+-----+-----+ +-----+ + ... + +-----+-----+-----+-----+-----+-----+-----+ +-----+ + chan.Off. 15 |chnkO|chnk6|chnkN|chnk1|chnkJ|chnkZ|chnkI| ... |chnkG| + +-----+-----+-----+-----+-----+-----+-----+ +-----+ + 0 1 2 3 4 5 6 M + + Figure 8: CDU Matrix Partitioning in Chunks + + The 6TiSCH architecture envisions a protocol that enables chunk + ownership appropriation whereby a RPL parent discovers a chunk that + is not used in its interference domain, claims the chunk, and then + defends it in case another RPL parent would attempt to appropriate it + while it is in use. The chunk is the basic unit of ownership that is + used in that process. + + As a result of the process of chunk ownership appropriation, the RPL + parent has exclusive authority to decide which cell in the + appropriated chunk can be used by which node in its interference + domain. In other words, it is implicitly delegated the right to + manage the portion of the CDU matrix that is represented by the + chunk. + + Initially, those cells are added to the heap of free cells, then + dynamically placed into existing bundles, into new bundles, or + allocated opportunistically for one transmission. + + Note that a PCE is expected to have precedence in the allocation, so + that a RPL parent would only be able to obtain portions that are not + in use by the PCE. + +4.4. Schedule Management Mechanisms + + 6TiSCH uses four paradigms to manage the TSCH schedule of the LLN + nodes: Static Scheduling, Neighbor-to-Neighbor Scheduling, Remote + Monitoring and Scheduling Management, and Hop-by-Hop Scheduling. + Multiple mechanisms are defined that implement the associated + Interaction Models, and they can be combined and used in the same + LLN. Which mechanism(s) to use depends on application requirements. + +4.4.1. Static Scheduling + + In the simplest instantiation of a 6TiSCH network, a common fixed + schedule may be shared by all nodes in the network. Cells are + shared, and nodes contend for slot access in a Slotted ALOHA manner. + + A static TSCH schedule can be used to bootstrap a network, as an + initial phase during implementation or as a fall-back mechanism in + case of network malfunction. This schedule is preestablished, for + instance, decided by a network administrator based on operational + needs. It can be preconfigured into the nodes, or, more commonly, + learned by a node when joining the network using standard IEEE Std + 802.15.4 Information Elements (IE). Regardless, the schedule remains + unchanged after the node has joined a network. RPL is used on the + resulting network. This "minimal" scheduling mechanism that + implements this paradigm is detailed in [RFC8180]. + +4.4.2. Neighbor-to-Neighbor Scheduling + + In the simplest instantiation of a 6TiSCH network described in + Section 4.4.1, nodes may expect a packet at any cell in the schedule + and will waste energy idle listening. In a more complex + instantiation of a 6TiSCH network, a matching portion of the schedule + is established between peers to reflect the observed amount of + transmissions between those nodes. The aggregation of the cells + between a node and a peer forms a bundle that the 6top sublayer uses + to implement the abstraction of a link for IP. The bandwidth on that + link is proportional to the number of cells in the bundle. + + If the size of a bundle is configured to fit an average amount of + bandwidth, peak traffic is dropped. If the size is configured to + allow for peak emissions, energy is wasted idle listening. + + As discussed in more detail in Section 4.3, the 6top Protocol + [RFC8480] specifies the exchanges between neighbor nodes to reserve + soft cells to transmit to one another, possibly under the control of + a Scheduling Function (SF). Because this reservation is done without + global knowledge of the schedule of the other nodes in the LLN, + scheduling collisions are possible. + + And as discussed in Section 4.3.2, an optional SF is used to monitor + bandwidth usage and to perform requests for dynamic allocation by the + 6top sublayer. The SF component is not part of the 6top sublayer. + It may be co-located on the same device or may be partially or fully + offloaded to an external system. The "6TiSCH Minimal Scheduling + Function (MSF)" [RFC9033] provides a simple SF that can be used by + default by devices that support dynamic scheduling of soft cells. + + Monitoring and relocation is done in the 6top sublayer. For the + upper layer, the connection between two neighbor nodes appears as a + number of cells. Depending on traffic requirements, the upper layer + can request 6top to add or delete a number of cells scheduled to a + particular neighbor, without being responsible for choosing the exact + slotOffset/channelOffset of those cells. + +4.4.3. Remote Monitoring and Schedule Management + + Remote Monitoring and Schedule Management refers to a DetNet/SDN + model whereby an NME and a scheduling entity, associated with a PCE, + reside in a central controller and interact with the 6top sublayer to + control IPv6 links and Tracks (Section 4.5) in a 6TiSCH network. The + composite centralized controller can assign physical resources (e.g., + buffers and hard cells) to a particular Track to optimize the + reliability within a bounded latency for a well-specified flow. + + The work in the 6TiSCH Working Group focused on nondeterministic + traffic and did not provide the generic data model necessary for the + controller to monitor and manage resources of the 6top sublayer. + This is deferred to future work, see Appendix A.1.2. + + With respect to centralized routing and scheduling, it is envisioned + that the related component of the 6TiSCH architecture would be an + extension of the DetNet architecture [RFC8655], which studies Layer 3 + aspects of Deterministic Networks and covers networks that span + multiple Layer 2 domains. + + The DetNet architecture is a form of Software-Defined Networking + (SDN) architecture and is composed of three planes: a (User) + Application Plane, a Controller Plane (where the PCE operates), and a + Network Plane, which can represent a 6TiSCH LLN. + + "Software-Defined Networking (SDN): Layers and Architecture + Terminology" [RFC7426] proposes a generic representation of the SDN + architecture that is reproduced in Figure 9. + + o--------------------------------o + | | + | +-------------+ +----------+ | + | | Application | | Service | | + | +-------------+ +----------+ | + | Application Plane | + o---------------Y----------------o + | + *-----------------------------Y---------------------------------* + | Network Services Abstraction Layer (NSAL) | + *------Y------------------------------------------------Y-------* + | | + | Service Interface | + | | + o------Y------------------o o---------------------Y------o + | | Control Plane | | Management Plane | | + | +----Y----+ +-----+ | | +-----+ +----Y----+ | + | | Service | | App | | | | App | | Service | | + | +----Y----+ +--Y--+ | | +--Y--+ +----Y----+ | + | | | | | | | | + | *----Y-----------Y----* | | *---Y---------------Y----* | + | | Control Abstraction | | | | Management Abstraction | | + | | Layer (CAL) | | | | Layer (MAL) | | + | *----------Y----------* | | *----------Y-------------* | + | | | | | | + o------------|------------o o------------|---------------o + | | + | CP | MP + | Southbound | Southbound + | Interface | Interface + | | + *------------Y---------------------------------Y----------------* + | Device and resource Abstraction Layer (DAL) | + *------------Y---------------------------------Y----------------* + | | | | + | o-------Y----------o +-----+ o--------Y----------o | + | | Forwarding Plane | | App | | Operational Plane | | + | o------------------o +-----+ o-------------------o | + | Network Device | + +---------------------------------------------------------------+ + + Figure 9: SDN Layers and Architecture Terminology per RFC 7426 + + The PCE establishes end-to-end Tracks of hard cells, which are + described in more detail in Section 4.6.1. + + The DetNet work is expected to enable end-to-end deterministic paths + across heterogeneous networks. This can be, for instance, a 6TiSCH + LLN and an Ethernet backbone. + + This model fits the 6TiSCH extended configuration, whereby a 6BBR + federates multiple 6TiSCH LLNs in a single subnet over a backbone + that can be, for instance, Ethernet or Wi-Fi. In that model, 6TiSCH + 6BBRs synchronize with one another over the backbone, so as to ensure + that the multiple LLNs that form the IPv6 subnet stay tightly + synchronized. + + If the backbone is deterministic, then the Backbone Router ensures + that the end-to-end deterministic behavior is maintained between the + LLN and the backbone. It is the responsibility of the PCE to compute + a deterministic path end to end across the TSCH network and an IEEE + Std 802.1 TSN Ethernet backbone, and it is the responsibility of + DetNet to enable end-to-end deterministic forwarding. + +4.4.4. Hop-by-Hop Scheduling + + A node can reserve a Track (Section 4.5) to one or more + destination(s) that are multiple hops away by installing soft cells + at each intermediate node. This forms a Track of soft cells. A + Track SF above the 6top sublayer of each node on the Track is needed + to monitor these soft cells and trigger relocation when needed. + + This hop-by-hop reservation mechanism is expected to be similar in + essence to [RFC3209] and/or [RFC4080] and [RFC5974]. The protocol + for a node to trigger hop-by-hop scheduling is not yet defined. + +4.5. On Tracks + + The architecture introduces the concept of a Track, which is a + directed path from a source 6TiSCH node to one or more destination + 6TiSCH node(s) across a 6TiSCH LLN. + + A Track is the 6TiSCH instantiation of the concept of a deterministic + path as described in [RFC8655]. Constrained resources such as memory + buffers are reserved for that Track in intermediate 6TiSCH nodes to + avoid loss related to limited capacity. A 6TiSCH node along a Track + not only knows which bundles of cells it should use to receive + packets from a previous hop but also knows which bundle(s) it should + use to send packets to its next hop along the Track. + +4.5.1. General Behavior of Tracks + + A Track is associated with Layer 2 bundles of cells with related + schedules and logical relationships that ensure that a packet that is + injected in a Track will progress in due time all the way to + destination. + + Multiple cells may be scheduled in a Track for the transmission of a + single packet, in which case the normal operation of IEEE Std + 802.15.4 Automatic Repeat-reQuest (ARQ) can take place; the + acknowledgment may be omitted in some cases, for instance, if there + is no scheduled cell for a possible retry. + + There are several benefits for using a Track to forward a packet from + a source node to the destination node: + + 1. Track Forwarding, as further described in Section 4.6.1, is a + Layer 2 forwarding scheme, which introduces less process delay + and overhead than a Layer 3 forwarding scheme. Therefore, LLN + devices can save more energy and resources, which is critical for + resource-constrained devices. + + 2. Since channel resources, i.e., bundles of cells, have been + reserved for communications between 6TiSCH nodes of each hop on + the Track, the throughput and the maximum latency of the traffic + along a Track are guaranteed, and the jitter is minimized. + + 3. By knowing the scheduled timeslots of incoming bundle(s) and + outgoing bundle(s), 6TiSCH nodes on a Track could save more + energy by staying in sleep state during inactive slots. + + 4. Tracks are protected from interfering with one another if a cell + is scheduled to belong to at most one Track, and congestion loss + is avoided if at most one packet can be presented to the MAC to + use that cell. Tracks enhance the reliability of transmissions + and thus further improve the energy consumption in LLN devices by + reducing the chances of retransmission. + +4.5.2. Serial Track + + A Serial (or simple) Track is the 6TiSCH version of a circuit: a + bundle of cells that are programmed to receive (RX-cells) is uniquely + paired with a bundle of cells that are set to transmit (TX-cells), + representing a Layer 2 forwarding state that can be used regardless + of the network-layer protocol. A Serial Track is thus formed end-to- + end as a succession of paired bundles: a receive bundle from the + previous hop and a transmit bundle to the next hop along the Track. + + For a given iteration of the device schedule, the effective channel + of the cell is obtained by looping through a well-known hopping + sequence beginning at Epoch time and starting at the cell's + channelOffset, which results in a rotation of the frequency that is + used for transmission. The bundles may be computed so as to + accommodate both variable rates and retransmissions, so they might + not be fully used in the iteration of the schedule. + +4.5.3. Complex Track with Replication and Elimination + + The art of Deterministic Networks already includes packet replication + and elimination techniques. Example standards include the Parallel + Redundancy Protocol (PRP) and the High-availability Seamless + Redundancy (HSR) [IEC62439]. Similarly, and as opposed to a Serial + Track that is a sequence of nodes and links, a Complex Track is + shaped as a directed acyclic graph towards one or more destination(s) + to support multipath forwarding and route around failures. + + A Complex Track may branch off over noncongruent branches for the + purpose of multicasting and/or redundancy, in which case, it + reconverges later down the path. This enables the Packet + Replication, Elimination, and Ordering Functions (PREOF) defined by + DetNet. Packet ARQ, Replication, Elimination, and Overhearing + (PAREO) adds radio-specific capabilities of Layer 2 ARQ and + promiscuous listening to redundant transmissions to compensate for + the lossiness of the medium and meet industrial expectations of a RAW + network. Combining PAREO and PREOF, a Track may extend beyond the + 6TiSCH network into a larger DetNet network. + + In the art of TSCH, a path does not necessarily support PRE, but it + is almost systematically multipath. This means that a Track is + scheduled so as to ensure that each hop has at least two forwarding + solutions, and the forwarding decision is to try the preferred one + and use the other in case of Layer 2 transmission failure as detected + by ARQ. Similarly, at each 6TiSCH hop along the Track, the PCE may + schedule more than one timeslot for a packet, so as to support Layer + 2 retries (ARQ). It is also possible that the field device only uses + the second branch if sending over the first branch fails. + +4.5.4. DetNet End-to-End Path + + Ultimately, DetNet should enable extending a Track beyond the 6TiSCH + LLN as illustrated in Figure 10. In that example, a Track is laid + out from a field device in a 6TiSCH network to an IoT gateway that is + located on an 802.1 Time-Sensitive Networking (TSN) backbone. A + 6TiSCH-aware DetNet service layer handles the Packet Replication, + Elimination, and Ordering Functions over the DODAG that forms a + Track. + + The Replication function in the 6TiSCH Node sends a copy of each + packet over two different branches, and the PCE schedules each hop of + both branches so that the two copies arrive in due time at the + gateway. In case of a loss on one branch, hopefully the other copy + of the packet still makes it in due time. If two copies make it to + the IoT gateway, the Elimination function in the gateway ignores the + extra packet and presents only one copy to upper layers. + + +-=-=-+ + | IoT | + | G/W | + +-=-=-+ + ^ <=== Elimination + Track branch | | + +-=-=-=-+ +-=-=-=-=+ Subnet backbone + | | + +-=|-=+ +-=|-=+ + | | | Backbone | | | Backbone + o | | | Router | | | Router + +-=/-=+ +-=|-=+ + o / o o-=-o-=-=/ o + o o-=-o-=/ o o o o o + o \ / o o LLN o + o v <=== Replication + o + + Figure 10: Example End-to-End DetNet Track + +4.5.5. Cell Reuse + + The 6TiSCH architecture provides the means to avoid waste of cells as + well as overflows in the transmit bundle of a Track, as follows: + + A TX-cell that is not needed for the current iteration may be reused + opportunistically on a per-hop basis for routed packets. When all of + the frames that were received for a given Track are effectively + transmitted, any available TX-cell for that Track can be reused for + upper-layer traffic for which the next-hop router matches the next + hop along the Track. In that case, the cell that is being used is + effectively a TX-cell from the Track, but the short address for the + destination is that of the next-hop router. + + It results in a frame that is received in an RX-cell of a Track with + a destination MAC address set to this node, as opposed to the + broadcast MAC address that must be extracted from the Track and + delivered to the upper layer. Note that a frame with an unrecognized + destination MAC address is dropped at the lower MAC layer and thus is + not received at the 6top sublayer. + + On the other hand, it might happen that there are not enough TX-cells + in the transmit bundle to accommodate the Track traffic, for + instance, if more retransmissions are needed than provisioned. In + that case, and if the frame transports an IPv6 packet, then it can be + placed for transmission in the bundle that is used for Layer 3 + traffic towards the next hop along the Track. The MAC address should + be set to the next-hop MAC address to avoid confusion. + + It results in a frame that is received over a Layer 3 bundle that may + be in fact associated with a Track. In a classical IP link such as + an Ethernet, off-Track traffic is typically in excess over + reservation to be routed along the non-reserved path based on its QoS + setting. But with 6TiSCH, since the use of the Layer 3 bundle may be + due to transmission failures, it makes sense for the receiver to + recognize a frame that should be re-Tracked and to place it back on + the appropriate bundle if possible. A frame is re-Tracked by + scheduling it for transmission over the transmit bundle associated + with the Track, with the destination MAC address set to broadcast. + +4.6. Forwarding Models + + By forwarding, this document means the per-packet operation that + allows delivery of a packet to a next hop or an upper layer in this + node. Forwarding is based on preexisting state that was installed as + a result of a routing computation, see Section 4.7. 6TiSCH supports + three different forwarding models: (GMPLS) Track Forwarding, + (classical) IPv6 Forwarding, and (6LoWPAN) Fragment Forwarding. + +4.6.1. Track Forwarding + + Forwarding along a Track can be seen as a Generalized Multiprotocol + Label Switching (GMPLS) operation in that the information used to + switch a frame is not an explicit label but is rather related to + other properties of the way the packet was received, a particular + cell in the case of 6TiSCH. As a result, as long as the TSCH MAC + (and Layer 2 security) accepts a frame, that frame can be switched + regardless of the protocol, whether this is an IPv6 packet, a 6LoWPAN + fragment, or a frame from an alternate protocol such as WirelessHART + or ISA100.11a. + + A data frame that is forwarded along a Track normally has a + destination MAC address that is set to broadcast or a multicast + address depending on MAC support. This way, the MAC layer in the + intermediate nodes accepts the incoming frame and 6top switches it + without incurring a change in the MAC header. In the case of IEEE + Std 802.15.4, this means effectively to broadcast, so that along the + Track the short address for the destination of the frame is set to + 0xFFFF. + + There are two modes for a Track: an IPv6 native mode and a protocol- + independent tunnel mode. + +4.6.1.1. Native Mode + + In native mode, the Protocol Data Unit (PDU) is associated with flow- + dependent metadata that refers uniquely to the Track, so the 6top + sublayer can place the frame in the appropriate cell without + ambiguity. In the case of IPv6 traffic, this flow may be identified + using a 6-tuple as discussed in [RFC8939]. In particular, + implementations of this document should support identification of + DetNet flows based on the IPv6 Flow Label field. + + The flow follows a Track that is identified using a RPL Instance (see + Section 3.1.3 of [RFC6550]), signaled in a RPL Packet Information + (more in Section 11.2.2.1 of [RFC6550]) and the source address of a + packet going down the DODAG formed by a local instance. One or more + flows may be placed in a same Track and the Track identification + (TrackID plus owner) may be placed in an IP-in-IP encapsulation. The + forwarding operation is based on the Track and does not depend on the + flow therein. + + The Track identification is validated at egress before restoring the + destination MAC address (DMAC) and punting to the upper layer. + + Figure 11 illustrates the Track Forwarding operation that happens at + the 6top sublayer, below IP. + + | Packet flowing across the network ^ + +--------------+ | | + | IPv6 | | | + +--------------+ | | + | 6LoWPAN HC | | | + +--------------+ ingress egress + | 6top | sets +----+ +----+ restores + +--------------+ DMAC to | | | | DMAC to + | TSCH MAC | brdcst | | | | dest + +--------------+ | | | | | | + | LLN PHY | +-------+ +--...-----+ +-------+ + +--------------+ + Ingress Relay Relay Egress + Stack Layer Node Node Node Node + + Figure 11: Track Forwarding, Native Mode + +4.6.1.2. Tunnel Mode + + In tunnel mode, the frames originate from an arbitrary protocol over + a compatible MAC that may or may not be synchronized with the 6TiSCH + network. An example of this would be a router with a dual radio that + is capable of receiving and sending WirelessHART or ISA100.11a frames + with the second radio by presenting itself as an access point or a + Backbone Router, respectively. In that mode, some entity (e.g., PCE) + can coordinate with a WirelessHART Network Manager or an ISA100.11a + System Manager to specify the flows that are transported. + + +--------------+ + | IPv6 | + +--------------+ + | 6LoWPAN HC | + +--------------+ set restore + | 6top | +DMAC+ +DMAC+ + +--------------+ to|brdcst to|nexthop + | TSCH MAC | | | | | + +--------------+ | | | | + | LLN PHY | +-------+ +--...-----+ +-------+ + +--------------+ | ingress egress | + | | + +--------------+ | | + | LLN PHY | | | + +--------------+ | Packet flowing across the network | + | TSCH MAC | | | + +--------------+ | DMAC = | DMAC = + |ISA100/WiHART | | nexthop v nexthop + +--------------+ + Source Ingress Egress Destination + Stack Layer Node Node Node Node + + Figure 12: Track Forwarding, Tunnel Mode + + In that case, the TrackID that identifies the Track at the ingress + 6TiSCH router is derived from the RX-cell. The DMAC is set to this + node, but the TrackID indicates that the frame must be tunneled over + a particular Track, so the frame is not passed to the upper layer. + Instead, the DMAC is forced to broadcast, and the frame is passed to + the 6top sublayer for switching. + + At the egress 6TiSCH router, the reverse operation occurs. Based on + tunneling information of the Track, which may for instance indicate + that the tunneled datagram is an IP packet, the datagram is passed to + the appropriate link-layer with the destination MAC restored. + +4.6.1.3. Tunneling Information + + Tunneling information coming with the Track configuration provides + the destination MAC address of the egress endpoint as well as the + tunnel mode and specific data depending on the mode, for instance, a + service access point for frame delivery at egress. + + If the tunnel egress point does not have a MAC address that matches + the configuration, the Track installation fails. + + If the Layer 3 destination address belongs to the tunnel termination, + then it is possible that the IPv6 address of the destination is + compressed at the 6LoWPAN sublayer based on the MAC address. + Restoring the wrong MAC address at the egress would then also result + in the wrong IP address in the packet after decompression. For that + reason, a packet can be injected in a Track only if the destination + MAC address is effectively that of the tunnel egress point. It is + thus mandatory for the ingress router to validate that the MAC + address used at the 6LoWPAN sublayer for compression matches that of + the tunnel egress point before it overwrites it to broadcast. The + 6top sublayer at the tunnel egress point reverts that operation to + the MAC address obtained from the tunnel information. + +4.6.2. IPv6 Forwarding + + As the packets are routed at Layer 3, traditional QoS and Active + Queue Management (AQM) operations are expected to prioritize flows. + + | Packet flowing across the network ^ + +--------------+ | | + | IPv6 | | +-QoS+ +-QoS+ | + +--------------+ | | | | | | + | 6LoWPAN HC | | | | | | | + +--------------+ | | | | | | + | 6top | | | | | | | + +--------------+ | | | | | | + | TSCH MAC | | | | | | | + +--------------+ | | | | | | + | LLN PHY | +-------+ +--...-----+ +-------+ + +--------------+ + Source Ingress Egress Destination + Stack Layer Node Router Router Node + + Figure 13: IP Forwarding + +4.6.3. Fragment Forwarding + + Considering that, per Section 4 of [RFC4944], 6LoWPAN packets can be + as large as 1280 bytes (the IPv6 minimum MTU) and that the non- + storing mode of RPL implies source routing, which requires space for + routing headers, and that an IEEE Std 802.15.4 frame with security + may carry in the order of 80 bytes of effective payload, an IPv6 + packet might be fragmented into more than 16 fragments at the 6LoWPAN + sublayer. + + This level of fragmentation is much higher than that traditionally + experienced over the Internet with IPv4 fragments, where + fragmentation is already known as harmful. + + In the case of a multihop route within a 6TiSCH network, hop-by-hop + recomposition occurs at each hop to reform the packet and route it. + This creates additional latency and forces intermediate nodes to + store a portion of a packet for an undetermined time, thus impacting + critical resources such as memory and battery. + + [RFC8930] describes a framework for forwarding fragments end-to-end + across a 6TiSCH route-over mesh. Within that framework, + [VIRTUAL-REASSEMBLY] details a virtual reassembly buffer mechanism + whereby the datagram tag in the 6LoWPAN fragment is used as a label + for switching at the 6LoWPAN sublayer. + + Building on this technique, [RFC8931] introduces a new format for + 6LoWPAN fragments that enables the selective recovery of individual + fragments and allows for a degree of flow control based on an + Explicit Congestion Notification (ECN). + + | Packet flowing across the network ^ + +--------------+ | | + | IPv6 | | +----+ +----+ | + +--------------+ | | | | | | + | 6LoWPAN HC | | learn learn | + +--------------+ | | | | | | + | 6top | | | | | | | + +--------------+ | | | | | | + | TSCH MAC | | | | | | | + +--------------+ | | | | | | + | LLN PHY | +-------+ +--...-----+ +-------+ + +--------------+ + Source Ingress Egress Destination + Stack Layer Node Router Router Node + + Figure 14: Forwarding First Fragment + + In that model, the first fragment is routed based on the IPv6 header + that is present in that fragment. The 6LoWPAN sublayer learns the + next-hop selection, generates a new datagram tag for transmission to + the next hop, and stores that information indexed by the incoming MAC + address and datagram tag. The next fragments are then switched based + on that stored state. + + | Packet flowing across the network ^ + +--------------+ | | + | IPv6 | | | + +--------------+ | | + | 6LoWPAN HC | | replay replay | + +--------------+ | | | | | | + | 6top | | | | | | | + +--------------+ | | | | | | + | TSCH MAC | | | | | | | + +--------------+ | | | | | | + | LLN PHY | +-------+ +--...-----+ +-------+ + +--------------+ + Source Ingress Egress Destination + Stack Layer Node Router Router Node + + Figure 15: Forwarding Next Fragment + + A bitmap and an ECN echo in the end-to-end acknowledgment enable the + source to resend the missing fragments selectively. The first + fragment may be resent to carve a new path in case of a path failure. + The ECN echo set indicates that the number of outstanding fragments + should be reduced. + +4.7. Advanced 6TiSCH Routing + +4.7.1. Packet Marking and Handling + + All packets inside a 6TiSCH domain must carry the RPLInstanceID that + identifies the 6TiSCH topology (e.g., a Track) that is to be used for + routing and forwarding that packet. The location of that information + must be the same for all packets forwarded inside the domain. + + For packets that are routed by a PCE along a Track, the tuple formed + by 1) (typically) the IPv6 source or (possibly) destination address + in the IPv6 header and 2) a local RPLInstanceID in the RPI that + serves as TrackID, identify uniquely the Track and associated + transmit bundle. + + For packets that are routed by RPL, that information is the + RPLInstanceID that is carried in the RPL Packet Information (RPI), as + discussed in Section 11.2 of [RFC6550], "Loop Avoidance and + Detection". The RPI is transported by a RPL Option in the IPv6 Hop- + By-Hop Options header [RFC6553]. + + A compression mechanism for the RPL packet artifacts that integrates + the compression of IP-in-IP encapsulation and the Routing Header type + 3 [RFC6554] with that of the RPI in a 6LoWPAN dispatch/header type is + specified in [RFC8025] and [RFC8138]. + + Either way, the method and format used for encoding the RPLInstanceID + is generalized to all 6TiSCH topological Instances, which include + both RPL Instances and Tracks. + +4.7.2. Replication, Retries, and Elimination + + 6TiSCH supports the PREOF operations of elimination and reordering of + packets along a complex Track, but has no requirement about tagging a + sequence number in the packet for that purpose. With 6TiSCH, the + schedule can tell when multiple receive timeslots correspond to + copies of a same packet, in which case the receiver may avoid + listening to the extra copies once it has received one instance of + the packet. + + The semantics of the configuration enable correlated timeslots to be + grouped for transmit (and receive, respectively) with 'OR' relations, + and then an 'AND' relation can be configurable between groups. The + semantics are such that if the transmit (and receive, respectively) + operation succeeded in one timeslot in an 'OR' group, then all the + other timeslots in the group are ignored. Now, if there are at least + two groups, the 'AND' relation between the groups indicates that one + operation must succeed in each of the groups. + + On the transmit side, timeslots provisioned for retries along a same + branch of a Track are placed in the same 'OR' group. The 'OR' + relation indicates that if a transmission is acknowledged, then + retransmissions of that packet should not be attempted for the + remaining timeslots in that group. There are as many 'OR' groups as + there are branches of the Track departing from this node. Different + 'OR' groups are programmed for the purpose of replication, each group + corresponding to one branch of the Track. The 'AND' relation between + the groups indicates that transmission over any of branches must be + attempted regardless of whether a transmission succeeded in another + branch. It is also possible to place cells to different next-hop + routers in the same 'OR' group. This allows routing along multipath + Tracks, trying one next hop and then another only if sending to the + first fails. + + On the receive side, all timeslots are programmed in the same 'OR' + group. Retries of the same copy as well as converging branches for + elimination are converged, meaning that the first successful + reception is enough and that all the other timeslots can be ignored. + An 'AND' group denotes different packets that must all be received + and transmitted over the associated transmit groups within their + respected 'AND' or 'OR' rules. + + As an example, say that we have a simple network as represented in + Figure 16, and we want to enable PREOF between an ingress node I and + an egress node E. + + +-+ +-+ + -- |A| ------ |C| -- + / +-+ +-+ \ + / \ + +-+ +-+ + |I| |E| + +-+ +-+ + \ / + \ +-+ +-+ / + -- |B| ------- |D| -- + +-+ +-+ + + Figure 16: Scheduling PREOF on a Simple Network + + The assumption for this particular problem is that a 6TiSCH node has + a single radio, so it cannot perform two receive and/or transmit + operations at the same time, even on two different channels. + + Say we have six possible channels, and at least ten timeslots per + slotframe. Figure 17 shows a possible schedule whereby each + transmission is retried two or three times, and redundant copies are + forwarded in parallel via A and C on the one hand, and B and D on the + other, providing time diversity, spatial diversity though different + physical paths, and frequency diversity. + + slotOffset 0 1 2 3 4 5 6 7 9 + +----+----+----+----+----+----+----+----+----+ + channelOffset 0 | | | | | | |B->D| | | ... + +----+----+----+----+----+----+----+----+----+ + channelOffset 1 | |I->A| |A->C|B->D| | | | | ... + +----+----+----+----+----+----+----+----+----+ + channelOffset 2 |I->A| | |I->B| |C->E| |D->E| | ... + +----+----+----+----+----+----+----+----+----+ + channelOffset 3 | | | | |A->C| | | | | ... + +----+----+----+----+----+----+----+----+----+ + channelOffset 4 | | |I->B| | |B->D| | |D->E| ... + +----+----+----+----+----+----+----+----+----+ + channelOffset 5 | | |A->C| | | |C->E| | | ... + +----+----+----+----+----+----+----+----+----+ + + Figure 17: Example Global Schedule + + This translates into a different slotframe that provides the waking + and sleeping times for every node, and the channelOffset to be used + when awake. Figure 18 shows the corresponding slotframe for node A. + + slotOffset 0 1 2 3 4 5 6 7 9 + +----+----+----+----+----+----+----+----+----+ + operation |rcv |rcv |xmit|xmit|xmit|none|none|none|none| ... + +----+----+----+----+----+----+----+----+----+ + channelOffset | 2 | 1 | 5 | 1 | 3 |N/A |N/A |N/A |N/A | ... + +----+----+----+----+----+----+----+----+----+ + + Figure 18: Example Slotframe for Node A + + The logical relationship between the timeslots is given by Table 2: + + +======+====================+=======================+ + | Node | rcv slotOffset | xmit slotOffset | + +======+====================+=======================+ + | I | N/A | (0 OR 1) AND (2 OR 3) | + +------+--------------------+-----------------------+ + | A | (0 OR 1) | (2 OR 3 OR 4) | + +------+--------------------+-----------------------+ + | B | (2 OR 3) | (4 OR 5 OR 6) | + +------+--------------------+-----------------------+ + | C | (2 OR 3 OR 4) | (5 OR 6) | + +------+--------------------+-----------------------+ + | D | (4 OR 5 OR 6) | (7 OR 8) | + +------+--------------------+-----------------------+ + | E | (5 OR 6 OR 7 OR 8) | N/A | + +------+--------------------+-----------------------+ + + Table 2 + +5. IANA Considerations + + This document has no IANA actions. + +6. Security Considerations + + The "Minimal Security Framework for 6TiSCH" [RFC9031] was optimized + for Low-Power and TSCH operations. The reader is encouraged to + review the Security Considerations section of that document + (Section 9), which discusses 6TiSCH security issues in more details. + +6.1. Availability of Remote Services + + The operation of 6TiSCH Tracks inherits its high-level operation from + DetNet and is subject to the observations in Section 5 of [RFC8655]. + The installation and the maintenance of the 6TiSCH Tracks depend on + the availability of a controller with a PCE to compute and push them + in the network. When that connectivity is lost, existing Tracks may + continue to operate until the end of their lifetime, but cannot be + removed or updated, and new Tracks cannot be installed. + + In an LLN, the communication with a remote PCE may be slow and + unreactive to rapid changes in the condition of the wireless + communication. An attacker may introduce extra delay by selectively + jamming some packets or some flows. The expectation is that the + 6TiSCH Tracks enable enough redundancy to maintain the critical + traffic in operation while new routes are calculated and programmed + into the network. + + As with DetNet in general, the communication with the PCE must be + secured and should be protected against DoS attacks, including delay + injection and blackholing attacks, and secured as discussed in the + security considerations defined for Abstraction and Control of + Traffic Engineered Networks (ACTN) in Section 9 of [RFC8453], which + applies equally to DetNet and 6TiSCH. In a similar manner, the + communication with the JRC must be secured and should be protected + against DoS attacks when possible. + +6.2. Selective Jamming + + The hopping sequence of a TSCH network is well known, meaning that if + a rogue manages to identify a cell of a particular flow, then it may + selectively jam that cell without impacting any other traffic. This + attack can be performed at the PHY layer without any knowledge of the + Layer 2 keys, and it is very hard to detect and diagnose because only + one flow is impacted. + + [ROBUST-SCHEDULING] proposes a method to obfuscate the hopping + sequence and make it harder to perpetrate that particular attack. + +6.3. MAC-Layer Security + + This architecture operates on IEEE Std 802.15.4 and expects the link- + layer security to be enabled at all times between connected devices, + except for the very first step of the device join process, where a + joining device may need some initial, unsecured exchanges so as to + obtain its initial key material. In a typical deployment, all joined + nodes use the same keys, and rekeying needs to be global. + + The 6TISCH architecture relies on the join process to deny + authorization of invalid nodes and to preserve the integrity of the + network keys. A rogue that managed to access the network can perform + a large variety of attacks from DoS to injecting forged packets and + routing information. "Zero-trust" properties would be highly + desirable but are mostly not available at the time of this writing. + [RFC8928] is a notable exception that protects the ownership of IPv6 + addresses and prevents a rogue node with L2 access from stealing and + injecting traffic on behalf of a legitimate node. + +6.4. Time Synchronization + + Time synchronization in TSCH induces another event horizon whereby a + node will only communicate with another node if they are synchronized + within a guard time. The pledge discovers the synchronization of the + network based on the time of reception of the beacon. If an attacker + synchronizes a pledge outside of the guard time of the legitimate + nodes, then the pledge will never see a legitimate beacon and may not + discover the attack. + + As discussed in [RFC8655], measures must be taken to protect the time + synchronization, and for 6TiSCH this includes ensuring that the + Absolute Slot Number (ASN), which is the node's sense of time, is not + compromised. Once installed and as long as the node is synchronized + to the network, ASN is implicit in the transmissions. + + IEEE Std 802.15.4 [IEEE802154] specifies that in a TSCH network, the + nonce that is used for the computation of the Message Integrity Code + (MIC) to secure link-layer frames is composed of the address of the + source of the frame and of the ASN. The standard assumes that the + ASN is distributed securely by other means. The ASN is not passed + explicitly in the data frames and does not constitute a complete + anti-replay protection. As a result, upper-layer protocols must + provide a way to detect duplicates and cope with them. + + If the receiver and the sender have a different sense of ASN, the MIC + will not validate and the frame will be dropped. In that sense, TSCH + induces an event horizon whereby only nodes that have a common sense + of ASN can talk to one another in an authenticated manner. With + 6TiSCH, the pledge discovers a tentative ASN in beacons from nodes + that have already joined the network. But even if the beacon can be + authenticated, the ASN cannot be trusted as it could be a replay by + an attacker, announcing an ASN that represents a time in the past. + If the pledge uses an ASN that is learned from a replayed beacon for + an encrypted transmission, a nonce-reuse attack becomes possible, and + the network keys may be compromised. + +6.5. Validating ASN + + After obtaining the tentative ASN, a pledge that wishes to join the + 6TiSCH network must use a join protocol to obtain its security keys. + The join protocol used in 6TiSCH is the Constrained Join Protocol + (CoJP). In the minimal setting defined in [RFC9031], the + authentication requires a pre-shared key, based on which a secure + session is derived. The CoJP exchange may also be preceded by a + zero-touch handshake [ZEROTOUCH-JOIN] in order to enable pledge + joining based on certificates and/or inter-domain communication. + + As detailed in Section 4.2.1, a Join Proxy (JP) helps the pledge with + the join procedure by relaying the link-scope Join Request over the + IP network to a Join Registrar/Coordinator (JRC) that can + authenticate the pledge and validate that it is attached to the + appropriate network. As a result of the CoJP exchange, the pledge is + in possession of link-layer material including keys and a short + address, and if the ASN is known to be correct, all traffic can now + be secured using CCM* [CCMstar] at the link layer. + + The authentication steps must be such that they cannot be replayed by + an attacker, and they must not depend on the tentative ASN being + valid. During the authentication, the keying material that the + pledge obtains from the JRC does not provide protection against + spoofed ASN. Once the pledge has obtained the keys to use in the + network, it may still need to verify the ASN. If the nonce used in + the Layer 2 security derives from the extended (MAC-64) address, then + replaying the ASN alone cannot enable a nonce-reuse attack unless the + same node has lost its state with a previous ASN. But if the nonce + derives from the short address (e.g., assigned by the JRC), then the + JRC must ensure that it never assigns short addresses that were + already given to this or other nodes with the same keys. In other + words, the network must be rekeyed before the JRC runs out of short + addresses. + +6.6. Network Keying and Rekeying + + Section 4.2.1 provides an overview of the CoJP process described in + [RFC9031] by which an LLN can be assembled in the field, having been + provisioned in a lab. [ZEROTOUCH-JOIN] is future work that precedes + and then leverages CoJP using the [CONSTRAINED-VOUCHER] constrained + profile of [RFC8995]. This later work requires a yet-to-be + standardized Lightweight Authenticated Key Exchange protocol. + + CoJP results in distribution of a network-wide key that is to be used + with [IEEE802154] security. The details of use are described in + [RFC9031], Sections 9.2 and 9.3.2. + + The BRSKI mechanism may lead to the use of CoJP, in which case it + also results in distribution of a network-wide key. Alternatively + the BRSKI mechanism may be followed by use of [EST-COAPS] to enroll + certificates for each device. In that case, the certificates may be + used with an [IEEE802154] key agreement protocol. The description of + this mechanism, while conceptually straightforward, still has + significant standardization hurdles to pass. + + Section 8.2 of [RFC9031] describes a mechanism to change (rekey) the + network. There are a number of reasons to initiate a network rekey: + to remove unwanted (corrupt/malicious) nodes, to recover unused + 2-byte short addresses, or due to limits in encryption algorithms. + For all of the mechanisms that distribute a network-wide key, + rekeying is also needed on a periodic basis. In more detail: + + * The mechanism described in Section 8.2 of [RFC9031] requires + advance communication between the JRC and every one of the nodes + before the key change. Given that many nodes may be sleepy, this + operation may take a significant amount of time and may consume a + significant portion of the available bandwidth. As such, network- + wide rekeys to exclude nodes that have become malicious will not + be particularly quick. If a rekey is already in progress, but the + unwanted node has not yet been updated, then it is possible to + just continue the operation. If the unwanted node has already + received the update, then the rekey operation will need to be + restarted. + + * The cryptographic mechanisms used by IEEE Std 802.15.4 include the + 2-byte short address in the calculation of the context. A nonce- + reuse attack may become feasible if a short address is reassigned + to another node while the same network-wide keys are in operation. + A network that gains and loses nodes on a regular basis is likely + to reach the 65536 limit of the 2-byte (16-bit) short addresses, + even if the network has only a few thousand nodes. Network + planners should consider the need to rekey the network on a + periodic basis in order to recover 2-byte addresses. The rekey + can update the short addresses for active nodes if desired, but + there is actually no need to do this as long as the key has been + changed. + + * With TSCH as it stands at the time of this writing, the ASN will + wrap after 2^40 timeslot durations, meaning around 350 years with + the default values. Wrapping ASN is not expected to happen within + the lifetime of most LLNs. Yet, should the ASN wrap, the network + must be rekeyed to avoid a nonce-reuse attack. + + * Many cipher algorithms have some suggested limits on how many + bytes should be encrypted with that algorithm before a new key is + used. These numbers are typically in the many to hundreds of + gigabytes of data. On very fast backbone networks, this becomes + an important concern. On LLNs with typical data rates in the + kilobits/second, this concern is significantly less. With IEEE + Std 802.15.4 as it stands at the time of this writing, the ASN + will wrap before the limits of the current L2 crypto (AES-CCM-128) + are reached, so the problem should never occur. + + * In any fashion, if the LLN is expected to operate continuously for + decades, then the operators are advised to plan for the need to + rekey. + + Except for urgent rekeys caused by malicious nodes, the rekey + operation described in [RFC9031] can be done as a background task and + can be done incrementally. It is a make-before-break mechanism. The + switch over to the new key is not signaled by time, but rather by + observation that the new key is in use. As such, the update can take + as long as needed, or occur in as short a time as practical. + +7. References + +7.1. Normative References + + [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, + DOI 10.17487/RFC0768, August 1980, + <https://www.rfc-editor.org/info/rfc768>. + + [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, + "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, + DOI 10.17487/RFC4861, September 2007, + <https://www.rfc-editor.org/info/rfc4861>. + + [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless + Address Autoconfiguration", RFC 4862, + DOI 10.17487/RFC4862, September 2007, + <https://www.rfc-editor.org/info/rfc4862>. + + [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, + "Transmission of IPv6 Packets over IEEE 802.15.4 + Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, + <https://www.rfc-editor.org/info/rfc4944>. + + [RFC5889] Baccelli, E., Ed. and M. Townsley, Ed., "IP Addressing + Model in Ad Hoc Networks", RFC 5889, DOI 10.17487/RFC5889, + September 2010, <https://www.rfc-editor.org/info/rfc5889>. + + [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 + Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, + DOI 10.17487/RFC6282, September 2011, + <https://www.rfc-editor.org/info/rfc6282>. + + [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., + Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, + JP., and R. Alexander, "RPL: IPv6 Routing Protocol for + Low-Power and Lossy Networks", RFC 6550, + DOI 10.17487/RFC6550, March 2012, + <https://www.rfc-editor.org/info/rfc6550>. + + [RFC6551] Vasseur, JP., Ed., Kim, M., Ed., Pister, K., Dejean, N., + and D. Barthel, "Routing Metrics Used for Path Calculation + in Low-Power and Lossy Networks", RFC 6551, + DOI 10.17487/RFC6551, March 2012, + <https://www.rfc-editor.org/info/rfc6551>. + + [RFC6552] Thubert, P., Ed., "Objective Function Zero for the Routing + Protocol for Low-Power and Lossy Networks (RPL)", + RFC 6552, DOI 10.17487/RFC6552, March 2012, + <https://www.rfc-editor.org/info/rfc6552>. + + [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, + DOI 10.17487/RFC6553, March 2012, + <https://www.rfc-editor.org/info/rfc6553>. + + [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 + Routing Header for Source Routes with the Routing Protocol + for Low-Power and Lossy Networks (RPL)", RFC 6554, + DOI 10.17487/RFC6554, March 2012, + <https://www.rfc-editor.org/info/rfc6554>. + + [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. + Bormann, "Neighbor Discovery Optimization for IPv6 over + Low-Power Wireless Personal Area Networks (6LoWPANs)", + RFC 6775, DOI 10.17487/RFC6775, November 2012, + <https://www.rfc-editor.org/info/rfc6775>. + + [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and + Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January + 2014, <https://www.rfc-editor.org/info/rfc7102>. + + [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for + Constrained-Node Networks", RFC 7228, + DOI 10.17487/RFC7228, May 2014, + <https://www.rfc-editor.org/info/rfc7228>. + + [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained + Application Protocol (CoAP)", RFC 7252, + DOI 10.17487/RFC7252, June 2014, + <https://www.rfc-editor.org/info/rfc7252>. + + [RFC7554] Watteyne, T., Ed., Palattella, M., and L. Grieco, "Using + IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the + Internet of Things (IoT): Problem Statement", RFC 7554, + DOI 10.17487/RFC7554, May 2015, + <https://www.rfc-editor.org/info/rfc7554>. + + [RFC8025] Thubert, P., Ed. and R. Cragie, "IPv6 over Low-Power + Wireless Personal Area Network (6LoWPAN) Paging Dispatch", + RFC 8025, DOI 10.17487/RFC8025, November 2016, + <https://www.rfc-editor.org/info/rfc8025>. + + [RFC8137] Kivinen, T. and P. Kinney, "IEEE 802.15.4 Information + Element for the IETF", RFC 8137, DOI 10.17487/RFC8137, May + 2017, <https://www.rfc-editor.org/info/rfc8137>. + + [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, + "IPv6 over Low-Power Wireless Personal Area Network + (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, + April 2017, <https://www.rfc-editor.org/info/rfc8138>. + + [RFC8180] Vilajosana, X., Ed., Pister, K., and T. Watteyne, "Minimal + IPv6 over the TSCH Mode of IEEE 802.15.4e (6TiSCH) + Configuration", BCP 210, RFC 8180, DOI 10.17487/RFC8180, + May 2017, <https://www.rfc-editor.org/info/rfc8180>. + + [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 + (IPv6) Specification", STD 86, RFC 8200, + DOI 10.17487/RFC8200, July 2017, + <https://www.rfc-editor.org/info/rfc8200>. + + [RFC8453] Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for + Abstraction and Control of TE Networks (ACTN)", RFC 8453, + DOI 10.17487/RFC8453, August 2018, + <https://www.rfc-editor.org/info/rfc8453>. + + [RFC8480] Wang, Q., Ed., Vilajosana, X., and T. Watteyne, "6TiSCH + Operation Sublayer (6top) Protocol (6P)", RFC 8480, + DOI 10.17487/RFC8480, November 2018, + <https://www.rfc-editor.org/info/rfc8480>. + + [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. + Perkins, "Registration Extensions for IPv6 over Low-Power + Wireless Personal Area Network (6LoWPAN) Neighbor + Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, + <https://www.rfc-editor.org/info/rfc8505>. + + [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, + "Deterministic Networking Architecture", RFC 8655, + DOI 10.17487/RFC8655, October 2019, + <https://www.rfc-editor.org/info/rfc8655>. + + [RFC8928] Thubert, P., Ed., Sarikaya, B., Sethi, M., and R. Struik, + "Address-Protected Neighbor Discovery for Low-Power and + Lossy Networks", RFC 8928, DOI 10.17487/RFC8928, November + 2020, <https://www.rfc-editor.org/info/rfc8928>. + + [RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli, + "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929, + November 2020, <https://www.rfc-editor.org/info/rfc8929>. + + [RFC8930] Watteyne, T., Ed., Thubert, P., Ed., and C. Bormann, "On + Forwarding 6LoWPAN Fragments over a Multi-Hop IPv6 + Network", RFC 8930, DOI 10.17487/RFC8930, November 2020, + <https://www.rfc-editor.org/info/rfc8930>. + + [RFC8931] Thubert, P., Ed., "IPv6 over Low-Power Wireless Personal + Area Network (6LoWPAN) Selective Fragment Recovery", + RFC 8931, DOI 10.17487/RFC8931, November 2020, + <https://www.rfc-editor.org/info/rfc8931>. + + [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI + Option Type, Routing Header for Source Routes, and IPv6- + in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, + DOI 10.17487/RFC9008, April 2021, + <https://www.rfc-editor.org/info/rfc9008>. + + [RFC9010] Thubert, P., Ed. and M. Richardson, "Routing for RPL + (Routing Protocol for Low-Power and Lossy Networks) + Leaves", RFC 9010, DOI 10.17487/RFC9010, April 2021, + <https://www.rfc-editor.org/info/rfc9010>. + + [RFC9031] Vučinić, M., Ed., Simon, J., Pister, K., and M. + Richardson, "Constrained Join Protocol (CoJP) for 6TiSCH", + RFC 9031, DOI 10.17487/RFC9031, May 2021, + <https://www.rfc-editor.org/info/rfc9031>. + + [RFC9032] Dujovne, D., Ed. and M. Richardson, "Encapsulation of + 6TiSCH Join and Enrollment Information Elements", + RFC 9032, DOI 10.17487/RFC9032, May 2021, + <https://www.rfc-editor.org/info/rfc9032>. + + [RFC9033] Chang, T., Ed., Vučinić, M., Vilajosana, X., Duquennoy, + S., and D. Dujovne, "6TiSCH Minimal Scheduling Function + (MSF)", RFC 9033, DOI 10.17487/RFC9033, May 2021, + <https://www.rfc-editor.org/info/rfc9033>. + +7.2. Informative References + + [AMI] U.S. Department of Energy, "Advanced Metering + Infrastructure and Customer Systems", 2006, + <https://www.energy.gov/sites/prod/files/2016/12/f34/ + AMI%20Summary%20Report_09-26-16.pdf>. + + [ANIMA] IETF, "Autonomic Networking Integrated Model and Approach + (anima)", + <https://datatracker.ietf.org/doc/charter-ietf-anima/>. + + [AODV-RPL] Anamalamudi, S., Zhang, M., Perkins, C. E., Anand, S., and + B. Liu, "Supporting Asymmetric Links in Low Power + Networks: AODV-RPL", Work in Progress, Internet-Draft, + draft-ietf-roll-aodv-rpl-10, 4 April 2021, + <https://tools.ietf.org/html/draft-ietf-roll-aodv-rpl-10>. + + [AODVv2] Perkins, C. E., Ratliff, S., Dowdell, J., Steenbrink, L., + and V. Mercieca, "Ad Hoc On-demand Distance Vector Version + 2 (AODVv2) Routing", Work in Progress, Internet-Draft, + draft-ietf-manet-aodvv2-16, 4 May 2016, + <https://tools.ietf.org/html/draft-ietf-manet-aodvv2-16>. + + [BITSTRINGS-6LORH] + Thubert, P., Ed., Brodard, Z., Jiang, H., and G. Texier, + "A 6loRH for BitStrings", Work in Progress, Internet- + Draft, draft-thubert-6lo-bier-dispatch-06, 28 January + 2019, <https://tools.ietf.org/html/draft-thubert-6lo-bier- + dispatch-06>. + + [CCAMP] IETF, "Common Control and Measurement Plane (ccamp)", + <https://datatracker.ietf.org/doc/charter-ietf-ccamp/>. + + [CCMstar] Struik, R., "Formal Specification of the CCM* Mode of + Operation", September 2004, <http://www.ieee802.org/15/ + pub/2004/15-04-0537-00-004b-formal-specification-ccm-star- + mode-operation.doc>. + + [CONSTRAINED-VOUCHER] + Richardson, M., van der Stok, P., and P. Kampanakis, + "Constrained Voucher Artifacts for Bootstrapping + Protocols", Work in Progress, Internet-Draft, draft-ietf- + anima-constrained-voucher-10, 21 February 2021, + <https://tools.ietf.org/html/draft-ietf-anima-constrained- + voucher-10>. + + [DAO-PROJECTION] + Thubert, P., Jadhav, R. A., and M. Gillmore, "Root + initiated routing state in RPL", Work in Progress, + Internet-Draft, draft-ietf-roll-dao-projection-16, 15 + January 2021, <https://tools.ietf.org/html/draft-ietf- + roll-dao-projection-16>. + + [EDHOC] Selander, G., Mattsson, J., and F. Palombini, "Ephemeral + Diffie-Hellman Over COSE (EDHOC)", Work in Progress, + Internet-Draft, draft-selander-ace-cose-ecdhe-14, 11 + September 2019, <https://tools.ietf.org/html/draft- + selander-ace-cose-ecdhe-14>. + + [EST-COAPS] + van der Stok, P., Kampanakis, P., Richardson, M., and S. + Raza, "EST over secure CoAP (EST-coaps)", Work in + Progress, Internet-Draft, draft-ietf-ace-coap-est-18, 6 + January 2020, + <https://tools.ietf.org/html/draft-ietf-ace-coap-est-18>. + + [HART] FieldComm Group, "HART", + <https://fieldcommgroup.org/technologies/hart>. + + [IEC62439] IEC, "Industrial communication networks - High + availability automation networks - Part 3: Parallel + Redundancy Protocol (PRP) and High-availability Seamless + Redundancy (HSR)", IEC 62439-3:2016, 2016, + <https://webstore.iec.ch/publication/24438>. + + [IEEE802154] + IEEE, "IEEE Standard for Low-Rate Wireless Networks", IEEE + Standard 802.15.4-2015, DOI 10.1109/IEEESTD.2016.7460875, + April 2016, + <https://ieeexplore.ieee.org/document/7460875>. + + [IEEE802154e] + IEEE, "IEEE Standard for Local and metropolitan area + networks -- Part. 15.4: Low-Rate Wireless Personal Area + Networks (LR-WPANs) Amendment 1: MAC sublayer", IEEE + Standard 802.15.4e-2012, DOI 10.1109/IEEESTD.2012.6185525, + April 2012, + <https://ieeexplore.ieee.org/document/6185525>. + + [ISA100] ISA/ANSI, "ISA100, Wireless Systems for Automation", + <https://www.isa.org/isa100/>. + + [ISA100.11a] + ISA/ANSI, "Wireless Systems for Industrial Automation: + Process Control and Related Applications - ISA100.11a- + 2011", IEC 62734:2014, 2011, + <https://webstore.iec.ch/publication/65581>. + + [ND-UNICAST-LOOKUP] + Thubert, P., Ed. and E. Levy-Abegnoli, "IPv6 Neighbor + Discovery Unicast Lookup", Work in Progress, Internet- + Draft, draft-thubert-6man-unicast-lookup-00, 29 July 2019, + <https://tools.ietf.org/html/draft-thubert-6man-unicast- + lookup-00>. + + [PCE] IETF, "Path Computation Element (pce)", + <https://datatracker.ietf.org/doc/charter-ietf-pce/>. + + [RAW-ARCHITECTURE] + Thubert, P., Ed. and G. Z. Papadopoulos, "Reliable and + Available Wireless Problem Statement", Work in Progress, + Internet-Draft, draft-pthubert-raw-architecture-05, 15 + November 2020, <https://tools.ietf.org/html/draft- + pthubert-raw-architecture-05>. + + [RAW-USE-CASES] + Papadopoulos, G. Z., Thubert, P., Theoleyre, F., and C. J. + Bernardos, "RAW use cases", Work in Progress, Internet- + Draft, draft-ietf-raw-use-cases-01, 21 February 2021, + <https://tools.ietf.org/html/draft-ietf-raw-use-cases-01>. + + [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, + "Definition of the Differentiated Services Field (DS + Field) in the IPv4 and IPv6 Headers", RFC 2474, + DOI 10.17487/RFC2474, December 1998, + <https://www.rfc-editor.org/info/rfc2474>. + + [RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol + Extensions for IPv6 Inter-Domain Routing", RFC 2545, + DOI 10.17487/RFC2545, March 1999, + <https://www.rfc-editor.org/info/rfc2545>. + + [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., + and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP + Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, + <https://www.rfc-editor.org/info/rfc3209>. + + [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between + Information Models and Data Models", RFC 3444, + DOI 10.17487/RFC3444, January 2003, + <https://www.rfc-editor.org/info/rfc3444>. + + [RFC3963] Devarapalli, V., Wakikawa, R., Petrescu, A., and P. + Thubert, "Network Mobility (NEMO) Basic Support Protocol", + RFC 3963, DOI 10.17487/RFC3963, January 2005, + <https://www.rfc-editor.org/info/rfc3963>. + + [RFC4080] Hancock, R., Karagiannis, G., Loughney, J., and S. Van den + Bosch, "Next Steps in Signaling (NSIS): Framework", + RFC 4080, DOI 10.17487/RFC4080, June 2005, + <https://www.rfc-editor.org/info/rfc4080>. + + [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing + Architecture", RFC 4291, DOI 10.17487/RFC4291, February + 2006, <https://www.rfc-editor.org/info/rfc4291>. + + [RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, + DOI 10.17487/RFC4903, June 2007, + <https://www.rfc-editor.org/info/rfc4903>. + + [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 + over Low-Power Wireless Personal Area Networks (6LoWPANs): + Overview, Assumptions, Problem Statement, and Goals", + RFC 4919, DOI 10.17487/RFC4919, August 2007, + <https://www.rfc-editor.org/info/rfc4919>. + + [RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF + for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008, + <https://www.rfc-editor.org/info/rfc5340>. + + [RFC5974] Manner, J., Karagiannis, G., and A. McDonald, "NSIS + Signaling Layer Protocol (NSLP) for Quality-of-Service + Signaling", RFC 5974, DOI 10.17487/RFC5974, October 2010, + <https://www.rfc-editor.org/info/rfc5974>. + + [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility + Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July + 2011, <https://www.rfc-editor.org/info/rfc6275>. + + [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer + Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, + January 2012, <https://www.rfc-editor.org/info/rfc6347>. + + [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem + Statement and Requirements for IPv6 over Low-Power + Wireless Personal Area Network (6LoWPAN) Routing", + RFC 6606, DOI 10.17487/RFC6606, May 2012, + <https://www.rfc-editor.org/info/rfc6606>. + + [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The + Locator/ID Separation Protocol (LISP)", RFC 6830, + DOI 10.17487/RFC6830, January 2013, + <https://www.rfc-editor.org/info/rfc6830>. + + [RFC7426] Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S., + Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software- + Defined Networking (SDN): Layers and Architecture + Terminology", RFC 7426, DOI 10.17487/RFC7426, January + 2015, <https://www.rfc-editor.org/info/rfc7426>. + + [RFC8578] Grossman, E., Ed., "Deterministic Networking Use Cases", + RFC 8578, DOI 10.17487/RFC8578, May 2019, + <https://www.rfc-editor.org/info/rfc8578>. + + [RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, + "Object Security for Constrained RESTful Environments + (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, + <https://www.rfc-editor.org/info/rfc8613>. + + [RFC8939] Varga, B., Ed., Farkas, J., Berger, L., Fedyk, D., and S. + Bryant, "Deterministic Networking (DetNet) Data Plane: + IP", RFC 8939, DOI 10.17487/RFC8939, November 2020, + <https://www.rfc-editor.org/info/rfc8939>. + + [RFC8995] Pritikin, M., Richardson, M., Eckert, T., Behringer, M., + and K. Watsen, "Bootstrapping Remote Secure Key + Infrastructure (BRSKI)", RFC 8995, DOI 10.17487/RFC8995, + May 2021, <https://www.rfc-editor.org/info/rfc8995>. + + [RFC9035] Thubert, P., Ed. and L. Zhao, "A Routing Protocol for Low- + Power and Lossy Networks (RPL) Destination-Oriented + Directed Acyclic Graph (DODAG) Configuration Option for + the 6LoWPAN Routing Header", RFC 9035, + DOI 10.17487/RFC9035, April 2021, + <https://www.rfc-editor.org/info/rfc9035>. + + [ROBUST-SCHEDULING] + Tiloca, M., Duquennoy, S., and G. Dini, "Robust Scheduling + against Selective Jamming in 6TiSCH Networks", Work in + Progress, Internet-Draft, draft-tiloca-6tisch-robust- + scheduling-02, 10 June 2019, <https://tools.ietf.org/html/ + draft-tiloca-6tisch-robust-scheduling-02>. + + [RPL-APPLICABILITY] + Phinney, T., Ed., Thubert, P., and R. Assimiti, "RPL + applicability in industrial networks", Work in Progress, + Internet-Draft, draft-ietf-roll-rpl-industrial- + applicability-02, 21 October 2013, + <https://tools.ietf.org/html/draft-ietf-roll-rpl- + industrial-applicability-02>. + + [RPL-BIER] Thubert, P., Ed., "RPL-BIER", Work in Progress, Internet- + Draft, draft-thubert-roll-bier-02, 24 July 2018, + <https://tools.ietf.org/html/draft-thubert-roll-bier-02>. + + [RPL-MOP] Jadhav, R., Ed., Thubert, P., Richardson, M., and R. + Sahoo, "RPL Capabilities", Work in Progress, Internet- + Draft, draft-ietf-roll-capabilities-08, 17 March 2021, + <https://tools.ietf.org/html/draft-ietf-roll-capabilities- + 08>. + + [S-ALOHA] Roberts, L. G., "ALOHA packet system with and without + slots and capture", ACM SIGCOMM Computer Communication + Review, DOI 10.1145/1024916.1024920, April 1975, + <https://dl.acm.org/citation.cfm?id=1024920>. + + [TE-PREF] Thubert, P., Ed., Eckert, T., Brodard, Z., and H. Jiang, + "BIER-TE extensions for Packet Replication and Elimination + Function (PREF) and OAM", Work in Progress, Internet- + Draft, draft-thubert-bier-replication-elimination-03, 3 + March 2018, <https://tools.ietf.org/html/draft-thubert- + bier-replication-elimination-03>. + + [TEAS] IETF, "Traffic Engineering Architecture and Signaling + (teas)", + <https://datatracker.ietf.org/doc/charter-ietf-teas/>. + + [VIRTUAL-REASSEMBLY] + Bormann, C. and T. Watteyne, "Virtual reassembly buffers + in 6LoWPAN", Work in Progress, Internet-Draft, draft-ietf- + lwig-6lowpan-virtual-reassembly-02, 9 March 2020, + <https://tools.ietf.org/html/draft-ietf-lwig-6lowpan- + virtual-reassembly-02>. + + [WirelessHART] + International Electrotechnical Commission, "Industrial + networks - Wireless communication network and + communication profiles - WirelessHART(TM)", + IEC 62591:2016, March 2016, + <https://webstore.iec.ch/publication/24433>. + + [ZEROTOUCH-JOIN] + Richardson, M., "6tisch Zero-Touch Secure Join protocol", + Work in Progress, Internet-Draft, draft-ietf-6tisch- + dtsecurity-zerotouch-join-04, 8 July 2019, + <https://tools.ietf.org/html/draft-ietf-6tisch-dtsecurity- + zerotouch-join-04>. + +Appendix A. Related Work in Progress + + This document has been incremented as the work progressed following + the evolution of the WG charter and the availability of dependent + work. The intent was to publish when the WG concluded on the covered + items. At the time of publishing, the following specifications are + still in progress and may affect the evolution of the stack in a + 6TiSCH-aware node. + +A.1. Unchartered IETF Work Items + +A.1.1. 6TiSCH Zero-Touch Security + + The security model and in particular the zero-touch join process + [ZEROTOUCH-JOIN] depend on the ANIMA (Autonomic Networking Integrated + Model and Approach) [ANIMA] "Bootstrapping Remote Secure Key + Infrastructure (BRSKI)" [RFC8995] to enable zero-touch security + provisioning; for highly constrained nodes, a minimal model based on + pre-shared keys (PSK) is also available. As currently written, it + also depends on a number of documents in progress in the CORE + (Constrained RESTful Environments) WG and on "Ephemeral + Diffie-Hellman Over COSE (EDHOC)" [EDHOC], which is being considered + for adoption by the LAKE (Lightweight Authenticated Key Exchange) WG. + +A.1.2. 6TiSCH Track Setup + + ROLL (Routing Over Low power and Lossy networks) is now standardizing + a reactive routing protocol based on RPL [AODV-RPL]. The need of a + reactive routing protocol to establish on-demand, constraint- + optimized routes and a reservation protocol to establish Layer 3 + Tracks is being discussed in 6TiSCH but not yet chartered. + + At the time of this writing, there is new work planned in the IETF to + provide limited deterministic networking capabilities for wireless + networks with a focus on forwarding behaviors to react quickly and + locally to the changes as described in [RAW-ARCHITECTURE]. + + ROLL is also standardizing an extension to RPL to set up centrally + computed routes [DAO-PROJECTION]. + + The 6TiSCH architecture should thus inherit from the DetNet + architecture [RFC8655] and thus depends on it. The PCE should be a + core component of that architecture. An extension to RPL or to TEAS + (Traffic Engineering Architecture and Signaling) [TEAS] will be + required to expose the 6TiSCH node capabilities and the network peers + to the PCE, possibly in combination with [RPL-MOP]. A protocol such + as a lightweight Path Computation Element Communication Protocol + (PCEP) or an adaptation of Common Control and Measurement Plane + (CCAMP) [CCAMP] GMPLS formats and procedures could be used in + combination to [DAO-PROJECTION] to install the Tracks, as computed by + the PCE, to the 6TiSCH nodes. + +A.1.3. Using BIER in a 6TiSCH Network + + ROLL is actively working on Bit Index Explicit Replication (BIER) as + a method to compress both the data-plane packets and the routing + tables in storing mode [RPL-BIER]. + + BIER could also be used in the context of the DetNet service layer. + "BIER-TE extensions for Packet Replication and Elimination Function + (PREF) and OAM" [TE-PREF] leverages BIER Traffic Engineering (TE) to + control the DetNet Replication and Elimination activities in the data + plane, and to provide traceability on links where replication and + loss happen, in a manner that is abstract to the forwarding + information. + + "A 6loRH for BitStrings" [BITSTRINGS-6LORH] proposes a 6LoWPAN + compression for the BIER BitString based on 6LoWPAN Routing Header + [RFC8138]. + +A.2. External (Non-IETF) Work Items + + The current charter positions 6TiSCH on IEEE Std 802.15.4 only. + Though most of the design should be portable to other link types, + 6TiSCH has a strong dependency on IEEE Std 802.15.4 and its + evolution. The impact of changes to TSCH on this architecture should + be minimal to nonexistent, but deeper work such as 6top and security + may be impacted. A 6TiSCH Interest Group at the IEEE maintains the + synchronization and helps foster work at the IEEE should 6TiSCH + demand it. + + Work is being proposed at IEEE (802.15.12 PAR) for an LLC that would + logically include the 6top sublayer. The interaction with the 6top + sublayer and the Scheduling Functions described in this document are + yet to be defined. + + ISA100 [ISA100] Common Network Management (CNM) is another external + work of interest for 6TiSCH. The group, referred to as ISA100.20, + defines a Common Network Management framework that should enable the + management of resources that are controlled by heterogeneous + protocols such as ISA100.11a [ISA100.11a], WirelessHART + [WirelessHART], and 6TiSCH. Interestingly, the establishment of + 6TiSCH deterministic paths, called Tracks, are also in scope, and + ISA100.20 is working on requirements for DetNet. + +Acknowledgments + +Special Thanks + + Special thanks to Jonathan Simon, Giuseppe Piro, Subir Das, and + Yoshihiro Ohba for their deep contributions to the initial security + work, to Yasuyuki Tanaka for his work on implementation and + simulation that tremendously helped build a robust system, to Diego + Dujovne for starting and leading the SF0 effort, and to Tengfei Chang + for evolving it in the MSF. + + Special thanks also to Pat Kinney, Charlie Perkins, and Bob Heile for + their support in maintaining the connection active and the design in + line with work happening at IEEE 802.15. + + Special thanks to Ted Lemon, who was the INT Area Director while this + document was initiated, for his great support and help throughout, + and to Suresh Krishnan, who took over with that kind efficiency of + his till publication. + + Also special thanks to Ralph Droms, who performed the first INT Area + Directorate review, which was very deep and thorough and radically + changed the orientations of this document, and then to Eliot Lear and + Carlos Pignataro, who helped finalize this document in preparation + for the IESG reviews, and to Gorry Fairhurst, David Mandelberg, Qin + Wu, Francis Dupont, Éric Vyncke, Mirja Kühlewind, Roman Danyliw, + Benjamin Kaduk, and Andrew Malis, who contributed to the final + shaping of this document through the IESG review procedure. + +And Do Not Forget + + This document is the result of multiple interactions, in particular + during the 6TiSCH (bi)Weekly Interim call, relayed through the 6TiSCH + mailing list at the IETF, over the course of more than 5 years. + + The authors wish to thank in arbitrary order: Alaeddine Weslati, + Chonggang Wang, Georgios Exarchakos, Zhuo Chen, Georgios + Papadopoulos, Eric Levy-Abegnoli, Alfredo Grieco, Bert Greevenbosch, + Cedric Adjih, Deji Chen, Martin Turon, Dominique Barthel, Elvis + Vogli, Geraldine Texier, Guillaume Gaillard, Herman Storey, Kazushi + Muraoka, Ken Bannister, Kuor Hsin Chang, Laurent Toutain, Maik + Seewald, Michael Behringer, Nancy Cam Winget, Nicola Accettura, + Nicolas Montavont, Oleg Hahm, Patrick Wetterwald, Paul Duffy, Peter + van der Stok, Rahul Sen, Pieter de Mil, Pouria Zand, Rouhollah + Nabati, Rafa Marin-Lopez, Raghuram Sudhaakar, Sedat Gormus, Shitanshu + Shah, Steve Simlo, Tina Tsou, Tom Phinney, Xavier Lagrange, Ines + Robles, and Samita Chakrabarti for their participation and various + contributions. + +Contributors + + The co-authors of this document are listed below: + + Thomas Watteyne for his contributions to the whole design, in + particular on TSCH and security, and to the open source community + that he created with openWSN; + + Xavier Vilajosana, who led the design of the minimal support with + RPL and contributed deeply to the 6top design and the GMPLS + operation of Track switching; + + Kris Pister for creating TSCH and his continuing guidance through + the elaboration of this design; + + Mališa Vučinić for the work on the one-touch join process and his + contribution to the Security Design Team; + + Michael Richardson for his leadership role in the Security Design + Team and his contribution throughout this document; + + Tero Kivinen for his contribution to the security work in general + and the security section in particular; + + Maria Rita Palattella for managing the Terminology document that + was merged into this document through the work of 6TiSCH; + + Simon Duquennoy for his contribution to the open source community + with the 6TiSCH implementation of contiki, and for his + contribution to MSF and autonomous unicast cells; + + Qin Wang, who led the design of the 6top sublayer and contributed + related text that was moved and/or adapted into this document; + + Rene Struik for the security section and his contribution to the + Security Design Team; + + Robert Assimiti for his breakthrough work on RPL over TSCH and + initial text and guidance. + +Author's Address + + Pascal Thubert (editor) + Cisco Systems, Inc + Building D + 45 Allee des Ormes - BP1200 + 06254 Mougins - Sophia Antipolis + France + + Phone: +33 497 23 26 34 + Email: pthubert@cisco.com |