| rfc9030.original.xml | rfc9030.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | ||||
| <?rfc toc="yes"?> | category="info" | |||
| <?rfc tocompact="yes"?> | ipr="trust200902" | |||
| <?rfc tocdepth="3"?> | tocInclude="true" | |||
| <?rfc tocindent="yes"?> | sortRefs="true" | |||
| <?rfc symrefs="yes"?> | symRefs="true" | |||
| <?rfc sortrefs="yes"?> | obsoletes="" | |||
| <?rfc comments="yes"?> | updates="" | |||
| <?rfc inline="yes"?> | consensus="true" | |||
| <?rfc compact="no"?> | submissionType="IETF" | |||
| <?rfc subcompact="no"?> | xml:lang="en" | |||
| <?rfc authorship="yes"?> | version="3" | |||
| <?rfc tocappendix="yes"?> | docName="draft-ietf-6tisch-architecture-30" | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" ipr='trust20090 | number="9030"> | |||
| 2' tocInclude="true" obsoletes="" updates="" consensus="true" submissionType="I | ||||
| ETF" xml:lang="en" version="3" docName="draft-ietf-6tisch-architecture-30" > | ||||
| <front> | <front> | |||
| <title abbrev='6tisch-architecture'>An Architecture for IPv6 over the TSCH mo | <title abbrev="6TiSCH Architecture">An Architecture for IPv6 over | |||
| de of IEEE 802.15.4</title> | the Time-Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)</title> | |||
| <author initials='P' surname='Thubert' fullname='Pascal Thubert' role='editor | <seriesInfo name="RFC" value="9030"/> | |||
| '> | ||||
| <organization abbrev='Cisco Systems'>Cisco Systems, Inc</organization> | <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="editor | |||
| "> | ||||
| <organization abbrev="Cisco Systems">Cisco Systems, Inc</organization> | ||||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Building D</street> | <extaddr>Building D</extaddr> | |||
| <street>45 Allee des Ormes - BP1200 </street> | <street>45 Allee des Ormes - BP1200 </street> | |||
| <city>Mougins - Sophia Antipolis</city> | <city>Mougins - Sophia Antipolis</city> | |||
| <code>06254</code> | <code>06254</code> | |||
| <country>France</country> | <country>France</country> | |||
| </postal> | </postal> | |||
| <phone>+33 497 23 26 34</phone> | <phone>+33 497 23 26 34</phone> | |||
| <email>pthubert@cisco.com</email> | <email>pthubert@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date/> | <date month="May" year="2021"/> | |||
| <area>Internet Area</area> | <area>Internet Area</area> | |||
| <workgroup>6TiSCH</workgroup> | <workgroup>6TiSCH</workgroup> | |||
| <keyword>Draft</keyword> | <keyword>deterministic wireless</keyword> | |||
| <keyword>radio</keyword> | ||||
| <keyword>mesh</keyword> | ||||
| <abstract> | <abstract> | |||
| <t> This document describes a network architecture that provides | <t> This document describes a network architecture that provides | |||
| low-latency, low-jitter and high-reliability packet delivery. It | low-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 | 802.15.4 time-slotted channel hopping (TSCH) to meet the | |||
| requirements of LowPower wireless deterministic applications. | requirements of low-power wireless deterministic applications. | |||
| <!-- | ||||
| This document presents the 6TiSCH architecture of an IPv6 | ||||
| Multi-Link subnet that is composed of a high-speed powered backbone and | ||||
| a number of IEEE Std. 802.15.4 TSCH low-power wireless networks attache | ||||
| d and | ||||
| synchronized by Backbone Routers. The architecture defines mechanisms | ||||
| to establish and maintain routing and scheduling in a centralized, | ||||
| distributed, or mixed fashion. | ||||
| Backbone Routers perform proxy Neighbor Discovery operations over | ||||
| the backbone on behalf of the wireless devices, so they can share a sam | ||||
| e | ||||
| subnet and appear to be connected to the same backbone as classical dev | ||||
| ices. | ||||
| --> | ||||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| <!--note title="Requirements Language"> | ||||
| <t> | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", | ||||
| and "OPTIONAL" in this document are to be interpreted as described | ||||
| in <xref target="RFC2119">RFC 2119</xref>. | ||||
| </t> | ||||
| </note--> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section><name>Introduction</name> | <section><name>Introduction</name> | |||
| <t> | <t> | |||
| Wireless Networks enable a wide variety of devices of any size | Wireless networks enable a wide variety of devices of any size | |||
| to get interconnected, often at a very low marginal cost per device, | to get interconnected, often at a very low marginal cost per device, | |||
| at any range, and in circumstances where wiring may be impractical, | at any range, and in circumstances where wiring may be impractical, | |||
| for instance on fast-moving or rotating devices. | for instance, on fast-moving or rotating devices. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 | delivery ratio within a bounded latency so as to enable | |||
| mission-critical machine-to-machine (M2M) operations. | mission-critical machine-to-machine (M2M) operations. | |||
| <!-- At IEEE Std. 802.1, the | ||||
| <xref target="IEEE Std. 802.1TSNTG">Time Sensitive Networking</xref>(TS | ||||
| N) | ||||
| task group was formed to provide deterministic properties at Layer-2 | ||||
| across multiple hops. --> | ||||
| Applications that need such networks are presented in | Applications that need such networks are presented in | |||
| <xref target='RFC8578'/>. | <xref target="RFC8578"/> | |||
| <!--and | and | |||
| <xref target="I-D.bernardos-raw-use-cases"/>, which presents a number | <xref target="I-D.ietf-raw-use-cases"/>, which presents a number | |||
| of additional use cases for Reliable and Available Wireless networks. | of additional use cases for Reliable and Available Wireless networks (R | |||
| --> | AW). | |||
| The considered applications include Professional Media, Industrial | The considered applications include professional media, Industrial | |||
| Automation Control Systems (IACS), building | Automation and Control Systems (IACS), building | |||
| automation, in-vehicle command and control, commercial automation and | automation, in-vehicle command and control, commercial automation and | |||
| asset tracking with mobile scenarios, as well as gaming, drones and edg | asset tracking with mobile scenarios, as well as gaming, drones and | |||
| e robotic control, and home automation applications. | edge robotic control, and home automation applications. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The Timeslotted Channel Hopping (TSCH) <xref target='RFC7554'/> mode | The Time-Slotted Channel Hopping (TSCH) <xref target="RFC7554"/> mode | |||
| of the IEEE Std. 802.15.4 <xref target='IEEE802154'/> Medium Access | of the IEEE Std 802.15.4 <xref target="IEEE802154"/> Medium Access | |||
| Control (MAC) was introduced with the IEEE Std. 802.15.4e | Control (MAC) was introduced with the IEEE Std 802.15.4e | |||
| <xref target='IEEE802154e'/> amendment and is now retrofitted in the | <xref target="IEEE802154e"/> amendment and is now retrofitted in the | |||
| main standard. For all practical purposes, this document | main standard. For all practical purposes, this document | |||
| is expected to be insensitive to the revisions of that standard, | is expected to be insensitive to the revisions of that standard, | |||
| which is thus referenced without a date. | which is thus referenced without a date. | |||
| TSCH is both a Time-Division Multiplexing and a Frequency-Division | TSCH is both a Time-Division Multiplexing (TDM) and a Frequency-Divisio | |||
| Multiplexing technique whereby a different channel can be used for | n | |||
| each transmission, and that allows to schedule transmissions for | Multiplexing (FDM) technique, whereby a different channel can be used f | |||
| deterministic operations, and applies to the slower and most energy | or | |||
| constrained wireless use cases. | each transmission. TSCH allows the scheduling of transmissions for | |||
| deterministic operations and applies to the slower and most | ||||
| energy-constrained wireless use cases. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The scheduled operation provides for a more reliable experience which | The scheduled operation provides for a more reliable experience, which | |||
| can be used to monitor and manage resources, e.g., energy and water, in | can be used to monitor and manage resources, e.g., energy and water, in | |||
| a more efficient fashion. | a more efficient fashion. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Proven Deterministic Networking standards for use in Process Control, | Proven deterministic networking standards for use in process control, | |||
| including ISA100.11a <xref target='ISA100.11a'/> and WirelessHART | including ISA100.11a <xref target="ISA100.11a"/> and WirelessHART | |||
| <xref target='WirelessHART'/>, have demonstrated the capabilities | <xref target="WirelessHART"/>, have demonstrated the capabilities | |||
| of the IEEE Std. 802.15.4 TSCH MAC for high reliability against interfe | of the IEEE Std 802.15.4 TSCH MAC for high reliability against interfer | |||
| rence, | ence, | |||
| low-power consumption on well-known flows, and its applicability for | low-power consumption on well-known flows, and its applicability for | |||
| Traffic Engineering (TE) from a central controller. | Traffic Engineering (TE) from a central controller. | |||
| </t> | </t> | |||
| <t>To enable the convergence of Information Technology (IT) and | <t>To enable the convergence of information technology (IT) and | |||
| Operational Technology (OT) in Low-Power Lossy | operational technology (OT) in Low-Power and Lossy | |||
| Networks (LLNs), the 6TiSCH Architecture supports an IETF suite of | Networks (LLNs), the 6TiSCH architecture supports an IETF suite of | |||
| protocols over the IEEE Std. 802.15.4 TSCH MAC to provide | protocols over the IEEE Std 802.15.4 TSCH MAC to provide | |||
| IP connectivity for energy and otherwise constrained wireless devices. | IP connectivity for energy and otherwise constrained wireless devices. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TiSCH Architecture relies on IPv6 <xref target='RFC8200'/> and the | The 6TiSCH architecture relies on IPv6 <xref target="RFC8200"/> and the | |||
| use of routing to provide large scaling capabilities. The addition of a | use of 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 as | to the design. The backbone is typically a Layer 2 transit link such as | |||
| an Ethernet bridged network, but it can also be a more complex routed | an Ethernet bridged network, but it can also be a more complex routed | |||
| structure. | structure. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TiSCH Architecture introduces an IPv6 Multi-Link subnet model that | The 6TiSCH architecture introduces an IPv6 multi-link subnet model that | |||
| is composed of a federating backbone and a number of IEEE Std. 802.15.4 | is composed of a federating backbone and a number of IEEE Std 802.15.4 | |||
| TSCH low-power wireless networks federated and synchronized by Backbone | TSCH low-power wireless networks federated and synchronized by Backbone | |||
| Routers. If the backbone is a Layer-2 transit Link then the Backbone | Routers. If the backbone is a Layer 2 transit link, then the Backbone | |||
| Routers can operate as an IPv6 Neighbor Discovery (IPv6 ND) | Routers can operate as an IPv6 Neighbor Discovery (IPv6 ND) proxy | |||
| <xref target='RFC4861'/> proxy. | <xref target="RFC4861"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TiSCH | The 6TiSCH architecture leverages 6LoWPAN <xref target="RFC4944"/> to a | |||
| Architecture leverages 6LoWPAN <xref target='RFC4944'/> to adapt IPv6 | dapt IPv6 | |||
| to the constrained media and RPL <xref target='RFC6550'/> for the | to the constrained media and the | |||
| Routing Protocol for Low-Power and Lossy Networks (RPL) <xref target=" | ||||
| RFC6550"/> for the | ||||
| distributed routing operations. | distributed routing operations. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Centralized routing refers to a model where routes are computed | Centralized routing refers to a model where routes are computed | |||
| and resources are allocated from a central controller. This is | and resources are allocated from a central controller. This is | |||
| particularly helpful to schedule deterministic multihop transmissions. | particularly helpful to schedule deterministic multihop transmissions. | |||
| In contrast, Distributed Routing refers to a model that relies on | In contrast, distributed routing refers to a model that relies on | |||
| concurrent peer to peer protocol exchanges for TSCH resource allocation | concurrent peer-to-peer protocol exchanges for TSCH resource allocation | |||
| and routing operations. | and routing operations. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 use | and scheduling in a centralized, distributed, or mixed fashion, for use | |||
| in multiple OT environments. It is applicable in particular to highly | in multiple OT environments. It is applicable in particular to highly | |||
| scalable solutions such as used in Advanced Metering Infrastructure | scalable solutions such as those used in Advanced Metering Infrastructu | |||
| <xref target='AMI'/> solutions that leverage distributed routing to | re | |||
| <xref target="AMI"/> solutions that leverage distributed routing to | ||||
| enable multipath forwarding over large LLN meshes. | enable multipath forwarding over large LLN meshes. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Terminology</name> | <section><name>Terminology</name> | |||
| <!-- | ||||
| <section anchor='bcp' title="BCP 14"> | ||||
| <t>- | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | ||||
| <xref target="RFC2119"/><xref target="RFC8174"/> when, and only when, they | ||||
| appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> end section "BCP 14" --> | ||||
| <section anchor='sixTTerminology'><name>New Terms</name> | <section anchor="sixTTerminology"><name>New Terms</name> | |||
| <t> | <t> | |||
| The draft does not reuse terms from the <xref target='IEEE802154'> | The document does not reuse terms from the <xref target="IEEE802154" | |||
| IEEE Std. 802.15.4</xref> standard such as "path" or "link" which be | > | |||
| ar | IEEE Std 802.15.4</xref> standard such as "path" or "link", which be | |||
| ar | ||||
| a meaning that is quite different from classical IETF parlance. | a meaning that is quite different from classical IETF parlance. | |||
| </t> | </t> | |||
| <t> | <t>This document adds the following terms:</t> | |||
| This document adds the following terms: | <dl spacing="normal"> | |||
| </t><dl spacing='normal'> | ||||
| <dt>6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4):</dt><dd> | <dt>6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4):</dt><dd> | |||
| 6TiSCH defines an adaptation sublayer for IPv6 over TSCH calle d 6top, | 6TiSCH defines an adaptation sublayer for IPv6 over TSCH calle d 6top, | |||
| a set of protocols for setting up a TSCH schedule in distribute d | a set of protocols for setting up a TSCH schedule in distribute d | |||
| approach, and a security solution. 6TiSCH may be extended in th e future for other | approach, and a security solution. 6TiSCH may be extended in th e future for other | |||
| MAC/PHY pairs providing a service similar to TSCH. | MAC/Physical Layer (PHY) pairs providing a service similar to T SCH. | |||
| </dd> | </dd> | |||
| <dt>6top (6TiSCH Operation Sublayer):</dt><dd> | <dt>6top (6TiSCH Operation Sublayer):</dt><dd> | |||
| The next higher layer of the IEEE Std. 802.15.4 TSCH MAC layer. | The next higher layer of the IEEE Std 802.15.4 TSCH MAC layer. | |||
| 6top provides the abstraction of an IP link over a TSCH MAC, | 6top provides the abstraction of an IP link over a TSCH MAC, | |||
| schedules packets over TSCH cells, and exposes a management | schedules packets over TSCH cells, and exposes a management | |||
| interface to schedule TSCH cells. | interface to schedule TSCH cells. | |||
| </dd> | </dd> | |||
| <dt>6P (6top Protocol):</dt><dd> | <dt>6P (6top Protocol):</dt><dd> | |||
| The protocol defined in <xref target='RFC8480'/>. | The protocol defined in <xref target="RFC8480"/>. | |||
| 6P enables Layer-2 peers to allocate, move or deallocate | 6P enables Layer 2 peers to allocate, move, or de-allocate | |||
| cells in their respective schedules to communicate. | cells in their respective schedules to communicate. | |||
| 6P operates at the 6top layer. | 6P operates at the 6top sublayer. | |||
| </dd> | </dd> | |||
| <dt>6P Transaction:</dt><dd> | <dt>6P transaction:</dt><dd> | |||
| A 2-way or 3-way sequence of 6P messages used by Layer-2 | A 2-way or 3-way sequence of 6P messages used by Layer 2 | |||
| peers to modify their communication schedule. | peers to modify their communication schedule. | |||
| </dd> | </dd> | |||
| <dt>ASN (Absolute Slot Number):</dt><dd> | <dt>ASN (Absolute Slot Number):</dt><dd> | |||
| Defined in <xref target='IEEE802154'/>, the ASN is the total | Defined in <xref target="IEEE802154"/>, the ASN is the total | |||
| number of timeslots that have elapsed since the Epoch Time | number of timeslots that have elapsed since the Epoch time | |||
| when the TSCH network started. | when the TSCH network started. | |||
| Incremented by one at each timeslot. | Incremented by one at each timeslot. | |||
| It is wide enough to not roll over in practice. | It is wide enough to not roll over in practice. | |||
| </dd> | </dd> | |||
| <!-- | ||||
| <t hangText="blacklist of frequencies:"> | ||||
| A set of frequencies which should not be used for | ||||
| communication. | ||||
| </t> | ||||
| <t hangText="broadcast cell:"> | ||||
| A scheduled cell used for broadcast transmission. | ||||
| </t> --> | ||||
| <dt>bundle:</dt><dd> | <dt>bundle:</dt><dd> | |||
| A group of equivalent scheduled cells, i.e., cells | A group of equivalent scheduled cells, i.e., cells | |||
| identified by different [slotOffset, channelOffset], | identified by different slotOffset/channelOffset, | |||
| which are scheduled for a same purpose, with the same | which are scheduled for a same purpose, with the same | |||
| neighbor, with the same flags, and the same slotframe. | neighbor, with the same flags, and the same slotframe. | |||
| The size of the bundle refers to the number of cells it | The size of the bundle refers to the number of cells it | |||
| contains. | contains. | |||
| For a given slotframe length, the size of the bundle | For a given slotframe length, the size of the bundle | |||
| translates directly into bandwidth. | translates directly into bandwidth. | |||
| A bundle is a local abstraction that represents a | A bundle is a local abstraction that represents a | |||
| half-duplex link for either sending or receiving, | half-duplex link for either sending or receiving, | |||
| with bandwidth that amounts to the sum of the cells in the | with bandwidth that amounts to the sum of the cells in the | |||
| bundle. | bundle. | |||
| </dd> | </dd> | |||
| <dt>Layer-2 vs. Layer-3 bundle:</dt><dd> | <dt>Layer 2 vs. Layer 3 bundle:</dt><dd> | |||
| Bundles are associated for either Layer-2 (switching) or | Bundles are associated with either Layer 2 (switching) or | |||
| Layer-3 (routing) forwarding operations. A pair of Layer-3 | Layer 3 (routing) forwarding operations. A pair of Layer 3 | |||
| bundles (one for each direction) maps to an IP Link with a | bundles (one for each direction) maps to an IP link with a | |||
| neighbor, whereas a set of Layer-2 bundles (of an | neighbor, whereas a set of Layer 2 bundles (of an | |||
| "arbitrary" cardinality and direction) corresponds to the re | "arbitrary" cardinality and direction) corresponds to the re | |||
| lation of one or more incoming bundle(s) from the | lation | |||
| of one or more incoming bundle(s) from the | ||||
| previous-hop neighbor(s) with one or more outgoing bundle(s) | previous-hop neighbor(s) with one or more outgoing bundle(s) | |||
| to the next-hop neighbor(s) along a Track as part of the | to the next-hop neighbor(s) along a Track as part of the | |||
| switching role, which may include replication and eliminatio n. | switching role, which may include replication and eliminatio n. | |||
| </dd> | </dd> | |||
| <dt>CCA (Clear Channel Assessment):</dt><dd> | <dt>CCA (Clear Channel Assessment):</dt><dd> | |||
| A mechanism defined in <xref target='IEEE802154'/> whereby | A mechanism defined in <xref target="IEEE802154"/> whereby | |||
| nodes listen to the channel before sending to | nodes listen to the channel before sending to | |||
| detect ongoing transmissions from other parties. | detect ongoing transmissions from other parties. | |||
| Because the network is synchronized, CCA cannot be used to | Because the network is synchronized, CCA cannot be used to | |||
| detect colliding transmissions within the same network, but | detect colliding transmissions within the same network, but | |||
| it can be used to detect other radio networks in vicinity. | it can be used to detect other radio networks in the vicinit y. | |||
| </dd> | </dd> | |||
| <dt>cell:</dt><dd> | <dt>cell:</dt><dd> | |||
| A unit of transmission resource in the CDU matrix, a cell is | A unit of transmission resource in the CDU matrix, a cell is | |||
| identified by a slotOffset and a channelOffset. | identified by a slotOffset and a channelOffset. | |||
| A cell can be scheduled or unscheduled. | A cell can be scheduled or unscheduled. | |||
| </dd> | </dd> | |||
| <dt>Channel Distribution/Usage (CDU) matrix:</dt><dd>: | <dt>Channel Distribution/Usage (CDU) matrix:</dt><dd>: | |||
| A matrix of cells (i,j) representing the spectrum (channel) | A matrix of cells (i,j) representing the spectrum (channel) | |||
| distribution among the different nodes in the 6TiSCH network . | distribution among the different nodes in the 6TiSCH network . | |||
| The CDU matrix has width in timeslots, equal to the period | The CDU matrix has width in timeslots equal to the period | |||
| of the network scheduling operation, and height equal to | of the network scheduling operation, and height equal to | |||
| the number of available channels. | 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/channe | |||
| channelOffset), belongs to a specific chunk. | lOffset, | |||
| belongs to a specific chunk. | ||||
| </dd> | </dd> | |||
| <dt>channelOffset:</dt><dd> | <dt>channelOffset:</dt><dd> | |||
| Identifies a row in the TSCH schedule. The number of | 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 | frequencies. The channelOffset translates into a frequency | |||
| with a function that depends on the absolute time when the | with a function that depends on the absolute time when the | |||
| communication takes place, resulting in a channel hopping | communication takes place, resulting in a channel-hopping | |||
| operation. | operation. | |||
| </dd> | </dd> | |||
| <dt>chunk:</dt><dd> | <dt>chunk:</dt><dd> | |||
| A well-known list of cells, distributed in time and frequenc y, within a CDU matrix. | A well-known list of cells, distributed in time and frequenc y, within a CDU matrix. | |||
| A chunk represents a portion of a CDU matrix. | A chunk represents a portion of a CDU matrix. | |||
| The partition of the CDU matrix in chunks is globally known by all the nodes in the network to support the appropriation process, which is a negotiation between nodes within an interference domain. | The partition of the CDU matrix in chunks is globally known by all the nodes in the network to support the appropriation process, which is a negotiation between nodes within an interference domain. | |||
| A node that manages to appropriate a chunk gets to decide wh ich transmissions will occur over the cells in the chunk within its interference domain, i.e., a parent node will decide when the cells within the appropriated chunk are used and by which node, among its children. | A node that manages to appropriate a chunk gets to decide wh ich transmissions will occur over the cells in the chunk within its interference domain, i.e., a parent node will decide when the cells within the appropriated chunk are used and by which node among its children. | |||
| </dd> | </dd> | |||
| <dt>CoJP (Constrained Join Protocol):</dt><dd> | <dt>CoJP (Constrained Join Protocol):</dt><dd> | |||
| <!-- | ||||
| CoJP is a one-touch join protocol defined in the | ||||
| <xref target="I-D.ietf-6tisch-minimal-security"> | ||||
| Minimal Security Framework for 6TiSCH</xref>. | ||||
| CoJP requires the distribution of preshared keys (PSK), and | ||||
| enables a node to join with a single round trip | ||||
| to the JRC via the JP. | ||||
| --> | ||||
| The Constrained Join Protocol (CoJP) enables a pledge to | The Constrained Join Protocol (CoJP) enables a pledge to | |||
| securely join a 6TiSCH network and obtain network parameters | securely join a 6TiSCH network and obtain network parameters | |||
| over a secure channel. | over a secure channel. | |||
| <!-- | "<xref target="RFC9031" format="title"/>" <xref target="RFC9 | |||
| CoJP is defined in the | 031"/> defines | |||
| <xref target="I-D.ietf-6tisch-minimal-security"> | ||||
| Minimal Security Framework for 6TiSCH </xref>. | ||||
| --> | ||||
| <xref target='I-D.ietf-6tisch-minimal-security'> | ||||
| Minimal Security Framework for 6TiSCH </xref> defines | ||||
| the minimal CoJP setup with pre-shared keys defined. In that | the minimal CoJP setup with pre-shared keys defined. In that | |||
| mode, CoJP can operate with a single round trip exchange. | mode, CoJP can operate with a single round-trip exchange. | |||
| </dd> | </dd> | |||
| <dt>dedicated cell:</dt><dd> | <dt>dedicated cell:</dt><dd> | |||
| A cell that is reserved for a given node to transmit to a sp ecific neighbor. | A cell that is reserved for a given node to transmit to a sp ecific neighbor. | |||
| </dd> | </dd> | |||
| <dt>deterministic network:</dt><dd> | <dt>deterministic network:</dt><dd> | |||
| The generic concept of deterministic network is defined in t | The generic concept of a deterministic network is defined | |||
| he <xref target='RFC8655'>"DetNet Architecture"</xref> document. | in the <xref target="RFC8655">"Deterministic Networking Arch | |||
| When applied to 6TiSCH, it refers to the reservation of Trac | itecture"</xref> document. | |||
| ks which guarantees an end-to-end latency and optimizes the Packet Delivery Rati | When applied to 6TiSCH, it refers to the reservation of Trac | |||
| o (PDR) for well-characterized flows. | ks, | |||
| which guarantees an end-to-end latency and optimizes the | ||||
| Packet Delivery Ratio (PDR) for well-characterized flows. | ||||
| </dd> | </dd> | |||
| <dt>distributed cell reservation:</dt><dd> | <dt>distributed cell reservation:</dt><dd> | |||
| A reservation of a cell done by one or more in-network enti ties. | A reservation of a cell done by one or more in-network enti ties. | |||
| </dd> | </dd> | |||
| <dt>distributed Track reservation:</dt><dd> | <dt>distributed Track reservation:</dt><dd> | |||
| A reservation of a Track done by one or more in-network enti ties. | A reservation of a Track done by one or more in-network enti ties. | |||
| </dd> | </dd> | |||
| <dt>EB (Enhanced Beacon):</dt><dd> | <dt>EB (Enhanced Beacon):</dt><dd> | |||
| A special frame defined in <xref target='IEEE802154'/> | A special frame defined in <xref target="IEEE802154"/> | |||
| used by a node, including the JP, to announce the presence | used by a node, including the Join Proxy (JP), to announce t | |||
| he presence | ||||
| of the network. | of the network. | |||
| It contains enough information for a pledge to synchronize t o the network. | It contains enough information for a pledge to synchronize t o the network. | |||
| </dd> | </dd> | |||
| <dt>hard cell:</dt><dd> | <dt>hard cell:</dt><dd> | |||
| A scheduled cell which the 6top sublayer may not relocate. | A scheduled cell that the 6top sublayer may not relocate. | |||
| </dd> | </dd> | |||
| <dt>hopping sequence:</dt><dd> | <dt>hopping sequence:</dt><dd> | |||
| Ordered sequence of frequencies, identified by a Hopping_Seq uence_ID, used for channel hopping when translating the channelOffset value into a frequency. | Ordered sequence of frequencies, identified by a Hopping_Seq uence_ID, used for channel hopping when translating the channelOffset value into a frequency. | |||
| </dd> | </dd> | |||
| <dt>IE (Information Element):</dt><dd> | <dt>IE (Information Element):</dt><dd> | |||
| Type-Length-Value containers placed at the end of the MAC he | Type-Length-Value containers placed at the end of the MAC he | |||
| ader, used to pass data between layers or devices. | ader and used to pass data between layers or devices. | |||
| Some IE identifiers are managed by the IEEE <xref target='IE | Some IE identifiers are managed by the IEEE <xref target="IE | |||
| EE802154'/>. | EE802154"/>. | |||
| Some IE identifiers are managed by the IETF <xref target='RF | Some IE identifiers are managed by the IETF <xref target="RF | |||
| C8137'/>, and <xref target='I-D.ietf-6tisch-enrollment-enhanced-beacon'/> uses o | C8137"/>. <xref target="RFC9032"/> | |||
| ne subtype to support the selection of the Join Proxy. | uses one subtype to support the selection of the Join Proxy. | |||
| </dd> | </dd> | |||
| <dt>join process:</dt><dd> | <dt>join process:</dt><dd> | |||
| The overall process that includes the discovery of the netwo rk by pledge(s) and the execution of the join protocol. | The overall process that includes the discovery of the netwo rk by pledge(s) and the execution of the join protocol. | |||
| </dd> | </dd> | |||
| <dt>join protocol:</dt><dd> | <dt>join protocol:</dt><dd> | |||
| The protocol that allows the pledge to join the network. | The protocol that allows the pledge to join the network. | |||
| The join protocol encompasses authentication, authorization and parameter distribution. | The join protocol encompasses authentication, authorization, and parameter distribution. | |||
| The join protocol is executed between the pledge and the JRC . | The join protocol is executed between the pledge and the JRC . | |||
| </dd> | </dd> | |||
| <dt>joined node:</dt><dd> | <dt>joined node:</dt><dd> | |||
| The new device, after having completed the join process, oft en just called a node. | The new device after having completed the join process, ofte n just called a node. | |||
| </dd> | </dd> | |||
| <dt>JP (Join Proxy):</dt><dd> | <dt>JP (Join Proxy):</dt><dd> | |||
| Node already part of the 6TiSCH network that serves as a rel ay to provide connectivity between the pledge and the JRC. | A node already part of the 6TiSCH network that serves as a r elay to provide connectivity between the pledge and the JRC. | |||
| The JP announces the presence of the network by regularly se nding EB frames. | The JP announces the presence of the network by regularly se nding EB frames. | |||
| </dd> | </dd> | |||
| <dt>JRC (Join Registrar/Coordinator):</dt><dd> | <dt>JRC (Join Registrar/Coordinator):</dt><dd> | |||
| Central entity responsible for the authentication, authoriza tion and configuration of the pledge. | Central entity responsible for the authentication, authoriza tion, and configuration of the pledge. | |||
| </dd> | </dd> | |||
| <dt>link:</dt><dd> | <dt>link:</dt><dd> | |||
| A communication facility or medium over which nodes can comm | A communication facility or medium over which nodes can comm | |||
| unicate at the Link-Layer, the layer immediately below IP. In 6TiSCH, the concep | unicate | |||
| t is implemented as a collection | at the link layer, which is the layer immediately below IP. | |||
| of Layer-3 bundles. Note: | In 6TiSCH, the concept is implemented as a collection | |||
| the IETF parlance for the term "Link" is adopted, as opposed | of Layer 3 bundles. Note: | |||
| to the IEEE Std. 802.15.4 terminology. | the IETF parlance for the term "link" is adopted, as opposed | |||
| to the IEEE Std 802.15.4 terminology. | ||||
| </dd> | </dd> | |||
| <dt>Operational Technology:</dt><dd> | <dt>operational technology:</dt><dd> | |||
| OT refers to technology used in automation, for instance in | OT refers to technology used in automation, for instance in | |||
| industrial control networks. The convergence of IT and OT is | industrial control networks. The convergence of IT and OT is | |||
| the main object of the Industrial Internet of Things (IIOT). | the main object of the Industrial Internet of Things (IIOT). | |||
| </dd> | </dd> | |||
| <dt>pledge:</dt><dd> | <dt>pledge:</dt><dd> | |||
| A new device that attempts to join a 6TiSCH network. | A new device that attempts to join a 6TiSCH network. | |||
| </dd> | </dd> | |||
| <dt>(to) relocate a cell:</dt><dd> | <dt>(to) relocate a cell:</dt><dd> | |||
| The action operated by the 6top sublayer of changing the slo tOffset and/or channelOffset of a soft cell. | The action operated by the 6top sublayer of changing the slo tOffset and/or channelOffset of a soft cell. | |||
| </dd> | </dd> | |||
| <dt>(to) schedule a cell:</dt><dd> | <dt>(to) schedule a cell:</dt><dd> | |||
| The action of turning an unscheduled cell into a scheduled c ell. | The action of turning an unscheduled cell into a scheduled c ell. | |||
| </dd> | </dd> | |||
| <dt>scheduled cell:</dt><dd> | <dt>scheduled cell:</dt><dd> | |||
| A cell which is assigned a neighbor MAC address (broadcast a | A cell that is assigned a neighbor MAC address | |||
| ddress is also possible), and one or more of the following flags: TX, RX, Shared | (broadcast address is also possible) and one or | |||
| and Timekeeping. | more of the following flags: TX, RX, Shared, and Timekeeping | |||
| A scheduled cell can be used by the IEEE Std. 802.15.4 TSCH | . | |||
| implementation to communicate. | A scheduled cell can be used by the IEEE Std 802.15.4 TSCH i | |||
| mplementation to communicate. | ||||
| A scheduled cell can either be a hard or a soft cell. | A scheduled cell can either be a hard or a soft cell. | |||
| </dd> | </dd> | |||
| <dt>SF (6top Scheduling Function):</dt><dd> | <dt>SF (6top Scheduling Function):</dt><dd> | |||
| The cell management entity that adds or deletes cells dynami cally based on application networking requirements. | The cell management entity that adds or deletes cells dynami cally based on application networking requirements. | |||
| The cell negotiation with a neighbor is done using 6P. | The cell negotiation with a neighbor is done using 6P. | |||
| </dd> | </dd> | |||
| <dt>SFID (6top Scheduling Function Identifier):</dt><dd> | <dt>SFID (6top Scheduling Function Identifier):</dt><dd> | |||
| A 4-bit field identifying an SF. | A 4-bit field identifying an SF. | |||
| </dd> | </dd> | |||
| <dt>shared cell:</dt><dd> | <dt>shared cell:</dt><dd> | |||
| A cell marked with both the "TX" and "shared" flags. | A cell marked with both the TX and Shared flags. | |||
| This cell can be used by more than one transmitter node. | This cell can be used by more than one transmitter node. | |||
| A back-off algorithm is used to resolve contention. | A back-off algorithm is used to resolve contention. | |||
| </dd> | </dd> | |||
| <dt>slotframe:</dt><dd> | <dt>slotframe:</dt><dd> | |||
| A collection of timeslots repeating in time, analogous to a superframe in that it defines periods of communication opportunities. | A collection of timeslots repeating in time, analogous to a superframe in that it defines periods of communication opportunities. | |||
| It is characterized by a slotframe_ID, and a slotframe_size. | It is characterized by a slotframe_ID and a slotframe_size. | |||
| Multiple slotframes can coexist in a node's schedule, i.e., | Multiple slotframes can coexist in a node's schedule, | |||
| a node can have multiple activities scheduled in different slotframes, based on | i.e., a node can have multiple activities scheduled in | |||
| the priority of its packets/traffic flows. | different slotframes based on the priority of its packets/tr | |||
| The timeslots in the Slotframe are indexed by the SlotOffset | affic flows. | |||
| ; the first timeslot is at SlotOffset 0. | The timeslots in the slotframe are indexed by the slotOffset | |||
| ; the first timeslot is at slotOffset 0. | ||||
| </dd> | </dd> | |||
| <dt>slotOffset:</dt><dd> | <dt>slotOffset:</dt><dd> | |||
| A column in the TSCH schedule, i.e., the number of timeslots since the beginning of the current iteration of the slotframe. | A column in the TSCH schedule, i.e., the number of timeslots since the beginning of the current iteration of the slotframe. | |||
| </dd> | </dd> | |||
| <dt>soft cell:</dt><dd> | <dt>soft cell:</dt><dd> | |||
| A scheduled cell which the 6top sublayer can relocate. | A scheduled cell that the 6top sublayer can relocate. | |||
| </dd> | </dd> | |||
| <dt>time source neighbor:</dt><dd> | <dt>time source neighbor:</dt><dd> | |||
| A neighbor that a node uses as its time reference, and to wh ich it needs to keep its clock synchronized. | A neighbor that a node uses as its time reference, and to wh ich it needs to keep its clock synchronized. | |||
| </dd> | </dd> | |||
| <dt>timeslot:</dt><dd> | <dt>timeslot:</dt><dd> | |||
| A basic communication unit in TSCH which allows | A basic communication unit in TSCH that allows | |||
| a transmitter node to send a frame to a receiver neighbo | a transmitter node to send a frame to a receiver neighbo | |||
| r, and | r and | |||
| that receiver neighbor to optionally send back an acknow | that allows the receiver neighbor to optionally send bac | |||
| ledgment. | k an acknowledgment. | |||
| </dd> | </dd> | |||
| <dt>Track:</dt><dd> | <dt>Track:</dt><dd> | |||
| A Track is a Directed Acyclic Graph (DAG) that is used as a | A Track is a Directed Acyclic Graph (DAG) that is used as a | |||
| complex multi-hop path to the destination(s) of the path. | complex multihop path to the destination(s) of the path. | |||
| In the case of unicast traffic, the Track is a Destination | In the case of unicast traffic, the Track is a Destination-O | |||
| Oriented DAG (DODAG) where the Root of the DODAG is the | riented DAG (DODAG) where the Root of the DODAG is the | |||
| destination of the unicast traffic. | destination of the unicast traffic. | |||
| A Track enables replication, elimination and reordering func | A Track enables replication, elimination, and reordering fun | |||
| tions on the way (more on those functions in | ctions on the way (more on those functions in | |||
| <xref target='RFC8655'/>. | <xref target="RFC8655"/>). | |||
| A Track reservation locks physical resources such as cells a nd buffers in every node along the DODAG. | A Track reservation locks physical resources such as cells a nd buffers in every node along the DODAG. | |||
| A Track is associated with a owner that can be for instance the destination of the Track. | A Track is associated with an owner, which can be for instan ce the destination of the Track. | |||
| </dd> | </dd> | |||
| <dt>TrackID:</dt><dd> | <dt>TrackID:</dt><dd> | |||
| A TrackID is either globally unique, or locally unique to th e Track owner, | A TrackID is either globally unique or locally unique to the Track owner, | |||
| in which case the identification of the owner must be provid ed together with the TrackID | in which case the identification of the owner must be provid ed together with the TrackID | |||
| to provide a full reference to the Track. typically, the Tra | to provide a full reference to the Track. Typically, the Tra | |||
| ck owner is the ingress of the Track then the IPv6 source address of packets alo | ck owner is the ingress of the | |||
| ng the Track can be used as | Track, the IPv6 source address of packets along the Track ca | |||
| identification of the owner and a local InstanceID <xref tar | n be used as | |||
| get='RFC6550'/> | identification of the owner, and a local InstanceID <xref ta | |||
| in the namespace of that owner can be used as TrackID. If th | rget="RFC6550"/> | |||
| e Track is reversible, then | in the namespace of that owner can be used as TrackID. | |||
| the owner is found in the IPv6 destination address of a pack | If the Track is reversible, then the owner is found in | |||
| et coming back along the Track. | the IPv6 destination address of a packet coming back along t | |||
| In that case, a RPL Packet Information <xref target='RFC6550 | he Track. | |||
| '/> in an IPv6 packet | In that case, a RPL Packet Information <xref target="RFC6550 | |||
| "/> in an IPv6 packet | ||||
| can unambiguously identify the Track and can be expressed in a compressed form using | can unambiguously identify the Track and can be expressed in a compressed form using | |||
| <xref target='RFC8138'/>. | <xref target="RFC8138"/>. | |||
| </dd> | </dd> | |||
| <dt>TSCH:</dt><dd> | <dt>TSCH:</dt><dd> | |||
| A medium access mode of the <xref target='IEEE802154'> | A medium access mode of the <xref target="IEEE802154"> | |||
| IEEE Std. 802.15.4</xref> standard which uses | IEEE Std 802.15.4</xref> standard that uses | |||
| time synchronization to achieve ultra-low-power operation, a | time synchronization to achieve ultra-low-power operation an | |||
| nd | d | |||
| channel hopping to enable high reliability. | channel hopping to enable high reliability. | |||
| </dd> | </dd> | |||
| <dt>TSCH Schedule:</dt><dd> | <dt>TSCH Schedule:</dt><dd> | |||
| A matrix of cells, each cell indexed by a slotOffset and a c | A matrix of cells, with each cell indexed by a slotOffset an | |||
| hannelOffset. | d a channelOffset. | |||
| The TSCH schedule contains all the scheduled cells from all | The TSCH schedule contains all the scheduled cells from all | |||
| slotframes and is sufficient to qualify the communication in the TSCH network. | slotframes and is sufficient to qualify the communication in | |||
| the TSCH network. | ||||
| The number of channelOffset values (the "height" of the matr ix) is equal to the number of available frequencies. | The number of channelOffset values (the "height" of the matr ix) is equal to the number of available frequencies. | |||
| </dd> | </dd> | |||
| <dt>Unscheduled Cell:</dt><dd> | <dt>Unscheduled Cell:</dt><dd> | |||
| A cell which is not used by the IEEE Std. 802.15.4 TSCH impl ementation. | A cell that is not used by the IEEE Std 802.15.4 TSCH implem entation. | |||
| </dd> | </dd> | |||
| </dl> | </dl> | |||
| </section> | </section> | |||
| <section anchor='acronyms'><name>Abbreviations</name> | <section anchor="acronyms"><name>Abbreviations</name> | |||
| <t> This document uses the following abbreviations: | <t> This document uses the following abbreviations: | |||
| </t><dl spacing='normal'> | </t> | |||
| <dl spacing="normal"> | ||||
| <dt>6BBR:</dt><dd> 6LoWPAN Backbone Router (router with a proxy ND functi on) </dd> | <dt>6BBR:</dt><dd> 6LoWPAN Backbone Router (router with a proxy ND functi on) </dd> | |||
| <dt>6LBR:</dt><dd> 6LoWPAN Border Router (authoritative on DAD) </dd> | <dt>6LBR:</dt><dd> 6LoWPAN Border Router (authoritative on Duplicate Addr ess Detection (DAD)) </dd> | |||
| <dt>6LN:</dt><dd> 6LoWPAN Node </dd> | <dt>6LN:</dt><dd> 6LoWPAN Node </dd> | |||
| <dt>6LR:</dt><dd> 6LoWPAN Router (relay to the registration process) </dd > | <dt>6LR:</dt><dd> 6LoWPAN Router (relay to the registration process) </dd > | |||
| <dt>6CIO:</dt><dd> Capability Indication Option </dd> | <dt>6CIO:</dt><dd> Capability Indication Option </dd> | |||
| <dt>(E)ARO:</dt><dd> (Extended) Address Registration Option </dd> | <dt>(E)ARO:</dt><dd> (Extended) Address Registration Option </dd> | |||
| <dt>(E)DAR:</dt><dd> (Extended) Duplicate Address Request </dd> | <dt>(E)DAR:</dt><dd> (Extended) Duplicate Address Request </dd> | |||
| <dt>(E)DAC:</dt><dd> (Extended) Duplicate Address Confirmation </dd> | <dt>(E)DAC:</dt><dd> (Extended) Duplicate Address Confirmation </dd> | |||
| <dt>DAD:</dt><dd> Duplicate Address Detection </dd> | <dt>DAD:</dt><dd> Duplicate Address Detection </dd> | |||
| <dt>DODAG:</dt><dd> Destination-Oriented Directed Acyclic Graph | <dt>DODAG:</dt><dd> Destination-Oriented Directed Acyclic Graph </dd> | |||
| </dd> | ||||
| <dt>LLN:</dt><dd> Low-Power and Lossy Network (a typical IoT network) </ dd> | <dt>LLN:</dt><dd> Low-Power and Lossy Network (a typical IoT network) </ dd> | |||
| <dt>NA:</dt><dd> Neighbor Advertisement </dd> | <dt>NA:</dt><dd> Neighbor Advertisement </dd> | |||
| <dt>NCE:</dt><dd> Neighbor Cache Entry </dd> | <dt>NCE:</dt><dd> Neighbor Cache Entry </dd> | |||
| <dt>ND:</dt><dd> Neighbor Discovery </dd> | <dt>ND:</dt><dd> Neighbor Discovery </dd> | |||
| <dt>NDP:</dt><dd> Neighbor Discovery Protocol </dd> | <dt>NDP:</dt><dd> Neighbor Discovery Protocol </dd> | |||
| <dt>PCE:</dt><dd> Path Computation Element </dd> | <dt>PCE:</dt><dd> Path Computation Element </dd> | |||
| <dt>NME:</dt><dd> Network Management Entity </dd> | <dt>NME:</dt><dd> Network Management Entity </dd> | |||
| <dt>ROVR:</dt><dd> Registration Ownership Verifier (pronounced rover) </d d> | <dt>ROVR:</dt><dd> Registration Ownership Verifier (pronounced rover) </d d> | |||
| <dt>RPL:</dt><dd> IPv6 Routing Protocol for LLNs (pronounced ripple) </dd > | <dt>RPL:</dt><dd> IPv6 Routing Protocol for LLNs (pronounced ripple) </dd > | |||
| <dt>RA:</dt><dd> Router Advertisement </dd> | <dt>RA:</dt><dd> Router Advertisement </dd> | |||
| <dt>RS:</dt><dd> Router Solicitation </dd> | <dt>RS:</dt><dd> Router Solicitation </dd> | |||
| <dt>TSCH:</dt><dd> timeslotted Channel Hopping </dd> | <dt>TSCH:</dt><dd> Time-Slotted Channel Hopping </dd> | |||
| <dt>TID:</dt><dd> Transaction ID (a sequence counter in the EARO) </dd> | <dt>TID:</dt><dd> Transaction ID (a sequence counter in the EARO) </dd> | |||
| </dl> | </dl> | |||
| </section> <!-- end section "Abbreviations" --> | </section> | |||
| <section anchor='lo'><name>Related Documents</name> | <section anchor="lo"><name>Related Documents</name> | |||
| <t> | <t> | |||
| The draft also conforms to the terms and models described in | The document conforms to the terms and models described in | |||
| <xref target='RFC3444'/> and <xref target='RFC5889'/> and uses the | <xref target="RFC3444"/> and <xref target="RFC5889"/>, uses the | |||
| vocabulary and the concepts defined in <xref target='RFC4291'/> for the | vocabulary and the concepts defined in <xref target="RFC4291"/> for the | |||
| IPv6 Architecture and refers <xref target='RFC4080'/> for reservation | IPv6 architecture, and refers to <xref target="RFC4080"/> for reservati | |||
| <!-- signaling and <xref target="RFC5191"/> for authentication. --> | on. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The draft uses domain-specific terminology defined or referenced in: | The document uses domain-specific terminology defined or referenced | |||
| </t><ul empty='true' spacing='normal'> | in the following: | |||
| <li> 6LoWPAN ND <xref target='RFC6775'>"Neighbor Discovery Optimization | </t> | |||
| for Low-power and Lossy Networks"</xref> and <xref target='RFC8505'> | <ul spacing="normal"> | |||
| "Registration Extensions for 6LoWPAN Neighbor Discovery"</xref>, | <li>6LoWPAN ND: | |||
| <xref target="RFC6775">"Neighbor Discovery Optimization for IPv6 over | ||||
| Low-Power Wireless Personal Area Networks (6LoWPANs)"</xref> and | ||||
| <xref target="RFC8505">"Registration Extensions for IPv6 over Low-Powe | ||||
| r | ||||
| Wireless Personal Area Network (6LoWPAN) Neighbor Discovery"</xref>, | ||||
| </li> | ||||
| <li><xref target="RFC7102">"Terms Used in Routing for Low-Power and Loss | ||||
| y Networks"</xref>, and | ||||
| </li> | ||||
| <li>RPL: | ||||
| <xref target="RFC6552">"Objective Function Zero for the | ||||
| Routing Protocol for Low-Power and Lossy Networks (RPL)"</xref> and | ||||
| <xref target="RFC6550">"RPL: IPv6 Routing Protocol for | ||||
| Low-Power and Lossy Networks"</xref>. | ||||
| </li> | </li> | |||
| <li><xref target='RFC7102'>"Terms Used in Routing for Low-Power | ||||
| and Lossy Networks (LLNs)"</xref>,</li> | ||||
| <li> and RPL | ||||
| <xref target='RFC6552'>"Objective Function Zero for the | ||||
| Routing Protocol for Low-Power and Lossy Networks (RPL)" | ||||
| </xref>, and | ||||
| <xref target='RFC6550'>"RPL: IPv6 Routing Protocol for | ||||
| Low-Power and Lossy Networks"</xref>.</li> | ||||
| </ul><t> | </ul><t> | |||
| Other terms in use in LLNs are found in <xref target='RFC7228'> | Other terms in use in LLNs are found in <xref target="RFC7228"> | |||
| "Terminology for Constrained-Node Networks"</xref>. | "Terminology for Constrained-Node Networks"</xref>. | |||
| </t><t> | </t><t> | |||
| 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: | |||
| </t><ul spacing='normal'> | ||||
| <li> <xref target='RFC4861'>"Neighbor Discovery for IP version 6" | ||||
| </xref>, and | ||||
| <xref target='RFC4862'>"IPv6 Stateless Address Autoconfiguration" | ||||
| </xref>.</li> | ||||
| </ul><t> | ||||
| </t> | ||||
| <t>In addition, readers would benefit from reading: | ||||
| </t><ul spacing='normal'> | ||||
| <li><xref target='RFC6606'>"Problem Statement and Requirements for | ||||
| IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing" | ||||
| </xref>,</li> | ||||
| <li> <xref target='RFC4903'>"Multi-Link Subnet Issues"</xref>, and </li> | ||||
| <li> <xref target='RFC4919'>"IPv6 over Low-Power | ||||
| Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, | ||||
| Problem Statement, and Goals"</xref></li> | ||||
| </ul><t> prior to this specification for a clear | ||||
| understanding of the art in ND-proxying and binding. | ||||
| </t> | </t> | |||
| </section> <!-- end section "References" --> | <ul spacing="normal"> | |||
| <li><xref target="RFC4861">"Neighbor Discovery for IP version 6 (IPv6)"</xre | ||||
| f> and | ||||
| </li> | ||||
| <li><xref target="RFC4862">"IPv6 Stateless Address Autoconfiguration"</xref> | ||||
| . | ||||
| </li> | ||||
| </ul> | ||||
| <t>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: | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li><xref target="RFC6606">"Problem Statement and Requirements for | ||||
| IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing"</xref> | ||||
| , | ||||
| </li> | ||||
| <li> <xref target="RFC4903">"Multi-Link Subnet Issues"</xref>, and | ||||
| </li> | ||||
| <li> <xref target="RFC4919">"IPv6 over Low-Power | ||||
| Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, | ||||
| Problem Statement, and Goals"</xref>. | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </section> <!-- end section "Terminology" --> | </section> | |||
| <section><name>High Level Architecture</name> | <section><name>High-Level Architecture</name> | |||
| <section><name>A Non-Broadcast Multi-Access Radio Mesh Network</name> | <section><name>A Non-broadcast Multi-access Radio Mesh Network</name> | |||
| <t> | <t> | |||
| A 6TiSCH network is an IPv6 <xref target='RFC8200'/> subnet which, in | A 6TiSCH network is an IPv6 <xref target="RFC8200"/> subnet that, in | |||
| its basic configuration illustrated in <xref target='fig1'/>, is a | its basic configuration illustrated in <xref target="fig1"/>, is a | |||
| single Low-Power Lossy Network (LLN) operating over a synchronized | single Low-Power and Lossy Network (LLN) operating over a synchronized | |||
| TSCH-based mesh. | TSCH-based mesh. | |||
| </t> | </t> | |||
| <figure anchor='fig1'><name>Basic Configuration of a 6TiSCH Network</na me> | <figure anchor="fig1"><name>Basic Configuration of a 6TiSCH Network</na me> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| ---+-------- ............ ------------ | ---+-------- ............ ------------ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| Inside a 6TiSCH LLN, nodes rely on <xref target='RFC6282'>6LoWPAN | Inside a 6TiSCH LLN, nodes rely on <xref target="RFC6282">6LoWPAN | |||
| Header Compression (6LoWPAN HC)</xref> to encode IPv6 packets. | header compression (6LoWPAN HC)</xref> to encode IPv6 packets. | |||
| From the perspective of the network layer, a single LLN interface | From the perspective of the network layer, a single LLN interface | |||
| (typically an IEEE Std. 802.15.4-compliant radio) may be seen as a coll | (typically an IEEE Std 802.15.4-compliant radio) may be seen as a colle | |||
| ection | ction | |||
| of Links with different capabilities for unicast or multicast services. | of links with different capabilities for unicast or multicast services. | |||
| </t><t> | </t><t> | |||
| 6TiSCH nodes join a mesh network by attaching to nodes that are already | 6TiSCH nodes join a mesh network by attaching to nodes that are already | |||
| members of the mesh (see <xref target='rflo'/>). The security aspects | members of the mesh (see <xref target="rflo"/>). The security aspects | |||
| of the join process are further detailed in <xref target='sec'/>. | of the join process are further detailed in <xref target="sec"/>. | |||
| In a mesh network, 6TiSCH nodes are not necessarily reachable from one | In a 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. | |||
| </t><t> | </t><t> | |||
| 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) | |||
| <xref target='RFC4861'/><xref target='RFC4862'/>. 6LoWPAN Neighbor | <xref target="RFC4861"/> <xref target="RFC4862"/>. 6LoWPAN Neighbor | |||
| Discovery (6LoWPAN ND) <xref target='RFC6775'/><xref target='RFC8505'/> | Discovery (6LoWPAN ND) <xref target="RFC6775"/> <xref target="RFC8505"/ | |||
| > | ||||
| specifies extensions to IPv6 ND that enable ND operations in this type | specifies extensions to IPv6 ND that enable ND operations in this type | |||
| of subnet that can be protected against address theft and impersonation | of subnet that can be protected against address theft and impersonation | |||
| with <xref target='I-D.ietf-6lo-ap-nd'/>. | with <xref target="RFC8928"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 addresses | and registers them using 6LoWPAN ND. This guarantees that the addresses | |||
| are unique and protects the address ownership over the subnet, more in | are unique and protects the address ownership over the subnet, more in | |||
| <xref target='rreg'/>. | <xref target="rreg"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Within the NBMA subnet, <xref target='RFC6550'>RPL</xref> enables | Within the NBMA subnet, <xref target="RFC6550">RPL</xref> enables | |||
| routing in the so-called Route Over fashion, either in storing | routing in the so-called "route-over" fashion, either in storing | |||
| (stateful) or non-storing (stateless, with routing headers) mode. | (stateful) or non-storing (stateless, with routing headers) mode. | |||
| From there, some nodes can act as routers for 6LoWPAN ND and RPL | From there, some nodes can act as routers for 6LoWPAN ND and RPL | |||
| operations, as detailed in <xref target='RPLvs6lo'/>. | operations, as detailed in <xref target="RPLvs6lo"/>. | |||
| </t><t> | </t> | |||
| With TSCH, devices are time-synchronized at the MAC level. The use of | <t> | |||
| With TSCH, devices are time synchronized at the MAC level. The use of | ||||
| a particular RPL Instance for time synchronization is discussed in | a particular RPL Instance for time synchronization is discussed in | |||
| <xref target='sync'/>. With this mechanism, the time synchronization | <xref target="sync"/>. With this mechanism, the time synchronization | |||
| starts at the RPL Root and follows the RPL loopless routing topology. | starts at the RPL Root and follows the RPL loopless routing topology. | |||
| </t><t> | </t><t> | |||
| RPL forms Destination Oriented | RPL forms Destination-Oriented | |||
| Directed Acyclic Graphs (DODAGs) within Instances of the protocol, | Directed Acyclic Graphs (DODAGs) within Instances of the protocol, | |||
| each Instance being associated with an Objective Function (OF) to | each Instance being associated with an Objective Function (OF) to | |||
| form a routing topology. A particular 6TiSCH node, the LLN Border Route r | form a routing topology. A particular 6TiSCH node, the LLN Border Route r | |||
| (6LBR), acts as RPL Root, 6LoWPAN HC terminator, and Border Router | (6LBR), acts as RPL Root, 6LoWPAN HC terminator, and Border Router | |||
| for the LLN to the outside. The 6LBR is usually powered. | for the LLN to the outside. The 6LBR is usually powered. | |||
| More on RPL Instances can be found in section 3.1 of | More on RPL Instances can be found in Section | |||
| <xref target='RFC6550'>RPL</xref>, in particular | <xref target="RFC6550" section="3.1" sectionFormat="bare" format="defau | |||
| "3.1.2. RPL Identifiers" and | lt"/> of | |||
| "3.1.3. Instances, DODAGs, and DODAG Versions". RPL adds artifacts in | <xref target="RFC6550">RPL</xref>, in particular | |||
| the data packets that are compressed with a 6LoWPAN addition | "<xref target="RFC6550" section="3.1.2" sectionFormat="bare" format="de | |||
| <xref target='RFC8138'>6LoRH</xref>. | fault"/> RPL Identifiers" and | |||
| "<xref target="RFC6550" section="3.1.3" sectionFormat="bare" format="de | ||||
| fault"/> Instances, DODAGs, and DODAG Versions". | ||||
| RPL adds artifacts in | ||||
| the data packets that are compressed with a | ||||
| <xref target="RFC8138">6LoWPAN Routing Header (6LoRH)</xref>. | ||||
| In a preexisting network, the compression can be globally turned on in | ||||
| a | ||||
| DODAG once all nodes are migrated to support <xref target="RFC8138" for | ||||
| mat="default"/> | ||||
| using <xref target="RFC9035" format="default"/>. | ||||
| </t><t> | </t><t> | |||
| 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 characteristics | establish on-demand, peer-to-peer routes with particular characteristic s | |||
| inside the 6TiSCH network. | inside the 6TiSCH network. | |||
| This may be achieved in a centralized fashion by a Path Computation | This may be achieved in a centralized fashion by a Path Computation | |||
| Element (PCE) <xref target='PCE'/> that programs both the routes and | Element (PCE) <xref target="PCE"/> that programs both the routes and | |||
| the schedules inside the 6TiSCH nodes, or by in a distributed fashion | the schedules inside the 6TiSCH nodes or in a distributed fashion by | |||
| using a reactive routing protocol and a Hop-by-Hop scheduling protocol. | using a reactive routing protocol and a hop-by-hop scheduling protocol. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This architecture expects that a 6LoWPAN node can connect as a | This architecture expects that a 6LoWPAN node can connect as a | |||
| leaf to a RPL network, where the leaf support is the minimal | leaf to a RPL network, where the leaf support is the minimal | |||
| functionality to connect as a host to a RPL network without the need to | functionality to connect as a host to a RPL network without the need to | |||
| participate to the full routing protocol. | participate in the full routing protocol. | |||
| The architecture also expects that a 6LoWPAN node that is not aware | The architecture also expects that a 6LoWPAN node that is unaware | |||
| at all of the RPL protocol may also connect as described in | of RPL may also connect as described in <xref target="RFC9010"/>. | |||
| <xref target='I-D.ietf-roll-unaware-leaves'/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>A Multi-Link Subnet Model</name> | <section><name>A Multi-Link Subnet Model</name> | |||
| <t> | <t> | |||
| An extended configuration of the subnet comprises multiple LLNs as | An extended configuration of the subnet comprises multiple LLNs as | |||
| illustrated in <xref target='fig2'/>. | illustrated in <xref target="fig2"/>. | |||
| In the extended configuration, a Routing Registrar <xref target='RFC8505'/> | In the extended configuration, a Routing Registrar <xref target="RFC8505"/> | |||
| may be connected to the node that acts as RPL Root and / or 6LoWPAN 6LBR | may be connected to the node that acts as the RPL Root and/or 6LoWPAN 6LBR | |||
| and provides connectivity to the larger campus / factory plant network | and provides connectivity to the larger campus or factory plant network | |||
| over a high-speed backbone or a back-haul link. The Routing registrar | over a high-speed backbone or a back-haul link. The Routing Registrar | |||
| may perform IPv6 ND proxy operations, or redistribute the registration in | may perform IPv6 ND proxy operations; redistribute the registration in | |||
| a routing protocol such as <xref target='RFC5340'>OSPF</xref> or | a routing protocol such as <xref target="RFC5340">OSPF</xref> or | |||
| <xref target='RFC2545'>BGP</xref>, or inject a route in a mobility protocol | <xref target="RFC2545">BGP</xref>; or inject a route in a mobility protocol | |||
| such as <xref target='RFC6275'>MIPv6</xref>, <xref target='RFC3963'>NEMO | such as <xref target="RFC6275">Mobile IPv6 (MIPv6)</xref>, | |||
| </xref>, or <xref target='RFC6830'>LISP</xref>. | <xref target="RFC3963">Network Mobility (NEMO)</xref>, or | |||
| <xref target="RFC6830">Locator/ID Separation Protocol (LISP)</xref>. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 with | backbone, which can be wired or wireless. The backbone can operate with | |||
| IPv6 ND <xref target='RFC4861'/><xref target='RFC4862'/> procedures or an | IPv6 ND procedures <xref target="RFC4861"/> <xref target="RFC4862"/> or a | |||
| hybrid of IPv6 ND and 6LoWPAN ND | hybrid of IPv6 ND and 6LoWPAN ND | |||
| <xref target='RFC6775'/><xref target='RFC8505'/><xref target='I-D.ietf-6lo-a p-nd'/>. | <xref target="RFC6775"/> <xref target="RFC8505"/> <xref target="RFC8928"/>. | |||
| </t> | </t> | |||
| <figure anchor='fig2'><name>Extended Configuration of a 6TiSCH Network< /name> | <figure anchor="fig2"><name>Extended Configuration of a 6TiSCH Network< /name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| | | | | |||
| +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ | |||
| (default) | | (Optional) | | | | IPv6 | (default) | | (Optional) | | | | IPv6 | |||
| Router | | 6LBR | | | | Node | Router | | 6LBR | | | | Node | |||
| +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ | |||
| | Backbone side | | | | Backbone side | | | |||
| --------+---+--------------------+-+---------------+------+--- | --------+---+--------------------+-+---------------+------+--- | |||
| | | | | | | | | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| | Routing | | Routing | | Routing | | | Routing | | Routing | | Routing | | |||
| skipping to change at line 691 ¶ | skipping to change at line 651 ¶ | |||
| | | | | | | | | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| | Routing | | Routing | | Routing | | | Routing | | Routing | | Routing | | |||
| | Registrar | | Registrar | | Registrar | | | Registrar | | Registrar | | Registrar | | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| 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 | |||
| ]]></artwork></figure> | ||||
| ]]></artwork></figure> | ||||
| <t> | <t> | |||
| 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 (6BBR) | backbone on behalf of the 6TiSCH nodes is called a Backbone Router (6BBR) | |||
| <xref target='I-D.ietf-6lo-backbone-router'/>. The 6BBRs are | <xref target="RFC8929"/>. The 6BBRs are | |||
| placed along the wireless edge of a Backbone, and federate multiple | placed along the wireless edge of a backbone and federate multiple | |||
| wireless links to form a single MultiLink Subnet. The 6BBRs synchronize | wireless links to form a single multi-link subnet. The 6BBRs synchronize | |||
| with one another over the backbone, so as to ensure that the multiple LLNs | with one another over the backbone, so as to ensure that the multiple LLNs | |||
| that form the IPv6 subnet stay tightly synchronized. | that form the IPv6 subnet stay tightly synchronized. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The use of multicast can also be reduced on the backbone with a registrar | The use of multicast can also be reduced on the backbone with a registrar | |||
| that would contribute to Duplicate Address Detection as well as Address | that would contribute to Duplicate Address Detection as well as address | |||
| Lookup using only unicast request/response exchanges. | lookup using only unicast request/response exchanges. | |||
| <xref target='I-D.thubert-6man-unicast-lookup'/> is a proposed method that | <xref target="I-D.thubert-6man-unicast-lookup"/> is a proposed method that | |||
| presents an example of how to this could be achieved with an extension of | presents an example of how this could be achieved with an extension of | |||
| <xref target='RFC8505'/>, using an optional 6LBR as a SubNet-level registrar | <xref target="RFC8505"/>, using an optional 6LBR as a subnet-level registrar | |||
| , | , | |||
| as illustrated in <xref target='fig2'/>. | as illustrated in <xref target="fig2"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As detailed in <xref target='RPLvs6lo'/> the 6LBR that serves the LLN and | As detailed in <xref target="RPLvs6lo"/>, the 6LBR that serves the LLN and | |||
| the Root of the RPL network need to share information about the devices | the Root of the RPL network need to share information about the devices | |||
| that are learned through either 6LoWPAN ND or RPL but not both. | that 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 | The combined RPL Root and 6LBR may be co-located with the 6BBR, or | |||
| directly attached to the 6BBR. In the latter case, it leverages the | directly attached to the 6BBR. In the latter case, it leverages the | |||
| extended registration process defined in <xref target='RFC8505'/> to proxy | extended registration process defined in <xref target="RFC8505"/> to proxy | |||
| the 6LoWPAN ND registration to the 6BBR on behalf of the LLN nodes, so | the 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 the | that the 6BBR may in turn perform classical ND operations over the | |||
| backbone. | backbone as a proxy. | |||
| </t> | </t> | |||
| <t> The <xref target='RFC8655'>DetNet | <t> The <xref target="RFC8655">"Deterministic Networking Architecture"</xr | |||
| Architecture</xref> studies Layer-3 aspects of Deterministic Networks, and | ef> | |||
| covers networks that span multiple Layer-2 domains. | studies Layer 3 aspects of Deterministic Networks and | |||
| If the Backbone is Deterministic (such as defined by the Time Sensitive | covers networks that span multiple Layer 2 domains. | |||
| Networking WG at IEEE), then the Backbone Router ensures that the | If the backbone is deterministic (such as defined by the Time-Sensitive | |||
| Networking (TSN) Task Group at IEEE), then the Backbone Router ensures that | ||||
| the | ||||
| end-to-end deterministic behavior is maintained between the LLN and the | end-to-end deterministic behavior is maintained between the LLN and the | |||
| backbone. | backbone. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>TSCH: A Deterministic MAC Layer</name> | <section><name>TSCH: a Deterministic MAC Layer</name> | |||
| <t> | <t> | |||
| Though at a different time scale (several orders of magnitude), | Though at a different time scale (several orders of magnitude), | |||
| both IEEE Std. 802.1TSN and IEEE Std. 802.15.4 TSCH | both IEEE Std 802.1 TSN and IEEE Std 802.15.4 TSCH | |||
| standards provide Deterministic capabilities to the point that a packet | standards provide deterministic capabilities to the point that a packet | |||
| that pertains to a certain flow may traverse a network from node to nod | pertaining to a certain flow may traverse a network from node to node f | |||
| e following | ollowing | |||
| a precise schedule, as a train that enters and then leaves intermediate stations | a precise schedule, as a train that enters and then leaves intermediate stations | |||
| at precise times along its path. | at precise times along its path. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| With TSCH, time is formatted into | With TSCH, time is formatted into | |||
| timeslots, and individual communication cells are allocated to unicast or | timeslots, and individual communication cells are allocated to unicast or | |||
| broadcast communication at the MAC level. The time-slotted operation | broadcast communication at the MAC level. The time-slotted operation | |||
| reduces collisions, saves energy, and enables to more closely engineer | reduces collisions, saves energy, and enables more closely engineering | |||
| the network for deterministic properties. | the network for deterministic properties. | |||
| The channel hopping aspect is a simple and efficient technique to comba t | The channel-hopping aspect is a simple and efficient technique to comba t | |||
| multipath fading and co-channel interference. | multipath fading and co-channel interference. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 6TiSCH builds on the IEEE Std. 802.15.4 TSCH MAC and inherits its advan ced | 6TiSCH builds on the IEEE Std 802.15.4 TSCH MAC and inherits its advanc ed | |||
| capabilities to enable them in multiple environments where they can | capabilities to enable them in multiple environments where they can | |||
| be leveraged to improve automated operations. | be leveraged to improve automated operations. | |||
| The 6TiSCH Architecture also inherits the capability to perform a | The 6TiSCH architecture also inherits the capability to perform a | |||
| centralized route computation to achieve deterministic properties, | centralized route computation to achieve deterministic properties, | |||
| though it relies on the IETF | though it relies on the IETF | |||
| <xref target='RFC8655'>DetNet Architecture</xref>, | <xref target="RFC8655">DetNet architecture</xref> | |||
| and IETF components such as the PCE | and IETF components such as the PCE | |||
| <xref target='PCE'/>, for the protocol aspects. | <xref target="PCE"/> for the protocol aspects. | |||
| </t> | </t> | |||
| <t>On top of this inheritance, 6TiSCH adds capabilities for distributed | <t>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 to negotiate schedule adjustments between peers. | and capabilities for negotiating schedule adjustments between peers. | |||
| These distributed routing and scheduling operations simplify the | These distributed routing and scheduling operations simplify the | |||
| deployment of TSCH networks and enable wireless solutions in a larger | deployment of TSCH networks and enable wireless solutions in a larger | |||
| variety of use cases from operational technology in general. Examples | variety of use cases from operational technology in general. Examples | |||
| of such use-cases in industrial environments include plant setup and | of such use cases in industrial environments include plant setup and | |||
| decommissioning, as well as monitoring of lots of lesser importance | decommissioning, as well as monitoring a multiplicity of minor | |||
| measurements such as corrosion and events and mobile workers accessing | notifications such as corrosion measurements, events, and access of | |||
| local devices. | local devices by mobile workers. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Scheduling TSCH</name> | <section><name>Scheduling TSCH</name> | |||
| <t>A scheduling operation attributes cells in a Time-Division-Multiplexing | ||||
| (TDM) / Frequency-Division Multiplexing (FDM) matrix called the Channel | <t>A scheduling operation allocates cells in a TDM/FDM matrix | |||
| distribution/usage (CDU) to either individual transmissions | called a CDU either to individual transmissions or as multi-access shar | |||
| or as multi-access shared resources. The CDU matrix can be formatted in | ed resources. | |||
| The CDU matrix can be formatted in | ||||
| chunks that can be allocated exclusively to particular nodes to enable | chunks that can be allocated exclusively to particular nodes to enable | |||
| distributed scheduling without collision. | distributed scheduling without collision. | |||
| More in <xref target='slotframes'/>. | More in <xref target="slotframes"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 the timeslots at which it must wake up for | is the collection of the timeslots at which it must wake up for | |||
| transmission, and the channels to which it should either send or listen | transmission, and the channels to which it should either send or listen | |||
| at those times. The schedule is expressed as one or more slotframes tha | at those times. The schedule is expressed as one or more repeating slot | |||
| t | frames. | |||
| repeat over and over. Slotframes may collide and require a device to | Slotframes may collide and require a device to | |||
| wake up at a same time, in which case the slotframe with the highest | wake up at a same time, in which case the slotframe with the highest | |||
| priority is actionable. | priority is actionable. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6top sublayer (see <xref target='s6Pprot'/> for more) hides the | The 6top sublayer (see <xref target="s6Pprot"/> for more) hides the | |||
| complexity of the schedule from the upper layers. The Link abstraction | complexity of the schedule from the upper layers. The link abstraction | |||
| that IP traffic utilizes is composed of a pair of Layer-3 cell bundles, | that IP traffic utilizes is composed of a pair of Layer 3 cell bundles, | |||
| one to receive and one to transmit. Some of the cells may be shared, in | one 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. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 with | interference domain using different channels; but a node equipped with | |||
| a single radio can only either transmit or receive on one channel at | a single radio can only either transmit or receive on one channel at | |||
| any point of time. | any point of time. | |||
| Scheduled cells that fulfil the same role, e.g., receive IP packets fro m | Scheduled cells that fulfill the same role, e.g., receive IP packets fr om | |||
| a peer, are grouped in bundles. | a peer, are grouped in bundles. | |||
| </t> | </t> | |||
| <t>The 6TiSCH architecture identifies four ways a schedule can be managed | <t>The 6TiSCH architecture identifies four ways a schedule can be managed | |||
| and CDU cells can be allocated: Static Scheduling, Neighbor-to-Neighbor | and CDU cells can be allocated: Static Scheduling, Neighbor-to-Neighbor | |||
| Scheduling, Centralized (or Remote) Monitoring and Schedule Management, | Scheduling, Centralized (or Remote) Monitoring and Schedule Management, | |||
| and Hop-by-hop Scheduling. | and Hop-by-Hop Scheduling. | |||
| </t><dl spacing='normal'> | </t><dl spacing="normal"> | |||
| <dt>Static Scheduling:</dt><dd>This refers to the minimal | <dt>Static Scheduling:</dt><dd>This refers to the minimal | |||
| 6TiSCH operation whereby a static schedule is configured for the whole | 6TiSCH operation whereby a static schedule is configured for the whole | |||
| network for use in a Slotted ALOHA <xref target='S-ALOHA'/> fashion. | network for use in a Slotted ALOHA <xref target="S-ALOHA"/> fashion. | |||
| The static schedule is | The static schedule is | |||
| distributed through the native methods in the TSCH MAC layer | distributed through the native methods in the TSCH MAC layer | |||
| and does not preclude other scheduling operations to co-exist on a same | and does not preclude other scheduling operations coexisting on a same | |||
| 6TiSCH network. A static schedule is | 6TiSCH network. A static schedule is | |||
| necessary for basic operations such as the join process and | necessary for basic operations such as the join process and | |||
| for interoperability during the network formation, which is specified | for interoperability during the network formation, which is specified | |||
| as part of the <xref target='RFC8180'>Minimal 6TiSCH Configuration | as part of the <xref target="RFC8180">Minimal 6TiSCH Configuration | |||
| </xref>. | </xref>. | |||
| </dd> | </dd> | |||
| <dt>Neighbor-to-Neighbor Scheduling:</dt><dd>This refers to the | <dt>Neighbor-to-Neighbor Scheduling:</dt><dd>This refers to the | |||
| dynamic adaptation of the bandwidth of the Links that are used for IPv6 | dynamic 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 | |||
| <xref target='I-D.ietf-6tisch-msf'>"6TiSCH Minimal Scheduling Function | <xref target="RFC9033">"6TiSCH Minimal Scheduling Function | |||
| (MSF)"</xref> influence the operation of the MAC layer to add, update | (MSF)"</xref> influence the operation of the MAC layer to add, update, | |||
| and remove cells in its own, and its peer's schedules using 6P | and remove cells in its own and its peer's schedules using 6P | |||
| <xref target='RFC8480'/>, | <xref target="RFC8480"/> | |||
| for the negotiation of the MAC resources.</dd> | for the negotiation of the MAC resources.</dd> | |||
| <dt>Centralized (or Remote) Monitoring and Schedule Management:</dt><dd > | <dt>Centralized (or Remote) Monitoring and Schedule Management:</dt><dd > | |||
| This refers to the central computation of a schedule and the capability | This refers to the central computation of a schedule and the capability | |||
| to forward a frame based on the cell of arrival. In that case, | 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 (NME), | resources are managed by an abstract Network Management Entity (NME), | |||
| which may cooperate with the PCE to minimize the interaction | which may cooperate with the PCE to minimize the interaction | |||
| with and the load on the constrained device. | with, and the load on, the constrained device. | |||
| This model is the TSCH adaption of the | This model is the TSCH adaption of the | |||
| <xref target='RFC8655'>DetNet Architecture</xref>, | <xref target="RFC8655">DetNet architecture</xref>, | |||
| and it enables Traffic Engineering with deterministic properties. | and it enables Traffic Engineering with deterministic properties. | |||
| </dd> | </dd> | |||
| <dt>Hop-by-hop Scheduling:</dt><dd>This refers to the possibility to | <dt>Hop-by-Hop Scheduling:</dt><dd>This refers to the possibility of | |||
| reserves cells along a path for a particular flow using a distributed | reserving cells along a path for a particular flow using a distributed | |||
| mechanism.</dd> | mechanism.</dd> | |||
| </dl><t> | </dl> | |||
| </t> <t> | <t> | |||
| It is not expected that all use cases will require all those mechanisms . | It is not expected that all use cases will require all those mechanisms . | |||
| Static Scheduling with minimal configuration one is the only one that | Static Scheduling with minimal configuration is the only one that | |||
| is expected in all implementations, since it provides a simple and | is expected in all implementations, since it provides a simple and | |||
| solid basis for convergecast routing and time distribution. | solid basis for convergecast routing and time distribution. | |||
| </t><t> | </t><t> | |||
| A deeper dive in those mechanisms can be found in <xref target='schd'/> . | A deeper dive into those mechanisms can be found in <xref target="schd" />. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='rtg3'><name>Distributed vs. Centralized Routing</name> | <section anchor="rtg3"><name>Distributed vs. Centralized Routing</name> | |||
| <t> | <t> | |||
| 6TiSCH enables a mixed model of centralized routes and distributed routes. | 6TiSCH enables a mixed model of centralized routes and distributed routes. | |||
| Centralized routes can for example be computed by an entity such as a PCE. | Centralized routes can, for example, be computed by an entity such as a PC | |||
| 6TiSCH leverages the <xref target='RFC6550'>RPL</xref> routing protocol | E. | |||
| for interoperable distributed routing operations. | 6TiSCH leverages <xref target="RFC6550">RPL</xref> | |||
| for interoperable, distributed routing operations. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Both methods may inject routes in the Routing Tables of the 6TiSCH routers . | Both methods may inject routes into the routing tables of the 6TiSCH route rs. | |||
| In either case, each route is associated with a 6TiSCH topology that can | In either case, each route is associated with a 6TiSCH topology that can | |||
| be a RPL Instance topology or a Track. The 6TiSCH topology is | be a RPL Instance topology or a Track. The 6TiSCH topology is | |||
| indexed by a RPLInstanceID, in a format that reuses the RPLInstanceID as | indexed by a RPLInstanceID, in a format that reuses the RPLInstanceID as | |||
| defined in RPL. | defined in RPL. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='RFC6550'>RPL</xref> is applicable to Static Scheduling and | <xref target="RFC6550">RPL</xref> is applicable to Static Scheduling and | |||
| Neighbor-to-Neighbor Scheduling. The architecture also supports a | Neighbor-to-Neighbor Scheduling. The architecture also supports a | |||
| centralized routing model for Remote Monitoring and Schedule Management. | centralized routing model for Remote Monitoring and Schedule Management. | |||
| It is expected that a routing protocol that is more optimized for | It is expected that a routing protocol that is more optimized for | |||
| point-to-point routing than <xref target='RFC6550'>RPL</xref>, such as | point-to-point routing than <xref target="RFC6550">RPL</xref>, such as | |||
| the <xref target='I-D.ietf-roll-aodv-rpl'> | the <xref target="I-D.ietf-roll-aodv-rpl"> | |||
| Asymmetric AODV-P2P-RPL in Low-Power and Lossy Networks"</xref> | "Asymmetric AODV-P2P-RPL in Low-Power and Lossy Networks" (AODV-RPL)</xr | |||
| AODV-RPL), which derives from the <xref target='I-D.ietf-manet-aodvv2'> | ef>, | |||
| Ad Hoc On-demand Distance Vector Routing (AODV)</xref> will be | which derives from the <xref target="I-D.ietf-manet-aodvv2"> | |||
| selected for Hop-by-hop Scheduling. | "Ad Hoc On-demand Distance Vector (AODVv2) Routing"</xref>, will be | |||
| selected for Hop-by-Hop Scheduling. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Both RPL and PCE rely on shared sources such as policies to define Global | Both RPL and PCE rely on shared sources such as policies to define global | |||
| and Local RPLInstanceIDs that can be used by either method. It is possible | and local RPLInstanceIDs that can be used by either method. It is possible | |||
| for centralized and distributed routing to share a same topology. | for centralized and distributed routing to share the same topology. | |||
| Generally they will operate in different slotframes, and centralized | Generally they will operate in different slotframes, and centralized | |||
| routes will be used for scheduled traffic and will have precedence over | routes will be used for scheduled traffic and will have precedence over | |||
| distributed routes in case of conflict between the slotframes. | distributed routes in case of conflict between the slotframes. | |||
| </t> | </t> | |||
| </section> <!-- Distributed vs. Centralized Routing --> | </section> | |||
| <section><name>Forwarding Over TSCH</name> | <section><name>Forwarding over TSCH</name> | |||
| <t> | <t> | |||
| 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 feasible | One is the classical IPv6 Forwarding, where the node selects a feasible | |||
| successor at Layer-3 on a per packet basis and based on its routing | 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-called | table. The second derives from Generalized MPLS (GMPLS) for so-called | |||
| Track Forwarding, whereby a frame received at a particular timeslot | Track Forwarding, whereby a frame received at a particular timeslot | |||
| can be switched into another timeslot at Layer-2 without regard to the | can be switched into another timeslot at Layer 2 without regard to the | |||
| upper layer protocol. The third model is the | upper-layer protocol. The third model is the | |||
| 6LoWPAN Fragment Forwarding, which allows to forward individual 6loWPAN | 6LoWPAN Fragment Forwarding, which allows the forwarding individual 6Lo | |||
| fragments along a route that is setup by the first fragment. | WPAN | |||
| fragments along a route that is set up by the first fragment. | ||||
| </t> | </t> | |||
| <t>In more details: | <t>In more detail: | |||
| </t><dl spacing='normal'> | </t> | |||
| <dl spacing="normal"> | ||||
| <dt>IPv6 Forwarding:</dt><dd>This is the classical IP forwarding | <dt>IPv6 Forwarding:</dt><dd>This is the classical IP forwarding | |||
| model, with a Routing Information Based (RIB) that is installed by the | model, with a Routing Information Base (RIB) that is installed by | |||
| RPL routing protocol and used to select a feasible successor per packet | RPL and used to select a feasible successor per packet. | |||
| . | The packet is placed on an outgoing link, which the 6top sublayer maps | |||
| The packet is placed on an outgoing Link, that the 6top layer maps into | into | |||
| a (Layer-3) bundle of cells, and scheduled for transmission based on Qo | a (Layer 3) bundle of cells, and scheduled for transmission based on Qo | |||
| S | S | |||
| parameters. Besides RPL, this model also applies to any routing | parameters. Besides RPL, this model also applies to any routing | |||
| protocol which may be operated in the 6TiSCH network, and corresponds | protocol that may be operated in the 6TiSCH network and corresponds | |||
| to all the distributed scheduling models, Static, Neighbor-to-Neighbor | to all the distributed scheduling models: Static, Neighbor-to-Neighbor, | |||
| and Hop-by-Hop Scheduling.</dd> | and Hop-by-Hop Scheduling.</dd> | |||
| <dt>G-MPLS Track Forwarding:</dt><dd>This model corresponds to the | <dt>GMPLS Track Forwarding:</dt><dd>This model corresponds to the | |||
| Remote Monitoring and Schedule Management. In this model, a central | Remote Monitoring and Schedule Management. In this model, a central | |||
| controller (hosting a PCE) computes and installs the schedules in the | 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) bundle | previous node along the path determines the outgoing (Layer 2) bundle | |||
| towards the next hop for that flow as determined by the PCE. The | towards the next hop for that flow as determined by the PCE. The | |||
| programmed sequence for bundles is called a Track and can assume DAG | programmed sequence for bundles is called a Track and can assume DAG | |||
| shapes that are more complex than a simple direct sequence of nodes.</d d> | shapes that are more complex than a simple direct sequence of nodes.</d d> | |||
| <dt>6LoWPAN Fragment Forwarding:</dt><dd>This is a hybrid model | <dt>6LoWPAN Fragment Forwarding:</dt><dd>This is a hybrid model | |||
| that derives from IPv6 forwarding for the case where packets must | that derives from IPv6 forwarding for the case where packets must | |||
| be fragmented at the 6LoWPAN sublayer. The first fragment is forwarded | be fragmented at the 6LoWPAN sublayer. The first fragment is forwarded | |||
| like any IPv6 packet and leaves a state in the intermediate hops to | like any IPv6 packet and leaves a state in the intermediate hops to | |||
| enable forwarding of the next fragments that do not have a IP header | enable forwarding of the next fragments that do not have an IP header | |||
| without the need to recompose the packet at every hop.</dd> | without the need to recompose the packet at every hop.</dd> | |||
| </dl><t> | </dl> | |||
| </t> | <t>A deeper dive into these operations can be found in | |||
| <t>A deeper dive on these operations can be found in | <xref target="fwd"/>. | |||
| <xref target='fwd'/>. | ||||
| </t> | </t> | |||
| <t> The following table summarizes how the forwarding models | <t> <xref target="RaF"/> summarizes how the forwarding models | |||
| apply to the various routing and scheduling possibilities: | apply to the various routing and scheduling possibilities: | |||
| </t> | </t> | |||
| <figure anchor='RaF' suppress-title='true'> | <table anchor="RaF"> | |||
| <artwork> | <thead> | |||
| <![CDATA[ | <tr> | |||
| +-------------------+------------+----------------------------------+ | <th>Forwarding Model</th> | |||
| | Forwarding Model | Routing | Scheduling | | <th>Routing</th> | |||
| +===================+============+==================================+ | <th>Scheduling</th> | |||
| | | | Static (Minimal Configuration) | | </tr> | |||
| + classical IPv6 + RPL +----------------------------------+ | </thead> | |||
| | / | | Neighbor-to-Neighbor (SF+6P) | | <tbody> | |||
| + 6LoWPAN Fragment +------------+----------------------------------+ | <tr> | |||
| | | Reactive | Hop-by-Hop (AODV-RPL) | | <td rowspan="3">classical IPv6 / 6LoWPAN Fragment</td> | |||
| +-------------------+------------+----------------------------------+ | <td rowspan="2">RPL</td> | |||
| |G-MPLS Track Fwding| PCE |Remote Monitoring and Schedule Mgt| | <td>Static (Minimal Configuration)</td> | |||
| +-------------------+------------+----------------------------------+ | </tr> | |||
| ]]> | <tr> | |||
| </artwork> | <td>Neighbor-to-Neighbor (SF+6P)</td> | |||
| </figure> | </tr> | |||
| <tr> | ||||
| <td>Reactive</td> | ||||
| <td>Hop-by-Hop (AODV-RPL)</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>GMPLS Track Forwarding</td> | ||||
| <td>PCE</td> | ||||
| <td>Remote Monitoring and Schedule Mgt</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| <section anchor='fsixstac'><name>6TiSCH Stack</name> | <section anchor="fsixstac"><name>6TiSCH Stack</name> | |||
| <t> | <t> | |||
| The IETF proposes multiple techniques for implementing functions related | The IETF proposes multiple techniques for implementing functions related | |||
| to routing, transport or security. | to routing, transport, or security. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TiSCH architecture limits the possible | The 6TiSCH architecture limits the possible | |||
| variations of the stack and recommends a number of base elements for LLN | variations of the stack and recommends a number of base elements for LLN | |||
| applications to control the complexity of | applications to control the complexity of | |||
| possible deployments and device interactions, and to limit the size of | possible deployments and device interactions and to limit the size of | |||
| the resulting object code. In particular, UDP <xref target='RFC0768'/>, | the resulting object code. In particular, UDP <xref target="RFC0768"/>, | |||
| IPv6 <xref target='RFC8200'/> and the <xref target='RFC7252'>Constrained | IPv6 <xref target="RFC8200"/>, and the <xref target="RFC7252">Constrained | |||
| Application Protocol</xref> (CoAP) are used as the transport / binding of | Application Protocol (CoAP)</xref> are used as the transport/binding of | |||
| choice for applications and management as opposed to TCP and HTTP. | choice for applications and management as opposed to TCP and HTTP. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The resulting protocol stack is represented in <xref target='fig4'/>: | The resulting protocol stack is represented in <xref target="fig4"/>: | |||
| </t> | </t> | |||
| <figure anchor='fig4'><name>6TiSCH Protocol Stack</name> | <figure anchor="fig4"><name>6TiSCH Protocol Stack</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| +--------+--------+ | +--------+--------+ | |||
| | 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 | | |||
| skipping to change at line 997 ¶ | skipping to change at line 962 ¶ | |||
| | 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 | | |||
| +-------------------------------------------------------------+ | +-------------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| 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. | identified need to define a 6TiSCH-specific Objective Function. | |||
| The <xref target='RFC8180'>Minimal 6TiSCH Configuration | The <xref target="RFC8180">Minimal 6TiSCH Configuration | |||
| </xref> describes the operation of RPL over a static schedule used in | </xref> describes the operation of RPL over a static schedule used in | |||
| a Slotted ALOHA fashion <xref target='S-ALOHA'/>, whereby all active sl ots | a Slotted ALOHA fashion <xref target="S-ALOHA"/>, whereby all active sl ots | |||
| may be used for emission or reception of both unicast and multicast | may be used for emission or reception of both unicast and multicast | |||
| frames. | frames. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The <xref target='RFC6282'>6LoWPAN Header Compression</xref> is used | <xref target="RFC6282">6LoWPAN header compression</xref> is used | |||
| to compress the IPv6 and UDP headers, whereas the | to compress the IPv6 and UDP headers, whereas the | |||
| <xref target='RFC8138'> 6LoWPAN Routing Header (6LoRH)</xref> is used | <xref target="RFC8138"> 6LoWPAN Routing Header (6LoRH)</xref> is used | |||
| to compress the RPL artifacts in | to compress the RPL artifacts in | |||
| the IPv6 data packets, including the RPL Packet Information (RPI), | the IPv6 data packets, including the RPL Packet Information (RPI), | |||
| the IP-in-IP encapsulation to/from the RPL Root, and the Source Route | the IP-in-IP encapsulation to/from the RPL Root, and the Source Routing | |||
| Header (SRH) in non-storing mode. | Header (SRH) in non-storing mode. | |||
| <xref target='I-D.ietf-roll-useofrplinfo'>"When to use RFC 6553, 6554 | "<xref target="RFC9008" format="title"/>" <xref target="RFC9008"/> | |||
| and IPv6-in-IPv6"</xref> provides the details on when headers or encaps | provides the details on when headers or encapsulation are needed. | |||
| ulation are needed. | ||||
| </t> | ||||
| <t> | ||||
| <!--The COMAN list is working on network Management for LLN. | ||||
| They are considering the Open Mobile Alliance (OMA) Lightweight M2M (LW | ||||
| M2M) Object system. | ||||
| This standard includes DTLS, CoAP (core plus Block and Observe patterns | ||||
| ), | ||||
| SenML and CoAP Resource Directory. | ||||
| 6TiSCH has adopted the general direction of | ||||
| <xref target="I-D.ietf-core-comi"> | ||||
| CoAP Management Interface (COMI)</xref> for the management of devices. | ||||
| This is leveraged for instance for the implementation of the generic | ||||
| data model for the 6top sublayer management interface | ||||
| <xref target="I-D.ietf-6tisch-6top-interface"/>. | ||||
| The proposed implementation is based on CoAP and CBOR, | ||||
| and specified in <xref target="I-D.ietf-6tisch-coap"> | ||||
| 6TiSCH Resource Management and Interaction using CoAP</xref>.--> | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The <xref target='I-D.ietf-core-object-security'> | The <xref target="RFC8613"> | |||
| Object Security for Constrained RESTful Environments (OSCORE) </xref>, | Object Security for Constrained RESTful Environments (OSCORE) </xref> | |||
| is leveraged by the Constrained Join Protocol (CoJP) and is expected to | is leveraged by the Constrained Join Protocol (CoJP) and is expected to | |||
| be the primary protocol for the protection of the application payload | be the primary protocol for the protection of the application payload | |||
| as well. The application payload may also be protected by | as well. The application payload may also be protected by | |||
| the <xref target='RFC6347'>Datagram Transport Layer Security (DTLS) | the <xref target="RFC6347">Datagram Transport Layer Security (DTLS) | |||
| </xref> sitting either under CoAP or over CoAP so it can traverse | </xref> sitting either under CoAP or over CoAP so it can traverse | |||
| proxies. | proxies. | |||
| </t> | ||||
| <t> | ||||
| <!-- Similarly, the <xref target="RFC5191"> | ||||
| Protocol for Carrying Authentication for Network access (PANA)</xref> | ||||
| is represented as an example of a protocol that could be leveraged to | ||||
| secure the join process, as a Layer-3 alternate to IEEE Std. 802.1x/EAP | ||||
| . | ||||
| Regardless, the security model ensures that, prior to a join process, | ||||
| packets from a untrusted device are controlled in volume and in | ||||
| reachability. In particular, a PANA stack should be separated from | ||||
| the main protocol stack to avoid attacks during the join process | ||||
| that is introduced in <xref target='rflo'/>. | ||||
| --> | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TiSCH Operation | The 6TiSCH Operation | |||
| sublayer (6top) is a sublayer of a Logical Link Control (LLC) | Sublayer (6top) is a sublayer of a Logical Link Control (LLC) | |||
| that provides the abstraction of an IP link over a TSCH MAC and | that provides the abstraction of an IP link over a TSCH MAC and | |||
| schedules packets over TSCH cells, as further discussed in the next | schedules packets over TSCH cells, as further discussed in the next | |||
| sections, providing in particular dynamic cell allocation with the | sections, providing in particular dynamic cell allocation with the | |||
| 6top Protocol (6P) <xref target='RFC8480'/>. | 6top Protocol (6P) <xref target="RFC8480"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The reference stack presented in this document was implemented | The reference stack presented in this document was implemented | |||
| and interop-tested by a conjunction of opensource, IETF and ETSI efforts. | and interoperability-tested by a combination of open source, IETF, and ETS I efforts. | |||
| One goal is to help other bodies to adopt the stack as a whole, making the | One goal is to help other bodies to adopt the stack as a whole, making the | |||
| effort to move to an IPv6-based IoT stack easier. | effort to move to an IPv6-based IoT stack easier. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For a particular | For a particular | |||
| environment, some of the choices that are made in this architecture may no t | environment, some of the choices that are available in this architecture m ay not | |||
| be relevant. For instance, RPL is not required for star topologies and | be relevant. For instance, RPL is not required for star topologies and | |||
| mesh-under Layer-2 routed networks, and the 6LoWPAN compression may not be | mesh-under Layer 2 routed networks, and the 6LoWPAN compression may not be | |||
| sufficient for ultra-constrained cases such as some Low-Power Wide Area | sufficient for ultra-constrained cases such as some Low-Power Wide Area | |||
| (LPWA) networks. In such cases, it is perfectly doable to adopt a subset | (LPWA) networks. In such cases, it is perfectly doable to adopt a subset | |||
| of the selection that is presented hereafter and then select alternate | of the selection that is presented hereafter and then select alternate | |||
| components to complete the solution wherever needed. | components to complete the solution wherever needed. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Communication Paradigms and Interaction Models</name> | <section><name>Communication Paradigms and Interaction Models</name> | |||
| <t> | <t> | |||
| <xref target='sixTTerminology'/> provides the terms | <xref target="sixTTerminology"/> provides the terms | |||
| of Communication Paradigms and Interaction Models, in relation with | of Communication Paradigms and Interaction Models in combination with | |||
| <xref target='RFC3444'>"On the Difference between Information Models | <xref target="RFC3444">"On the Difference between Information Models | |||
| and Data Models"</xref>. | and Data Models"</xref>. | |||
| A Communication Paradigm would be an abstract view of a protocol exchan | A Communication Paradigm is an abstract view of a protocol exchange | |||
| ge, | and has an Information Model for the information that is being exchange | |||
| and would come with an Information Model for the information that is be | d. | |||
| ing exchanged. | In contrast, an Interaction Model is more refined and points to standar | |||
| In contrast, an Interaction Model would be more refined and could point | d operation | |||
| to standard operation | such as a Representational State Transfer (REST) "GET" operation and ma | |||
| such as a Representational state transfer (REST) "GET" operation and wo | tches | |||
| uld match | ||||
| a Data Model for the data that is provided over the protocol exchange. | a Data Model for the data that is provided over the protocol exchange. | |||
| </t> | </t> | |||
| <t> | ||||
| Section 2.1.3 of | ||||
| <xref target='I-D.ietf-roll-rpl-industrial-applicability'/> and next | ||||
| sections discuss application-layer paradigms, such as Source-sink (SS) | ||||
| that is a Multipeer to Multipeer (MP2MP) model primarily used for | ||||
| alarms and alerts, Publish-subscribe (PS, or pub/sub) that is typically | ||||
| used for sensor data, as well as Peer-to-peer (P2P) and | ||||
| Peer-to-multipeer (P2MP) communications. | ||||
| <t> | ||||
| <xref target="I-D.ietf-roll-rpl-industrial-applicability" section="2.1. | ||||
| 3" sectionFormat="of" format="default"/> | ||||
| and its following | ||||
| sections discuss application-layer paradigms such as source-sink, | ||||
| which is a multipeer-to-multipeer model primarily used for | ||||
| alarms and alerts, publish-subscribe, which is typically | ||||
| used for sensor data, as well as peer-to-peer and | ||||
| peer-to-multipeer communications. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Additional considerations on Duocast - one sender, two receivers for re dundancy - | Additional considerations on duocast -- one sender, two receivers for r edundancy -- | |||
| and its N-cast generalization are also provided. | and its N-cast generalization are also provided. | |||
| Those paradigms are frequently used in industrial automation, which is | Those paradigms are frequently used in industrial automation, which is | |||
| a major use case for IEEE Std. 802.15.4 TSCH wireless networks with | a major use case for IEEE Std 802.15.4 TSCH wireless networks with | |||
| <xref target='ISA100.11a'/> and <xref target='WirelessHART'/>, that | <xref target="ISA100.11a"/> and <xref target="WirelessHART"/>, which | |||
| provides a wireless access to <xref target='HART'/> applications and | provides a wireless access to <xref target="HART"/> applications and | |||
| devices. | devices. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 hop) | |||
| Network-layer (multihop along a Track), and Application-layer | , | |||
| (remote control) are discussed in <xref target='schd'/>. | network layer (multihop along a Track), and application layer | |||
| Link-Layer frame forwarding interactions are discussed in <xref target= | (remote control) are discussed in <xref target="schd"/>. | |||
| 'fwd'/>, and | Link-layer frame forwarding interactions are discussed in <xref target= | |||
| Network-layer Packet routing is addressed in <xref target='rtg'/>. | "fwd"/>, and | |||
| network-layer packet routing is addressed in <xref target="rtg"/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor='dd'><name>Architecture Components</name> | <section anchor="dd"><name>Architecture Components</name> | |||
| <section anchor='RPLvs6lo'><name>6LoWPAN (and RPL)</name> | <section anchor="RPLvs6lo"><name>6LoWPAN (and RPL)</name> | |||
| <t>A RPL DODAG is formed of a Root, a collection of routers, and leaves that | <t>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 they did not ge | are hosts. Hosts are nodes that do not forward packets that they did not gen | |||
| nerate. | erate. | |||
| RPL-aware leaves will participate to RPL to advertise their own | RPL-aware leaves will participate in RPL to advertise their own | |||
| addresses, whereas RPL-unaware leaves depend on a connected RPL router to do | addresses, whereas RPL-unaware leaves depend on a connected RPL router to do | |||
| so. RPL interacts with 6LoWPAN ND at multiple levels, in particular at the | so. RPL interacts with 6LoWPAN ND at multiple levels, in particular at the | |||
| Root and in the RPL-unaware leaves. | Root and in the RPL-unaware leaves. | |||
| </t> | </t> | |||
| <section anchor='leaf'><name>RPL-Unaware Leaves and 6LoWPAN ND</name> | <section anchor="leaf"><name>RPL-Unaware Leaves and 6LoWPAN ND</name> | |||
| <t>RPL needs a set of information to advertise | <t>RPL needs a set of information to advertise | |||
| a leaf node through a Destination Advertisement Object (DAO) message and esta blish reachability. | a leaf node through a Destination Advertisement Object (DAO) message and esta blish reachability. | |||
| </t> | </t> | |||
| <t> | <t><xref target="RFC9010">"Routing for RPL Leaves"</xref> | |||
| <xref target='I-D.ietf-roll-unaware-leaves'>"Routing for RPL Leaves"</xref> | ||||
| details the basic interaction of 6LoWPAN ND and RPL and enables a plain 6LN | details the basic interaction of 6LoWPAN ND and RPL and enables a plain 6LN | |||
| that supports <xref target='RFC8505'/> to obtain return | that supports <xref target="RFC8505"/> to obtain return | |||
| connectivity via the RPL network as an RPL-unaware leaf. | connectivity via the RPL network as a RPL-unaware leaf. | |||
| The leaf indicates that it requires reachability services for the | The leaf indicates that it requires reachability services for the | |||
| Registered Address from a Routing Registrar by setting a 'R' flag in the | Registered Address from a Routing Registrar by setting an 'R' flag in the | |||
| Extended Address Registration Option <xref target='RFC8505'/>, and it | Extended Address Registration Option <xref target="RFC8505"/>, and it | |||
| provides a TID that maps to a sequence number in section 7 of RPL <xref targe | provides a TID that maps to the "Path Sequence" defined in <xref target="RFC6 | |||
| t='RFC6550'/>. | 550" section="6.7.8" sectionFormat="of" format="default"/>, and its operation is | |||
| defined in <xref target="RFC6550" section="7.2" sectionFormat="of" format="defa | ||||
| ult"/>. | ||||
| </t> | </t> | |||
| <t> | <t><xref target="RFC9010"/> also enables the leaf to signal | |||
| <xref target='I-D.ietf-roll-unaware-leaves'/> also enables the leaf to signal | with the RPLInstanceID that it wants to participate by using the | |||
| the RPL InstanceID that it wants to participate to using the | Opaque field of the EARO. On the backbone, the RPLInstanceID is | |||
| Opaque field of the EARO. On the backbone, the InstanceID is | ||||
| expected to be mapped to an overlay that matches the RPL Instance, e.g., | expected to be mapped to an overlay that matches the RPL Instance, e.g., | |||
| a Virtual LAN (VLAN) or a virtual routing and forwarding (VRF) instance. | a Virtual LAN (VLAN) or a virtual routing and forwarding (VRF) instance. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Though at the time of this writing the above specification enables a model | Though, at the time of this writing, the above specification enables a model | |||
| where the separation is possible, this architecture recommends to | where the separation is possible, this architecture recommends | |||
| collocate the functions of 6LBR and RPL Root. | co-locating the functions of 6LBR and RPL Root. | |||
| </t> | </t> | |||
| </section> <!-- RPL-Unaware Leaves and 6LoWPAN ND --> | </section> | |||
| <section anchor='rpllbr'><name>6LBR and RPL Root</name> | <section anchor="rpllbr"><name>6LBR and RPL Root</name> | |||
| <t> | <t> | |||
| With the 6LowPAN ND <xref target='RFC6775'/>, information on the 6LBR is | With the 6LoWPAN ND <xref target="RFC6775"/>, information on the 6LBR is | |||
| disseminated via an Authoritative Border Router Option (ABRO) in RA messages . | disseminated via an Authoritative Border Router Option (ABRO) in RA messages . | |||
| <xref target='RFC8505'/> extends <xref target='RFC6775'/> to enable a | <xref target="RFC8505"/> extends <xref target="RFC6775"/> to enable a | |||
| registration for routing and proxy ND. | registration for routing and proxy ND. | |||
| The capability to support <xref target='RFC8505'/> | The capability to support <xref target="RFC8505"/> | |||
| is indicated in the 6LoWPAN Capability Indication Option (6CIO). | is indicated in the 6LoWPAN Capability Indication Option (6CIO). | |||
| The discovery and liveliness of the RPL Root are obtained through RPL | The discovery and liveliness of the RPL Root are obtained through RPL | |||
| <xref target='RFC6550'/> itself. | <xref target="RFC6550"/> itself. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When 6LoWPAN ND is coupled with RPL, the 6LBR and RPL Root functionalities | When 6LoWPAN ND is coupled with RPL, the 6LBR and RPL Root functionalities | |||
| are co-located in order that the address of the 6LBR be indicated by RPL | are co-located in order that the address of the 6LBR is indicated by RPL | |||
| DIO messages and to associate the unique ID from the EDAR/EDAC | DODAG Information Object (DIO) messages and to associate the ROVR from | |||
| <xref target='RFC8505'/> exchange with the state that is maintained by RPL. | the Extended Duplicate Address Request/Confirmation (EDAR/EDAC) | |||
| exchange <xref target="RFC8505"/> with the state that is maintained by RPL. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Section 7 of <xref target='I-D.ietf-roll-unaware-leaves'/> specifies how | <xref target="RFC9010" section="7" sectionFormat="of" format="default"/> spec ifies how | |||
| the DAO messages are used to reconfirm the registration, thus eliminating a | the DAO messages are used to reconfirm the registration, thus eliminating a | |||
| duplication of functionality between DAO and EDAR/EDAC messages, as | duplication of functionality between DAO and EDAR/EDAC messages, as | |||
| illustrated in <xref target='figReg2'/>. | illustrated in <xref target="figReg2"/>. | |||
| <xref target='I-D.ietf-roll-unaware-leaves'/> also provides the protocol | <xref target="RFC9010"/> also provides the protocol | |||
| elements that are needed when the 6LBR and RPL Root functionalities are not | elements that are needed when the 6LBR and RPL Root functionalities are not | |||
| co-located. | co-located. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 | it is logically separated from the Backbone Router (6BBR) that | |||
| is used to connect the 6TiSCH LLN to the backbone. This way, | is used to connect the 6TiSCH LLN to the backbone. This way, | |||
| the Root has all information from 6LoWPAN ND and RPL about the LLN | the Root has all information from 6LoWPAN ND and RPL about the LLN | |||
| devices attached to it. | devices attached to it. | |||
| </t><t> | </t><t> | |||
| 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, | (proxy-)registers the 6TiSCH nodes on their behalf to the 6BBR, | |||
| for whatever operation the 6BBR performs on the backbone, such | for whatever operation the 6BBR performs on the backbone, such | |||
| as ND proxy, or redistribution in a routing protocol. | as ND proxy or redistribution in a routing protocol. | |||
| This relies on an extension of the 6LoWPAN ND registration described in | This relies on an extension of the 6LoWPAN ND registration described in | |||
| <xref target='I-D.ietf-6lo-backbone-router'/>. | <xref target="RFC8929"/>. | |||
| </t><t> | </t><t> | |||
| This model supports the movement of a 6TiSCH device across the Multi-Link | This model supports the movement of a 6TiSCH device across the multi-link | |||
| Subnet, and allows the proxy registration of 6TiSCH nodes deep into the | subnet and allows the proxy registration of 6TiSCH nodes deep into the | |||
| 6TiSCH LLN by the 6LBR / RPL Root. | 6TiSCH LLN by the 6LBR / RPL Root. | |||
| This is why in <xref target='RFC8505'/> the Registered Address is signaled | This is why in <xref target="RFC8505"/> the Registered Address is signaled | |||
| in the Target Address field of the NS message as opposed to the IPv6 Source | in the Target Address field of the Neighbor Solicitation (NS) message as oppo | |||
| sed to the IPv6 Source | ||||
| Address, which, in the case of a proxy registration, is that of the 6LBR / | Address, which, in the case of a proxy registration, is that of the 6LBR / | |||
| RPL Root itself. | RPL Root itself. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <!-- | ||||
| <section anchor='gone' title="registration Failures Due to Movement"> | ||||
| <t>Registration to the 6LBR through DAR/DAC messages <xref target="RFC6775"/> | ||||
| may percolate slowly through an LLN mesh, and it might happen that in | ||||
| the meantime, the 6LoWPAN node moves and registers somewhere else. Both RPL | ||||
| and 6LoWPAN ND lack the capability to indicate that the same node is | ||||
| registered elsewhere, so as to invalidate states down the deprecated path. | ||||
| </t><t> In its current expression and functionality, | ||||
| 6LoWPAN ND considers that the registration is used for the purpose of DAD | ||||
| only as opposed to that of achieving reachability, and as long as the same | ||||
| node registers the IPv6 address, the protocol is functional. to | ||||
| act as a RPL leaf registration protocol and achieve reachability, the | ||||
| device must use the same TID for all its concurrent registrations, and | ||||
| registrations with a past TID should be declined. The state for an obsolete | ||||
| registration in the 6LR, as well as the RPL routers on the way, should be | ||||
| invalidated. This can only be achieved with the addition of a new Status in | ||||
| the DAC message, and a new error/clean-up flow in RPL. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor='prox' title="Proxy registration"> | ||||
| <t>The 6BBR provides the capability to defend an address that is owned by | ||||
| a 6LoWPAN Node, and attract packets to that address, whether it is done by | ||||
| proxying ND over a Multi-Link Subnet, redistributing the address in a routing | ||||
| protocol or advertising it through an alternate proxy registration such as | ||||
| <xref target="RFC6830">the Locator/ID Separation Protocol</xref> (LISP) or | ||||
| <xref target="RFC6275">Mobility Support in IPv6</xref> (MIPv6). In a LLN, | ||||
| it makes sense to piggyback the request to proxy/defend an address with its | ||||
| registration. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor='source' title="Target Registration"> | ||||
| <t> | ||||
| In their current incarnations, both 6LoWPAN ND and Efficient ND expect | ||||
| that the address being registered is the source of the NS(ARO) message and | ||||
| thus impose that a Source Link-Layer Address (SLLA) option be present in the | ||||
| message. | ||||
| In a mesh scenario where the 6LBR is physically separated from the 6LoWPAN | ||||
| Node, the 6LBR does not own the address being registered. This is why | ||||
| <xref target="I-D.ietf-6lo-backbone-router"/> | ||||
| registers the Target of the NS message as opposed to the Source Address. | ||||
| From another perspective, it may happen, in the use case of a Star topology, | ||||
| that the 6LR, 6LBR and 6BBR are effectively collapsed and should support | ||||
| 6LoWPAN ND clients. The convergence of efficient ND and 6LoWPAN ND into a | ||||
| single protocol is thus highly desirable. | ||||
| </t><t> | ||||
| In any case, as long as the DAD process is not complete for the address | ||||
| used as source of the packet, it is against the current practice to advertise | ||||
| the SLLA, since this may corrupt the ND cache of the destination node, as | ||||
| discussed in the <xref target="RFC4429">Optimistic DAD specification</xref> | ||||
| with regards to the TENTATIVE state. | ||||
| </t><t> | ||||
| This may look like a chicken and an egg problem, but in fact 6LoWPAN ND | ||||
| acknowledges that the Link-Local Address that is based on an EUI-64 address | ||||
| of a LLN node may be autoconfigured without the need for DAD. | ||||
| It results that a node could use that Address as source, with an SLLA | ||||
| option in the message if required, to register any other addresses, either | ||||
| Global or Unique-Local Addresses, which would be indicated in the Target. | ||||
| </t> | ||||
| <t> | ||||
| The suggested change is to register the target of the NS message, and use | ||||
| Target Link-Layer Address (TLLA) in the NS as opposed to the SLLA to | ||||
| install a Neighbor Cache Entry. This would apply to both Efficient ND | ||||
| and 6LoWPAN ND in a very same manner, with the caveat that depending on the | ||||
| nature of the link between the 6LBR and the 6BBR, the 6LBR may resort to | ||||
| classical ND or DHCPv6 to obtain the address that it uses to source the NS | ||||
| registration messages, whether for itself or on behalf of LLN nodes. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor='Rroot' title="RPL Root vs. 6LBR"> | ||||
| <t>6LoWPAN ND is unclear on how the 6LBR is discovered, and how the liveliness | ||||
| of the 6LBR is asserted over time. On the other hand, the discovery | ||||
| and liveliness of the RPL Root are obtained through the RPL protocol. | ||||
| </t><t> | ||||
| When 6LoWPAN ND is coupled with RPL, the 6LBR and RPL Root 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 the DAR/DAC exchange with | ||||
| the state that is maintained by RPL. The DAR/DAC exchange becomes a | ||||
| preamble to the DAO messages that are used from then on to reconfirm the | ||||
| registration, thus eliminating a duplication of functionality between DAO | ||||
| and DAR messages. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section anchor='Sec' title="Securing the Registration"> | <section anchor="join"><name>Network Access and Addressing</name> | |||
| <t> | <section anchor="rflo"><name>Join Process</name> | |||
| A typical attack against IPv6 ND is address spoofing, whereby a rogue node | ||||
| claims the IPv6 Address of another node in and hijacks its traffic. The | ||||
| threats against IPv6 ND as described in | ||||
| <xref target="RFC3971">SEcure Neighbor Discovery (SEND)</xref> | ||||
| are applicable to 6LoPWAN ND as well, but the solution can not work as the | ||||
| route over network does not permit direct peer to peer communication. | ||||
| </t><t> | ||||
| Additionally SEND requires considerably enlarged ND messages to carry | ||||
| cryptographic material, and requires that each protected address is generated | ||||
| cryptographically, which implies the computation of a different key for | ||||
| each Cryptographically Generated Address (CGA). SEND as defined in | ||||
| <xref target="RFC3971"/> is thus largely unsuitable for application in a LLN. | ||||
| </t><t> | ||||
| With 6LoWPAN ND, as illustrated in <xref target='figReg'/>, it is | ||||
| possible to leverage the registration state in the 6LBR, which may store | ||||
| additional security information for later proof of ownership. If this | ||||
| information proves the ownership independently of the address itself, | ||||
| then a single proof may be used to protect multiple addresses. | ||||
| </t><t> | ||||
| Once an Address is registered, | ||||
| the 6LBR maintains a state for that Address and is in position to bind | ||||
| securely the first registration with the Node that placed it, whether the | ||||
| Address is CGA or not. It should thus be possible to protect the ownership of | ||||
| all the addresses of a 6LoWPAN Node with a single key, and there should not | ||||
| be a need to carry the cryptographic material more than once to the 6LBR. | ||||
| </t><t> | ||||
| The energy constraint is usually a foremost factor, and attention should be | ||||
| paid to minimize the burden on the CPU. Hardware-assisted support of variants | ||||
| of the <xref target="RFC3610">Counter with CBC-MAC</xref> (CCM) authenticated | ||||
| encryption block cipher mode such as CCM* are common in LowPower ship-set | ||||
| implementations, and 6LoWPAN ND security mechanism should be capable to | ||||
| reuse them when applicable. | ||||
| </t><t> | ||||
| Finally, the code footprint in the device being also an issue, the capability | ||||
| to reuse not only hardware-assist mechanisms but also software across layers | ||||
| has to be considered. For instance, if code has to be present for upper-layer | ||||
| operations, e.g <xref target="RFC6655">AES-CCM Cipher Suites for Transport | ||||
| Layer Security (TLS)</xref>, then the capability to reuse that code should be | ||||
| considered. | ||||
| </t> | ||||
| --> | ||||
| </section> | ||||
| <section anchor='join'><name>Network Access and Addressing</name> | ||||
| <section anchor='rflo'><name>Join Process</name> | ||||
| <t> | <t> | |||
| A new device, called the pledge, undergoes the join protocol to become a node | A new device, called the pledge, undergoes the join protocol to become a node | |||
| in a 6TiSCH network. This usually occurs only once when the device is | in a 6TiSCH network. This usually occurs only once when the device is | |||
| first powered on. The pledge communicates with the Join Registrar/Coordi nator | first powered on. The pledge communicates with the Join Registrar/Coordi nator | |||
| (JRC) of the network through a Join Proxy (JP), a radio neighbor of the p ledge. | (JRC) of the network through a Join Proxy (JP), a radio neighbor of the p ledge. | |||
| </t><t> | </t><t> | |||
| The JP is discovered though MAC layer beacons. When multiple JPs from pos | The JP is discovered though MAC-layer beacons. When multiple JPs from pos | |||
| sibly multiple networks are visible, trial and error till an acceptable position | sibly | |||
| in the right network is obtained becomes ineffficient. | multiple networks are visible, using trial and error until an acceptable | |||
| <xref target='I-D.ietf-6tisch-enrollment-enhanced-beacon'/> adds a new su | position | |||
| btype in the Information Element that was delegated to the IETF <xref target='RF | in the right network is obtained becomes inefficient. | |||
| C8137'/> and provides visibility on the network that can be joined and the willi | <xref target="RFC9032"/> adds a new subtype in the Information Element th | |||
| ngness by the JP and the Root to be used by the pledge. | at | |||
| was delegated to the IETF <xref target="RFC8137"/> and provides visibilit | ||||
| y | ||||
| into the network that can be joined and the willingness of the JP and the | ||||
| Root to be used by the pledge. | ||||
| </t><t> | </t><t> | |||
| The join protocol provides the following functionality: | The join protocol provides the following functionality: | |||
| </t><ul spacing='normal'> | </t> | |||
| <ul spacing="normal"> | ||||
| <li> Mutual authentication</li> | <li> Mutual authentication</li> | |||
| <li> Authorization</li> | <li> Authorization</li> | |||
| <li> Parameter distribution to the pledge over a secure channel</li> | <li> Parameter distribution to the pledge over a secure channel</li> | |||
| </ul><t> | </ul> | |||
| </t> | ||||
| <t> | <t> | |||
| Minimal Security Framework for 6TiSCH <xref target='I-D.ietf-6tisch-mini mal-security'/> | The Minimal Security Framework for 6TiSCH <xref target="RFC9031"/> | |||
| defines the minimal mechanisms required for this join process to occur i n a secure | defines the minimal mechanisms required for this join process to occur i n a secure | |||
| manner. The specification defines the Constrained Join Protocol (CoJP) t hat is used | manner. The specification defines the Constrained Join Protocol (CoJP), which is used | |||
| to distribute the parameters to the pledge over a secure session establi shed through | to distribute the parameters to the pledge over a secure session establi shed through | |||
| OSCORE <xref target='I-D.ietf-core-object-security'/>, and a secure conf iguration of the network | OSCORE <xref target="RFC8613"/> and which describes the secure configura tion of the network | |||
| stack. In the minimal setting with pre-shared keys (PSKs), CoJP allows t he pledge to | stack. In the minimal setting with pre-shared keys (PSKs), CoJP allows t he pledge to | |||
| join after a single round-trip exchange with the JRC. The provisioning o f the PSK to | join after a single round-trip exchange with the JRC. The provisioning o f the PSK to | |||
| the pledge and the JRC needs to be done out of band, through a 'one-touc h' | the pledge and the JRC needs to be done out of band, through a 'one-touc h' | |||
| bootstrapping process, which effectively enrolls the pledge into the dom ain managed by | bootstrapping process, which effectively enrolls the pledge into the dom ain managed by | |||
| the JRC. | the JRC. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In certain use cases, the 'one touch' bootstrapping is not feasible due | In certain use cases, the 'one-touch' bootstrapping is not feasible due | |||
| to the | to the | |||
| operational constraints and the enrollment of the pledge into the domain | operational constraints, and the enrollment of the pledge into the domai | |||
| needs to occur | n needs to occur | |||
| in-band. This is handled through a 'zero-touch' extension of the Minimal Security Framework | in-band. This is handled through a 'zero-touch' extension of the Minimal Security Framework | |||
| for 6TiSCH. Zero touch <xref target='I-D.ietf-6tisch-dtsecurity-zerotouc | for 6TiSCH. The zero-touch extension <xref target="I-D.ietf-6tisch-dtsec | |||
| h-join'/> extension leverages | urity-zerotouch-join"/> leverages | |||
| the 'Bootstrapping Remote Secure Key Infrastructures (BRSKI)' [<xref tar | the "<xref target="RFC8995" format="title"/>" <xref target="RFC8995"/> | |||
| get='I-D.ietf-anima-bootstrapping-keyinfra'/> | ||||
| work to establish a shared secret between a pledge and the JRC without n ecessarily having | work to establish a shared secret between a pledge and the JRC without n ecessarily having | |||
| them belong to a common (security) domain at join time. This happens thr ough inter-domain | them belong to a common (security) domain at join time. This happens thr ough inter-domain | |||
| communication occurring between the JRC of the network and the domain of the pledge, | communication occurring between the JRC of the network and the domain of the pledge, | |||
| represented by a fourth entity, Manufacturer Authorized Signing Authorit y (MASA). Once | represented by a fourth entity, Manufacturer Authorized Signing Authorit y (MASA). Once | |||
| the zero-touch exchange completes, the CoJP exchange defined in <xref ta rget='I-D.ietf-6tisch-minimal-security'/> | the zero-touch exchange completes, the CoJP exchange defined in <xref ta rget="RFC9031"/> | |||
| is carried over the secure session established between the pledge and th e JRC. | is carried over the secure session established between the pledge and th e JRC. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='figJoin'/> depicts the join process and where a Link-Local | <xref target="figJoin"/> depicts the join process and where a Link-Local | |||
| Address (LLA) is used, versus a Global Unicast Address (GUA). | Address (LLA) is used, versus a Global Unicast Address (GUA). | |||
| </t> | </t> | |||
| <figure anchor='figJoin' suppress-title='false'><name>Join process in a Multi-Li | <figure anchor="figJoin" suppress-title="false"> | |||
| nk Subnet. Parentheses () denote optional exchanges.</name> | <name>Join Process in a Multi-Link Subnet. Parentheses () denote optional exchan | |||
| ges.</name> | ||||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| 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 line 1452 ¶ | skipping to change at line 1255 ¶ | |||
| | |<-----------------------------| | | | | |<-----------------------------| | | | |||
| |CoJP Join Resp | | | | | | |CoJP Join Resp | | | | | | |||
| | using LLA | | | | | | | using LLA | | | | | | |||
| |<--------------| | | | / | |<--------------| | | | / | |||
| | | | | | | | | | | | | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section anchor='rreg'><name>Registration</name> | <section anchor="rreg"><name>Registration</name> | |||
| <t> | <t> | |||
| 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 routers | a network node, it obtains the network prefix from neighboring routers | |||
| and registers its IPv6 addresses. | and registers its IPv6 addresses. | |||
| As detailed in <xref target='RPLvs6lo'/>, the combined 6LoWPAN ND 6LBR | As detailed in <xref target="RPLvs6lo"/>, the combined 6LoWPAN ND 6LBR | |||
| and Root of the RPL network learn information such as the device Unique | and Root of the RPL network learn information such as an identifier (de | |||
| ID (from 6LoWPAN ND) and the updated Sequence Number (from RPL), and | vice EUI-64 <xref target="RFC6775" format="default"/> or a ROVR <xref target="RF | |||
| perform 6LoWPAN ND proxy registration to the 6BBR of behalf of the LLN | C8505" format="default"/> | |||
| (from 6LoWPAN ND)) and the updated Sequence Number (from RPL), and | ||||
| perform 6LoWPAN ND proxy registration to the 6BBR on behalf of the LLN | ||||
| nodes. | nodes. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='figReg'/> illustrates the initial IPv6 signaling that | <xref target="figReg"/> illustrates the initial IPv6 signaling that | |||
| enables a 6LN to form a global address and register it to a 6LBR | enables a 6LN to form a global address and register it to a 6LBR | |||
| using 6LoWPAN ND <xref target='RFC8505'/>, is then carried | using 6LoWPAN ND <xref target="RFC8505"/>. It is then carried | |||
| over RPL to the RPL Root, and then to the 6BBR. This flow happens | over RPL to the RPL Root and then to the 6BBR. This flow happens | |||
| just once when the address is created and first registered. | just once when the address is created and first registered. | |||
| </t> | </t> | |||
| <figure anchor='figReg' suppress-title='false'><name>Initial Registration Flow o ver Multi-Link Subnet</name> | <figure anchor="figReg" suppress-title="false"><name>Initial Registration Flow o ver Multi-Link Subnet</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| 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 line 1510 ¶ | skipping to change at line 1311 ¶ | |||
| | | |<--------------| | | | |<--------------| | |||
| | | Extended DAC | | | | | Extended DAC | | | |||
| | |<--------------| | | | |<--------------| | | |||
| | NA(EARO) | | | | | NA(EARO) | | | | |||
| |<--------------| | | | |<--------------| | | | |||
| | | | | | | | | | | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| <xref target='figReg2'/> illustrates the repeating IPv6 signaling that | <xref target="figReg2"/> illustrates the repeating IPv6 signaling that | |||
| enables a 6LN to keep a global address alive and registered to its 6LBR | enables a 6LN to keep a global address alive and registered with its 6L | |||
| BR | ||||
| using 6LoWPAN ND to the 6LR, RPL to the RPL Root, and then 6LoWPAN ND | using 6LoWPAN ND to the 6LR, RPL to the RPL Root, and then 6LoWPAN ND | |||
| again | 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. | |||
| </t> | </t> | |||
| <figure anchor='figReg2' suppress-title='false'><name>Next Registration Flow ove r Multi-Link Subnet</name> | <figure anchor="figReg2" suppress-title="false"><name>Next Registration Flow ove r Multi-Link Subnet</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| 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 | |||
| | | | | | | | | |||
| | | | | | | | | | | |||
| | NS(EARO) | | | | | NS(EARO) | | | | |||
| |-------------->| | | | |-------------->| | | | |||
| | NA(EARO) | | | | | NA(EARO) | | | | |||
| skipping to change at line 1541 ¶ | skipping to change at line 1341 ¶ | |||
| | | DAO | | | | | DAO | | | |||
| | |-------------->| | | | |-------------->| | | |||
| | | DAO-ACK | | | | | DAO-ACK | | | |||
| | |<--------------| | | | |<--------------| | | |||
| | | | NS(EARO) | | | | | NS(EARO) | | |||
| | | |-------------->| | | | |-------------->| | |||
| | | | NA(EARO) | | | | | NA(EARO) | | |||
| | | |<--------------| | | | |<--------------| | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>As the network builds up, a node should start as a | <t>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 | leaf to join the RPL network and may later turn into both a RPL-capable | |||
| router and a 6LR, so as to accept leaf nodes | router and a 6LR, so as to accept leaf nodes recursively joining the network. | |||
| to recursively join the network. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> <!--"Network Access and Addressing" --> | </section> | |||
| <section anchor='s6Pprot'><name>TSCH and 6top</name> | <section anchor="s6Pprot"><name>TSCH and 6top</name> | |||
| <section><name>6top</name> | <section><name>6top</name> | |||
| <t> | <t> | |||
| 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 | goal, the spectrum must be allocated in a way that allows for | |||
| spatial reuse between zones that will not interfere with one | spatial reuse between zones that will not interfere with one | |||
| another. | another. | |||
| In a large and spatially distributed network, a 6TiSCH node is | In a large and spatially distributed network, a 6TiSCH node is | |||
| often in a good position to determine usage of the spectrum in its | often in a good position to determine usage of the spectrum in its | |||
| vicinity. | vicinity. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| With 6TiSCH, the abstraction of an IPv6 link is implemented as a | 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 | pair of bundles of cells, one in each direction. IP links are only | |||
| enabled between RPL parents and children. The 6TiSCH | enabled between RPL parents and children. The 6TiSCH | |||
| operation is optimal when the size of a bundle is such that both | operation is optimal when the size of a bundle minimizes both | |||
| the energy wasted in idle listening and the packet drops due to | the energy wasted in idle listening and the packet drops due to | |||
| congestion loss are minimized, while packets are forwarded within | congestion loss, while packets are forwarded within | |||
| an acceptable latency. | an acceptable latency. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 enoug | remain optimal if RPL parents can adjust, dynamically and with enoug | |||
| h reactivity to match the variations of best-effort traffic, | h | |||
| the amount of bandwidth that is used to communicate between themselv | reactivity to match the variations of best-effort traffic, | |||
| es and their children, in both directions. | the amount of bandwidth that is used to communicate between themselv | |||
| es | ||||
| and their children, in both directions. | ||||
| In turn, the agility to fulfill the needs for additional cells | In turn, the agility to fulfill the needs for additional cells | |||
| improves when the number of interactions with other devices and | improves when the number of interactions with other devices and | |||
| the protocol latencies are minimized. | the protocol latencies are minimized. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 | |||
| <xref target='RFC8480'/>, is one of the services provided by 6top. | <xref target="RFC8480"/>, is one of the services provided by 6top. | |||
| In particular, the 6top services are available over a management | In particular, the 6top services are available over a management | |||
| API that enables an external management entity to schedule cells | API that enables an external management entity to schedule cells | |||
| and slotframes, and allows the addition of complementary | and slotframes, and allows the addition of complementary | |||
| functionality, for instance a Scheduling Function | functionality, for instance, a Scheduling Function | |||
| that manages a dynamic schedule management based on | that manages a dynamic schedule based on | |||
| observed resource usage as discussed in <xref target='dynsched'/>. | observed resource usage as discussed in <xref target="dynsched"/>. | |||
| For this purpose, the 6TiSCH architecture differentiates "soft" | For this purpose, the 6TiSCH architecture differentiates "soft" | |||
| cells and "hard" cells. | cells and "hard" cells. | |||
| </t> | </t> | |||
| <section><name>Hard Cells</name> | <section><name>Hard Cells</name> | |||
| <t> | <t> | |||
| "Hard" cells are cells that | "Hard" cells are cells that | |||
| are owned and managed by a separate scheduling entity (e.g., a PCE) | are owned and managed by a separate scheduling entity (e.g., a PCE) | |||
| that specifies the slotOffset/channelOffset of the cells to be | that specifies the slotOffset/channelOffset of the cells to be | |||
| added/moved/deleted, in which case 6top can only act as instructed, | added/moved/deleted, in which case 6top can only act as instructed | |||
| and may not move hard cells in the TSCH schedule on its own. | and may not move hard cells in the TSCH schedule on its own. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Soft Cells</name> | <section><name>Soft Cells</name> | |||
| <t> | <t> | |||
| 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 | |||
| adapt | ||||
| to the traffic needs, or move one when it performs poorly. | to the traffic needs, or move one when it performs poorly. | |||
| To reserve a soft cell, the higher layer does not indicate the exact | To reserve a soft cell, the higher layer does not indicate the exact | |||
| slotOffset/channelOffset of the cell to add, but rather the resultin g | slotOffset/channelOffset of the cell to add, but rather the resultin g | |||
| 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 thi s | a cell reallocation, the two neighbor devices communicating over thi s | |||
| cell negotiate its new position in the TSCH schedule. | cell negotiate its new position in the TSCH schedule. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor='missf'><name>Scheduling Functions and the 6top protocol</nam e> | <section anchor="missf"><name>Scheduling Functions and the 6top Protocol</nam e> | |||
| <t>In the case of soft cells, the cell management entity that controls the | <t>In the case of soft cells, the cell management entity that controls the | |||
| dynamic attribution of cells to adapt to the dynamics of variable rate flows | dynamic attribution of cells to adapt to the dynamics of variable rate flows | |||
| is called a Scheduling Function (SF). | is called a Scheduling Function (SF). | |||
| </t> | </t> | |||
| <t> | <t> | |||
| There may be multiple SFs with more or less aggressive reaction to the | There may be multiple SFs that react more or less aggressively to the | |||
| dynamics of the network. | dynamics of the network. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| An SF may be seen as divided between an upper bandwidth adaptation logic | 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 obtain and | that is unaware of the particular technology used to obtain and | |||
| release bandwidth, and an underlying service that maps those needs in the | release bandwidth and an underlying service that maps those needs in the | |||
| actual technology, which means mapping the bandwidth onto cells in the case | actual technology. In the case | |||
| of TSCH using the 6top protocol as illustrated in <xref target='fig6P'/>. | of TSCH using the 6top Protocol as illustrated in <xref target="fig6P"/>, | |||
| this means mapping the bandwidth onto cells. | ||||
| </t> | </t> | |||
| <figure anchor='fig6P' suppress-title='false'><name>SF/6P stack in 6top </name> | <figure anchor="fig6P" suppress-title="false"><name>SF/6P Stack in 6top </name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| +------------------------+ +------------------------+ | +------------------------+ +------------------------+ | |||
| | 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 | |||
| skipping to change at line 1657 ¶ | skipping to change at line 1457 ¶ | |||
| +------------------------+ +------------------------+ | +------------------------+ +------------------------+ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| The SF relies on 6top services that implement the | The SF relies on 6top services that implement the | |||
| <xref target='RFC8480'> 6top Protocol (6P) </xref> | <xref target="RFC8480"> 6top Protocol (6P) </xref> | |||
| to negotiate the precise cells that will be allocated or freed based on the | to negotiate the precise cells that will be allocated or freed based on the | |||
| schedule of the peer. It may be for instance that a peer wants to use a | schedule of the peer. For instance, it may be that a peer wants to use a | |||
| particular time slot that is free in its schedule, but that timeslot is | particular timeslot that is free in its schedule, but that timeslot is | |||
| already in use by the other peer for a communication with a third party on a | already in use by the other peer to communicate with a third party on a | |||
| different cell. 6P enables the peers to find an agreement in a | different cell. 6P enables the peers to find an agreement in a | |||
| transactional manner that ensures the final consistency of the nodes state. | transactional manner that ensures the final consistency of the nodes' state. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='I-D.ietf-6tisch-msf'>MSF</xref> is one of the possible | <xref target="RFC9033">MSF</xref> is one of the possible | |||
| scheduling functions. MSF uses the rendez-vous slot from | Scheduling Functions. MSF uses the rendezvous slot from | |||
| <xref target='RFC8180'/> for network discovery, neighbor discovery, and any | <xref target="RFC8180"/> for network discovery, neighbor discovery, and any | |||
| other broadcast. | other broadcast. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For basic unicast communication with any neighbor, each node uses a receive | For basic unicast communication with any neighbor, each node uses a receive | |||
| cell at a well-known slotOffset/channelOffset, derived from a hash of their | cell at a well-known slotOffset/channelOffset, which is derived from a hash of their | |||
| own MAC address. | own MAC address. | |||
| Nodes can reach any neighbor by installing a transmit (shared) cell with | Nodes can reach any neighbor by installing a transmit (shared) cell with | |||
| slotOffset/channelOffset derived from the neighbor's MAC address. | slotOffset/channelOffset derived from the neighbor's MAC address. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For child-parent links, MSF continuously monitors the load to/from parents | For child-parent links, MSF continuously monitors the load between parents | |||
| and children. It then uses 6P to install/remove unicast cells whenever the | and children. It then uses 6P to install or remove unicast cells whenever th | |||
| current schedule appears to be under-/over- provisioned. | e | |||
| current schedule appears to be under-provisioned or over-provisioned. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>6top and RPL Objective Function operations</name> | <section><name>6top and RPL Objective Function Operations</name> | |||
| <!-- 8.1.1. Support to RPL Neighbor Discovery and Parent Selection --> | ||||
| <t> | <t> | |||
| An implementation of a <xref target='RFC6550'>RPL</xref> Objective F | An implementation of a <xref target="RFC6550">RPL</xref> Objective F | |||
| unction | unction | |||
| (OF), such as the <xref target='RFC6552'> RPL Objective Function Zer | (OF), such as the <xref target="RFC6552">RPL Objective Function Zero | |||
| o (OF0) | (OF0) | |||
| </xref> that is used in the <xref target='RFC8180'> Minimal | </xref> that is used in the <xref target="RFC8180">Minimal | |||
| 6TiSCH Configuration </xref> to support RPL over a static schedule, | 6TiSCH Configuration</xref> to support RPL over a static schedule, m | |||
| may | ay | |||
| leverage, for its internal computation, the information maintained b | leverage for its internal computation the information maintained by | |||
| y 6top. | 6top. | |||
| </t> | </t> | |||
| <t>An OF may require metrics about reachability, such as the Expected | <t>An OF may require metrics about reachability, such as the Expected | |||
| Transmission Count (ETX) metric <xref target='RFC6551'/>. | Transmission Count (ETX) metric <xref target="RFC6551"/>. | |||
| 6top creates and maintains an abstract neighbor table, | 6top creates and maintains an abstract neighbor table, | |||
| and this state may be leveraged to feed an OF and/or store OF inform ation | and this state may be leveraged to feed an OF and/or store OF inform ation | |||
| as well. A neighbor table entry may contain a set of statistics with | as well. A neighbor table entry may contain a set of statistics with | |||
| respect to that specific neighbor. | respect to that specific neighbor. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The neighbor information may include the time when the last | The neighbor information may include the time when the last | |||
| packet has been received from that neighbor, a set of cell quality | packet has been received from that neighbor, a set of cell quality | |||
| metrics, e.g., received signal strength indication (RSSI) or link | metrics, e.g., received signal strength indication (RSSI) or link | |||
| quality indicator (LQI), the number of packets sent to the | quality indicator (LQI), the number of packets sent to the | |||
| neighbor or the number of packets received from it. This | neighbor, or the number of packets received from it. This | |||
| information can be made available through 6top management APIs | information can be made available through 6top management APIs | |||
| and used for instance to compute a Rank Increment that will | and used, for instance, to compute a Rank Increment that will | |||
| determine the selection of the preferred parent. | determine the selection of the preferred parent. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 6top provides statistics about the underlying layer so the OF can be tuned | 6top provides statistics about the underlying layer so the OF can be tuned | |||
| to the nature of the TSCH MAC layer. 6top also enables the RPL OF to | to the nature of the TSCH MAC layer. 6top also enables the RPL OF to | |||
| influence the MAC behavior, for instance by configuring the periodic | influence the MAC behavior, for instance, by configuring the periodi | |||
| ity of | city of | |||
| IEEE Std. 802.15.4 Extended Beacons (EBs). By augmenting the EB peri | IEEE Std 802.15.4 Extended Beacons (EBs). By augmenting the EB perio | |||
| odicity, it is | dicity, it is | |||
| possible to change the network dynamics so as to improve the support of | possible to change the network dynamics so as to improve the support of | |||
| devices that may change their point of attachment in the 6TiSCH netw ork. | devices that may change their point of attachment in the 6TiSCH netw ork. | |||
| </t> | </t> | |||
| <!-- PT: I took of the text about time source; the way we do it is a bi | ||||
| t reverse: | ||||
| we have an Instance that is used for time sourcing, and the preferred p | ||||
| arent | ||||
| becomes the time source. If we change preferred parent we use the new o | ||||
| ne as | ||||
| time source --> | ||||
| <t> | <t> | |||
| Some RPL control messages, such as the DODAG Information Object (DIO ) are | Some RPL control messages, such as the DODAG Information Object (DIO ), are | |||
| ICMPv6 messages that are broadcast to all neighbor nodes. | ICMPv6 messages that are broadcast to all neighbor nodes. | |||
| With 6TiSCH, the broadcast channel requirement is addressed by 6top | With 6TiSCH, the broadcast channel requirement is addressed by 6top | |||
| by configuring TSCH to provide a broadcast channel, | by configuring TSCH to provide a broadcast channel, | |||
| as opposed to, for instance, piggybacking the DIO messages in | as opposed to, for instance, piggybacking the DIO messages in | |||
| Layer-2 Enhanced Beacons (EBs), which would produce undue timer | Layer 2 Enhanced Beacons (EBs), which would produce undue timer | |||
| coupling among layers, packet size issues and could conflict with | coupling among layers and packet size issues, and could conflict wit | |||
| h | ||||
| the policy of production networks where EBs are mostly eliminated | the policy of production networks where EBs are mostly eliminated | |||
| to conserve energy. | to conserve energy. | |||
| </t> | </t> | |||
| <!--t> | ||||
| In the TSCH schedule, each cell has the IEEE Std. 802.15.4e LinkType | ||||
| attribute. | ||||
| Setting the LinkType to ADVERTISING indicates that the cell MAY be u | ||||
| sed to send an | ||||
| Enhanced Beacon. When a node forms its Enhanced Beacon, the cell, | ||||
| with LinkType=ADVERTISING, SHOULD be included in the FrameAndLinkIE, | ||||
| and its LinkOption field SHOULD be set to the combination of | ||||
| "Receive" and "Timekeeping". The receiver of the Enhanced Beacon MAY | ||||
| be listening at the cell to get the Enhanced Beacon ([IEEE Std. 8021 | ||||
| 54e]). | ||||
| 6top takes this way to establish broadcast channel, which not only | ||||
| allows TSCH to broadcast Enhanced Beacons, but also allows protocol | ||||
| exchanges by an upper layer such as RPL. | ||||
| </t> | ||||
| <t> | ||||
| To broadcast ICMPv6 control messages used by RPL such as DIO or DAO, | ||||
| 6top uses the payload of a Data frames. The message is inserted into | ||||
| the | ||||
| queue associated with the cells which LinkType is set to ADVERTISING | ||||
| . | ||||
| Then, taking advantage of the broadcast cell feature established wit | ||||
| h | ||||
| FrameAndLinkIE (as described above), the RPL control message can be | ||||
| received by neighbors, which enables the maintenance of RPL DODAGs. | ||||
| </t> | ||||
| <t> | ||||
| A LinkOption combining "Receive" and "Timekeeping" bits indicates to | ||||
| the receivers of the Enhanced Beacon that the cell MUST be used as a | ||||
| broadcast cell. The frequency of sending Enhanced Beacons or other | ||||
| broadcast messages by the upper layer is determined by the timers | ||||
| associated with the messages. For example, the transmission of | ||||
| Enhance Beacons is triggered by a timer in 6top; transmission of a | ||||
| DIO message is triggered by the trickle timer of RPL. | ||||
| </t--> | ||||
| </section> | </section> | |||
| <section anchor='sync'><name>Network Synchronization</name> | <section anchor="sync"><name>Network Synchronization</name> | |||
| <t> | <t> | |||
| Nodes in a TSCH network must be time synchronized. | Nodes in a TSCH network must be time synchronized. | |||
| A node keeps synchronized to its time source neighbor | A node keeps synchronized to its time source neighbor | |||
| through a combination of frame-based and acknowledgment-based synchr onization. | through a combination of frame-based and acknowledgment-based synchr onization. | |||
| To maximize battery life and network throughput, it is advisable tha t RPL ICMP discovery | To maximize battery life and network throughput, it is advisable tha t RPL ICMP discovery | |||
| and maintenance traffic (governed by the trickle timer) be somehow c | and maintenance traffic (governed by the Trickle timer) be somehow c | |||
| oordinated with the | oordinated with the | |||
| transmission of time synchronization packets (especially with enhanc | transmission of time synchronization packets (especially with Enhanc | |||
| ed beacons). | ed Beacons). | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This could be achieved through an interaction of the 6top sublayer a nd the RPL objective Function, | This could be achieved through an interaction of the 6top sublayer a nd the RPL Objective Function, | |||
| or could be controlled by a management entity. | or could be controlled by a management entity. | |||
| </t> | </t> | |||
| <!-- TW: Concept of TSGI developed in separate standards-Track draft? - -> | ||||
| <t> | <t> | |||
| Time distribution requires a loop-free structure. Nodes taken in a s ynchronization loop will rapidly | Time distribution requires a loop-free structure. Nodes caught in a synchronization loop will rapidly | |||
| desynchronize from the network and become isolated. 6TiSCH uses a RP L DAG with a dedicated global Instance for the purpose of time synchronization. | desynchronize from the network and become isolated. 6TiSCH uses a RP L DAG with a dedicated global Instance for the purpose of time synchronization. | |||
| That Instance is referred to as the Time Synchronization Global Inst ance (TSGI). | That Instance is referred to as the Time Synchronization Global Inst ance (TSGI). | |||
| The TSGI can be operated in either of the 3 modes that are detailed | The TSGI can be operated in either of the three modes that are detai | |||
| in section 3.1.3 of <xref target='RFC6550'>RPL</xref>, | led | |||
| "Instances, DODAGs, and DODAG Versions". | in Section <xref target="RFC6550" section="3.1.3" sectionFormat="bar | |||
| e" format="default"/> | ||||
| of <xref target="RFC6550">RPL</xref>, "Instances, DODAGs, and DODA | ||||
| G Versions". | ||||
| Multiple uncoordinated DODAGs with independent Roots may be used if all the Roots | Multiple uncoordinated DODAGs with independent Roots may be used if all the Roots | |||
| share a common time source such as the Global Positioning System (GP S). | share a common time source such as the Global Positioning System (GP S). | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In the absence | In the absence | |||
| of a common time source, the TSGI should form a single DODAG with a virtual Root. | of a common time source, the TSGI should form a single DODAG with a virtual Root. | |||
| A backbone network is then used to synchronize and coordinate RPL op erations between | A backbone network is then used to synchronize and coordinate RPL op erations between | |||
| the backbone routers that act as sinks for the LLN. | the Backbone Routers that act as sinks for the LLN. | |||
| Optionally, RPL's periodic operations may be used to | Optionally, RPL's periodic operations may be used to | |||
| transport the network synchronization. This may | transport the network synchronization. This may | |||
| mean that 6top would need to trigger (override) the trickle timer if | mean that 6top would need to trigger (override) the Trickle timer if | |||
| no other traffic has occurred for such a time that nodes may get out | no other traffic has occurred for such a time that nodes may get out | |||
| of synchronization. | of synchronization. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A node that has not joined the TSGI advertises a MAC level Join Prio rity | A node that has not joined the TSGI advertises a MAC-level Join Prio rity | |||
| of 0xFF to notify its neighbors that is not capable of serving as ti me parent. | of 0xFF to notify its neighbors that is not capable of serving as ti me parent. | |||
| A node that has joined the TSGI advertises a MAC level Join Priority set to | A node that has joined the TSGI advertises a MAC-level Join Priority set to | |||
| its DAGRank() in that Instance, where DAGRank() is the operation spe cified in | its DAGRank() in that Instance, where DAGRank() is the operation spe cified in | |||
| section 3.5.1 of <xref target='RFC6550'/>, "Rank Comparison". | Section <xref target="RFC6550" section="3.5.1" sectionFormat="bare" | |||
| format="default"/> | ||||
| of <xref target="RFC6550"/>, "Rank Comparison". | ||||
| </t> | </t> | |||
| <!-- TW: Official request made to move alter IEEE Std. 802.15.4e text. Maybe remove last sentence? --> | ||||
| <t> | <t> | |||
| 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 information down t | architecture, whereas RPL enables the propagation of configuration i | |||
| he DODAG. This applies to the TSGI as well; a | nformation | |||
| Root is configured or obtains by unspecified means the knowledge | down the DODAG. This applies to the TSGI as well; a | |||
| Root is configured, or obtains by unspecified means, the knowledge | ||||
| of the RPLInstanceID for the TSGI. The Root advertises its DagRank | of the RPLInstanceID for the TSGI. The Root advertises its DagRank | |||
| in the TSGI, that must be less than 0xFF, as its Join Priority in | in the TSGI, which must be less than 0xFF, as its Join Priority in | |||
| its IEEE Std. 802.15.4 Extended Beacons (EB). | its IEEE Std 802.15.4 EBs. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='slotframes'><name>Slotframes and CDU matrix</name> | <section anchor="slotframes"><name>Slotframes and CDU Matrix</name> | |||
| <t> | <t> | |||
| 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) transmissions. | layer that is also capable of scheduled (deterministic) transmissions. | |||
| A window of time is defined | A window of time is defined | |||
| around the scheduled transmission where the medium must, as much as | around the scheduled transmission where the medium must, as much as | |||
| practically feasible, be free of contending energy to ensure that the | practically feasible, be free of contending energy to ensure that the | |||
| medium is free of contending packets when time comes for a scheduled | medium is free of contending packets when the time comes for a schedule d | |||
| transmission. | transmission. | |||
| One simple way to obtain such a window is to format time and | One simple way to obtain such a window is to format time and | |||
| frequencies in cells of transmission of equal duration. This is the | frequencies in cells of transmission of equal duration. This is the | |||
| method that is adopted in IEEE Std. 802.15.4 TSCH as well as the Long | method that is adopted in IEEE Std 802.15.4 TSCH as well as the Long | |||
| Term Evolution (LTE) of cellular networks. | Term Evolution (LTE) of cellular networks. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 formatting | Channel Distribution and Usage (CDU) matrix to describe that formatting | |||
| of time and frequencies, | of time and frequencies. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A CDU matrix is defined centrally | A CDU matrix is defined centrally | |||
| as part of the network definition. It is a matrix of cells with a | as part of the network definition. It is a matrix of cells with a | |||
| height equal to the number of available channels (indexed by | height equal to the number of available channels (indexed by | |||
| ChannelOffsets) and a width (in timeslots) that is the period of the | channelOffsets) and a width (in timeslots) that is the period of the | |||
| network scheduling operation (indexed by slotOffsets) for that CDU | network scheduling operation (indexed by slotOffsets) for that CDU | |||
| matrix. There are different models for scheduling the usage of the | matrix. There are different models for scheduling the usage of the | |||
| cells, which place the responsibility of avoiding collisions either on | cells, which place the responsibility of avoiding collisions either on | |||
| a central controller or on the devices themselves, at an extra cost in | a central controller or on the devices themselves, at an extra cost in | |||
| terms of energy to scan for free cells (more in <xref target='schd'/>). | terms of energy to scan for free cells (more in <xref target="schd"/>). | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The size of a cell is a timeslot duration, and | The size of a cell is a timeslot duration, and | |||
| values of 10 to 15 milliseconds are typical in 802.15.4 TSCH to | values of 10 to 15 milliseconds are typical in 802.15.4 TSCH to | |||
| accommodate for the transmission of a frame and an ack, including the | accommodate for the transmission of a frame and an ack, including the | |||
| security validation on the receive side which may take up to a few | security validation on the receive side, which may take up to a few | |||
| milliseconds on some device architecture. | milliseconds on some device architecture. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A CDU matrix iterates over and over with a well-known channel rotation | A CDU matrix iterates over a well-known channel rotation | |||
| called the hopping sequence. | called the hopping sequence. | |||
| In a given network, there might be multiple CDU matrices that operate | In a given network, there might be multiple CDU matrices that operate | |||
| with different width, so they have different durations and represent | with different widths, so they have different durations and represent | |||
| different periodic operations. | different periodic operations. | |||
| It is recommended that all CDU matrices in a 6TiSCH domain operate with | It is recommended that all CDU matrices in a 6TiSCH domain operate with | |||
| the same cell duration and are aligned, so as to reduce the | the same cell duration and are aligned so as to reduce the | |||
| chances of interferences from the Slotted ALOHA operations. | chances of interferences from the Slotted ALOHA operations. | |||
| The knowledge of the CDU matrices is shared | The knowledge of the CDU matrices is shared | |||
| between all the nodes and used in particular to define slotframes. | between all the nodes and used in particular to define slotframes. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A slotframe is a MAC-level abstraction that is common to all nodes and | A slotframe is a MAC-level abstraction that is common to all nodes and | |||
| contains a series of timeslots of equal length and precedence. | contains a series of timeslots of equal length and precedence. | |||
| It is characterized by a slotframe_ID, and a slotframe_size. | It is characterized by a slotframe_ID and a slotframe_size. | |||
| A slotframe aligns to a CDU matrix for its parameters, such as number | A slotframe aligns to a CDU matrix for its parameters, such as number | |||
| and duration of timeslots. | and duration of timeslots. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | have multiple activities scheduled in different slotframes. | |||
| A slotframe is associated with a priority that may be related to | A slotframe is associated with a priority that may be related to | |||
| the precedence of different 6TiSCH topologies. The slotframes may be | the 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. | highest precedence and one or more slotframe(s) for RPL traffic. | |||
| The timeslots in the slotframe are indexed by the SlotOffset; | The timeslots in the slotframe are indexed by the slotOffset; | |||
| the first cell is at SlotOffset 0. | the first cell is at slotOffset 0. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When a packet is received from a higher layer for transmission, | When a packet is received from a higher layer for transmission, | |||
| 6top inserts that packet in the outgoing queue | 6top inserts that packet in the outgoing queue | |||
| which matches the packet best (Differentiated Services | that matches the packet best (Differentiated Services | |||
| <xref target='RFC2474'/> can therefore be used). | <xref target="RFC2474"/> can therefore be used). | |||
| At each scheduled transmit slot, 6top looks for the frame | At each scheduled transmit slot, 6top looks for the frame | |||
| in all the outgoing queues that best matches the cells. | in all the outgoing queues that best matches the cells. | |||
| If a frame is found, it is given to the TSCH MAC for transmission. | If a frame is found, it is given to the TSCH MAC for transmission. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='DistRsvTS'><name>Distributing the reservation of cells</n ame> | <section anchor="DistRsvTS"><name>Distributing the Reservation of Cells</n ame> | |||
| <t> | <t> | |||
| The 6TiSCH architecture introduces the concept of chunks | The 6TiSCH architecture introduces the concept of chunks | |||
| (<xref target='sixTTerminology'/>) to distribute the allocation of | (<xref target="sixTTerminology"/>) to distribute the allocation of | |||
| the spectrum for a whole group of cells at a time. | the spectrum for a whole group of cells at a time. | |||
| The CDU matrix is formatted into a set of chunks, possibly as | The CDU matrix is formatted into a set of chunks, possibly as | |||
| illustrated in <xref target='fig10'/>, each of the chunks | illustrated in <xref target="fig10"/>, each of the chunks | |||
| identified uniquely by a chunk-ID. The knowledge of this | identified uniquely by a chunk-ID. The knowledge of this | |||
| formatting is shared between all the nodes in a 6TiSCH network. | formatting is shared between all the nodes in a 6TiSCH network. | |||
| It could be conveyed during the join process, or codified into a pro | It could be conveyed during the join process, codified into a profil | |||
| file document, or obtained using some other mechanism. This is as opposed | e document, | |||
| to static scheduling that refers to the pre-programmed mechanism tha | or obtained using some other mechanism. This is as opposed | |||
| t | to Static Scheduling, which refers to the preprogrammed mechanism | |||
| is specified in <xref target='RFC8180'/> and pre-exists to the | specified in <xref target="RFC8180"/> and which existed before the | |||
| distribution of the chunk formatting. | distribution of the chunk formatting. | |||
| </t> | </t> | |||
| <figure anchor='fig10'><name>CDU matrix Partitioning in Chunks</name | <figure anchor="fig10"><name>CDU Matrix Partitioning in Chunks</name | |||
| > | > | |||
| <artwork align='center'> | <artwork align="center"><![CDATA[ | |||
| <![CDATA[ | ||||
| +-----+-----+-----+-----+-----+-----+-----+ +-----+ | +-----+-----+-----+-----+-----+-----+-----+ +-----+ | |||
| 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 | |||
| ]]> | ]]></artwork> | |||
| </artwork> | ||||
| </figure> | </figure> | |||
| <t> | <t> | |||
| The 6TiSCH Architecture envisions a protocol that enables chunk | The 6TiSCH architecture envisions a protocol that enables chunk | |||
| ownership appropriation whereby a RPL parent | ownership appropriation whereby a RPL parent | |||
| discovers a chunk that is not used in its interference domain, | discovers a chunk that is not used in its interference domain, | |||
| claims the chunk, and then defends it in case another RPL | claims the chunk, and then defends it in case another RPL | |||
| parent would attempt to appropriate it while it is in use. | parent would attempt to appropriate it while it is in use. | |||
| The chunk is the basic unit of ownership that is used in that proces s. | The chunk is the basic unit of ownership that is used in that proces s. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | |||
| <!-- Eliot's review: drop this sentence | ||||
| The RPL parent may thus orchestrate | ||||
| which transmissions occur in any of the cells in the chunk, by | ||||
| allocating cells from the chunk to any form of communication (unicas | ||||
| t, | ||||
| multicast) in any direction between itself and its children. | ||||
| --> | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Note that a PCE is expected to have precedence in the | Note that a PCE is expected to have precedence in the | |||
| allocation, so that a RPL parent would only be able to obtain | allocation, so that a RPL parent would only be able to obtain | |||
| portions that are not in-use by the PCE. | portions that are not in use by the PCE. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <!-- | <section anchor="schd"><name>Schedule Management Mechanisms</name> | |||
| <section title="Functional Flows"> | ||||
| <t> | ||||
| <list hangIndent="6" style="hanging"> | ||||
| <t hangText="Join:"></t> | ||||
| <t hangText="Time Synchronization:"></t> | ||||
| <t hangText="Setup for routing:"></t> | ||||
| <t hangText="PCE reservation:"></t> | ||||
| <t hangText="Distributed reservation:"></t> | ||||
| <t hangText="Dynamic slot (de)allocation:"></t> | ||||
| <t hangText="DSCP mapping:"></t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| --> | ||||
| <section anchor='schd'><name>Schedule Management Mechanisms</name> | ||||
| <t> | <t> | |||
| 6TiSCH uses 4 paradigms to manage the TSCH schedule of the LLN nodes: S | 6TiSCH uses four paradigms to manage the TSCH schedule of the LLN nodes | |||
| tatic Scheduling, | : Static Scheduling, | |||
| neighbor-to-neighbor Scheduling, remote monitoring and scheduling manag | Neighbor-to-Neighbor Scheduling, Remote Monitoring and Scheduling Manag | |||
| ement, and Hop-by-hop scheduling. | ement, and Hop-by-Hop Scheduling. | |||
| Multiple mechanisms are defined that implement the associated Interacti on Models, | Multiple mechanisms are defined that implement the associated Interacti on Models, | |||
| and can be combined and used in the same LLN. | and they can be combined and used in the same LLN. | |||
| Which mechanism(s) to use depends on application requirements. | Which mechanism(s) to use depends on application requirements. | |||
| </t> | </t> | |||
| <section anchor='mini'><name>Static Scheduling</name> | <section anchor="mini"><name>Static Scheduling</name> | |||
| <t> | <t> | |||
| 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 shared , | schedule may be shared by all nodes in the network. Cells are shared , | |||
| and nodes contend for slot access in a slotted ALOHA manner. | and nodes contend for slot access in a Slotted ALOHA manner. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | case of network malfunction. | |||
| This schedule is pre-established, for instance decided by a network | This schedule is preestablished, for instance, decided by a network | |||
| administrator based on operational needs. It can be pre-configured | administrator based on operational needs. It can be preconfigured | |||
| into the nodes, or, more commonly, learned by a node when joining | into the nodes, or, more commonly, learned by a node when joining | |||
| the network using standard IEEE Std. 802.15.4 Information Elements ( IE). | the network using standard IEEE Std 802.15.4 Information Elements (I E). | |||
| Regardless, the schedule remains unchanged | Regardless, the schedule remains unchanged | |||
| after the node has joined a network. | after the node has joined a network. | |||
| RPL is used on the resulting network. This "minimal" scheduling | RPL is used on the resulting network. This "minimal" scheduling | |||
| mechanism that implements this paradigm is detailed in | mechanism that implements this paradigm is detailed in | |||
| <xref target='RFC8180'/>. | <xref target="RFC8180"/>. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='dynsched'><name>Neighbor-to-neighbor Scheduling</name> | <section anchor="dynsched"><name>Neighbor-to-Neighbor Scheduling</name> | |||
| <t> | <t> | |||
| In the simplest instantiation of a 6TiSCH network described in | In the simplest instantiation of a 6TiSCH network described in | |||
| <xref target='mini'/>, nodes may expect a packet at any cell in | <xref target="mini"/>, nodes may expect a packet at any cell in | |||
| the schedule and will waste energy idle listening. In a more | the schedule and will waste energy idle listening. In a more | |||
| complex instantiation of a 6TiSCH network, a matching portion of the | complex instantiation of a 6TiSCH network, a matching portion of the | |||
| schedule is established between peers to reflect the observed amount | schedule is established between peers to reflect the observed amount | |||
| of transmissions between those nodes. The aggregation of the cells | of 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 to | |||
| implement the abstraction of a link for IP. The bandwidth on that | 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. | |||
| </t><t> | </t><t> | |||
| 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 | bandwidth, peak traffic is dropped. If the size is | |||
| configured to allow for peak emissions, energy is be wasted | configured to allow for peak emissions, energy is wasted | |||
| idle listening. | idle listening. | |||
| </t><t> | </t><t> | |||
| As discussed in more details in <xref target='s6Pprot'/>, the | As discussed in more detail in <xref target="s6Pprot"/>, the | |||
| <xref target='RFC8480'>6top Protocol</xref> | <xref target="RFC8480">6top Protocol</xref> | |||
| specifies the exchanges between neighbor nodes to reserve soft cells | specifies the exchanges between neighbor nodes to reserve soft cells | |||
| to transmit to one another, possibly under the control of a | to transmit to one another, possibly under the control of a | |||
| Scheduling Function (SF). Because this reservation is done without | Scheduling Function (SF). Because this reservation is done without | |||
| global knowledge of the schedule of other nodes in the LLN, scheduli ng | global knowledge of the schedule of the other nodes in the LLN, sche duling | |||
| collisions are possible. | collisions are possible. | |||
| <!-- 6top defines a monitoring process which | ||||
| continuously Tracks the packet delivery ratio of soft cells. | ||||
| It uses these statistics to trigger the reallocation of a soft cell | ||||
| in the schedule, using a negotiation protocol between the neighbors | ||||
| nodes communicating over that cell. | ||||
| In the most efficient instantiations of a 6TiSCH network, the size o | ||||
| f | ||||
| the bundles that implement the links may be changed dynamically | ||||
| in order to adapt to the need of end-to-end flows routed by RPL. --> | ||||
| </t><t> | </t><t> | |||
| And as discussed in <xref target='missf'/>, | And as discussed in <xref target="missf"/>, | |||
| an optional Scheduling Function (SF) is used to | an optional SF is used to | |||
| monitor bandwidth usage and perform requests for dynamic allocation | monitor bandwidth usage and to perform requests for dynamic allocati | |||
| on | ||||
| by the 6top sublayer. | by the 6top sublayer. | |||
| The SF component is not part of the 6top sublayer. It may be | The SF component is not part of the 6top sublayer. It may be | |||
| collocated on the same device or may be partially or fully offloaded | co-located on the same device or may be partially or fully offloaded | |||
| to an external system. The <xref target='I-D.ietf-6tisch-msf'> | to an external system. The <xref target="RFC9033"> | |||
| "6TiSCH Minimal Scheduling Function (MSF)"</xref> provides a simple | "6TiSCH Minimal Scheduling Function (MSF)"</xref> provides a simple | |||
| scheduling function that can be used by default by devices that | SF that can be used by default by devices that | |||
| support dynamic scheduling of soft cells. | support dynamic scheduling of soft cells. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Monitoring and relocation is done in the 6top layer. For the upper | Monitoring and relocation is done in the 6top sublayer. For the uppe r | |||
| layer, the connection between two neighbor nodes appears as a number | layer, the connection between two neighbor nodes appears as a number | |||
| of cells. | of cells. | |||
| Depending on traffic requirements, the upper layer can request 6top | Depending on traffic requirements, the upper layer can request 6top | |||
| to add or delete a number of cells scheduled to a particular | to add or delete a number of cells scheduled to a particular | |||
| neighbor, without being responsible for choosing the exact | neighbor, without being responsible for choosing the exact | |||
| slotOffset/channelOffset of those cells. | slotOffset/channelOffset of those cells. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='topint'><name>Remote Monitoring and Schedule Management</ | <section anchor="topint"><name>Remote Monitoring and Schedule Management</ | |||
| name> | name> | |||
| <!-- | ||||
| <t> | ||||
| The 6top interface document | ||||
| <xref target="I-D.ietf-6tisch-6top-interface"/> | ||||
| specifies the generic data model that can be used to monitor and man | ||||
| age | ||||
| resources of the 6top sublayer. Abstract methods are suggested for u | ||||
| se | ||||
| by a management entity in the device. The data model also enables | ||||
| remote control operations on the 6top sublayer. | ||||
| </t> | ||||
| <t> | ||||
| The capability to interact with the node 6top sublayer from multiple | ||||
| hops away | ||||
| can be leveraged for monitoring, scheduling, or a combination of the | ||||
| reof. | ||||
| The architecture supports variations on the deployment model, and | ||||
| focuses on the flows rather than | ||||
| whether there is a proxy or a translation operation en-route. | ||||
| </t> | ||||
| <t> | ||||
| <xref target="I-D.ietf-6tisch-coap"/> defines an mapping of | ||||
| the 6top set of commands, which is described in | ||||
| <xref target="I-D.ietf-6tisch-6top-interface"/>, to CoAP resources. | ||||
| This allows an entity to interact with the 6top layer of a node that | ||||
| is multiple hops away in a RESTful fashion. | ||||
| </t> | ||||
| <!--t> | ||||
| The work at the 6TiSCH WG is focused on non-deterministic traffic and | ||||
| does not provide the generic data model that would be necessary to | ||||
| monitor and manage resources of the 6top sublayer. It is recognized | ||||
| that CoAP can be appropriate to interact with the 6top layer of a | ||||
| node that is multiple hops away across a 6TiSCH mesh. | ||||
| </t> | ||||
| <t> | ||||
| The entity issuing the CoAP requests can be a central scheduling ent | ||||
| ity | ||||
| (e.g., a PCE), a node multiple hops away with the authority to modif | ||||
| y the TSCH | ||||
| schedule (e.g., the head of a local cluster), or a external device m | ||||
| onitoring the | ||||
| overall state of the network (e.g., NME). It is also possible that a | ||||
| mapping entity on the backbone transforms a non-CoAP protocol such | ||||
| as PCEP into the RESTful interfaces that the 6TiSCH devices support. | ||||
| </t--> | ||||
| <t> | <t> | |||
| Remote monitoring and Schedule Management refers to a DetNet/SDN model | Remote Monitoring and Schedule Management refers to a DetNet/SDN model | |||
| whereby an NME and a scheduling entity, associated with a PCE, reside | whereby an NME and a scheduling entity, associated with a PCE, reside | |||
| in a central controller and interact with the 6top layer to control | in a central controller and interact with the 6top sublayer to control | |||
| IPv6 Links and Tracks (<xref target='ontrk'/>) in a 6TiSCH network. | IPv6 links and Tracks (<xref target="ontrk"/>) in a 6TiSCH network. | |||
| The composite centralized controller can assign physical resources | The composite centralized controller can assign physical resources | |||
| (e.g., buffers and hard cells) to a particular Track to optimize the | (e.g., 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. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The work at the 6TiSCH WG focused on non-deterministic traffic and | The work in the 6TiSCH Working Group focused on nondeterministic traffi | |||
| did not provide the generic data model that is necessary for the | c 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 <xref target='unchartered-tracks'/ >. | This is deferred to future work, see <xref target="unchartered-tracks"/ >. | |||
| </t> | </t> | |||
| <!-- for later --> | ||||
| <t> | <t> | |||
| 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 | extension of the <xref target="RFC8655">DetNet architecture</xref>, | |||
| <xref target='RFC8655'>DetNet Architecture</xref>, | which studies Layer 3 aspects of Deterministic Networks and covers | |||
| which studies Layer-3 aspects of Deterministic Networks, and covers | networks that span multiple Layer 2 domains. | |||
| networks that span multiple Layer-2 domains. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The DetNet architecture is a form of Software Defined Networking (SDN) | The DetNet architecture is a form of Software-Defined Networking (SDN) | |||
| Architecture and is composed of three planes, a (User) Application | architecture and is composed of three planes: a (User) Application | |||
| Plane, a Controller Plane (where the PCE operates), and a Network Plane | Plane, a Controller Plane (where the PCE operates), and a Network Plane | |||
| , | ||||
| which can represent a 6TiSCH LLN. | which can represent a 6TiSCH LLN. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='RFC7426'>Software-Defined Networking (SDN): | <xref target="RFC7426">"Software-Defined Networking (SDN): | |||
| Layers and Architecture Terminology</xref> proposes a generic | Layers and Architecture Terminology"</xref> proposes a generic | |||
| representation of the SDN architecture that is reproduced in | representation of the SDN architecture that is reproduced in | |||
| <xref target='RFC7426archi'/>. | <xref target="RFC7426archi"/>. | |||
| </t> | </t> | |||
| <figure align='center' anchor='RFC7426archi'><name>SDN Layers and Architecture | <figure align="center" anchor="RFC7426archi"><name>SDN Layers and Architecture | |||
| Terminology per RFC 7426</name> | Terminology per RFC 7426</name> | |||
| <artwork align='left'> | <artwork align="left"><![CDATA[ | |||
| <![CDATA[ | ||||
| o--------------------------------o | o--------------------------------o | |||
| | | | | | | |||
| | +-------------+ +----------+ | | | +-------------+ +----------+ | | |||
| | | Application | | Service | | | | | Application | | Service | | | |||
| | +-------------+ +----------+ | | | +-------------+ +----------+ | | |||
| | Application Plane | | | Application Plane | | |||
| o---------------Y----------------o | o---------------Y----------------o | |||
| | | | | |||
| *-----------------------------Y---------------------------------* | *-----------------------------Y---------------------------------* | |||
| | Network Services Abstraction Layer (NSAL) | | | Network Services Abstraction Layer (NSAL) | | |||
| skipping to change at line 2199 ¶ | skipping to change at line 1889 ¶ | |||
| | | | | | | |||
| *------------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 | | |||
| +---------------------------------------------------------------+ | +---------------------------------------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>The PCE establishes end-to-end Tracks of hard cells, which are describe d | <t>The PCE establishes end-to-end Tracks of hard cells, which are describe d | |||
| in more details in <xref target='trkfwd'/>. | in more detail in <xref target="trkfwd"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 LLN | |||
| and an Ethernet Backbone. | and an Ethernet backbone. | |||
| </t> | </t> | |||
| <t>This model fits the 6TiSCH extended configuration, whereby a | <t>This model fits the 6TiSCH extended configuration, whereby a | |||
| 6BBR federates | 6BBR federates | |||
| multiple 6TiSCH LLN in a single subnet over a backbone that can be, | multiple 6TiSCH LLNs in a single subnet over a backbone that can be, | |||
| for instance, Ethernet or Wi-Fi. In that model, | for instance, Ethernet or Wi-Fi. In that model, | |||
| 6TiSCH 6BBRs synchronize with one another over the backbone, so as | 6TiSCH 6BBRs synchronize with one another over the backbone, so as | |||
| to ensure that the multiple LLNs that form the IPv6 subnet stay | to ensure that the multiple LLNs that form the IPv6 subnet stay | |||
| tightly synchronized. | tightly synchronized. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the Backbone is Deterministic, then the | If the backbone is deterministic, then the | |||
| Backbone Router ensures that the end-to-end deterministic | Backbone Router ensures that the end-to-end deterministic | |||
| behavior is maintained between the LLN and the backbone. | behavior is maintained between the LLN and the backbone. | |||
| It is the responsibility of the PCE to compute a | It is the responsibility of the PCE to compute a | |||
| deterministic path and to end across the TSCH network and an IEEE Std. | deterministic path end to end across the TSCH network and an IEEE Std 8 | |||
| 802.1 | 02.1 | |||
| TSN Ethernet backbone, and that of DetNet to enable end-to-end determin | TSN Ethernet backbone, and it is the responsibility of DetNet to enable | |||
| istic | end-to-end deterministic | |||
| forwarding. | forwarding. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Hop-by-hop Scheduling</name> | <section><name>Hop-by-Hop Scheduling</name> | |||
| <t> | <t> | |||
| A node can reserve a <xref target='ontrk'>Track</xref> to one or more | A node can reserve a <xref target="ontrk">Track</xref> to one or more | |||
| destination(s) that are multiple hops away by installing soft cells at each | destination(s) that are multiple hops away by installing soft cells at each | |||
| intermediate node. | intermediate node. | |||
| This forms a Track of soft cells. A Track Scheduling Function above the 6top | This forms a Track of soft cells. A Track SF above the 6top | |||
| sublayer of each node on the Track is needed to monitor these soft cells and | sublayer of each node on the Track is needed to monitor these soft cells and | |||
| trigger relocation when needed. | trigger relocation when needed. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This hop-by-hop reservation mechanism is expected to be similar in essence | This hop-by-hop reservation mechanism is expected to be similar in essence | |||
| to <xref target='RFC3209'/> and/or <xref target='RFC4080'/>/<xref target='RF C5974'/>. | to <xref target="RFC3209"/> and/or <xref target="RFC4080"/> and <xref target ="RFC5974"/>. | |||
| The protocol for a node to trigger hop-by-hop scheduling is not yet defined. | The protocol for a node to trigger hop-by-hop scheduling is not yet defined. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <!-- | ||||
| <section anchor="topo" title="6TiSCH Device Capabilities"> | ||||
| <t>6TiSCH nodes are usually IoT devices, characterized by very limited amount | <section anchor="ontrk"><name>On Tracks</name> | |||
| of memory, just enough buffers to store one or a few IPv6 packets, and | ||||
| limited bandwidth between peers. It results that a node will maintain only a | ||||
| small number of peering information, and will not be able to store many | ||||
| packets waiting to be forwarded. Peers can be identified through MAC or IPv6 | ||||
| addresses, but a Cryptographically Generated Address <xref target="RFC3972"/> | ||||
| (CGA) may also be used. | ||||
| </t> | ||||
| <t> | ||||
| Neighbors can be discovered over the radio using mechanism such as beacons, | ||||
| but, though the neighbor information is available in the 6TiSCH interface | ||||
| data model, 6TiSCH does not describe a protocol to pro-actively push the | ||||
| neighborhood information to a PCE. | ||||
| This protocol should be described and should operate over CoAP. The protocol | ||||
| should be able to carry multiple metrics, in particular the same metrics as | ||||
| used for RPL operations <xref target="RFC6551"/>. | ||||
| </t> | ||||
| <t> | ||||
| The energy that the device consumes in sleep, transmit and receive modes can | ||||
| be evaluated and reported. So can the amount of energy that is stored in the | ||||
| device and the power that it can be scavenged from the environment. The PCE | ||||
| SHOULD be able to compute Tracks that will implement policies on how the | ||||
| energy is consumed, for instance balance between nodes, ensure that the spent | ||||
| energy does not exceeded the scavenged energy over a period of time, etc... | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| --> | ||||
| <section anchor='ontrk'><name>On Tracks</name> | ||||
| <t> | <t> | |||
| The architecture introduces the concept of a Track, which is a directed path | The architecture introduces the concept of a Track, which is a directed path | |||
| from a source 6TiSCH node to one or more destination 6TiSCH node(s) | from a source 6TiSCH node to one or more destination 6TiSCH node(s) | |||
| across a 6TiSCH LLN. | across a 6TiSCH LLN. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A Track is the 6TiSCH instantiation of the concept of a Deterministic Path | A Track is the 6TiSCH instantiation of the concept of a deterministic path | |||
| as described in <xref target='RFC8655'/>. | as described in <xref target="RFC8655"/>. | |||
| Constrained resources such as memory buffers are reserved for that Track in | Constrained resources such as memory buffers are reserved for that Track in | |||
| intermediate 6TiSCH nodes to avoid loss related to limited capacity. | intermediate 6TiSCH nodes to avoid loss related to limited capacity. | |||
| A 6TiSCH node along a Track not only knows which bundles of cells it should | A 6TiSCH node along a Track not only knows which bundles of cells it should | |||
| use to receive packets from a previous hop, but also knows which bundle(s) | use to receive packets from a previous hop but also knows which bundle(s) | |||
| it should use to send packets to its next hop along the Track. | it should use to send packets to its next hop along the Track. | |||
| </t> | </t> | |||
| <section><name>General Behavior of Tracks</name> | <section><name>General Behavior of Tracks</name> | |||
| <t> | <t> | |||
| A Track is associated with Layer-2 bundles of cells with related schedules | A Track is associated with Layer 2 bundles of cells with related schedules | |||
| and logical relationships and that ensure that a packet that is injected in | and logical relationships that ensure that a packet that is injected in | |||
| a Track will progress in due time all the way to destination. | a Track will progress in due time all the way to destination. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Multiple cells may be scheduled in a Track for the transmission of a single | Multiple cells may be scheduled in a Track for the transmission of a single | |||
| packet, in which case the normal operation of IEEE Std. 802.15.4 Automatic | packet, in which case the normal operation of IEEE Std 802.15.4 Automatic | |||
| Repeat-reQuest (ARQ) can take place; the acknowledgment may be omitted in | Repeat-reQuest (ARQ) can take place; the acknowledgment may be omitted in | |||
| some cases, for instance if there is no scheduled cell for a possible retry. | some cases, for instance, if there is no scheduled cell for a possible retry . | |||
| </t> | </t> | |||
| <t> | <t> | |||
| There are several benefits for using a Track to forward a packet from a | There are several benefits for using a Track to forward a packet from a | |||
| source node to the destination node. | source node to the destination node: | |||
| </t> | </t> | |||
| <ol spacing='normal'> | <ol spacing="normal"> | |||
| <li> | <li> | |||
| Track forwarding, as further described in <xref target='trkfwd'/>, is a | Track Forwarding, as further described in <xref target="trkfwd"/>, is a | |||
| Layer-2 forwarding scheme, which introduces less process delay and | Layer 2 forwarding scheme, which introduces less process delay and | |||
| overhead than Layer-3 forwarding scheme. Therefore, LLN Devices can save | overhead than a Layer 3 forwarding scheme. Therefore, LLN devices can sa | |||
| more energy and resource, which is critical for resource constrained devi | ve | |||
| ces. | more energy and resources, which is critical for resource-constrained dev | |||
| ices. | ||||
| </li> | </li> | |||
| <li> | <li> | |||
| Since channel resources, i.e., bundles of cells, have been reserved for | Since channel resources, i.e., bundles of cells, have been reserved for | |||
| communications between 6TiSCH nodes of each hop on the Track, the | communications between 6TiSCH nodes of each hop on the Track, the | |||
| throughput and the maximum latency of the traffic along a Track are | throughput and the maximum latency of the traffic along a Track are | |||
| guaranteed and the jitter is maintained small. | guaranteed, and the jitter is minimized. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| By knowing the scheduled time slots of incoming bundle(s) and outgoing | By knowing the scheduled timeslots of incoming bundle(s) and outgoing | |||
| bundle(s), 6TiSCH nodes on a Track could save more energy by staying in | bundle(s), 6TiSCH nodes on a Track could save more energy by staying in | |||
| sleep state during in-active slots. | sleep state during inactive slots. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| Tracks are protected from interfering with one another if a cell is sched | Tracks are protected from interfering with one another if a cell is | |||
| uled to belong to at most one Track, and congestion loss is avoided if at most o | scheduled to belong to at most one Track, and congestion loss is avoided | |||
| ne | if at most one | |||
| packet can be presented to the MAC to use that cell. | packet can be presented to the MAC to use that cell. | |||
| Tracks enhance the reliability of transmissions and thus further improve | Tracks enhance the reliability of transmissions and thus further improve | |||
| the energy consumption in LLN Devices by reducing the chances of | the energy consumption in LLN devices by reducing the chances of | |||
| retransmission. | retransmission. | |||
| </li> | </li> | |||
| </ol><t> | </ol> | |||
| </t> | ||||
| </section> | </section> | |||
| <section><name>Serial Track</name> | <section><name>Serial Track</name> | |||
| <t> | <t> | |||
| A Serial (or simple) Track is the 6TiSCH version of a circuit; a bundle of | A Serial (or simple) Track is the 6TiSCH version of a circuit: a bundle of | |||
| cells that are programmed to receive (RX-cells) is uniquely paired to a | cells that are programmed to receive (RX-cells) is uniquely paired with a | |||
| bundle of cells that are set to transmit (TX-cells), representing a Layer-2 | bundle of cells that are set to transmit (TX-cells), representing a Layer 2 | |||
| forwarding state which can be used regardless of the network layer protocol. | forwarding state that can be used regardless of the network-layer protocol. | |||
| A Serial Track is thus formed end-to-end as a succession of | A Serial Track is thus formed end-to-end as a succession of | |||
| paired bundles, a receive bundle from the previous hop and a transmit bundle | paired bundles: a receive bundle from the previous hop and a transmit bundle | |||
| to the next hop along the Track. | to the next hop along the Track. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For a given iteration of the device schedule, the effective channel of the | 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 sequence that | cell is obtained by looping through a well-known hopping sequence | |||
| started at Epoch time at the channelOffset of the cell, which results | beginning at Epoch time and starting at the cell's channelOffset, which resu | |||
| in a rotation of the frequency that used for transmission. | lts | |||
| in a rotation of the frequency that is used for transmission. | ||||
| The bundles may be computed so as to accommodate both variable rates and | The bundles may be computed so as to accommodate both variable rates and | |||
| retransmissions, so they might not be fully used in the iteration of the | retransmissions, so they might not be fully used in the iteration of the | |||
| schedule. | schedule. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Complex Track with Replication and Elimination</name> | <section><name>Complex Track with Replication and Elimination</name> | |||
| <t> | <t> | |||
| The art of Deterministic Networks already include Packet Replication and | The art of Deterministic Networks already includes packet replication and | |||
| Elimination techniques. Example | elimination techniques. Example | |||
| standards include the Parallel Redundancy Protocol (PRP) and the | standards include the Parallel Redundancy Protocol (PRP) and the | |||
| High-availability Seamless Redundancy (HSR) <xref target='IEC62439'/>. | High-availability Seamless Redundancy (HSR) <xref target="IEC62439"/>. | |||
| Similarly, and as opposed to a Serial Track that is a sequence of nodes | Similarly, and as opposed to a Serial Track that is a sequence of nodes | |||
| and links, a Complex Track is shaped as a directed acyclic graph towards one | and links, a Complex Track is shaped as a directed acyclic graph towards one | |||
| or more destination(s) to support multi-path forwarding and route around | or more destination(s) to support multipath forwarding and route around | |||
| failures. | failures. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A Complex Track may branch off over non congruent branches for the purpose | A Complex Track may branch off over noncongruent branches for the purpose | |||
| of multicasting, and/or redundancy, in which case it reconverges later down | of multicasting and/or redundancy, in which case, it reconverges later down | |||
| the path. | the path. | |||
| This enables the Packet Replication, Elimination and Ordering Functions (PRE | This enables the Packet Replication, Elimination, and Ordering Functions (PR | |||
| OF) | EOF) | |||
| defined by Detnet. Packet ARQ, Replication, Elimination and Overhearing (PAR | defined by DetNet. Packet ARQ, Replication, Elimination, and Overhearing (PA | |||
| EO) | REO) | |||
| adds radio-specific capabilities of Layer-2 ARQ and promiscuous listening to | adds radio-specific capabilities of Layer 2 ARQ and promiscuous listening to | |||
| redundant transmissions to compensate for the lossiness of the medium and me et | redundant transmissions to compensate for the lossiness of the medium and me et | |||
| industrial expectations of a Reliable and Available Wireless network. | industrial expectations of a RAW network. | |||
| Combining PAREO and PREOF, a Track may extend beyond the 6TiSCH network in a | Combining PAREO and PREOF, a Track may extend beyond the 6TiSCH network into | |||
| larger DetNet network. | a larger DetNet network. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In the art of TSCH, a path does not necessarily support PRE but it is almost | In the art of TSCH, a path does not necessarily support PRE, but it is almos | |||
| systematically multi-path. This means that a Track is scheduled so as to | t | |||
| systematically multipath. This means that a Track is scheduled so as to | ||||
| ensure that each hop has at least two forwarding solutions, and the | ensure that each hop has at least two forwarding solutions, and the | |||
| forwarding decision is to try the preferred one and use the other in | forwarding decision is to try the preferred one and use the other in | |||
| case of Layer-2 transmission failure as detected by ARQ. Similarly, | case of Layer 2 transmission failure as detected by ARQ. Similarly, | |||
| at each 6TiSCH hop along the Track, the PCE may schedule more than one | at each 6TiSCH hop along the Track, the PCE may schedule more than one | |||
| timeslot for a packet, so as to support Layer-2 retries (ARQ). It is also | timeslot for a packet, so as to support Layer 2 retries (ARQ). It is also | |||
| possible that the field device only uses the second branch if sending over | possible that the field device only uses the second branch if sending over | |||
| the first branch fails. | the first branch fails. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>DetNet End-to-end Path</name> | <section><name>DetNet End-to-End Path</name> | |||
| <t> | <t> | |||
| Ultimately, DetNet should | Ultimately, DetNet should | |||
| enable to extend a Track beyond the 6TiSCH LLN as illustrated in | enable extending a Track beyond the 6TiSCH LLN as illustrated in | |||
| <xref target='elifig'/>. In that example, a Track that is laid out from a | <xref target="elifig"/>. In that example, a Track is laid out from a | |||
| field device in a 6TiSCH network to an IoT gateway that is located on an | field device in a 6TiSCH network to an IoT gateway that is located on an | |||
| 802.1 Time-Sensitive Networking (TSN) backbone. | 802.1 Time-Sensitive Networking (TSN) backbone. | |||
| A 6TiSCH-Aware DetNet Service Layer handles the Packet Replication, | A 6TiSCH-aware DetNet service layer handles the Packet Replication, | |||
| Elimination, and Ordering Functions over the DODAG that forms a Track. | Elimination, and Ordering Functions over the DODAG that forms a Track. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The Replication function in the 6TiSCH Node sends a copy of each packet over | The Replication function in the 6TiSCH Node sends a copy of each packet over | |||
| two different branches, and the PCE schedules each hop of both branches so | two different branches, and the PCE schedules each hop of both branches so | |||
| that the two copies arrive in due time at the gateway. In case of a loss on | that the two copies arrive in due time at the gateway. In case of a loss on | |||
| one branch, hopefully the other copy of the packet still makes it in due | one branch, hopefully the other copy of the packet still makes it in due | |||
| time. If two copies make it to the IoT gateway, the Elimination function | time. If two copies make it to the IoT gateway, the Elimination function | |||
| in the gateway ignores the extra packet and presents only one copy to upper | in the gateway ignores the extra packet and presents only one copy to upper | |||
| layers. | layers. | |||
| </t> | </t> | |||
| <figure align='center' anchor='elifig'><name>Example End-to-End DetNet Track</name> | <figure align="center" anchor="elifig"><name>Example End-to-End DetNet Track</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| +-=-=-+ | +-=-=-+ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section><name>Cell Reuse</name> | <section><name>Cell Reuse</name> | |||
| <t> | <t> | |||
| 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: | |||
| </t> | </t> | |||
| <t> | <t> | |||
| A TX-cell that is not needed for the current iteration may | A TX-cell that is not needed for the current iteration may | |||
| be reused opportunistically on a per-hop basis for routed packets. | be reused opportunistically on a per-hop basis for routed packets. | |||
| When all of the frame that were received for a given Track are | When all of the frames that were received for a given Track are | |||
| effectively transmitted, any available TX-cell for that Track can be | effectively transmitted, any available TX-cell for that Track can be | |||
| reused for upper layer traffic for which the next-hop router matches the | reused for upper-layer traffic for which the next-hop router matches the | |||
| next hop along the Track. | next hop along the Track. | |||
| In that case, the cell that is being used is effectively a TX-cell from | In that case, the cell that is being used is effectively a TX-cell from | |||
| the Track, but the short address for the destination is that of the | the Track, but the short address for the destination is that of the | |||
| next-hop router. | next-hop router. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 a | |||
| destination MAC address set to this node as opposed to the broadcast MAC | destination MAC address set to this node, as opposed to the broadcast MA | |||
| address must be extracted from the Track and delivered to the upper laye | C | |||
| r. | address that must be extracted from the Track and delivered to the upper | |||
| layer. | ||||
| Note that a frame with an unrecognized destination MAC address is droppe d | Note that a frame with an unrecognized destination MAC address is droppe d | |||
| at the lower MAC layer and thus is not received at the 6top sublayer. | at the lower MAC layer and thus is not received at the 6top sublayer. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 if | in the transmit bundle to accommodate the Track traffic, for instance, i f | |||
| more retransmissions are needed than provisioned. | more retransmissions are needed than provisioned. | |||
| In that case, and if the frame transports an IPv6 packet, then it can be | In that case, and if the frame transports an IPv6 packet, then it can be | |||
| placed for transmission in the bundle that is used for Layer-3 traffic | placed for transmission in the bundle that is used for Layer 3 traffic | |||
| towards the next hop along the Track. | towards the next hop along the Track. | |||
| The MAC address should be set to the next-hop MAC address to avoid | The MAC address should be set to the next-hop MAC address to avoid | |||
| confusion. | confusion. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| It results in a frame that is received over a Layer-3 bundle may be in | It results in a frame that is received over a Layer 3 bundle that may be | |||
| fact associated to a Track. In a classical IP link such as an Ethernet, | in | |||
| fact associated with a Track. In a classical IP link such as an Ethernet | ||||
| , | ||||
| off-Track traffic is typically in excess over reservation to be routed | off-Track traffic is typically in excess over reservation to be routed | |||
| along the non-reserved path based on its QoS setting. | along the non-reserved path based on its QoS setting. | |||
| But with 6TiSCH, since the use of the Layer-3 bundle may be due to | But with 6TiSCH, since the use of the Layer 3 bundle may be due to | |||
| transmission failures, it makes sense for the receiver to recognize a | transmission failures, it makes sense for the receiver to recognize a | |||
| frame that should be re-Tracked, and to place it back on the appropriate | frame that should be re-Tracked and to place it back on the appropriate | |||
| bundle if possible. | bundle if possible. | |||
| <!-- | ||||
| A frame should be re-Tracked if the Per-Hop-Behavior group indicated in | ||||
| the Differentiated Services Field of the IPv6 header is set to | ||||
| Deterministic Forwarding, as discussed in <xref target="pmh"/ -->. | ||||
| A frame is re-Tracked by scheduling it for transmission over the | A frame is re-Tracked by scheduling it for transmission over the | |||
| transmit bundle associated to the Track, with the destination MAC | transmit bundle associated with the Track, with the destination MAC | |||
| address set to broadcast. | address set to broadcast. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor='fwd'><name>Forwarding Models</name> | <section anchor="fwd"><name>Forwarding Models</name> | |||
| <!-- TW: Forwarding models should be formalized in a standards-Track draft | ||||
| ? One should be MUST (IPv6?), the others SHOULD? --> | ||||
| <t> | <t> | |||
| 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 node | allows delivery of a packet to a next hop or an upper layer in this nod | |||
| . | e. | |||
| Forwarding is based on pre-existing state that was installed as a | Forwarding is based on preexisting state that was installed as a | |||
| result of a routing computation <xref target='rtg'/>. | result of a routing computation, see <xref target="rtg"/>. | |||
| 6TiSCH supports three different forwarding model:(G-MPLS) Track | 6TiSCH supports three different forwarding models: (GMPLS) Track | |||
| Forwarding, (classical) IPv6 Forwarding and (6LoWPAN) Fragment Forwardi | Forwarding, (classical) IPv6 Forwarding, and (6LoWPAN) Fragment Forward | |||
| ng. | ing. | |||
| </t> | </t> | |||
| <section anchor='trkfwd'><name>Track Forwarding</name> | <section anchor="trkfwd"><name>Track Forwarding</name> | |||
| <t> | <t> | |||
| 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 oth | |||
| er | ||||
| properties of the way the packet was received, a particular cell in | properties of the way the packet was received, a particular cell in | |||
| the case of 6TiSCH. | the case of 6TiSCH. | |||
| As a result, as long as the TSCH MAC (and Layer-2 security) accepts | As a result, as long as the TSCH MAC (and Layer 2 security) accepts | |||
| a frame, that frame can be switched regardless of the protocol, | a frame, that frame can be switched regardless of the protocol, | |||
| whether this is an IPv6 packet, a 6LoWPAN fragment, or a frame from | whether this is an IPv6 packet, a 6LoWPAN fragment, or a frame from | |||
| an alternate protocol such as WirelessHART or ISA100.11a. | an alternate protocol such as WirelessHART or ISA100.11a. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | address depending on MAC support. | |||
| This way, the MAC layer in the intermediate nodes accepts the | This way, the MAC layer in the intermediate nodes accepts the | |||
| incoming frame and 6top switches it without incurring a change in | incoming frame and 6top switches it without incurring a change in | |||
| the MAC header. | the MAC header. | |||
| In the case of IEEE Std. 802.15.4, this means effectively | In the case of IEEE Std 802.15.4, this means effectively to | |||
| broadcast, so that along the Track the short address for the | broadcast, so that along the Track the short address for the | |||
| destination of the frame is set to 0xFFFF. | destination of the frame is set to 0xFFFF. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| There are 2 modes for a Track, an IPv6 native mode and | There are two modes for a Track: an IPv6 native mode and a | |||
| a protocol-independant tunnel mode. | protocol-independent tunnel mode. | |||
| </t> | </t> | |||
| <section><name>Native Mode</name> | <section><name>Native Mode</name> | |||
| <t> | <t> | |||
| In native mode, the Protocol Data Unit (PDU) is associated | In native mode, the Protocol Data Unit (PDU) is associated | |||
| with flow-dependent meta-data that refers uniquely to the Track, | with flow-dependent metadata that refers uniquely to the Track, | |||
| so the 6top sublayer can place the frame in the appropriate cell | so the 6top sublayer can place the frame in the appropriate cell | |||
| without ambiguity. In the case of IPv6 traffic, this flow | without ambiguity. In the case of IPv6 traffic, this flow | |||
| identification may be done using a 6-tuple as discussed in | may be identified using a 6-tuple as discussed in | |||
| <xref target='I-D.ietf-detnet-ip'/>. In particular, | <xref target="RFC8939"/>. In particular, | |||
| implementations of this document should support identification of | implementations of this document should support identification of | |||
| DetNet flows based on the IPv6 Flow Label field. | DetNet flows based on the IPv6 Flow Label field.</t> | |||
| </t> | ||||
| <t> | ||||
| The flow follows a Track which identification is done using | ||||
| a RPL Instance (see section 3.1.3 of <xref target='RFC6550'/>), | ||||
| signaled in a RPL Packet Information (more in section 11.2.2.1 of | ||||
| <xref target='RFC6550'/>) and the destination address in the case | ||||
| of a local instance. One or more flows may be placed in a same | ||||
| Track and the Track identification (TrackID + owner) may be place | ||||
| d | ||||
| in an | ||||
| IP-in-IP encapsulation. The forwarding operation is based on the | ||||
| Track and does not depend on the flow therein. | ||||
| </t> | <t> | |||
| <t> | The flow follows a Track that is identified using a RPL | |||
| The Track identification is validated at egress before restoring | Instance (see <xref target="RFC6550" section="3.1.3" sectionFormat="of" forma | |||
| the destination MAC address (DMAC) and punting to the upper layer | t="default"/>), | |||
| . | signaled in a RPL Packet Information (more in | |||
| </t> | <xref target="RFC6550" section="11.2.2.1" sectionFormat="of" format="default" | |||
| <t><xref target='fig6t'/> illustrates the Track Forwarding operation | />) | |||
| which happens at the 6top sublayer, below IP. | and the source address of a packet going down the DODAG formed by a local ins | |||
| tance. One or more | ||||
| flows may be placed in a same Track and the Track identification | ||||
| (TrackID plus owner) may be placed in an IP-in-IP encapsulation. The forward | ||||
| ing | ||||
| operation is based on the Track and does not depend on the flow | ||||
| therein. | ||||
| </t> | ||||
| <t> | ||||
| The Track identification is validated at egress before restoring the | ||||
| destination MAC address (DMAC) and punting to the upper layer. | ||||
| </t> | ||||
| <t><xref target="fig6t"/> illustrates the Track Forwarding operation | ||||
| that happens at the 6top sublayer, below IP. | ||||
| </t> | </t> | |||
| <figure anchor='fig6t'><name>Track Forwarding, Native Mode</name> | <figure anchor="fig6t"><name>Track Forwarding, Native Mode</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| | 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 | |||
| skipping to change at line 2588 ¶ | skipping to change at line 2241 ¶ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section><name>Tunnel Mode</name> | <section><name>Tunnel Mode</name> | |||
| <t> | <t> | |||
| In tunnel mode, the frames originate from an arbitrary protocol o ver a compatible MAC | In tunnel mode, the frames originate from an arbitrary protocol o ver a compatible MAC | |||
| that may or may not be synchronized with the 6TiSCH network. An e xample of | that may or may not be synchronized with the 6TiSCH network. An e xample of | |||
| this would be a router with a dual radio that is capable of recei ving and sending WirelessHART | this would be a router with a dual radio that is capable of recei ving and sending WirelessHART | |||
| or ISA100.11a frames with the second radio, by presenting itself | or ISA100.11a frames with the second radio by presenting itself a | |||
| as an access | s an access | |||
| Point or a Backbone Router, respectively. | point or a Backbone Router, respectively. | |||
| In that mode, some entity (e.g., PCE) can coordinate with a | In that mode, some entity (e.g., PCE) can coordinate with a | |||
| WirelessHART Network Manager or an ISA100.11a System Manager to | WirelessHART Network Manager or an ISA100.11a System Manager to | |||
| specify the flows that are transported. | specify the flows that are transported. | |||
| </t> | </t> | |||
| <figure anchor='fig6'><name>Track Forwarding, Tunnel Mode</name> | <figure anchor="fig6"><name>Track Forwarding, Tunnel Mode</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| +--------------+ | +--------------+ | |||
| | IPv6 | | | IPv6 | | |||
| +--------------+ | +--------------+ | |||
| | 6LoWPAN HC | | | 6LoWPAN HC | | |||
| +--------------+ set restore | +--------------+ set restore | |||
| | 6top | +DMAC+ +DMAC+ | | 6top | +DMAC+ +DMAC+ | |||
| +--------------+ to|brdcst to|nexthop | +--------------+ to|brdcst to|nexthop | |||
| | TSCH MAC | | | | | | | TSCH MAC | | | | | | |||
| +--------------+ | | | | | +--------------+ | | | | | |||
| | LLN PHY | +-------+ +--...-----+ +-------+ | | LLN PHY | +-------+ +--...-----+ +-------+ | |||
| skipping to change at line 2627 ¶ | skipping to change at line 2278 ¶ | |||
| | | | | | | |||
| +--------------+ | | | +--------------+ | | | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| In that case, the TrackID that identifies the Track at | In that case, the TrackID that identifies the Track at | |||
| the ingress 6TiSCH router is derived from the RX-cell. The DMAC | the ingress 6TiSCH router is derived from the RX-cell. | |||
| is set to this node but the TrackID indicates that the | The DMAC | |||
| frame must be tunneled over a particular Track so the frame is | is set to this node, but the TrackID indicates that the | |||
| frame must be tunneled over a particular Track, so the frame is | ||||
| not passed to the upper layer. Instead, the DMAC is forced to | not passed to the upper layer. Instead, the DMAC is forced to | |||
| broadcast and the frame is passed to the 6top sublayer for | broadcast, and the frame is passed to the 6top sublayer for | |||
| switching. | switching. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| At the egress 6TiSCH router, the reverse operation occurs. Based | At the egress 6TiSCH router, the reverse operation occurs. Based | |||
| on tunneling information of the Track, which may for instance | on tunneling information of the Track, which may for instance | |||
| indicate that the tunneled datagram is an IP packet, | indicate that the tunneled datagram is an IP packet, | |||
| the datagram is passed to the appropriate Link-Layer with the | the datagram is passed to the appropriate link-layer with the | |||
| destination MAC restored. | destination MAC restored. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section><name>Tunneling Information</name> | <section><name>Tunneling Information</name> | |||
| <t> | <t> | |||
| Tunneling information coming with the Track configuration | Tunneling information coming with the Track configuration | |||
| provides the destination MAC address | provides the destination MAC address | |||
| of the egress endpoint as well as the tunnel mode and specific | of the egress endpoint as well as the tunnel mode and specific | |||
| data depending on the mode, | data depending on the mode, | |||
| for instance a service access point for frame delivery at egress. | for instance, a service access point for frame delivery at egress . | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the tunnel egress point does not have a MAC address that | If the tunnel egress point does not have a MAC address that | |||
| matches the configuration, the Track installation fails. | matches the configuration, the Track installation fails. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the Layer-3 destination address belongs to | If the Layer 3 destination address belongs to | |||
| the tunnel termination, then it is possible that the IPv6 address | the tunnel termination, then it is possible that the IPv6 address | |||
| of the destination is compressed at the 6LoWPAN sublayer based on | of the destination is compressed at the 6LoWPAN sublayer based on | |||
| the MAC address. Restoring the wrong MAC address at the egress | the MAC address. Restoring the wrong MAC address at the egress | |||
| would then also result in the wrong IP address in the packet | would then also result in the wrong IP address in the packet | |||
| after decompression. | after decompression. | |||
| For that reason, a packet can be injected in a Track only if | For that reason, a packet can be injected in a Track only if | |||
| the destination MAC address is effectively that of the tunnel | the destination MAC address is effectively that of the tunnel | |||
| egress point. | egress point. | |||
| It is thus mandatory for the ingress router to validate that the | It is thus mandatory for the ingress router to validate that the | |||
| MAC address that was used at the 6LoWPAN | MAC address used at the 6LoWPAN | |||
| sublayer for compression matches that of the tunnel egress point | sublayer for compression matches that of the tunnel egress point | |||
| before it overwrites it to broadcast. | before it overwrites it to broadcast. | |||
| The 6top sublayer at the tunnel egress point reverts that | The 6top sublayer at the tunnel egress point reverts that | |||
| operation to the MAC address obtained from the tunnel | operation to the MAC address obtained from the tunnel | |||
| information. | information. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> <section><name>IPv6 Forwarding</name> | </section> <section><name>IPv6 Forwarding</name> | |||
| <t> | <t> | |||
| 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. | |||
| <!-- the application of Differentiated Services is further discussed | ||||
| in --> | ||||
| <!-- <xref target="I-D.svshah-tsvwg-lln-diffserv-recommendations"/>. | ||||
| --> | ||||
| </t> | </t> | |||
| <figure anchor='fig9'><name>IP Forwarding</name> | <figure anchor="fig9"><name>IP Forwarding</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| | 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 | | | | | | | | |||
| +--------------+ | | | | | | | +--------------+ | | | | | | | |||
| skipping to change at line 2704 ¶ | skipping to change at line 2352 ¶ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| </section> | </section> | |||
| <section><name>Fragment Forwarding</name> | <section><name>Fragment Forwarding</name> | |||
| <t> | <t> | |||
| Considering that per section 4 of <xref target='RFC4944'/> 6LoWPAN | Considering that, per <xref target="RFC4944" section="4" sectionForm | |||
| packets can be as large as 1280 bytes (the IPv6 minimum MTU), | at="of" format="default"/>, 6LoWPAN | |||
| and that the non-storing mode of RPL implies Source Routing that req | packets can be as large as 1280 bytes (the IPv6 minimum MTU) | |||
| uires space for routing | and that the non-storing mode of RPL implies source routing, which r | |||
| headers, and that a IEEE Std. 802.15.4 frame with security may carry | equires space for routing | |||
| in the order of 80 bytes of | headers, and that an IEEE Std 802.15.4 frame with security may carry | |||
| in the order of 80 bytes of | ||||
| effective payload, an IPv6 packet might be fragmented into more than 16 fragments at the | effective payload, an IPv6 packet might be fragmented into more than 16 fragments at the | |||
| 6LoWPAN sublayer. | 6LoWPAN sublayer. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This level of fragmentation is much higher than that traditionally e xperienced over the Internet | This level of fragmentation is much higher than that traditionally e xperienced over the Internet | |||
| with IPv4 fragments, where fragmentation is already known as harmful . | with IPv4 fragments, where fragmentation is already known as harmful . | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In the case to a multihop route within a 6TiSCH network, Hop-by-Hop recomposition occurs at each | In the case of a multihop route within a 6TiSCH network, hop-by-hop recomposition occurs at each | |||
| hop to reform the packet and route it. This creates additional laten cy and forces intermediate | hop to reform the packet and route it. This creates additional laten cy and forces intermediate | |||
| nodes to store a portion of a packet for an undetermined time, thus impacting critical resources such | nodes to store a portion of a packet for an undetermined time, thus impacting critical resources such | |||
| as memory and battery. | as memory and battery. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='I-D.ietf-6lo-minimal-fragment'/> describes a framework | <xref target="RFC8930"/> describes a framework for forwarding fragme | |||
| for forwarding fragments end-to-end across a 6TiSCH route-over mesh. | nts end-to-end | |||
| Within that framework, <xref target='I-D.ietf-lwig-6lowpan-virtual-r | across a 6TiSCH route-over mesh. Within that framework, | |||
| eassembly'/> details a virtual reassembly buffer mechanism whereby the datagram | <xref target="I-D.ietf-lwig-6lowpan-virtual-reassembly"/> details a | |||
| tag in the 6LoWPAN Fragment is used as a label for switching at the 6LoWPAN subl | virtual reassembly | |||
| ayer. | buffer mechanism whereby the datagram tag in the 6LoWPAN fragment is | |||
| used as a label | ||||
| for switching at the 6LoWPAN sublayer. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Building on this technique, <xref target='I-D.ietf-6lo-fragment-reco | Building on this technique, <xref target="RFC8931"/> introduces a ne | |||
| very'/> introduces a new format for 6LoWPAN fragments that enables the selective | w format for | |||
| recovery of individual fragments, and allows for a degree of flow control based | 6LoWPAN fragments that enables the selective recovery of individual | |||
| on an Explicit Congestion Notification. | fragments | |||
| and allows for a degree of flow control based on an Explicit Congest | ||||
| ion Notification (ECN). | ||||
| </t> | </t> | |||
| <figure anchor='fig7'><name>Forwarding First Fragment</name> | <figure anchor="fig7"><name>Forwarding First Fragment</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| | 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 | | | | | | | | |||
| skipping to change at line 2750 ¶ | skipping to change at line 2402 ¶ | |||
| | 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 | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| In that model, the first fragment is routed based on the IPv6 header that is present in that fragment. | In that model, the first fragment is routed based on the IPv6 header that is present in that fragment. | |||
| The 6LoWPAN sublayer learns the next hop selection, generates a new datagram tag for transmission to | The 6LoWPAN sublayer learns the next-hop selection, generates a new datagram tag for transmission to | |||
| the next hop, and stores that information indexed by the incoming MA C address and datagram tag. The next | the next hop, and stores that information indexed by the incoming MA C address and datagram tag. The next | |||
| fragments are then switched based on that stored state. | fragments are then switched based on that stored state. | |||
| </t> | </t> | |||
| <figure anchor='fig8'><name>Forwarding Next Fragment</name> | <figure anchor="fig8"><name>Forwarding Next Fragment</name> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| | 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 | | | | | | | | |||
| skipping to change at line 2787 ¶ | skipping to change at line 2437 ¶ | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| A bitmap and an ECN echo in the end-to-end acknowledgment enable the source to resend the missing | A bitmap and an ECN echo in the end-to-end acknowledgment enable the source to resend the missing | |||
| fragments selectively. The first fragment may be resent to carve a n ew path in case of a path failure. | fragments selectively. The first fragment may be resent to carve a n ew path in case of a path failure. | |||
| The ECN echo set indicates that the number of outstanding fragments should be reduced. | The ECN echo set indicates that the number of outstanding fragments should be reduced. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor='rtg'><name>Advanced 6TiSCH Routing</name> | <section anchor="rtg"><name>Advanced 6TiSCH Routing</name> | |||
| <section anchor='pmh'><name>Packet Marking and Handling</name> | <section anchor="pmh"><name>Packet Marking and Handling</name> | |||
| <t> | <t> | |||
| 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. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| For packets that are routed by a PCE along a Track, the tuple formed by 1) | For packets that are routed by a PCE along a Track, the tuple formed | |||
| (typically) the IPv6 source or (possibly) destination address in the IPv6 | by 1) (typically) the IPv6 source or (possibly) destination address | |||
| Header and 2) a local RPLInstanceID in the RPI that serves as TrackID, | in the IPv6 header and 2) a local RPLInstanceID in the RPI that | |||
| identify uniquely the Track and associated transmit bundle. | serves as TrackID, identify uniquely the Track and | |||
| associated transmit bundle. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| For packets that are routed by RPL, that information is the RPLInstanceID | For packets that are routed by RPL, that information is the RPLInstanceID | |||
| which is carried in the RPL Packet Information (RPI), as discussed in | that is carried in the RPL Packet Information (RPI), as discussed in | |||
| section 11.2 of <xref target='RFC6550'/>, "Loop Avoidance and Detection". | <xref target="RFC6550" section="11.2" sectionFormat="of" format="default"/>, | |||
| The RPI is transported by a RPL option in the IPv6 Hop-By-Hop Header | "Loop Avoidance and Detection". | |||
| <xref target='RFC6553'/>. | The RPI is transported by a RPL Option in the IPv6 Hop-By-Hop Options header | |||
| <xref target="RFC6553"/>. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| A compression mechanism for the RPL packet artifacts that integrates the | A compression mechanism for the RPL packet artifacts that integrates the | |||
| compression of IP-in-IP encapsulation and the Routing Header type 3 | compression of IP-in-IP encapsulation and the Routing Header type 3 | |||
| <xref target='RFC6554'/> | <xref target="RFC6554"/> | |||
| with that of the RPI in a 6LoWPAN dispatch/header type is specified in | with that of the RPI in a 6LoWPAN dispatch/header type is specified in | |||
| <xref target='RFC8025'/> and <xref target='RFC8138'/>. | <xref target="RFC8025"/> and <xref target="RFC8138"/>. | |||
| </t> | ||||
| <t> | ||||
| <!--In a 6TiSCH network, the routing dispatch is the recommended encoding the | ||||
| RPL Packet Information.--> | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='pmhrre'><name>Replication, Retries and Elimination</name> | <section anchor="pmhrre"><name>Replication, Retries, and Elimination</name> | |||
| <t> | <t> | |||
| 6TiSCH supports the PREOF operations of elimination and reordering of packets | 6TiSCH supports the PREOF operations of elimination and reordering of packets | |||
| along a complex Track, but has no requirement about whether a sequence number | along a complex Track, but has no requirement about tagging a sequence number | |||
| is tagged in the packet for that purpose. | in the packet for that purpose. | |||
| With 6TiSCH, the schedule can tell when multiple receive timeslots correspond | With 6TiSCH, the schedule can tell when multiple receive timeslots correspond | |||
| to copies of a same packet, in which case the receiver may avoid listening to | to copies of a same packet, in which case the receiver may avoid listening to | |||
| the extra copies once it had received one instance of the packet. | the extra copies once it has received one instance of the packet. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The semantics of the configuration will enable correlated timeslots to be | The semantics of the configuration enable correlated timeslots to be | |||
| grouped for transmit (and respectively receive) with a 'OR' relations, | grouped for transmit (and receive, respectively) with 'OR' relations, | |||
| and then a 'AND' relation would be configurable between groups. | and then an 'AND' relation can be configurable between groups. | |||
| The semantics is that if the transmit (and respectively receive) operation | The semantics are such that if the transmit (and receive, respectively) opera | |||
| succeeded in one timeslot in a 'OR' group, then all the other timeslots in | tion | |||
| succeeded in one timeslot in an 'OR' group, then all the other timeslots in | ||||
| the group are ignored. | the group are ignored. | |||
| Now, if there are at least two groups, the 'AND' relation between the groups | Now, if there are at least two groups, the 'AND' relation between the groups | |||
| indicates that one operation must succeed in each of the groups. | indicates that one operation must succeed in each of the groups. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| On the transmit side, timeslots provisioned for retries along a same branch | On the transmit side, timeslots provisioned for retries along a same branch | |||
| of a Track are placed a same 'OR' group. The 'OR' relation indicates that if | of a Track are placed in the same 'OR' group. The 'OR' relation indicates tha t if | |||
| a transmission is acknowledged, then retransmissions of that packet should | a transmission is acknowledged, then retransmissions of that packet should | |||
| not be attempted for remaining timeslots in that group. There are as many | not be attempted for the remaining timeslots in that group. There are as many | |||
| 'OR' groups as there are branches of the Track departing from this node. | 'OR' groups as there are branches of the Track departing from this node. | |||
| Different 'OR' groups are programmed for the purpose of replication, each | Different 'OR' groups are programmed for the purpose of replication, each | |||
| group corresponding to one branch of the Track. The 'AND' relation between th e | group corresponding to one branch of the Track. The 'AND' relation between th e | |||
| groups indicates that transmission over any of branches must be attempted | groups indicates that transmission over any of branches must be attempted | |||
| regardless of whether a transmission succeeded in another branch. It is also | regardless of whether a transmission succeeded in another branch. It is also | |||
| possible to place cells to different next-hop routers in a same 'OR' group. | possible to place cells to different next-hop routers in the same 'OR' group. | |||
| This allows to route along multi-path Tracks, trying one next-hop and then | This allows routing along multipath Tracks, trying one next hop and then | |||
| another only if sending to the first fails. | another only if sending to the first fails. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| On the receive side, all timeslots are programmed in a same 'OR' group. | On the receive side, all timeslots are programmed in the same 'OR' group. | |||
| Retries of a same copy as well as converging branches for elimination | Retries of the same copy as well as converging branches for elimination | |||
| are converged, meaning that the first successful reception is enough and that | are converged, meaning that the first successful reception is enough and that | |||
| all the other timeslots can be ignored. A 'AND' group denotes different | all the other timeslots can be ignored. An 'AND' group denotes different | |||
| packets that must all be received and transmitted over the associated | packets that must all be received and transmitted over the associated | |||
| transmit groups within their respected 'AND' or 'OR' rules. | transmit groups within their respected 'AND' or 'OR' rules. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 | |||
| <xref target='figANDORref'/>, and we want to enable PREOF between an ingress | <xref target="figANDORref"/>, and we want to enable PREOF between an ingress | |||
| node I and an egress node E. | node I and an egress node E. | |||
| </t> | </t> | |||
| <figure align='center' anchor='figANDORref'><name>Scheduling PREOF on a Simpl | <figure align="center" anchor="figANDORref"><name>Scheduling PREOF on a Simpl | |||
| e Network</name> | e Network</name> | |||
| <artwork align='center'><![CDATA[ | <artwork align="center"><![CDATA[ | |||
| +-+ +-+ | +-+ +-+ | |||
| -- |A| ------ |C| -- | -- |A| ------ |C| -- | |||
| / +-+ +-+ \ | / +-+ +-+ \ | |||
| / \ | / \ | |||
| +-+ +-+ | +-+ +-+ | |||
| |I| |E| | |I| |E| | |||
| +-+ +-+ | +-+ +-+ | |||
| \ / | \ / | |||
| \ +-+ +-+ / | \ +-+ +-+ / | |||
| -- |B| ------- |D| -- | -- |B| ------- |D| -- | |||
| +-+ +-+ | +-+ +-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| The assumption for this particular problem is | The assumption for this particular problem is | |||
| that a 6TiSCH node has a single radio, so it cannot perform 2 receive and/or | that a 6TiSCH node has a single radio, so it cannot perform two receive and/o | |||
| transmit operations at the same time, even on 2 different channels. | r | |||
| transmit operations at the same time, even on two different channels. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| Say we have 6 possible channels, and at least 10 timeslots per slotframe. | Say we have six possible channels, and at least ten timeslots per slotframe. | |||
| <xref target='figsc'/> shows a possible schedule whereby each transmission | <xref target="figsc"/> shows a possible schedule whereby each transmission | |||
| is retried 2 or 3 times, and redundant copies are forwarded in parallel via | is retried two or three times, and redundant copies are forwarded in parallel | |||
| via | ||||
| A and C on the one hand, and B and D on the other, providing time diversity, | A and C on the one hand, and B and D on the other, providing time diversity, | |||
| spatial diversity though different physical paths, and frequency diversity. | spatial diversity though different physical paths, and frequency diversity. | |||
| </t> | </t> | |||
| <figure anchor='figsc'><name>Example Global Schedule</name> | <figure anchor="figsc"><name>Example Global Schedule</name> | |||
| <artwork align='center'> | <artwork align="center"><![CDATA[ | |||
| <![CDATA[ | ||||
| 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| | | ... | |||
| +----+----+----+----+----+----+----+----+----+ | +----+----+----+----+----+----+----+----+----+ | |||
| ]]> | ]]></artwork> | |||
| </artwork> | ||||
| </figure> | </figure> | |||
| <t> | <t> | |||
| This translates in a different slotframe for every node that provides the | This translates into a different slotframe that provides the | |||
| waking and sleeping times, and the channelOffset to be used when awake. | waking and sleeping times for every node, and the channelOffset to be used wh | |||
| <xref target='figsfA'/> shows the corresponding slotframe for node A. | en awake. | |||
| <xref target="figsfA"/> shows the corresponding slotframe for node A. | ||||
| </t> | </t> | |||
| <figure anchor='figsfA'><name>Example Slotframe for Node A</name> | <figure anchor="figsfA"><name>Example Slotframe for Node A</name> | |||
| <artwork align='center'> | <artwork align="center"><![CDATA[ | |||
| <![CDATA[ | ||||
| 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 | ... | |||
| +----+----+----+----+----+----+----+----+----+ | +----+----+----+----+----+----+----+----+----+ | |||
| ]]> | ]]></artwork> | |||
| </artwork> | ||||
| </figure> | </figure> | |||
| <t> | <t> | |||
| <!-- If, say, node A successfully transmits at slotOffset 2 then it may sleep | ||||
| at | ||||
| slotOffsets 3 and 4. --> | ||||
| The logical relationship between the timeslots is given | The logical relationship between the timeslots is given | |||
| by the following table: | by <xref target="figslog"/>: | |||
| </t> | </t> | |||
| <table anchor="figslog"> | ||||
| <figure anchor='figslog' suppress-title='true'> | <thead> | |||
| <artwork align='center'> | <tr> | |||
| <![CDATA[ | <th align="center">Node</th> | |||
| +------+---------------------+------------------------+ | <th align="center">rcv slotOffset</th> | |||
| | Node | rcv slotOffset | xmit slotOffset | | <th align="center">xmit slotOffset</th> | |||
| +------+---------------------+------------------------+ | </tr> | |||
| | I | N/A | (0 OR 1) AND (2 OR 3) | | </thead> | |||
| | A | (0 OR 1) | (2 OR 3 OR 4) | | <tbody> | |||
| | B | (2 OR 3) | (4 OR 5 OR 6) | | <tr> | |||
| | C | (2 OR 3 OR 4) | (5 OR 6) | | <td align="center">I</td> | |||
| | D | (4 OR 5 OR 6) | (7 OR 8) | | <td align="center">N/A</td> | |||
| | E | (5 OR 6 OR 7 OR 8) | N/A | | <td align="center">(0 OR 1) AND (2 OR 3)</td> | |||
| +------+---------------------+------------------------+ | </tr> | |||
| ]]> | <tr> | |||
| </artwork> | <td align="center">A</td> | |||
| </figure> | <td align="center">(0 OR 1)</td> | |||
| <td align="center">(2 OR 3 OR 4)</td> | ||||
| <!-- | </tr> | |||
| <texttable title="schedule" anchor="schedtable"> | <tr> | |||
| <ttcol>Node</ttcol> | <td align="center">B</td> | |||
| <ttcol align="center"> rcv slotOffset</ttcol> | <td align="center">(2 OR 3)</td> | |||
| <ttcol align="center"> xmit slotOffset</ttcol> | <td align="center">(4 OR 5 OR 6)</td> | |||
| <c>I</c> | </tr> | |||
| <c> N/A </c> | <tr> | |||
| <c> (0 OR 1) AND (2 OR 3) </c> | <td align="center">C</td> | |||
| <c>A</c> | <td align="center">(2 OR 3 OR 4)</td> | |||
| <c> (0 OR 1)</c> | <td align="center">(5 OR 6)</td> | |||
| <c> (2 OR 3 OR 4) </c> | </tr> | |||
| <c>B</c> | <tr> | |||
| <c> (2 OR 3) </c> | <td align="center">D</td> | |||
| <c> (4 OR 5 OR 6) </c> | <td align="center">(4 OR 5 OR 6)</td> | |||
| <c>C</c> | <td align="center">(7 OR 8)</td> | |||
| <c> (2 OR 3 OR 4)</c> | </tr> | |||
| <c> (5 OR 6) </c> | <tr> | |||
| <c>D</c> | <td align="center">E</td> | |||
| <c> (4 OR 5 OR 6) </c> | <td align="center">(5 OR 6 OR 7 OR 8)</td> | |||
| <c> (7 OR 8) </c> | <td align="center">N/A</td> | |||
| <c>E</c> | </tr> | |||
| <c> (5 OR 6 OR 7 OR 8) </c> | </tbody> | |||
| <c> N/A </c> | </table> | |||
| </texttable> | </section> | |||
| --> | ||||
| </section> | ||||
| <!-- <section anchor="pmhds" title="Differentiated Services Per-Hop-Behavior" | ||||
| > --> | ||||
| <!-- <t> --> | ||||
| <!-- A future document could define a PHB for Deterministic Flows, to be indi | ||||
| cated --> | ||||
| <!-- in the IANA registry where IETF-defined PHBs are listed. --> | ||||
| <!-- </t> --> | ||||
| <!-- </section> --> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section><name>IANA Considerations</name> | <section><name>IANA Considerations</name> | |||
| <t> | <t> | |||
| This document does not require IANA action. | This document has no IANA actions. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='sec'><name>Security Considerations</name> | <section anchor="sec"><name>Security Considerations</name> | |||
| <t> | <t> | |||
| The <xref target='I-D.ietf-6tisch-minimal-security'>"Minimal Security | The <xref target="RFC9031">"Minimal Security | |||
| Framework for 6TiSCH"</xref> was optimized for Low-Power and TSCH operations. | Framework for 6TiSCH"</xref> was optimized for Low-Power and TSCH operations. | |||
| The reader is encouraged to review the Security Considerations section of | The reader is encouraged to review the Security Considerations section of | |||
| that document, which discusses 6TiSCH security issues in more details. | that document (Section <xref target="RFC9031" sectionFormat="bare" section="9 | |||
| "/>), | ||||
| which discusses 6TiSCH security issues in more details. | ||||
| </t> | </t> | |||
| <section anchor='det'><name>Availability of Remote Services</name> | <section anchor="det"><name>Availability of Remote Services</name> | |||
| <t> | <t> | |||
| The operation of 6TiSCH Tracks inherits its high level operation from DetNet | The operation of 6TiSCH Tracks inherits its high-level operation from DetNet | |||
| and is subject to the observations in section 5 of | and is subject to the observations in | |||
| <xref target='RFC8655'/>. The installation and the | <xref target="RFC8655" section="5" sectionFormat="of" format="default"/>. T | |||
| maintenance of the 6TiSCH Tracks depends on the availability of a controller | he installation and the | |||
| maintenance of the 6TiSCH Tracks depend on the availability of a controller | ||||
| with a PCE to compute and push them in the network. When that connectivity | with a PCE to compute and push them in the network. When that connectivity | |||
| is lost, existing Tracks may continue to operate until the end of their | is lost, existing Tracks may continue to operate until the end of their | |||
| lifetime, but cannot be removed or updated, and new Tracks cannot be | lifetime, but cannot be removed or updated, and new Tracks cannot be | |||
| installed. | installed. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In a LLN, the communication with a remote PCE may be slow and unreactive to | In an LLN, the communication with a remote PCE may be slow and unreactive to | |||
| rapid changes in the condition of the wireless communication. An attacker | rapid changes in the condition of the wireless communication. An attacker | |||
| may introduce extra delay by selectively jamming some packets or some flows. | may introduce extra delay by selectively jamming some packets or some flows. | |||
| The expectation is that the 6TiSCH Tracks enable enough redundancy to | The expectation is that the 6TiSCH Tracks enable enough redundancy to | |||
| maintain the critical traffic in operation while new routes are calculated | maintain the critical traffic in operation while new routes are calculated | |||
| and programmed into the network. | and programmed into the network. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As with DetNet in general, the communication with the PCE must be secured | As with DetNet in general, the communication with the PCE must be secured | |||
| and should be protected against DoS attacks, including delay injection and | and should be protected against DoS attacks, including delay injection and | |||
| blackholing attacks, and secured as discussed in the security considerations | blackholing attacks, and secured as discussed in the security considerations | |||
| defined for Abstraction and Control of Traffic Engineered Networks (ACTN) in | defined for Abstraction and Control of Traffic Engineered Networks (ACTN) in | |||
| Section 9 of <xref target='RFC8453'/>, which applies equally to DetNet and | <xref target="RFC8453" section="9" sectionFormat="of" format="default"/>, wh ich applies equally to DetNet and | |||
| 6TiSCH. In a similar manner, the communication with the JRC must | 6TiSCH. In a similar manner, the communication with the JRC must | |||
| be secured and should be protected against DoS attacks when possible. | be secured and should be protected against DoS attacks when possible. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='phy'><name>Selective Jamming</name> | <section anchor="phy"><name>Selective Jamming</name> | |||
| <t> | <t> | |||
| The Hopping Sequence of a TSCH network is well-known, meaning that if a | 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 | 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 attack can be performed at the PHY layer without any knowledge of the | This attack can be performed at the PHY layer without any knowledge of the | |||
| Layer-2 keys, and is very hard to detect and diagnose because only one flow | Layer 2 keys, and it is very hard to detect and diagnose because only one fl ow | |||
| is impacted. | is impacted. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='I-D.tiloca-6tisch-robust-scheduling'/> proposes | <xref target="I-D.tiloca-6tisch-robust-scheduling"/> proposes | |||
| a method to obfuscate the hopping sequence and make it harder to perpetrate | a method to obfuscate the hopping sequence and make it harder to perpetrate | |||
| that particular attack. | that particular attack. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='iee'><name>MAC-Layer Security</name> | <section anchor="iee"><name>MAC-Layer Security</name> | |||
| <t> | <t> | |||
| This architecture operates on IEEE Std. 802.15.4 and expects the Link-Layer | This architecture operates on IEEE Std 802.15.4 and expects the link-layer | |||
| security to be enabled at all times between connected devices, except for | security to be enabled at all times between connected devices, except for | |||
| the very first step of the device join process, where a joining device may | the very first step of the device join process, where a joining device may | |||
| need some initial, unsecured exchanges so as to obtain its initial key | need some initial, unsecured exchanges so as to obtain its initial key | |||
| material. In a typical deployment, all joined nodes use the same keys and | material. In a typical deployment, all joined nodes use the same keys, and | |||
| rekeying needs to be global. | rekeying needs to be global. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The 6TISCH Architecture relies on the join process to deny authorization of | The 6TISCH architecture relies on the join process to deny authorization of | |||
| invalid nodes and preserve the integrity of the network keys. A rogue that | invalid nodes and to preserve the integrity of the network keys. A rogue tha | |||
| t | ||||
| managed to access the network can perform a large variety of attacks from | managed to access the network can perform a large variety of attacks from | |||
| DoS to injecting forged packets and routing information. | DoS to injecting forged packets and routing information. | |||
| "Zero-trust" properties would be highly desirable but are mostly not | "Zero-trust" properties would be highly desirable but are mostly not | |||
| available at the time of this writing. <xref target='I-D.ietf-6lo-ap-nd'/> | available at the time of this writing. <xref target="RFC8928"/> | |||
| is a notable exception that protects the ownership of IPv6 addresses and | is a notable exception that protects the ownership of IPv6 addresses and | |||
| prevents a rogue node with L2 access from stealing and injecting traffic | prevents a rogue node with L2 access from stealing and injecting traffic | |||
| on behalf of a legitimate node. | on behalf of a legitimate node. | |||
| </t> | </t> | |||
| <!-- | ||||
| <t> | ||||
| The join protocol can be zero-touch and leverage ANIMA procedures, as | ||||
| detailed in the <xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"> | ||||
| 6tisch Zero-Touch Secure Join protocol</xref>. | ||||
| </t> | ||||
| <t> | ||||
| Alternatively, the join protocol can be one-touch, in which case the pledge | ||||
| is provisioned with a preshared key (PSK), and uses CoJP as specified in | ||||
| <xref target="I-D.ietf-6tisch-minimal-security"/>. | ||||
| </t> | ||||
| --> | ||||
| </section> | </section> | |||
| <section anchor='ts'><name>Time Synchronization</name> | <section anchor="ts"><name>Time Synchronization</name> | |||
| <t> | <t> | |||
| Time Synchronization in TSCH induces another event horizon whereby a node | Time synchronization in TSCH induces another event horizon whereby a node | |||
| will only communicate with another node if they are synchronized within a | will only communicate with another node if they are synchronized within a | |||
| guard time. The pledge discovers the synchronization of the network based | guard time. The pledge discovers the synchronization of the network based | |||
| on the time of reception of the beacon. If an attacker synchronizes a pledge | on the time of reception of the beacon. If an attacker synchronizes a pledge | |||
| outside of the guard time of the legitimate nodes then the pledge will never | outside of the guard time of the legitimate nodes, then the pledge will neve r | |||
| see a legitimate beacon and may not discover the attack. | see a legitimate beacon and may not discover the attack. | |||
| </t> | </t> | |||
| <t>As discussed in <xref target='RFC8655'/>, measures | <t>As discussed in <xref target="RFC8655"/>, measures | |||
| must be taken to protect the time synchronization, and for 6TiSCH this | must be taken to protect the time synchronization, and for 6TiSCH this | |||
| includes ensuring that the Absolute Slot Number (ASN), which is the node's | includes ensuring that the Absolute Slot Number (ASN), which is the node's | |||
| sense of time, is not compromised. Once installed and as long as the node is | sense of time, is not compromised. Once installed and as long as the node is | |||
| synchronized to the network, ASN is implicit in the transmissions. | synchronized to the network, ASN is implicit in the transmissions. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='IEEE802154'>IEEE Std. 802.15.4</xref> specifies that in a TSCH | <xref target="IEEE802154">IEEE Std 802.15.4</xref> specifies that in a TSCH | |||
| network, the nonce that is used for the computation of the Message Integrity | network, the nonce that is used for the computation of the Message Integrity | |||
| Code (MIC) to secure Link-Layer frames is composed of the address | Code (MIC) to secure link-layer frames is composed of the address | |||
| of the source of the frame and of the ASN. The standard assumes that the ASN | of the source of the frame and of the ASN. The standard assumes that the ASN | |||
| is distributed securely by other means. The ASN is not passed explicitly in | is distributed securely by other means. The ASN is not passed explicitly in | |||
| the data frames and does not constitute a complete anti-replay protection. | the data frames and does not constitute a complete anti-replay protection. | |||
| It results that upper layer protocols must provide a way to detect | As a result, upper-layer protocols must provide a way to detect | |||
| duplicates and cope with them. | duplicates and cope with them. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| If the receiver and the sender have a different sense of ASN, the MIC will | If the receiver and the sender have a different sense of ASN, the MIC will | |||
| not validate and the frame will be dropped. In that sense, TSCH induces an | not validate and the frame will be dropped. In that sense, TSCH induces an | |||
| event horizon whereby only nodes that have a common sense of ASN can talk to | event horizon whereby only nodes that have a common sense of ASN can talk to | |||
| one another in an authenticated manner. With 6TiSCH, the pledge discovers a | one another in an authenticated manner. With 6TiSCH, the pledge discovers a | |||
| tentative ASN in beacons from nodes that have already joined the network. | tentative ASN in beacons from nodes that have already joined the network. | |||
| But even if the beacon can be authenticated, the ASN cannot be trusted as it | But even if the beacon can be authenticated, the ASN cannot be trusted as it | |||
| could be a replay by an attacker and thus could announce an ASN that | could be a replay by an attacker, announcing an ASN that | |||
| represents a time in the past. If the pledge uses an ASN that is learned | represents a time in the past. If the pledge uses an ASN that is learned | |||
| from a replayed beacon for an encrypted transmission, a nonce-reuse attack | from a replayed beacon for an encrypted transmission, a nonce-reuse attack | |||
| becomes possible and the network keys may be compromised. | becomes possible, and the network keys may be compromised. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor='asv'><name>Validating ASN</name> | <section anchor="asv"><name>Validating ASN</name> | |||
| <t> | <t> | |||
| 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 (CoJP). | The join protocol used in 6TiSCH is the Constrained Join Protocol (CoJP). | |||
| In the minimal setting defined in | In the minimal setting defined in | |||
| <xref target='I-D.ietf-6tisch-minimal-security'/>, the authentication | <xref target="RFC9031"/>, the authentication | |||
| requires a pre-shared key, based on which a secure session is derived. | requires a pre-shared key, based on which a secure session is derived. | |||
| The CoJP exchange may also be preceded with a zero-touch handshake | The CoJP exchange may also be preceded by a zero-touch handshake | |||
| <xref target='I-D.ietf-6tisch-dtsecurity-zerotouch-join'/> in order | <xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"/> in order | |||
| to enable pledge joining based on certificates and/or inter-domain | to enable pledge joining based on certificates and/or inter-domain | |||
| communication. | communication. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As detailed in <xref target='rflo'/>, | As detailed in <xref target="rflo"/>, | |||
| a Join Proxy (JP) helps the pledge for the join procedure by relaying the | a Join Proxy (JP) helps the pledge with the join procedure by relaying the | |||
| link-scope Join Request over the IP network to a Join Registrar/Coordinator | link-scope Join Request over the IP network to a Join Registrar/Coordinator | |||
| (JRC) that can authenticate the pledge and validate that it is attached to | (JRC) that can authenticate the pledge and validate that it is attached to | |||
| the appropriate network. As a result of the CoJP exchange, the pledge is in | the appropriate network. As a result of the CoJP exchange, the pledge is in | |||
| possession of a Link-Layer material including keys and a short address, and | possession of link-layer material including keys and a short address, and | |||
| if the ASN is known to be correct, all traffic can now be secured using CCM* | if the ASN is known to be correct, all traffic can now be secured using CCM* | |||
| <xref target='CCMstar'/> at the Link-Layer. | <xref target="CCMstar"/> at the link layer. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The authentication steps must be such that they cannot be replayed by an | The authentication steps must be such that they cannot be replayed by an | |||
| attacker, and they must not depend on the tentative ASN being valid. | attacker, and they must not depend on the tentative ASN being valid. | |||
| During the authentication, the keying material that the pledge obtains from | During the authentication, the keying material that the pledge obtains from | |||
| the JRC does not provide protection against spoofed ASN. Once the pledge has | the JRC does not provide protection against spoofed ASN. Once the pledge has | |||
| obtained the keys to use in the network, it may still need to verify the ASN . | obtained the keys to use in the network, it may still need to verify the ASN . | |||
| If the nonce used in the Layer-2 security derives from the extended (MAC-64) | If the nonce used in the Layer 2 security derives from the extended (MAC-64) | |||
| address, then replaying the ASN alone cannot enable a nonce-reuse attack | address, then replaying the ASN alone cannot enable a nonce-reuse attack | |||
| unless the same node is lost its state with a previous ASN. But | unless the same node has lost its state with a previous ASN. But | |||
| if the nonce derives from the short address (e.g., assigned by the JRC) then | if the nonce derives from the short address (e.g., assigned by the JRC), the | |||
| n | ||||
| the JRC must ensure that it never assigns short addresses that were already | the JRC must ensure that it never assigns short addresses that were already | |||
| given to this or other nodes with the same keys. In other words, the network | given to this or other nodes with the same keys. In other words, the network | |||
| must be rekeyed before the JRC runs out of short addresses. | must be rekeyed before the JRC runs out of short addresses. | |||
| </t> | </t> | |||
| <!--t> | ||||
| Once the node obtains the keys from the JRC, an additional step may be | ||||
| required to ensure that the ASN is correct before encrypting any message. | ||||
| If the ASN is not guaranteed to be correct by other means, the pledge should | ||||
| perform a non-replayable exchange (e.g., using a nonce in the payload that | ||||
| does not derive from ASN) with a peer node that is trusted and has already | ||||
| joined (e.g., the JP or a RPL time parent). The request by the pledge should | ||||
| not be encrypted at the Link-Layer but only authenticated to avoid | ||||
| nonce-replay attacks. A successful authenticated exchange proves a common | ||||
| sense of ASN and encrypted traffic can now happen. | ||||
| </t--> | ||||
| </section> | </section> | |||
| <section anchor='keying'><name>Network Keying and Rekeying</name> | <section anchor="keying"><name>Network Keying and Rekeying</name> | |||
| <t> | <t> | |||
| <xref target='rflo'/> provides an overview of the CoJP process described i | <xref target="rflo"/> provides an overview of the CoJP process described i | |||
| n | n | |||
| <xref target='I-D.ietf-6tisch-minimal-security'/> by which an LLN | <xref target="RFC9031"/> by which an LLN | |||
| can be assembled in the field, having been provisioned in a lab. | can be assembled in the field, having been provisioned in a lab. | |||
| <xref target='I-D.ietf-6tisch-dtsecurity-zerotouch-join'/> is future | <xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"/> is future | |||
| work that preceeds and then leverages the CoJP protocol using the | work that precedes and then leverages CoJP using the | |||
| <xref target='I-D.ietf-anima-constrained-voucher'/> constrained profile | <xref target="I-D.ietf-anima-constrained-voucher"/> constrained profile | |||
| of <xref target='I-D.ietf-anima-bootstrapping-keyinfra'/> (BRSKI). | of <xref target="RFC8995"/>. | |||
| This later work requires a yet-to-be standardized Lighweight Authenticated | This later work requires a yet-to-be standardized Lightweight Authenticate | |||
| d | ||||
| Key Exchange protocol. | Key Exchange protocol. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 with <xref target='IEEE802154'/> security. The details of us | is to be used with <xref target="IEEE802154"/> security. The details of us | |||
| e are | e are | |||
| described in <xref target='I-D.ietf-6tisch-minimal-security'/> sections | described in <xref target="RFC9031"/>, Sections <xref target="RFC9031" sec | |||
| 9.2 and 9.3.2. | tion="9.2" sectionFormat="bare" format="default"/> | |||
| and <xref target="RFC9031" section="9.3.2" sectionFormat="bare" format="de | ||||
| fault"/>. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| The BRSKI mechanism may lead to the use of the CoJP protocol, in which cas e | The BRSKI mechanism may lead to the use of CoJP, in which case | |||
| it also results in distribution of a network-wide key. Alternatively | it also results in distribution of a network-wide key. Alternatively | |||
| the BRSKI mechanism may be followed by use of <xref target='I-D.ietf-ace-c oap-est'/> | the BRSKI mechanism may be followed by use of <xref target="I-D.ietf-ace-c oap-est"/> | |||
| to enroll certificates for each device. In that case, the certificates | to enroll certificates for each device. In that case, the certificates | |||
| may be used with an <xref target='IEEE802154'/> key agreement protocol. T | may be used with an <xref target="IEEE802154"/> key agreement protocol. T | |||
| he | he | |||
| description of this mechanism, while conceptually straight forward still | description of this mechanism, while conceptually straightforward, still | |||
| has significant standardization hurdles to pass. | has significant standardization hurdles to pass. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='I-D.ietf-6tisch-minimal-security'/> section 9.2 describes | <xref target="RFC9031" section="8.2" sectionFormat="of" format="default"/> describes | |||
| a mechanism to change (rekey) the network. | a mechanism to change (rekey) the network. | |||
| There are a number of reasons to initiate a network rekey: to remove | There are a number of reasons to initiate a network rekey: to remove | |||
| unwanted (corrupt/malicious) nodes, to recover unused 2-byte short | unwanted (corrupt/malicious) nodes, to recover unused 2-byte short | |||
| addresses, or due to limits in encryption algorithms. | addresses, or due to limits in encryption algorithms. | |||
| For all of the mechanisms that distribute a network-wide key, rekeying | For all of the mechanisms that distribute a network-wide key, rekeying | |||
| is also needed on a periodic basis. In more details: | is also needed on a periodic basis. In more detail: | |||
| </t> | </t> | |||
| <t></t><ul spacing='normal'> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| The mechanism described in | The mechanism described in | |||
| <xref target='I-D.ietf-6tisch-minimal-security'/> section 9.2 requires | <xref target="RFC9031" section="8.2" sectionFormat="of" format="default"/> requires | |||
| advance communication between the JRC and every one of the nodes before | advance communication between the JRC and every one of the nodes before | |||
| the key change. Given that many nodes may be sleepy, this operation | the key change. Given that many nodes may be sleepy, this operation | |||
| may take a significant amount of time, and may consume a significant | may take a significant amount of time and may consume a significant | |||
| portion of the available bandwidth. As such, network-wide rekeys in | portion of the available bandwidth. As such, network-wide rekeys | |||
| order to exclude nodes that have become malicious will not be | to exclude nodes that have become malicious will not be | |||
| particularly quick. If a rekey is already in progress, but the | particularly quick. If a rekey is already in progress, but the | |||
| unwanted node has not yet been updated, then it is possible to to just | unwanted node has not yet been updated, then it is possible to just | |||
| continue the operation. If the unwanted node has already received the | continue the operation. If the unwanted node has already received the | |||
| update, then the rekey operation will need to be restarted. | update, then the rekey operation will need to be restarted. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| The cryptographic mechanisms used by IEEE Std. 802.15.4 include the 2-byte | The cryptographic mechanisms used by IEEE Std 802.15.4 include the 2-byte | |||
| short address in the calculation of the context. | short address in the calculation of the context. | |||
| A nonce-reuse attack may become feasible if a short address is reassigned | A nonce-reuse attack may become feasible if a short address is reassigned | |||
| to another node while the same network-wide keys are in operation. | to another node while the same network-wide keys are in operation. | |||
| A network that gains and loses nodes on a regular | A network that gains and loses nodes on a regular | |||
| basis is likely to reach the 65536 limit of the 2-byte (16-bit) short | basis is likely to reach the 65536 limit of the 2-byte (16-bit) short | |||
| addresses, even if the network has only a few thousand nodes. Network | addresses, even if the network has only a few thousand nodes. Network | |||
| planners should consider the need to rekey the network on a periodic | planners should consider the need to rekey the network on a periodic | |||
| basis in order to recover 2-byte addresses. The rekey can update the | basis in order to recover 2-byte addresses. The rekey can update the | |||
| short addresses for active nodes if desired, but there is actually no | short addresses for active nodes if desired, but there is actually no | |||
| need to do this as long as the key has been changed. | need to do this as long as the key has been changed. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| With TSCH as it stands at the time of this writing, the ASN will wrap | 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 values around | after 2^40 timeslot durations, meaning around 350 years with the default v | |||
| 350 years. Wrapping ASN is not expected to happen within the lifetime of | alues. | |||
| Wrapping ASN is not expected to happen within the lifetime of | ||||
| most LLNs. Yet, should the ASN wrap, the network must be rekeyed to avoid | most LLNs. Yet, should the ASN wrap, the network must be rekeyed to avoid | |||
| a nonce-reuse attack. | a nonce-reuse attack. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| Many cipher algorithms have some suggested limits on how many bytes | Many cipher algorithms have some suggested limits on how many bytes | |||
| should be encrypted with that algorithm before a new key is used. | should be encrypted with that algorithm before a new key is used. | |||
| These numbers are typically in the many to hundreds of gigabytes of | These numbers are typically in the many to hundreds of gigabytes of | |||
| data. On very fast backbone networks this becomes an important | data. On very fast backbone networks, this becomes an important | |||
| concern. On LLNs with typical data rates in the kilobits/second, | concern. On LLNs with typical data rates in the kilobits/second, | |||
| this concern is significantly less. With IEEE Std. 802.15.4 as it stands | this concern is significantly less. With IEEE Std 802.15.4 as it stands | |||
| at the time of this writing, the ASN will wrap before the limits of the | at the time of this writing, the ASN will wrap before the limits of the | |||
| current L2 crypto (AES-CCM-128) are reached, so the problem should never | current L2 crypto (AES-CCM-128) are reached, so the problem should never | |||
| occur. | occur. | |||
| </li> | </li> | |||
| <li> | <li> | |||
| In any fashion, if the LLN is expected to operate continuously for decades | In any fashion, if the LLN is expected to operate continuously for decades , | |||
| then the operators are advised to plan for the need to rekey. | then the operators are advised to plan for the need to rekey. | |||
| </li> | </li> | |||
| </ul><t> | </ul> | |||
| </t> | ||||
| <t> | <t> | |||
| Except for urgent rekeys caused by malicious nodes, the rekey operation | Except for urgent rekeys caused by malicious nodes, the rekey operation | |||
| described in <xref target='I-D.ietf-6tisch-minimal-security'/> | described in <xref target="RFC9031"/> | |||
| can be done as a background task and can be done incrementally. It | can be done as a background task and can be done incrementally. It | |||
| is a make-before-break mechanism. The switch over to the new key is | is a make-before-break mechanism. The switch over to the new key is | |||
| not signaled by time, but rather by observation that the new key is in | not signaled by time, but rather by observation that the new key is in | |||
| use. As such, the update can take as long as needed, or occur in as | use. As such, the update can take as long as needed, or occur in as | |||
| short a time as practical. | short a time as practical. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section><name>Acknowledgments</name> | ||||
| <section><name>Contributors</name> | ||||
| <t>The co-authors of this document are listed below: | ||||
| </t><dl spacing='normal'> | ||||
| <dt>Thomas Watteyne</dt><dd> | ||||
| for his contribution to the whole design, in particular on TSCH and se | ||||
| curity, | ||||
| and to the open source community with openWSN that he created. | ||||
| </dd> | ||||
| <dt>Xavier Vilajosana</dt><dd> | ||||
| 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; | ||||
| </dd> | ||||
| <dt>Kris Pister</dt><dd> | ||||
| for creating TSCH and his continuing guidance through the elaboration | ||||
| of this design; | ||||
| </dd> | ||||
| <dt>Malisa Vucinic</dt><dd> | ||||
| for the work on the one-touch join process and his contribution to the | ||||
| Security Design Team; | ||||
| </dd> | ||||
| <dt>Michael Richardson</dt><dd> | ||||
| for his leadership role in the Security Design Team and his | ||||
| contribution throughout this document; | ||||
| </dd> | ||||
| <dt>Tero Kivinen</dt><dd> | ||||
| for his contribution to the security work in general and the security | ||||
| section in particular. | ||||
| </dd> | ||||
| <dt>Maria Rita Palattella</dt><dd> | ||||
| for managing the Terminology document merged into this through the work | ||||
| of 6TiSCH; | ||||
| </dd> | ||||
| <dt>Simon Duquennoy</dt><dd> | ||||
| for his contribution to the open source community with the 6TiSCH | ||||
| implementaton of contiki, and for his contribution to MSF and | ||||
| autonomous unicast cells. | ||||
| </dd> | ||||
| <dt>Qin Wang</dt><dd> | ||||
| who lead the design of the 6top sublayer and contributed related text | ||||
| that was moved and/or adapted in this document; | ||||
| </dd> | ||||
| <dt>Rene Struik</dt><dd> | ||||
| for the security section and his contribution to the Security Design | ||||
| Team; | ||||
| </dd> | ||||
| <dt>Robert Assimiti</dt><dd> | ||||
| for his breakthrough work on RPL over TSCH and initial text and | ||||
| guidance; | ||||
| </dd> | ||||
| </dl><t> | ||||
| </t> | ||||
| </section> | ||||
| <section><name>Special Thanks</name><t> | ||||
| 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. | ||||
| </t><t> | ||||
| 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. | ||||
| </t> <t> | ||||
| 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. | ||||
| </t><t> | ||||
| 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. | ||||
| </t> | ||||
| </section> | ||||
| <section><name>And Do not Forget</name> | ||||
| <t>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. | ||||
| </t><t> | ||||
| 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 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. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <displayreference target="I-D.ietf-6tisch-minimal-security" to | <displayreference target="I-D.ietf-roll-rpl-industrial-applicability" to="RPL-AP | |||
| ="MIN-SECURITY"/> | PLICABILITY"/> | |||
| <displayreference target="I-D.ietf-6lo-backbone-router" to="6B | <displayreference target="I-D.ietf-6tisch-dtsecurity-zerotouch-join" to="ZEROTOU | |||
| BR-DRAFT"/> | CH-JOIN"/> | |||
| <displayreference target="I-D.ietf-6lo-fragment-recovery" to=" | <displayreference target="I-D.ietf-manet-aodvv2" to="AODVv2"/> | |||
| RECOV-FRAG"/> | <displayreference target="I-D.ietf-roll-aodv-rpl" to="AODV-RPL"/> | |||
| <displayreference target="I-D.ietf-6lo-minimal-fragment" to="M | <displayreference target="I-D.ietf-lwig-6lowpan-virtual-reassembly" to="VIRTUAL- | |||
| IN-FRAG"/> | REASSEMBLY"/> | |||
| <displayreference target="I-D.ietf-6lo-ap-nd" to="AP-ND"/> | <displayreference target="I-D.ietf-roll-dao-projection" to="DAO-PROJECTION"/> | |||
| <displayreference target="I-D.ietf-roll-useofrplinfo" to="USEo | <displayreference target="I-D.ietf-roll-capabilities" to="RPL-MOP"/> | |||
| fRPLinfo"/> | <displayreference target="I-D.selander-ace-cose-ecdhe" to="EDHOC"/> | |||
| <displayreference target="I-D.ietf-roll-unaware-leaves" to="RU | <displayreference target="I-D.thubert-roll-bier" to="RPL-BIER"/> | |||
| L-DRAFT"/> | <displayreference target="I-D.thubert-bier-replication-elimination" to="TE-PREF" | |||
| <displayreference target="I-D.ietf-6tisch-enrollment-enhanced-beacon" | /> | |||
| to="ENH-BEACON"/> | <displayreference target="I-D.thubert-6lo-bier-dispatch" to="BITSTRINGS-6LORH"/> | |||
| <displayreference target="I-D.ietf-6tisch-msf" to="MSF"/> | <displayreference target="I-D.thubert-6man-unicast-lookup" to="ND-UNICAST-LOOKUP | |||
| <references><name>Normative References</name> | "/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <displayreference target="I-D.pthubert-raw-architecture" to="RAW-ARCHITECTURE"/> | |||
| ce.RFC.0768.xml'/> <!-- Internet Protocol, Version 6 (IPv6) Specification --> | <displayreference target="I-D.tiloca-6tisch-robust-scheduling" to="ROBUST-SCHEDU | |||
| <!-- <?rfc include="reference.RFC.2119"?> Key words for use in RFCs to Ind | LING"/> | |||
| icate Requirement Levels --> | <displayreference target="I-D.ietf-ace-coap-est" to="EST-COAPS"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <displayreference target="I-D.ietf-anima-constrained-voucher" to="CONSTRAINED-VO | |||
| ce.RFC.4861.xml'/> <!-- neighbor Discovery for IP version 6 (IPv6) --> | UCHER"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <displayreference target="I-D.ietf-raw-use-cases" to="RAW-USE-CASES"/> | |||
| ce.RFC.4862.xml'/> <!-- IPv6 Stateless Address Autoconfiguration --> | <references> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <name>References</name> | |||
| ce.RFC.4944.xml'/> <!-- 6LoWPAN --> | <references> | |||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.0768.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.4861.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.4862.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.4944.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6282.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6550.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6551.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6552.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6553.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6554.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6775.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7252.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8025.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8137.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8138.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8180.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8200.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8480.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8453.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8505.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7102.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7554.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7228.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.5889.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8655.xml"/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <reference anchor="RFC9031" target="https://www.rfc-editor.org/info/rfc9031"> | |||
| ce.RFC.6282.xml'/> <!-- Compression Format for IPv6 Datagrams over IEEE 802.15.4 | <front> | |||
| -Based Networks --> | <title>Constrained Join Protocol (CoJP) for 6TiSCH</title> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <author initials="M" surname="Vučinić" fullname=" Mališa Vučinić" role="edit | |||
| ce.RFC.6550.xml'/> <!-- RPL: IPv6 Routing Protocol for Low-Power and Lossy Netwo | or"> | |||
| rks --> | <organization/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | </author> | |||
| ce.RFC.6551.xml'/> <!-- Routing Metrics Used for Path Calculation in LLNs --> | <author initials="J" surname="Simon" fullname="Jonathan Simon"> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <organization/> | |||
| ce.RFC.6552.xml'/> <!-- RPL OF0: Objective Function Zero for RPL--> | </author> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <author initials="K" surname="Pister" fullname="Kris Pister"> | |||
| ce.RFC.6553.xml'/> <!-- RPL Option for Carrying RPL Information in Data-Plane Da | <organization/> | |||
| tagrams --> | </author> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <author initials="M" surname="Richardson" fullname="Michael Richardson"> | |||
| ce.RFC.6554.xml'/> <!-- An IPv6 Routing Header for Source Routes with RPL --> | <organization/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | </author> | |||
| ce.RFC.6775.xml'/> <!-- neighbor Discovery Optimization for IPv6 over Low-Power | <date month="May" year="2021"/> | |||
| Wireless Personal Area Networks (6LoWPANs) --> | </front> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <seriesInfo name="RFC" value="9031"/> | |||
| ce.RFC.7252.xml'/> <!-- CoAP --> | <seriesInfo name="DOI" value="10.17487/RFC9031"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | </reference> | |||
| ce.RFC.8025.xml'/> <!-- 6LoRH coding dispatch--> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8137.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8138.xml'/> <!-- 6LoRH routing dispatch--> | ||||
| <!-- <?rfc include='reference.RFC.8174'?> Ambiguity of Uppercase vs Lower | ||||
| case in RFC 2119 Key Words--> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8180.xml'/> <!-- 6TiSCH minimal --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8200.xml'/> <!-- Internet Protocol, Version 6 (IPv6) Specification --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8480.xml'/> <!-- 6top protocol --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8453.xml'/> <!-- ACTN --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8505.xml'/> <!-- RFC6775 update --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.7102.xml'/> <!-- Terms Used in Routing for Low-Power and Lossy Networks - | .8929.xml"/> | |||
| -> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7554.xml'/> <!-- 6TiSCH TSCH --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7228.xml'/> <!-- Terminology for Constrained-Node Networks --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.5889.xml'/> <!-- IP Addressing Model in Ad Hoc Networks --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8655.xml'/> <!-- DetNet Architecture --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| nce.I-D.ietf-6tisch-minimal-security.xml'/> | .8931.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-6lo-backbone-router.xml'/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | .8930.xml"/> | |||
| nce.I-D.ietf-6lo-fragment-recovery.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| nce.I-D.ietf-6lo-minimal-fragment.xml'/> | .8928.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-6lo-ap-nd.xml'/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | .9008.xml"/> | |||
| nce.I-D.ietf-roll-useofrplinfo.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| nce.I-D.ietf-roll-unaware-leaves.xml'/> | .9010.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-6tisch-enrollment-enhanced-beacon.xml'/> | <reference anchor="RFC9032" target="https://www.rfc-editor.org/info/rfc9032"> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <front> | |||
| nce.I-D.ietf-6tisch-msf.xml'/> | <title>Encapsulation of 6TiSCH Join and Enrollment Information Elements</tit | |||
| le> | ||||
| <author initials="D" surname="Dujovne" fullname="Diego Dujovne" role="editor | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M" surname="Richardson" fullname="Michael Richardson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9032"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9032"/> | ||||
| </reference> | ||||
| <reference anchor="RFC9033" target="https://www.rfc-editor.org/info/rfc9033"> | ||||
| <front> | ||||
| <title>6TiSCH Minimal Scheduling Function (MSF)</title> | ||||
| <author initials="T" surname="Chang" fullname="Tengfei Chang" role="editor"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M" surname="Vučinić" fullname="Mališa Vučinić"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="X" surname="Vilajosana" fullname="Xavier Vilajosana"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Duquennoy" fullname="Simon Duquennoy"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Dujovne" fullname="Diego Dujovne"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9033"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9033"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <references><name>Informative References</name> | <references><name>Informative References</name> | |||
| <!-- <?rfc include="reference.RFC.6620"?> FCFS SAVI: First-Come, First-Se | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| rved Source Address Validation --> | .5340.xml"/> | |||
| <!--?rfc include="reference.RFC.6655"?--> <!-- AES-CCM Cipher Suites for | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| Transport Layer Security (TLS) --> | .6275.xml"/> | |||
| <!--?rfc include="reference.RFC.5191"?--> <!-- Protocol for Carrying Authe | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ntication for Network Access (PANA) --> | .2474.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.5340.xml'/> <!-- OSPF for IPv6 --> | .2545.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.6275.xml'/> <!-- Mobility Support in IPv6 --> | .3963.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.2474.xml'/> <!-- Differentiated Services Field --> | .3209.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.2545.xml'/> <!-- BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Rou | .4291.xml"/> | |||
| ting --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | .3444.xml"/> | |||
| ce.RFC.3963.xml'/> <!-- Network Mobility (NEMO) --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <!-- <?rfc include="reference.RFC.3972"?> CGA --> | .4080.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.3209.xml'/> <!-- RSVP TE --> | .4919.xml"/> | |||
| <!-- <?rfc include="reference.RFC.3971"?> SEcure Neighbor Discovery (SEND) | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| --> | .4903.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.4291.xml'/> <!-- IP Version 6 Addressing Architecture --> | .5974.xml"/> | |||
| <!-- <?rfc include="reference.RFC.4429"?> IP Version 6 Optimistic DAD --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | .6347.xml"/> | |||
| ce.RFC.3444.xml'/> <!-- On the Difference between Information Models and Data Mo | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| dels --> | .6830.xml"/> | |||
| <!-- <?rfc include="reference.RFC.3610"?> Counter with CBC-MAC (CCM) --> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| <!-- 6TiSCH --> | .7426.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | |||
| ce.RFC.4080.xml'/> <!-- Next Steps in Signaling (NSIS): Framework --> | .6606.xml"/> | |||
| <!-- <?rfc include="reference.RFC.4389"?> IP Version 6 ND Proxy --> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <reference anchor="I-D.ietf-roll-rpl-industrial-applicability"> | |||
| ce.RFC.4919.xml'/> <!-- IPv6 over Low-Power Wireless Personal Area Networks --> | <front> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <title>RPL applicability in industrial networks</title> | |||
| ce.RFC.4903.xml'/> <!-- IPv6 Multi-Link Subnet Issues --> | <author fullname="Tom Phinney" role="editor"> </author> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | <author fullname="Pascal Thubert"> </author> | |||
| ce.RFC.5974.xml'/> <!-- NSIS Signaling Layer Protocol (NSLP) for Quality-of-Serv | <author fullname="Robert Assimiti"> </author> | |||
| ice Signaling --> | <date month="October" day="21" year="2013"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | </front> | |||
| ce.RFC.6347.xml'/> <!-- Datagram Transport Layer Security Version 1.2 --> | <seriesInfo name="Internet-Draft" value="draft-ietf-roll-rpl-industrial-applicab | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refere | ility-02"/> | |||
| nce.RFC.6830.xml'/> <!-- The Locator/ID Separation Protocol (LISP) --> | </reference> | |||
| <!--?rfc include="reference.RFC.6997"?--> <!-- Reactive Discovery of Poin | ||||
| t-to-Point Routes in Low-Power and Lossy Networks --> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | etf-6tisch-dtsecurity-zerotouch-join.xml"/> | |||
| ce.RFC.7426.xml'/> <!-- Software-Defined Networking (SDN): Layers and Architectu | ||||
| re Terminology --> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ce.RFC.8613.xml"/> | |||
| ce.RFC.6606.xml'/> <!-- Problem Statement and Requirements for 6LoWPAN Routing - | ||||
| -> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | |||
| <!-- others --> | etf-manet-aodvv2.xml"/> | |||
| <!--?rfc include='reference.I-D.ietf-ipv6-Multi-Link-subnets'?--> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| nce.I-D.ietf-roll-rpl-industrial-applicability.xml'/> | ce.RFC.8578.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-6tisch-dtsecurity-zerotouch-join.xml'/> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ce.RFC.8939.xml"/> | |||
| nce.I-D.ietf-core-object-security.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| nce.I-D.ietf-manet-aodvv2.xml'/> | ce.RFC.8995.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8578.xml'/> <!-- Deterministic Networking Use Cases --> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | etf-roll-aodv-rpl.xml"/> | |||
| nce.I-D.ietf-detnet-ip.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | |||
| nce.I-D.ietf-anima-bootstrapping-keyinfra.xml'/> | etf-lwig-6lowpan-virtual-reassembly.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-roll-aodv-rpl.xml'/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | etf-roll-dao-projection.xml"/> | |||
| nce.I-D.ietf-lwig-6lowpan-virtual-reassembly.xml'/> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <reference anchor="I-D.ietf-roll-capabilities"> | |||
| nce.I-D.ietf-roll-dao-projection.xml'/> | <front> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <title>RPL Capabilities</title> | |||
| nce.I-D.rahul-roll-mop-ext.xml'/> | <author initials="R" surname="Jadhav" fullname="Rahul Arvind Jadhav" role= | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | "editor"> </author> | |||
| nce.I-D.selander-ace-cose-ecdhe.xml'/> | <author fullname="Pascal Thubert"> | |||
| <!-- <?rfc include='reference.I-D.svshah-tsvwg-lln-diffserv-recommendation | <organization>Cisco Systems, Inc</organization> | |||
| s'?> --> | </author> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <author fullname="Michael Richardson"> | |||
| nce.I-D.thubert-roll-bier.xml'/> | <organization>Sandelman Software Works</organization> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | </author> | |||
| nce.I-D.thubert-bier-replication-elimination.xml'/> | <author initials="R" surname="Sahoo" fullname="Rabi Narayan Sahoo"> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <organization>Juniper</organization> | |||
| nce.I-D.thubert-6lo-bier-dispatch.xml'/> | </author> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <date month="March" day="17" year="2021"/> | |||
| nce.I-D.thubert-6man-unicast-lookup.xml'/> | </front> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <seriesInfo name="Internet-Draft" value="draft-ietf-roll-capabilities-08"/> | |||
| nce.I-D.pthubert-raw-problem-statement.xml'/> | </reference> | |||
| <!--?rfc include='reference.I-D.bernardos-raw-use-cases'?--> | ||||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.s | |||
| nce.I-D.tiloca-6tisch-robust-scheduling.xml'/> | elander-ace-cose-ecdhe.xml"/> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | ||||
| nce.I-D.ietf-ace-coap-est.xml'/> | <reference anchor="I-D.thubert-roll-bier"> | |||
| <xi:include href='https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refere | <front> | |||
| nce.I-D.ietf-anima-constrained-voucher.xml'/> | <title>RPL-BIER</title> | |||
| <reference anchor='IEEE802154'> | <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="edito | |||
| <front> | r"> | |||
| <title>IEEE Std. 802.15.4, Part. 15.4: Wireless Medium Access | <organization/> | |||
| Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate | </author> | |||
| Wireless Personal Area Networks | <date month="July" day="24" year="2018"/> | |||
| </title> | </front> | |||
| <seriesInfo name="Internet-Draft" value="draft-thubert-roll-bier-02"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.thubert-bier-replication-elimination"> | ||||
| <front> | ||||
| <title>BIER-TE extensions for Packet Replication and Elimination Function (P | ||||
| REF) and OAM</title> | ||||
| <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="edito | ||||
| r"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="T" surname="Eckert" fullname="Toerless Eckert"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="Z" surname="Brodard" fullname="Zacharie Brodard"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Jiang" fullname="Hao Jiang"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" day="3" year="2018"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-thubert-bier-replication-elimin | ||||
| ation-03"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.thubert-6lo-bier-dispatch"> | ||||
| <front> | ||||
| <title>A 6loRH for BitStrings</title> | ||||
| <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="edito | ||||
| r"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="Z" surname="Brodard" fullname="Zacharie Brodard"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Jiang" fullname="Hao Jiang"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="G" surname="Texier" fullname="Geraldine Texier"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" day="28" year="2019"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-thubert-6lo-bier-dispatch-06"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.thubert-6man-unicast-lookup"> | ||||
| <front> | ||||
| <title>IPv6 Neighbor Discovery Unicast Lookup</title> | ||||
| <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="edito | ||||
| r"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="E" surname="Levy-Abegnoli" fullname="Eric Levy-Abegnoli"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="July" day="29" year="2019"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-thubert-6man-unicast-lookup-00" | ||||
| /> | ||||
| </reference> | ||||
| <reference anchor="I-D.pthubert-raw-architecture"> | ||||
| <front> | ||||
| <title>Reliable and Available Wireless Problem Statement</title> | ||||
| <author initials="P" surname="Thubert" fullname="Pascal Thubert" role="edito | ||||
| r"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="G. Z." surname="Papadopoulos" fullname="Georgios Papadopou | ||||
| los"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="November" day="15" year="2020"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-pthubert-raw-architecture-05"/> | ||||
| </reference> | ||||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.t | ||||
| iloca-6tisch-robust-scheduling.xml"/> | ||||
| <reference anchor="I-D.ietf-ace-coap-est"> | ||||
| <front> | ||||
| <title>EST over secure CoAP (EST-coaps)</title> | ||||
| <author initials="P" surname="van der Stok" fullname="Peter van der Stok"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Kampanakis" fullname="Panos Kampanakis"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="M" surname="Richardson" fullname="Michael Richardson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="S" surname="Raza" fullname="Shahid Raza"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" day="6" year="2020"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-18"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-anima-constrained-voucher" target="https://tools.iet | ||||
| f.org/html/draft-ietf-anima-constrained-voucher-10"> | ||||
| <front> | ||||
| <title>Constrained Voucher Artifacts for Bootstrapping Protocols</title> | ||||
| <author initials="M" surname="Richardson" fullname="Michael Richardson"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="van der Stok" fullname="Peter van der Stok"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Kampanakis" fullname="Panos Kampanakis"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="February" day="21" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher- | ||||
| 10"/> | ||||
| </reference> | ||||
| <reference anchor="IEEE802154" | ||||
| target="https://ieeexplore.ieee.org/document/7460875"> | ||||
| <front> | ||||
| <title>IEEE Standard for Low-Rate Wireless Networks</title> | ||||
| <author> | <author> | |||
| <organization>IEEE standard for Information Technology</organizat ion> | <organization>IEEE</organization> | |||
| </author> | </author> | |||
| <date/> | <date month="April" year="2016"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEEE Standard" value="802.15.4-2015"/> | ||||
| <seriesInfo name="DOI" value="10.1109/IEEESTD.2016.7460875"/> | ||||
| </reference> | </reference> | |||
| <reference anchor='CCMstar' target='www.ieee802.org/15/pub/2004/15-04-0537 -00-004b-formal-specification-ccm-star-mode-operation.doc'> | <reference anchor="CCMstar" target="http://www.ieee802.org/15/pub/2004/15- 04-0537-00-004b-formal-specification-ccm-star-mode-operation.doc"> | |||
| <front> | <front> | |||
| <title> | <title>Formal Specification of the CCM* Mode of Operation</title> | |||
| Formal Specification of the CCM* Mode of Operation | <author fullname="Rene Struik"> | |||
| </title> | <organization>IEEE</organization> | |||
| <author fullname='Rene Struik'> | ||||
| <organization>IEEE standard for Information Technology</organizat | ||||
| ion> | ||||
| </author> | </author> | |||
| <date month='September' year='2004'/> | <date month="September" year="2004"/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='IEEE802154e'> | ||||
| <reference anchor="IEEE802154e" | ||||
| target="https://ieeexplore.ieee.org/document/6185525"> | ||||
| <front> | <front> | |||
| <title>IEEE standard for Information Technology, IEEE Std. | <title>IEEE Standard for Local and metropolitan area networks -- Par | |||
| 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) | t. 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs) Amendment 1: MAC su | |||
| and Physical Layer (PHY) Specifications for Low-Rate | blayer | |||
| 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 | ||||
| </title> | </title> | |||
| <author> | <author> | |||
| <organization>IEEE standard for Information Technology</organizat ion> | <organization>IEEE</organization> | |||
| </author> | </author> | |||
| <date month='April' year='2012'/> | <date month="April" year="2012"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEEE Standard" value="802.15.4e-2012"/> | ||||
| <seriesInfo name="DOI" value="10.1109/IEEESTD.2012.6185525"/> | ||||
| </reference> | </reference> | |||
| <!--reference anchor="IEEE802.1TSNTG" target="http://www.ieee802.org/1/pag | ||||
| es/avbridges.html"> | <reference anchor="WirelessHART" target="https://webstore.iec.ch/publicati | |||
| <front> | on/24433"> | |||
| <title>IEEE 802.1 Time-Sensitive Networks Task Group</title> | ||||
| <author> | ||||
| <organization>IEEE Standards Association</organization> | ||||
| </author> | ||||
| <date day="08" month="March" year="2013" /> | ||||
| </front> | ||||
| </reference--> | ||||
| <reference anchor='WirelessHART'> | ||||
| <front> | <front> | |||
| <title>Industrial Communication Networks - Wireless Communication Ne twork and Communication Profiles - WirelessHART - IEC 62591</title> | <title>Industrial networks - Wireless communication network and comm unication profiles - WirelessHART(TM)</title> | |||
| <author> | <author> | |||
| <organization>www.hartcomm.org</organization> | <organization>International Electrotechnical Commission</organiza tion> | |||
| </author> | </author> | |||
| <date year='2010'/> | <date month="March" year="2016"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEC" value="62591:2016"/> | ||||
| </reference> | </reference> | |||
| <reference anchor='HART'> | ||||
| <reference anchor="HART" target="https://fieldcommgroup.org/technologies/h | ||||
| art"> | ||||
| <front> | <front> | |||
| <title>Highway Addressable remote Transducer, a group of specificati ons for industrial process and control devices administered by the HART Foundati on</title> | <title>HART</title> | |||
| <author> | <author> | |||
| <organization>www.hartcomm.org</organization> | <organization>FieldComm Group</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='ISA100.11a' target='http://www.isa.org/Community/SP100W | ||||
| irelessSystemsforAutomation'> | <reference anchor="ISA100.11a" target="https://webstore.iec.ch/publication | |||
| /65581"> | ||||
| <front> | <front> | |||
| <title>Wireless Systems for Industrial Automation: Process Control a nd Related Applications - ISA100.11a-2011 - IEC 62734</title> | <title>Wireless Systems for Industrial Automation: Process Control a nd Related Applications - ISA100.11a-2011</title> | |||
| <author> | <author> | |||
| <organization>ISA/ANSI</organization> | <organization>ISA/ANSI</organization> | |||
| </author> | </author> | |||
| <date year='2011'/> | <date year="2011"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEC" value="62734:2014"/> | ||||
| </reference> | </reference> | |||
| <reference anchor='ISA100' target='https://www.isa.org/isa100/'> | ||||
| <reference anchor="ISA100" target="https://www.isa.org/isa100/"> | ||||
| <front> | <front> | |||
| <title>ISA100, Wireless Systems for Automation</title> | <title>ISA100, Wireless Systems for Automation</title> | |||
| <author> | <author> | |||
| <organization>ISA/ANSI</organization> | <organization>ISA/ANSI</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='TEAS' target='https://dataTracker.ietf.org/doc/charter- | ||||
| ietf-teas/'> | <reference anchor="TEAS" target="https://datatracker.ietf.org/doc/charter- | |||
| ietf-teas/"> | ||||
| <front> | <front> | |||
| <title>Traffic Engineering Architecture and Signaling</title> | <title>Traffic Engineering Architecture and Signaling (teas)</title> | |||
| <author> | <author> | |||
| <organization>IETF</organization> | <organization>IETF</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='ANIMA' target='https://dataTracker.ietf.org/doc/charter | ||||
| -ietf-anima/'> | <reference anchor="ANIMA" target="https://datatracker.ietf.org/doc/charter | |||
| -ietf-anima/"> | ||||
| <front> | <front> | |||
| <title>Autonomic Networking Integrated Model and Approach</title> | <title>Autonomic Networking Integrated Model and Approach (anima)</t itle> | |||
| <author> | <author> | |||
| <organization>IETF</organization> | <organization>IETF</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='PCE' target='https://dataTracker.ietf.org/doc/charter-i | ||||
| etf-pce/'> | <reference anchor="PCE" target="https://datatracker.ietf.org/doc/charter-i | |||
| etf-pce/"> | ||||
| <front> | <front> | |||
| <title>Path Computation Element</title> | <title>Path Computation Element (pce)</title> | |||
| <author> | <author> | |||
| <organization>IETF</organization> | <organization>IETF</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='CCAMP' target='https://dataTracker.ietf.org/doc/charter | ||||
| -ietf-ccamp/'> | <reference anchor="CCAMP" target="https://datatracker.ietf.org/doc/charter | |||
| -ietf-ccamp/"> | ||||
| <front> | <front> | |||
| <title>Common Control and Measurement Plane</title> | <title>Common Control and Measurement Plane (ccamp)</title> | |||
| <author> | <author> | |||
| <organization>IETF</organization> | <organization>IETF</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='AMI' target='https://www.energy.gov/sites/prod/files/20 16/12/f34/AMI%20Summary%20Report_09-26-16.pdf'> | <reference anchor="AMI" target="https://www.energy.gov/sites/prod/files/20 16/12/f34/AMI%20Summary%20Report_09-26-16.pdf"> | |||
| <front> | <front> | |||
| <title>Advanced Metering Infrastructure and Customer Systems </title > | <title>Advanced Metering Infrastructure and Customer Systems </title > | |||
| <author> | <author> | |||
| <organization>US Department of Energy</organization> | <organization>U.S. Department of Energy</organization> | |||
| </author> | </author> | |||
| <date year='2006'/> | <date year="2006"/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='S-ALOHA' target='https://dl.acm.org/citation.cfm?id=102 4920'> | <reference anchor="S-ALOHA" target="https://dl.acm.org/citation.cfm?id=102 4920"> | |||
| <front> | <front> | |||
| <title>ALOHA Packet System With and Without Slots and Capture</title | <title>ALOHA packet system with and without slots and capture</title | |||
| > | > | |||
| <author surname='Roberts' fullname='Lawrence G. Roberts'> | <author surname="Roberts" fullname="Lawrence G. Roberts"> | |||
| <organization>ACM SIGCOMM Computer Communication Review</organiza | ||||
| tion> | ||||
| </author> | </author> | |||
| <date month='April' year='1975'/> | <date month="April" year="1975"/> | |||
| </front> | </front> | |||
| <seriesInfo name='doi' value='10.1145/1024916.1024920'/> | <refcontent>ACM SIGCOMM Computer Communication Review</refcontent> | |||
| <seriesInfo name="DOI" value="10.1145/1024916.1024920"/> | ||||
| </reference> | </reference> | |||
| <reference anchor='IEC62439' target='https://webstore.iec.ch/publication/7 018'> | <reference anchor="IEC62439" target="https://webstore.iec.ch/publication/2 4438"> | |||
| <front> | <front> | |||
| <title>Industrial communication networks - High availability automat ion networks - Part 3: Parallel Redundancy Protocol (PRP) and High-availability Seamless Redundancy (HSR) - IEC62439-3</title> | <title>Industrial communication networks - High availability automat ion networks - Part 3: Parallel Redundancy Protocol (PRP) and High-availability Seamless Redundancy (HSR)</title> | |||
| <author> | <author> | |||
| <organization>IEC</organization> | <organization>IEC</organization> | |||
| </author> | </author> | |||
| <date year='2012'/> | <date year="2016"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEC" value="62439-3:2016"/> | ||||
| </reference> | </reference> | |||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.i | ||||
| etf-raw-use-cases.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
| .9035.xml"/> | ||||
| </references> | </references> | |||
| </references> | ||||
| <section><name>Related Work In Progress</name> | <section><name>Related Work in Progress</name> | |||
| <t>This document has been incremented as the work progressed following the | <t>This document has been incremented as the work progressed following the | |||
| evolution of the WG charter and the availability of dependent work. | evolution of the WG charter and the availability of dependent work. | |||
| The intent was to publish when the WG concludes on the covered items. | The intent was to publish when the WG concluded on the covered items. | |||
| At the time of publishing the following specification are still in progres | At the time of publishing, the following specifications are still in progr | |||
| s | ess | |||
| and may affect the evolution of the stack in a 6TiSCH-aware node. | and may affect the evolution of the stack in a 6TiSCH-aware node. | |||
| </t> | </t> | |||
| <!-- | <section anchor="unchartered"><name>Unchartered IETF Work Items</name> | |||
| <section anchor="chartered" title="Chartered IETF work items"> | ||||
| <t> | ||||
| The operation of the Backbone Router | ||||
| <xref target="I-D.ietf-6lo-backbone-router"/> is stable but the RFC | ||||
| is not published yet. The protection of registered addresses against | ||||
| impersonation and take over will be guaranteed by | ||||
| <xref target="I-D.ietf-6lo-ap-nd">Address | ||||
| Protected Neighbor Discovery for Low-power and Lossy Networks</xref>, | ||||
| which is not yet published either. | ||||
| </t> | ||||
| <t> | ||||
| New procedures have been defined at ROLL that extend RPL and may be of | ||||
| interest for a 6TiSCH stack. | ||||
| In particular <xref target="I-D.ietf-roll-unaware-leaves"/> enables a 6LN | ||||
| that implements only <xref target='RFC8505'/> and avoid the support of RPL | ||||
| . | ||||
| </t> | ||||
| </section> Chartered IETF work items --> | ||||
| <section anchor='unchartered'><name>Unchartered IETF work items</name> | ||||
| <section anchor='unchartered-sec'><name>6TiSCH Zerotouch security</name> | <section anchor="unchartered-sec"><name>6TiSCH Zero-Touch Security</name> | |||
| <t> | <t> | |||
| The security model and in particular the zerotouch join process | The security model and in particular the zero-touch join process | |||
| <xref target='I-D.ietf-6tisch-dtsecurity-zerotouch-join'/> depends on | <xref target="I-D.ietf-6tisch-dtsecurity-zerotouch-join"/> depend on | |||
| the ANIMA <xref target='ANIMA'/> | the ANIMA (Autonomic Networking Integrated Model and Approach) <xref targe | |||
| <xref target='I-D.ietf-anima-bootstrapping-keyinfra'>Bootstrapping Remote | t="ANIMA"/> | |||
| Secure Key Infrastructures (BRSKI)</xref> | "<xref target="RFC8995" format="title"/>" <xref target="RFC8995"/> | |||
| to enable zero-touch security provisionning; for highly | to enable zero-touch security provisioning; for highly | |||
| constrained nodes, a minimal model based on pre-shared keys (PSK) | constrained nodes, a minimal model based on pre-shared keys (PSK) | |||
| is also available. As written to this day, it also depends on | is also available. As currently written, it also depends on | |||
| a number of documents in progress as CORE, and on | a number of documents in progress in the CORE (Constrained RESTful Environ | |||
| <xref target='I-D.selander-ace-cose-ecdhe'>"Ephemeral Diffie-Hellman Over | ments) WG and on | |||
| COSE (EDHOC)"</xref>, which is being considered for adoption at the LAKE | <xref target="I-D.selander-ace-cose-ecdhe">"Ephemeral Diffie-Hellman Over | |||
| WG. | COSE (EDHOC)"</xref>, which is being considered for adoption by the LAKE | |||
| (Lightweight Authenticated Key Exchange) WG. | ||||
| </t> | </t> | |||
| </section> <!-- "6TiSCH Zerotouch security" --> | </section> | |||
| <section anchor='unchartered-tracks'><name>6TiSCH Track Setup</name> | <section anchor="unchartered-tracks"><name>6TiSCH Track Setup</name> | |||
| <t> | <t> | |||
| ROLL is now standardizing a reactive routing protocol based on RPL | ROLL (Routing Over Low power and Lossy networks) is now standardizing a re | |||
| <xref target='I-D.ietf-roll-aodv-rpl'/> | active routing protocol based on RPL | |||
| The need of a reactive routing protocol to establish on-demand | <xref target="I-D.ietf-roll-aodv-rpl"/>. | |||
| The need of a reactive routing protocol to establish on-demand, | ||||
| constraint-optimized routes and a reservation protocol to establish | constraint-optimized routes and a reservation protocol to establish | |||
| Layer-3 Tracks is being discussed at 6TiSCH but not chartered for. | Layer 3 Tracks is being discussed in 6TiSCH but not yet chartered. | |||
| </t><t> | </t><t> | |||
| <!-- | ||||
| At the time of this writing, the formation of a new working group called | ||||
| RAW for Reliable and Available Wireless networking is being considered. | ||||
| The work on centralized Track computation is deferred to a subsequent | ||||
| work, not necessarily at 6TiSCH. A Predictable and Available Wireless | ||||
| (PAW) bar-BoF took place. | ||||
| RAW may form as a WG and develop a generic specification for Track | ||||
| operations that would cover 6TiSCH requirements as expressed in this | ||||
| architecture, more in <xref target='I-D.thubert-raw-technologies'/> | ||||
| and <xref target='I-D.pthubert-raw-problem-statement'/>. | ||||
| In a large LLN, it is not | ||||
| feasible to update the routes from a central controller that resides far | ||||
| over the constrained network at the speed at which the quality of the | ||||
| wireless links varies. | ||||
| RAW would focus on forwarding behaviors to react quickly and locally to | ||||
| the changes in the wireless links. | ||||
| --> | ||||
| At the time of this writing, there is new work planned in the IETF to prov ide | At the time of this writing, there is new work planned in the IETF to prov ide | |||
| limited deterministic networking capabilities for wireless networks with a | limited deterministic networking capabilities for wireless networks with a | |||
| focus on forwarding behaviors to react quickly and locally to the changes | focus on forwarding behaviors to react quickly and locally to the changes | |||
| as described in <xref target='I-D.pthubert-raw-problem-statement'/>. | as described in <xref target="I-D.pthubert-raw-architecture"/>. | |||
| </t><t> | </t><t> | |||
| ROLL is also standardizing an extension to RPL to setup centrally-computed | ROLL is also standardizing an extension to RPL to set up centrally compute | |||
| routes <xref target='I-D.ietf-roll-dao-projection'/> | d | |||
| routes <xref target="I-D.ietf-roll-dao-projection"/>. | ||||
| </t><t> | </t><t> | |||
| The 6TiSCH Architecture should thus inherit from the | The 6TiSCH architecture should thus inherit from the | |||
| <xref target='RFC8655'>DetNet</xref> architecture and | <xref target="RFC8655">DetNet architecture</xref> and | |||
| thus depends on it. The Path Computation Element (PCE) should be a | thus depends on it. The PCE should be a | |||
| core component of that architecture. | core component of that architecture. | |||
| An extension to RPL or to TEAS <xref target='TEAS'/> will be required to | An extension to RPL or to TEAS (Traffic Engineering Architecture and Signa ling) <xref target="TEAS"/> will be required to | |||
| expose the 6TiSCH node capabilities and the network peers to the PCE, | expose the 6TiSCH node capabilities and the network peers to the PCE, | |||
| possibly in combination with <xref target='I-D.rahul-roll-mop-ext'/>. | possibly in combination with <xref target="I-D.ietf-roll-capabilities"/>. | |||
| A protocol such as a lightweight PCEP or an adaptation of CCAMP | A protocol such as a lightweight Path Computation Element Communication Pr | |||
| <xref target='CCAMP'/> G-MPLS formats and procedures could be used in | otocol (PCEP) or an adaptation of | |||
| combination to <xref target='I-D.ietf-roll-dao-projection'/> to install | Common Control and Measurement Plane (CCAMP) | |||
| <xref target="CCAMP"/> GMPLS formats and procedures could be used in | ||||
| combination to <xref target="I-D.ietf-roll-dao-projection"/> to install | ||||
| the Tracks, as computed by the PCE, to the 6TiSCH nodes. | the Tracks, as computed by the PCE, to the 6TiSCH nodes. | |||
| </t> | </t> | |||
| </section><!-- 6TiSCH Track Setup --> | </section> | |||
| <section anchor='unchartered-bier'><name>Using BIER in a 6TiSCH Network</n ame> | <section anchor="unchartered-bier"><name>Using BIER in a 6TiSCH Network</n ame> | |||
| <t> ROLL is actively working on Bit Index | <t> ROLL is actively working on Bit Index | |||
| Explicit Replication (BIER) as a method to compress both the | Explicit Replication (BIER) as a method to compress both the | |||
| dataplane packets and the routing tables in storing mode | data-plane packets and the routing tables in storing mode | |||
| <xref target='I-D.thubert-roll-bier'/>. | <xref target="I-D.thubert-roll-bier"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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. | |||
| <xref target='I-D.thubert-bier-replication-elimination'> | <xref target="I-D.thubert-bier-replication-elimination"> | |||
| BIER-TE-based OAM, Replication and Elimination </xref> leverages BIER | "BIER-TE extensions for Packet Replication and Elimination Function | |||
| Traffic Engineering (TE) to control in the data plane the | (PREF) and OAM"</xref> leverages BIER | |||
| DetNet Replication and Elimination activities, and to provide traceability | Traffic Engineering (TE) to control the | |||
| DetNet Replication and Elimination activities in the data plane, and to prov | ||||
| ide traceability | ||||
| on links where replication and loss happen, in a manner that is abstract to | on links where replication and loss happen, in a manner that is abstract to | |||
| the forwarding information. | the forwarding information. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| <xref target='I-D.thubert-6lo-bier-dispatch'>a 6loRH for BitStrings</xref> | <xref target="I-D.thubert-6lo-bier-dispatch">"A 6loRH for BitStrings"</xref> | |||
| proposes a 6LoWPAN compression for the BIER Bitstring based on | proposes a 6LoWPAN compression for the BIER BitString based on | |||
| <xref target='RFC8138'>6LoWPAN Routing Header</xref>. | <xref target="RFC8138">6LoWPAN Routing Header</xref>. | |||
| </t> | </t> | |||
| </section> <!-- 6TiSCH Track Setup --> | </section> | |||
| </section> | ||||
| </section><!-- Unchartered IETF work items --> | ||||
| <section anchor='external'><name>External (non-IETF) work items</name> | <section anchor="external"><name>External (Non-IETF) Work Items</name> | |||
| <t> | <t> | |||
| 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 evolution. | 6TiSCH has a strong dependency on IEEE Std 802.15.4 and its evolution. | |||
| The impact of changes to TSCH on this Architecture should be minimal to | The impact of changes to TSCH on this architecture should be minimal to | |||
| non-existent, but deeper work such as 6top and security may be impacted. | nonexistent, but deeper work such as 6top and security may be impacted. | |||
| A 6TiSCH Interest Group at the IEEE maintains the synchronization | A 6TiSCH Interest Group at the IEEE maintains the synchronization | |||
| and helps foster work at the IEEE should 6TiSCH demand it. | and helps foster work at the IEEE should 6TiSCH demand it. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| 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 sublaye r | logically include the 6top sublayer. The interaction with the 6top sublaye r | |||
| and the Scheduling Functions described in this document are yet to be | and the Scheduling Functions described in this document are yet to be | |||
| defined. | defined. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| ISA100 <xref target='ISA100'/> Common Network Management (CNM) is another | ISA100 <xref target="ISA100"/> Common Network Management (CNM) is another | |||
| external work of interest for 6TiSCH. The group, referred to as ISA100.20, | external 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 protocols | management of resources that are controlled by heterogeneous protocols | |||
| such as ISA100.11a <xref target='ISA100.11a'/>, WirelessHART | such as ISA100.11a <xref target="ISA100.11a"/>, WirelessHART | |||
| <xref target='WirelessHART'/>, and 6TiSCH. Interestingly, the | <xref target="WirelessHART"/>, and 6TiSCH. Interestingly, the | |||
| establishment of 6TiSCH Deterministic paths, called Tracks, | establishment of 6TiSCH deterministic paths, called Tracks, | |||
| are also in scope, and ISA100.20 is working on requirements for DetNet. | are also in scope, and ISA100.20 is working on requirements for DetNet. | |||
| </t> | </t> | |||
| </section><!-- External IETF work items --> | </section> | |||
| </section><!--title="Dependencies on Work In Progress"--> | </section> | |||
| <section numbered="false"><name>Acknowledgments</name> | ||||
| <section numbered="false" toc="exclude"><name>Special Thanks</name> | ||||
| <t> | ||||
| Special thanks to <contact fullname="Jonathan Simon"/>, | ||||
| <contact fullname="Giuseppe Piro"/>, <contact fullname="Subir Das"/>, and | ||||
| <contact fullname="Yoshihiro Ohba"/> for their deep contributions to the i | ||||
| nitial security | ||||
| work, to <contact fullname="Yasuyuki Tanaka"/> for his work on implementat | ||||
| ion and simulation | ||||
| that tremendously helped build a robust system, to <contact fullname="Dieg | ||||
| o Dujovne"/> for | ||||
| starting and leading the SF0 effort, and to <contact fullname="Tengfei Cha | ||||
| ng"/> for evolving it | ||||
| in the MSF. | ||||
| </t><t> | ||||
| Special thanks also to <contact fullname="Pat Kinney"/>, | ||||
| <contact fullname="Charlie Perkins"/>, and <contact fullname="Bob Heile"/> | ||||
| for their | ||||
| support in maintaining the connection active and the design in line with | ||||
| work happening at IEEE 802.15. | ||||
| </t> <t> | ||||
| Special thanks to <contact fullname="Ted Lemon"/>, who was the INT Area Di | ||||
| rector while this | ||||
| document was initiated, for his great support and help throughout, | ||||
| and to <contact fullname="Suresh Krishnan"/>, who took over with that kind | ||||
| efficiency of his till | ||||
| publication. | ||||
| </t><t> | ||||
| Also special thanks to <contact fullname="Ralph Droms"/>, who performed th | ||||
| e first INT Area | ||||
| Directorate review, which was very deep and thorough and radically changed | ||||
| the orientations of this document, and then to <contact fullname="Eliot Le | ||||
| ar"/> | ||||
| and <contact fullname="Carlos Pignataro"/>, who helped finalize this | ||||
| document in preparation for the IESG reviews, | ||||
| and to <contact fullname="Gorry Fairhurst"/>, | ||||
| <contact fullname="David Mandelberg"/>, <contact fullname="Qin Wu"/>, | ||||
| <contact fullname="Francis Dupont"/>, <contact fullname="Éric Vyncke"/>, | ||||
| <contact fullname="Mirja Kühlewind"/>, <contact fullname="Roman Danyliw"/>, | ||||
| <contact fullname="Benjamin Kaduk"/>, and <contact fullname="Andrew Malis"/>, | ||||
| who contributed to the final shaping of this document | ||||
| through the IESG review procedure. | ||||
| </t> | ||||
| </section> | ||||
| <section numbered="false" toc="exclude"><name>And Do Not Forget</name> | ||||
| <t>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. | ||||
| </t><t> | ||||
| The authors wish to thank in arbitrary order: | ||||
| <contact fullname="Alaeddine Weslati"/>, <contact fullname="Chonggang Wang"/>, | ||||
| <contact fullname="Georgios Exarchakos"/>, <contact fullname="Zhuo Chen"/>, | ||||
| <contact fullname="Georgios Papadopoulos"/>, <contact fullname="Eric Levy-Abegno | ||||
| li"/>, | ||||
| <contact fullname="Alfredo Grieco"/>, <contact fullname="Bert Greevenbosch"/>, | ||||
| <contact fullname="Cedric Adjih"/>, <contact fullname="Deji Chen"/>, | ||||
| <contact fullname="Martin Turon"/>, <contact fullname="Dominique Barthel"/>, | ||||
| <contact fullname="Elvis Vogli"/>, <contact fullname="Geraldine Texier"/>, | ||||
| <contact fullname="Guillaume Gaillard"/>, <contact fullname="Herman Storey"/>, | ||||
| <contact fullname="Kazushi Muraoka"/>, <contact fullname="Ken Bannister"/>, | ||||
| <contact fullname="Kuor Hsin Chang"/>, <contact fullname="Laurent Toutain"/>, | ||||
| <contact fullname="Maik Seewald"/>, <contact fullname="Michael Behringer"/>, | ||||
| <contact fullname="Nancy Cam Winget"/>, <contact fullname="Nicola Accettura"/>, | ||||
| <contact fullname="Nicolas Montavont"/>, <contact fullname="Oleg Hahm"/>, | ||||
| <contact fullname="Patrick Wetterwald"/>, <contact fullname="Paul Duffy"/>, | ||||
| <contact fullname="Peter van der Stok"/>, <contact fullname="Rahul Sen"/>, | ||||
| <contact fullname="Pieter de Mil"/>, <contact fullname="Pouria Zand"/>, | ||||
| <contact fullname="Rouhollah Nabati"/>, <contact fullname="Rafa Marin-Lopez"/>, | ||||
| <contact fullname="Raghuram Sudhaakar"/>, <contact fullname="Sedat Gormus"/>, | ||||
| <contact fullname="Shitanshu Shah"/>, <contact fullname="Steve Simlo"/>, | ||||
| <contact fullname="Tina Tsou"/>, <contact fullname="Tom Phinney"/>, | ||||
| <contact fullname="Xavier Lagrange"/>, <contact fullname="Ines Robles"/>, and | ||||
| <contact fullname="Samita Chakrabarti"/> for their participation and various con | ||||
| tributions. | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section numbered="false"><name>Contributors</name> | ||||
| <t>The co-authors of this document are listed below: | ||||
| </t><ul empty="true" spacing="normal"> | ||||
| <li><t><contact fullname="Thomas Watteyne"/> | ||||
| for his contributions to the whole design, in particular on TSCH and s | ||||
| ecurity, | ||||
| and to the open source community that he created with openWSN;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="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;< | ||||
| /t> | ||||
| </li> | ||||
| <li><t><contact fullname="Kris Pister"/> | ||||
| for creating TSCH and his continuing guidance through the elaboration | ||||
| of this design;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Mališa Vučinić"/> | ||||
| for the work on the one-touch join process and his contribution to the | ||||
| Security Design Team;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Michael Richardson"/> | ||||
| for his leadership role in the Security Design Team and his | ||||
| contribution throughout this document;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Tero Kivinen"/> | ||||
| for his contribution to the security work in general and the security | ||||
| section in particular;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Maria Rita Palattella"/> | ||||
| for managing the Terminology document that was merged into this documen | ||||
| t through the work of 6TiSCH;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="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;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Qin Wang"/>, | ||||
| who led the design of the 6top sublayer and contributed related text | ||||
| that was moved and/or adapted into this document;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Rene Struik"/> | ||||
| for the security section and his contribution to the Security Design | ||||
| Team;</t> | ||||
| </li> | ||||
| <li><t><contact fullname="Robert Assimiti"/> | ||||
| for his breakthrough work on RPL over TSCH and initial text and | ||||
| guidance.</t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 623 change blocks. | ||||
| 1999 lines changed or deleted | 1814 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/ | ||||