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