| rfc9034v1.txt | rfc9034.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) L. Thomas | Internet Engineering Task Force (IETF) L. Thomas | |||
| Request for Comments: 9034 C-DAC | Request for Comments: 9034 C-DAC | |||
| Category: Standards Track S. Anamalamudi | Category: Standards Track S. Anamalamudi | |||
| ISSN: 2070-1721 SRM University-AP | ISSN: 2070-1721 SRM University-AP | |||
| S.V.R. Anand | S.V.R. Anand | |||
| M. Hegde | M. Hegde | |||
| Indian Institute of Science | Indian Institute of Science | |||
| C. Perkins | C. Perkins | |||
| Futurewei | Lupin Lodge | |||
| May 2021 | May 2021 | |||
| Packet Delivery Deadline Time in the Routing Header for IPv6 over Low- | Packet Delivery Deadline Time in the Routing Header for IPv6 over Low- | |||
| Power Wireless Personal Area Networks (6LoWPANs) | Power Wireless Personal Area Networks (6LoWPANs) | |||
| Abstract | Abstract | |||
| This document specifies a new Type for the Elective 6LoWPAN Routing | This document specifies a new type for the 6LoWPAN routing header | |||
| Header (6LoRHE) that contains the deadline time for data packets and | containing the deadline time for data packets, designed for use over | |||
| is designed for use over constrained networks. The deadline time | constrained networks. The deadline time enables forwarding and | |||
| enables forwarding and scheduling decisions for time-critical | scheduling decisions for time-critical machine-to-machine (M2M) | |||
| Internet of Things (IoT) machine-to-machine (M2M) applications that | applications running on Internet-enabled devices that operate within | |||
| operate within time-synchronized networks that agree on the meaning | time-synchronized networks. This document also specifies a | |||
| of the time representations used for the deadline time values. | representation for the deadline time values in such networks. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| skipping to change at line 64 ¶ | skipping to change at line 64 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction | 1. Introduction | |||
| 2. Terminology | 2. Terminology | |||
| 3. 6LoRHE Generic Format | 3. 6LoRHE Generic Format | |||
| 4. Deadline-6LoRHE | 4. Deadline-6LoRHE | |||
| 5. Deadline-6LoRHE Format | 5. Deadline-6LoRHE Format | |||
| 6. Deadline-6LoRHE in Three Network Scenarios | 6. Deadline-6LoRHE in Three Network Scenarios | |||
| 6.1. Scenario 1: Endpoints in the Same DODAG (N1) | 6.1. Scenario 1: Endpoints in the Same DODAG (N1) | |||
| 6.2. Scenario 2: Endpoints in Networks with Dissimilar Layer 2 | 6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 | |||
| Technologies | Technologies | |||
| 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 | 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 | |||
| to N2) | to N2) | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| 8. Synchronization Aspects | 8. Synchronization Aspects | |||
| 9. Security Considerations | 9. Security Considerations | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| 10.2. Informative References | 10.2. Informative References | |||
| Appendix A. Modular Arithmetic Considerations | ||||
| Acknowledgments | Acknowledgments | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| Low-power and Lossy Networks (LLNs) are likely to be deployed for | Low-Power and Lossy Networks (LLNs) are likely to be deployed for | |||
| real-time industrial applications requiring end-to-end delay | real-time industrial applications requiring end-to-end delay | |||
| guarantees [RFC8578]. A Deterministic Network ("DetNet") typically | guarantees [RFC8578]. A Deterministic Network ("DetNet") typically | |||
| requires some data packets to reach their receivers within strict | requires some data packets to reach their receivers within strict | |||
| time bounds. Intermediate nodes use the deadline information to make | time bounds. Intermediate nodes use the deadline information to make | |||
| appropriate packet forwarding and scheduling decisions to meet the | appropriate packet forwarding and scheduling decisions to meet the | |||
| time bounds. | time bounds. | |||
| This document specifies a new Type for the Elective 6LoWPAN Routing | This document specifies a new type for the Elective 6LoWPAN Routing | |||
| Header (6LoRHE), Deadline-6LoRHE, so that the deadline time (i.e., | Header (6LoRHE), Deadline-6LoRHE, so that the deadline time (i.e., | |||
| the time of latest acceptable delivery) of data packets can be | the time of latest acceptable delivery) of data packets can be | |||
| included within the 6LoRHE. [RFC8138] specifies the 6LoWPAN Routing | included within the 6LoRHE. [RFC8138] specifies the 6LoWPAN Routing | |||
| Header (6LoRH), compression schemes for RPL (Routing Protocol for | Header (6LoRH), compression schemes for RPL (Routing Protocol for | |||
| Low-Power and Lossy Networks) routing (source routing) operation | Low-Power and Lossy Networks) source routing [RFC6554], header | |||
| [RFC6554], header compression of RPL packet information [RFC6553], | compression of RPL packet information [RFC6553], and IP-in-IP | |||
| and IP-in-IP encapsulation. This document also specifies the | encapsulation. This document also specifies the handling of the | |||
| handling of the deadline time when packets traverse time-synchronized | deadline time when packets traverse time-synchronized networks | |||
| networks operating in different time zones or distinct reference | operating in different time zones or distinct reference clocks. | |||
| clocks. Time-synchronization techniques are outside the scope of | Time-synchronization techniques are outside the scope of this | |||
| this document. There are a number of standards available for this | document. There are a number of standards available for this | |||
| purpose, including IEEE 1588 [IEEE.1588.2008], IEEE 802.1AS | purpose, including IEEE 1588 [IEEE.1588.2008], IEEE 802.1AS | |||
| [IEEE.802.1AS.2011], IEEE 802.15.4-2015 Time-Slotted Channel Hopping | [IEEE.802.1AS.2011], IEEE 802.15.4-2015 Time-Slotted Channel Hopping | |||
| (TSCH) [IEEE.802.15.4], and more. | (TSCH) [IEEE.802.15.4], and more. | |||
| The Deadline-6LoRHE can be used in any time-synchronized 6lo (IPv6 | The Deadline-6LoRHE can be used in any time-synchronized 6LoWPAN | |||
| over Networks of Resource-constrained Nodes) network. A 6TiSCH (IPv6 | network. A 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4) network | |||
| over the TSCH mode of IEEE 802.15.4) network is used to describe the | is used to describe the implementation of the Deadline-6LoRHE, but | |||
| implementation of the Deadline-6LoRHE, but this does not preclude its | this does not preclude its use in scenarios other than 6TiSCH. For | |||
| use in scenarios other than 6TiSCH. For instance, there is a growing | instance, there is a growing interest in using 6LoWPAN over a | |||
| interest in using 6lo over a Bluetooth Low Energy (BLE) mesh network | Bluetooth Low Energy (BLE) mesh network [6LO-BLEMESH] in industrial | |||
| [6LO-BLEMESH] in industrial IoT [IEEE-BLE-MESH]. BLE mesh time | IoT (Internet of Things) [IEEE-BLE-MESH]. BLE mesh time | |||
| synchronization is being explored by the Bluetooth community. There | synchronization is being explored by the Bluetooth community. There | |||
| are also cases under consideration in Wi-SUN [PHY-SPEC] [Wi-SUN]. | are also cases under consideration in Wi-SUN [PHY-SPEC] [Wi-SUN]. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| skipping to change at line 176 ¶ | skipping to change at line 177 ¶ | |||
| nodes within the network should process the Deadline-6LoRHE. The DT | nodes within the network should process the Deadline-6LoRHE. The DT | |||
| and OTD packets are represented in time units determined by a scaling | and OTD packets are represented in time units determined by a scaling | |||
| parameter in the Routing Header. The Network ASN (Absolute Slot | parameter in the Routing Header. The Network ASN (Absolute Slot | |||
| Number) can be used as a time unit in a time-slotted synchronized | Number) can be used as a time unit in a time-slotted synchronized | |||
| network (for instance, a 6TiSCH network, where global time is | network (for instance, a 6TiSCH network, where global time is | |||
| maintained in the units of slot lengths of a certain resolution). | maintained in the units of slot lengths of a certain resolution). | |||
| The delay experienced by packets in the network is a useful metric | The delay experienced by packets in the network is a useful metric | |||
| for network diagnostics and performance monitoring. Whenever a | for network diagnostics and performance monitoring. Whenever a | |||
| packet crosses into a network using a different reference clock, the | packet crosses into a network using a different reference clock, the | |||
| DT field is updated to represent the same destination time, but | DT field is updated to represent the same deadline time, but | |||
| expressed using the reference clock of the interface into the new | expressed using the reference clock of the interface into the new | |||
| network. Then the origination time is the same as the current time | network. Then the origination time is the same as the current time | |||
| when the packet is transmitted into the new network, minus the delay | when the packet is transmitted into the new network, minus the delay | |||
| already experienced by the packet, say 'current_dly'. In this way, | already experienced by the packet, say 'current_dly'. In this way, | |||
| within the newly entered network, the packet will appear to have | within the newly entered network, the packet will appear to have | |||
| originated 'current_dly' time units earlier with respect to the | originated 'current_dly' time units earlier with respect to the | |||
| reference clock of the new network. | reference clock of the new network. | |||
| new_network_origin_time = time_now_in_new_network - current_dly | new_network_origin_time = time_now_in_new_network - current_dly | |||
| skipping to change at line 226 ¶ | skipping to change at line 227 ¶ | |||
| v v v | v v v | |||
| dly0 = 0 dly1 = T1D-OT1 dly2 = T2D-OT2 | dly0 = 0 dly1 = T1D-OT1 dly2 = T2D-OT2 | |||
| = 100-50 = 1400 - 950 | = 100-50 = 1400 - 950 | |||
| = 50 = 450 | = 50 = 450 | |||
| OT1 = T1A-dly0 OT2 = T2A-dly1 OT3 = T3A-dly2 | OT1 = T1A-dly0 OT2 = T2A-dly1 OT3 = T3A-dly2 | |||
| = 50 = 1000-50 = 5000 - 450 | = 50 = 1000-50 = 5000 - 450 | |||
| = 950 = 4550 | = 950 = 4550 | |||
| Figure 2: Destination Time Update Example | Figure 2: Deadline Time Update Example | |||
| There are multiple ways that a packet can be delayed, including | There are multiple ways that a packet can be delayed, including | |||
| queuing delay, Media Access Control (MAC) layer contention delay, | queuing delay, Media Access Control (MAC) layer contention delay, | |||
| serialization delay, and propagation delay. Sometimes there are | serialization delay, and propagation delay. Sometimes there are | |||
| processing delays as well. For the purpose of determining whether or | processing delays as well. For the purpose of determining whether or | |||
| not the deadline has already passed, these various delays are not | not the deadline has already passed, these various delays are not | |||
| distinguished. | distinguished. | |||
| 5. Deadline-6LoRHE Format | 5. Deadline-6LoRHE Format | |||
| skipping to change at line 288 ¶ | skipping to change at line 289 ¶ | |||
| encoding the length of the field in hex digits. If OTL == 0, the | encoding the length of the field in hex digits. If OTL == 0, the | |||
| OTD field is not present. The value of OTL MUST NOT exceed the | OTD field is not present. The value of OTL MUST NOT exceed the | |||
| value of DTL plus one. | value of DTL plus one. | |||
| For example, DTL = 0b0000 means the DT field in the 6LoRHE is 1 | For example, DTL = 0b0000 means the DT field in the 6LoRHE is 1 | |||
| hex digit (4 bits) long. OTL = 0b111 means the OTD field is 7 hex | hex digit (4 bits) long. OTL = 0b111 means the OTD field is 7 hex | |||
| digits (28 bits) long. | digits (28 bits) long. | |||
| BinaryPt (6 bits): If zero, the number of bits of the integer part | BinaryPt (6 bits): If zero, the number of bits of the integer part | |||
| the DT is equal to the number of bits of the fractional part of | the DT is equal to the number of bits of the fractional part of | |||
| the DT. If nonzero, the BinaryPt is a signed integer determining | the DT. If nonzero, the BinaryPt is a (2's complement) signed | |||
| the position of the binary point within the value for the DT: | integer determining the position of the binary point within the | |||
| value for the DT. This allows BinaryPt to be within the range | ||||
| [-32,31]. | ||||
| * If BinaryPt value is positive, then the number of bits for the | * If BinaryPt value is positive, then the number of bits for the | |||
| integer part of the DT is increased by the value of BinaryPt, | integer part of the DT is increased by the value of BinaryPt, | |||
| and the number of bits for the fractional part of the DT is | and the number of bits for the fractional part of the DT is | |||
| correspondingly reduced. This increases the range of DT. | correspondingly reduced. This increases the range of DT. | |||
| * If BinaryPt value is negative, then the number of bits for the | * If BinaryPt value is negative, then the number of bits for the | |||
| integer part of the DT is decreased by the value of BinaryPt, | integer part of the DT is decreased by the value of BinaryPt, | |||
| and the number of bits for the fractional part of the DT is | and the number of bits for the fractional part of the DT is | |||
| correspondingly increased. This increases the precision of the | correspondingly increased. This increases the precision of the | |||
| fractional seconds part of DT. | fractional seconds part of DT. | |||
| DT Value (8..64 bits): An unsigned integer of DTL+1 hex digits | DT Value (4..64 bits): An unsigned integer of DTL+1 hex digits | |||
| giving the deadline time value. | giving the DT value. | |||
| OTD Value (4..28 bits): An unsigned integer of OTL hex digits giving | OTD Value (4..28 bits): If present, an unsigned integer of OTL hex | |||
| the Origination Time as a negative offset from the DT value. | digits giving the origination time as a negative offset from the | |||
| DT value. | ||||
| Whenever a sender initiates the IP datagram, it includes the | Whenever a sender initiates the IP datagram, it includes the | |||
| Deadline-6LoRHE along with other 6LoRH information. For information | Deadline-6LoRHE along with other 6LoRH information. For information | |||
| about the time-synchronization requirements between sender and | about the time-synchronization requirements between sender and | |||
| receiver, see Section 8. | receiver, see Section 8. | |||
| For the chosen time unit, a compressed time representation is | For the chosen time unit, a compressed time representation is | |||
| available as follows. First, the application on the originating node | available as follows. First, the application on the originating node | |||
| determines how many time bits are needed to represent the difference | determines how many time bits are needed to represent the difference | |||
| between the time at which the packet is launched and the deadline | between the time at which the packet is launched and the deadline | |||
| skipping to change at line 346 ¶ | skipping to change at line 350 ¶ | |||
| DTL leads to a small Epoch_Range; if DTL = 0, there will only be 16 | DTL leads to a small Epoch_Range; if DTL = 0, there will only be 16 | |||
| RTUs within the Epoch_Range (i.e., Epoch_Range(DTL) = 16^1) for any | RTUs within the Epoch_Range (i.e., Epoch_Range(DTL) = 16^1) for any | |||
| TU. The values that can be represented in the current epoch are in | TU. The values that can be represented in the current epoch are in | |||
| the range [0, (Epoch_Range(DTL) - 1)]. | the range [0, (Epoch_Range(DTL) - 1)]. | |||
| Assuming wraparound does not occur, OT is represented by the value | Assuming wraparound does not occur, OT is represented by the value | |||
| (OT mod Epoch_Range), and DT is represented by the value (DT mod | (OT mod Epoch_Range), and DT is represented by the value (DT mod | |||
| Epoch_Range). All arithmetic is to be performed modulo | Epoch_Range). All arithmetic is to be performed modulo | |||
| (Epoch_Range(DTL)), yielding only positive values for DT - OT. | (Epoch_Range(DTL)), yielding only positive values for DT - OT. | |||
| In order to allow fine-grained control over the setting of the | ||||
| deadline time, the fields for DT and OTD use fractional seconds. | ||||
| This is done by specifying a binary point, which allocates some of | ||||
| the bits for fractional times. Thus, all such fractions are | ||||
| restricted to be negative powers of 2. Each point of time between OT | ||||
| and DT is then represented by a time unit (either seconds or ASNs) | ||||
| and a fractional time unit. | ||||
| Let OT_abs, DT_abs, and CT_abs denote the true (absolute) values (on | ||||
| the synchronized timelines) for OT, DT, and current time. Let N be | ||||
| the number of bits to be used to represent the integer parts of | ||||
| OT_abs, DT_abs, and CT_abs: | ||||
| N = {4*(DTL+1)/2} + BinaryPt | ||||
| The originating node has to pick a segment size (2^N) so that DT_abs | ||||
| - OT_abs < 2^N, and so that intermediate network nodes can detect | ||||
| whether or not CT_abs > DT_abs. | ||||
| Given a value for N, the value for DT is represented in the deadline- | ||||
| time format by DT = (DT_abs mod 2^N). DT is typically represented as | ||||
| a positive value (even though negative modular values make sense). | ||||
| Also, let OT = OT_abs mod 2^N and CT = CT_abs mod 2^N, where both OT | ||||
| and CT are also considered as non-negative values. | ||||
| When the packet is launched by the originating node, CT_abs == OT_abs | ||||
| and CT == OT. Given a particular value for N, then in order for | ||||
| downstream nodes to detect whether or not the deadline has expired | ||||
| (i.e., whether DT_abs > CT_abs), the following is required: | ||||
| Assumption 1: DT_abs - OT_abs < 2^N. | ||||
| Otherwise the ambiguity inherent in the modulus arithmetic yielding | ||||
| OT and DT will cause failure: one cannot measure time differences | ||||
| greater than 2^N using numbers in a time segment of length less than | ||||
| 2^N. | ||||
| Under Assumption 1, downstream nodes must effectively check whether | ||||
| or not their current time is later than the DT -- but the value of | ||||
| the DT has to be inferred from the value of DT in the 6LoRHE, which | ||||
| is a number less than 2^N. This inference cannot be expected to | ||||
| reliably succeed unless Assumption 1 is valid, which means that the | ||||
| originating node has to be careful to pick proper values for DTL and | ||||
| for BinaryPt. | ||||
| Since OT is not necessarily provided in the 6loRHE, there may be a | ||||
| danger of ambiguity. Surely, when DT = CT, the deadline time is | ||||
| expiring and the packet should be dropped. However, what if an | ||||
| intermediate node measures that CT = DT+1? Was the packet launched a | ||||
| short time before arrival at the intermediate node, or has the | ||||
| current time wrapped around so that CT_abs - OT_abs > 2^N? | ||||
| In order to solve this problem, a safety margin has to be provided, | ||||
| in addition to requiring that DT_abs - OT_abs < 2^N. The value of | ||||
| this safety margin is proportional to 2^N and is determined by a new | ||||
| parameter, called the "SAFETY_FACTOR". Then, for safety the | ||||
| originating node MUST further ensure that (DT_abs - OT_abs) < | ||||
| 2^N*(1-SAFETY_FACTOR). | ||||
| Each intermediate node that receives the packet with the Deadline- | ||||
| 6LoRHE must determine whether ((CT - DT) mod 2^N) > | ||||
| SAFETY_FACTOR*2^N. If this test condition is not satisfied, the | ||||
| deadline time has expired. See Appendix A for more explanation about | ||||
| the test condition. All nodes that receive a packet with a Deadline- | ||||
| 6LoRHE included MUST use the same value for the SAFETY_FACTOR. The | ||||
| SAFETY_FACTOR is to be chosen so that a packet with the Deadline- | ||||
| 6LoRHE included will be tested against the current time at least once | ||||
| during every subinterval of length SAFETY_FACTOR*2^N. In this way, | ||||
| it can be guaranteed that the packet will be tested often enough to | ||||
| make sure it can be dropped whenever CT_abs > DT_abs. The value of | ||||
| SAFETY_FACTOR is specified in this document to be 20%. | ||||
| Example: Consider a 6TiSCH network with time-slot length of 10 ms. | Example: Consider a 6TiSCH network with time-slot length of 10 ms. | |||
| Let the time units be ASNs (TU == (binary)0b10). Let the current | Let the time units be ASNs (TU == (binary)0b10). Let the current | |||
| ASN when the packet is originated be 54400, and the maximum | ASN when the packet is originated be 54400, and the maximum | |||
| allowable delay (max_delay) for the packet delivery be 1 second | allowable delay (max_delay) for the packet delivery be 1 second | |||
| from the packet origination, then: | from the packet origination, then: | |||
| deadline_time = packet_origination_time + max_delay | deadline_time = packet_origination_time + max_delay | |||
| = 0xD480 + 0x64 (Network ASNs) | = 0xD480 + 0x64 (Network ASNs) | |||
| skipping to change at line 427 ¶ | skipping to change at line 503 ¶ | |||
| | (A) (B) : (E) : R | | | (A) (B) : (E) : R | | |||
| | /|\ | \ / \ | | | /|\ | \ / \ | | |||
| | S : : : : : : v | | S : : : : : : v | |||
| Figure 5: Endpoints within the Same DODAG (Subnet N1) | Figure 5: Endpoints within the Same DODAG (Subnet N1) | |||
| At the tunnel endpoint of the encapsulation, the Deadline-6LoRHE is | At the tunnel endpoint of the encapsulation, the Deadline-6LoRHE is | |||
| copied back from the outer header to inner header, and the inner IP | copied back from the outer header to inner header, and the inner IP | |||
| packet is delivered to 'R'. | packet is delivered to 'R'. | |||
| 6.2. Scenario 2: Endpoints in Networks with Dissimilar Layer 2 | 6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 Technologies | |||
| Technologies | ||||
| In Scenario 2, shown in Figure 6, the Sender 'S' (belonging to DODAG | In Scenario 2, shown in Figure 6, the Sender 'S' (belonging to DODAG | |||
| 1) has an IP datagram to be routed to a Receiver 'R' over a time- | 1) has an IP datagram to be routed to a Receiver 'R' over a time- | |||
| synchronized IPv6 network. For the route segment from 'S' to 6LBR, | synchronized IPv6 network. For the route segment from 'S' to 6LBR, | |||
| 'S' includes a Deadline-6LoRHE. Subsequently, each 6LR will perform | 'S' includes a Deadline-6LoRHE. Subsequently, each 6LR will perform | |||
| hop-by-hop routing to forward the packet towards the 6LBR. Once the | hop-by-hop routing to forward the packet towards the 6LBR. Once the | |||
| deadline time information reaches the 6LBR, the packet will be | deadline time information reaches the 6LBR, the packet will be | |||
| encoded according to the mechanism prescribed in the other time- | encoded according to the mechanism prescribed in the other time- | |||
| synchronized network depicted as "Time-Synchronized Network" in | synchronized network depicted as "Time-Synchronized Network" in | |||
| Figure 6. The specific data encapsulation mechanisms followed in the | Figure 6. The specific data encapsulation mechanisms followed in the | |||
| skipping to change at line 462 ¶ | skipping to change at line 537 ¶ | |||
| Upward | | | | Upward | | | | |||
| routing | +------++ | routing | +------++ | |||
| | (F)/ /| \ | | (F)/ /| \ | |||
| | / \ / | \ | | / \ / | \ | |||
| | / \ (C) | (D) | | / \ (C) | (D) | |||
| | (A) (B) | | / |\ | | (A) (B) | | / |\ | |||
| | /|\ |\ : (E) : : | | /|\ |\ : (E) : : | |||
| | S : : : : / \ | | S : : : : / \ | |||
| : : | : : | |||
| Figure 6: Packet Transmission in Dissimilar Layer 2 Technologies | Figure 6: Packet Transmission in Dissimilar L2 Technologies or | |||
| or Internet | Internet | |||
| For instance, the IP datagram could be routed to another time- | For instance, the IP datagram could be routed to another time- | |||
| synchronized, deterministic network using the mechanism specified in | synchronized, deterministic network using the mechanism specified in | |||
| In-situ Operations, Administration, and Maintenance (IOAM) | In-situ Operations, Administration, and Maintenance (IOAM) | |||
| [IOAM-DATA], and then the deadline time would be updated according to | [IOAM-DATA], and then the deadline time would be updated according to | |||
| the measurement of the current time in the new network. | the measurement of the current time in the new network. | |||
| 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 to N2) | 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 to N2) | |||
| Consider the scenario depicted in Figure 7, in which the Sender 'S' | Consider the scenario depicted in Figure 7, in which the Sender 'S' | |||
| skipping to change at line 628 ¶ | skipping to change at line 703 ¶ | |||
| [RFC9030]. | [RFC9030]. | |||
| The security considerations of DetNet architecture [RFC8655] | The security considerations of DetNet architecture [RFC8655] | |||
| (Section 5) mostly apply to this document as well, as follows. To | (Section 5) mostly apply to this document as well, as follows. To | |||
| secure the request and control of resources allocated for tracks, | secure the request and control of resources allocated for tracks, | |||
| authentication and authorization can be used for each device and | authentication and authorization can be used for each device and | |||
| network controller devices. In the case of distributed control | network controller devices. In the case of distributed control | |||
| protocols, security is expected to be provided by the security | protocols, security is expected to be provided by the security | |||
| properties of the protocols in use. | properties of the protocols in use. | |||
| When deadline-bearing flows are identified on a per-flow basis, which | The identification of deadline-bearing flows on a per-flow basis may | |||
| may provide attackers with additional information about the data | provide attackers with additional information about the data flows | |||
| flows, when compared to networks that do not include per-flow | compared to networks that do not include per-flow identification. | |||
| identification. The security implications of disclosing that | The security implications of disclosing that additional information | |||
| additional information deserve consideration when implementing this | deserve consideration when implementing this deadline specification. | |||
| deadline specification. | ||||
| Because of the requirement of precise time synchronization, the | Because of the requirement of precise time synchronization, the | |||
| accuracy, availability, and integrity of time synchronization is of | accuracy, availability, and integrity of time synchronization is of | |||
| critical importance. Extensive discussion of this topic can be found | critical importance. Extensive discussion of this topic can be found | |||
| in [RFC7384]. | in [RFC7384]. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| skipping to change at line 755 ¶ | skipping to change at line 829 ¶ | |||
| 2011, <https://doi.org/10.1109/IEEESTD.2011.5741898>. | 2011, <https://doi.org/10.1109/IEEESTD.2011.5741898>. | |||
| [IOAM-DATA] | [IOAM-DATA] | |||
| Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields | Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields | |||
| for In-situ OAM", Work in Progress, Internet-Draft, draft- | for In-situ OAM", Work in Progress, Internet-Draft, draft- | |||
| ietf-ippm-ioam-data-12, 21 February 2021, | ietf-ippm-ioam-data-12, 21 February 2021, | |||
| <https://tools.ietf.org/html/draft-ietf-ippm-ioam-data- | <https://tools.ietf.org/html/draft-ietf-ippm-ioam-data- | |||
| 12>. | 12>. | |||
| [PHY-SPEC] Wi-SUN Alliance, "Wi-SUN PHY Specification V1.0", March | [PHY-SPEC] Wi-SUN Alliance, "Wi-SUN PHY Specification V1.0", March | |||
| 2016. | 2016, <http://wi-sun.org>. | |||
| [RFC8578] Grossman, E., Ed., "Deterministic Networking Use Cases", | [RFC8578] Grossman, E., Ed., "Deterministic Networking Use Cases", | |||
| RFC 8578, DOI 10.17487/RFC8578, May 2019, | RFC 8578, DOI 10.17487/RFC8578, May 2019, | |||
| <https://www.rfc-editor.org/info/rfc8578>. | <https://www.rfc-editor.org/info/rfc8578>. | |||
| [RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli, | [RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli, | |||
| "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929, | "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929, | |||
| November 2020, <https://www.rfc-editor.org/info/rfc8929>. | November 2020, <https://www.rfc-editor.org/info/rfc8929>. | |||
| [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI | [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI | |||
| skipping to change at line 778 ¶ | skipping to change at line 852 ¶ | |||
| DOI 10.17487/RFC9008, April 2021, | DOI 10.17487/RFC9008, April 2021, | |||
| <https://www.rfc-editor.org/info/rfc9008>. | <https://www.rfc-editor.org/info/rfc9008>. | |||
| [Wi-SUN] Harada, H., Mizutani, K., Fujiwara, J., Mochizuki, K., | [Wi-SUN] Harada, H., Mizutani, K., Fujiwara, J., Mochizuki, K., | |||
| Obata, K., and R. Okumura, "IEEE 802.15.4g Based Wi-SUN | Obata, K., and R. Okumura, "IEEE 802.15.4g Based Wi-SUN | |||
| Communication Systems", IEICE Transactions on | Communication Systems", IEICE Transactions on | |||
| Communications, Volume E100.B, Issue 7, pp. 1032-1043, | Communications, Volume E100.B, Issue 7, pp. 1032-1043, | |||
| DOI 10.1587/transcom.2016SCI0002, January 2017, | DOI 10.1587/transcom.2016SCI0002, January 2017, | |||
| <https://doi.org/10.1587/transcom.2016SCI0002>. | <https://doi.org/10.1587/transcom.2016SCI0002>. | |||
| Appendix A. Modular Arithmetic Considerations | ||||
| Graphically, one might visualize the timeline as follows: | ||||
| OT_abs CT_abs DT_abs | ||||
| -------|-------------|-------------|------------------> | ||||
| Figure 8: Absolute Timeline Representation | ||||
| In Figure 8, the value of CT_abs is envisioned as traveling to the | ||||
| right as time progresses, getting farther away from OT_abs and | ||||
| getting closer to DT_abs. The timeline is considered to be | ||||
| subdivided into time subintervals [i,j] starting and ending at | ||||
| absolute times equal to k*(2^N), for integer values of k. Let I_k = | ||||
| k*(2^N) and I_(k+1) = (k+1)*2^N. Intervals starting at I_k and | ||||
| I_(k+1) may occur at various placements in the above timeline. Even | ||||
| though OT_abs is _always_ less than DT_abs, it could be that DT < OT | ||||
| because of the way that DT and OT are represented within the range | ||||
| [0, 2^N) and similarly for CT_abs and CT compared to OT and DT. | ||||
| Representing the above situation in time segments of length 2^N (and | ||||
| values OT, CT, DT) results in several cases where the deadline time | ||||
| has not elapsed: | ||||
| 1) OT < CT < DT (e.g., I_k < OT_abs < CT_abs < DT_abs < I_(k+1) ) | ||||
| 2) DT < OT < CT (e.g., I_k < OT_abs < CT_abs < I_(k+1) < DT_abs ) | ||||
| 3) CT < DT < OT (e.g., I_k < OT_abs < I_(k+1) < CT_abs < DT_abs ) | ||||
| In the following cases, the deadline time has elapsed and the packet | ||||
| should be dropped. | ||||
| 4) DT < CT < OT | ||||
| 5) OT < DT < CT | ||||
| 6) CT < OT < DT | ||||
| Again in Figure 8, consider CT_abs as time moving away from OT_abs | ||||
| and towards DT_abs. For times CT_abs before the expiration of the | ||||
| deadline time, we also have CT_abs - OT_abs == CT - OT mod 2^N and | ||||
| similarly for DT_abs - CT_abs. | ||||
| As time proceeds, DT_abs - CT_abs gets smaller. When the deadline | ||||
| time expires, DT_abs - CT_abs begins to grow negative. A proper | ||||
| selection for SAFETY_FACTOR allows it to go _slightly negative_ but | ||||
| for an intermediate point to _detect_ that it has gone negative. | ||||
| Note that in modular arithmetic, "slightly negative" means _exactly_ | ||||
| the same as "almost as large as the modulus (i.e., 2^N)". Now | ||||
| consider the test condition ((CT - DT) mod 2^N) > SAFETY_FACTOR*2^N. | ||||
| (DT_abs - OT_abs) < 2^N*(1-SAFETY_FACTOR) satifies the test condition | ||||
| when CT_abs == OT_abs (i.e., when the packet is launched). In | ||||
| modular arithmetic, 2^N*(1-SAFETY_FACTOR) == 2^N - 2^N*SAFETY_FACTOR | ||||
| == -2^N*(SAFETY_FACTOR). Then DT_abs - OT_abs < | ||||
| -2^N*(1-SAFETY_FACTOR). Inverting the inequality, OT_abs - DT_abs > | ||||
| 2^N*(1-SAFETY_FACTOR), and thus at launch CT_abs - DT_abs > | ||||
| 2^N*(1-SAFETY_FACTOR). | ||||
| As CT_abs grows larger, CT_abs - DT_abs gets LARGER in (non-negative) | ||||
| modular arithmetic until the time at which CT_ABS == DT_ABS, and | ||||
| suddenly CT_ABS - DT_abs becomes zero. Also suddenly, the test | ||||
| condition is no longer fulfilled. | ||||
| As CT_abs grows still larger, CT_abs > DT_abs, and we need to detect | ||||
| this condition as soon as possible. Requiring the SAFETY_FACTOR | ||||
| enables this detection until CT_abs exceeds DT_abs by an amount equal | ||||
| to SAFETY_FACTOR*2^N. | ||||
| A note about "inverting the inequality". Observe that a < b implies | ||||
| that -a > -b on the real number line. Also, (a - b) == -(b - a). | ||||
| These facts hold also for modular arithmetic. | ||||
| During the times prior to the expiration of the deadline, for Safe = | ||||
| 2^N*SAFETY_FACTOR we have: | ||||
| (DT_abs - 2^N) < OT_abs < CT_abs < DT_abs < DT_abs+Safe | ||||
| Naturally, DT_abs - 2^N == DT_abs mod 2^N == DT. | ||||
| Again considering Figure 8, it is easy to see that {CT_abs - (DT_abs | ||||
| - 2^N)} gets larger and larger until the time at which CT_abs = | ||||
| DT_abs, which is the first time at which CT - DT == 0 mod 2^N. As | ||||
| CT_abs increases past the deadline time, 0 < CT_abs - DT_abs < Safe. | ||||
| In this range, any intermediate node can detect that the deadline has | ||||
| expired. As CT_abs increases past DT_abs+Safe, it is no longer | ||||
| possible for an intermediate node to determine with certainty whether | ||||
| or not the deadline time has expired. These statements also apply | ||||
| when reduced to modular arithmetic in the modulus 2^N. | ||||
| In particular, the test condition no longer allows detection of | ||||
| deadline expiration when the current time becomes later than | ||||
| (DT_abs+Safe). In order to maintain correctness even for packets | ||||
| that are forwarded after expiration (i.e., the 'D' flag), N has to be | ||||
| chosen to be so large that the test condition will not fail -- i.e., | ||||
| that in all scenarios of interest, the packet will be dropped before | ||||
| the current time becomes equal to DT_abs+2^N*SAFETY_FACTOR. | ||||
| Acknowledgments | Acknowledgments | |||
| The authors thank Pascal Thubert for suggesting the idea and | The authors thank Pascal Thubert for suggesting the idea and | |||
| encouraging the work. Thanks to Shwetha Bhandari's suggestions, | encouraging the work. Thanks to Shwetha Bhandari's suggestions, | |||
| which were instrumental in extending the timing information to | which were instrumental in extending the timing information to | |||
| heterogeneous networks. The authors acknowledge the 6TiSCH WG | heterogeneous networks. The authors acknowledge the 6TiSCH WG | |||
| members for their inputs on the mailing list. Special thanks to | members for their inputs on the mailing list. Special thanks to | |||
| Jerry Daniel, Dan Frost (Routing Directorate), Charlie Kaufman | Jerry Daniel, Dan Frost (Routing Directorate), Charlie Kaufman | |||
| (Security Directorate), Seema Kumar, Tal Mizrahi, Avinash Mohan, | (Security Directorate), Seema Kumar, Tal Mizrahi, Avinash Mohan, | |||
| Shalu Rajendran, Anita Varghese, and Dale Worley (General Area Review | Shalu Rajendran, Anita Varghese, and Dale Worley (General Area Review | |||
| skipping to change at line 813 ¶ | skipping to change at line 986 ¶ | |||
| Amaravati, Andhra Pradesh 522 502 | Amaravati, Andhra Pradesh 522 502 | |||
| India | India | |||
| Email: satishnaidu80@gmail.com | Email: satishnaidu80@gmail.com | |||
| S.V.R. Anand | S.V.R. Anand | |||
| Indian Institute of Science | Indian Institute of Science | |||
| Bangalore 560012 | Bangalore 560012 | |||
| India | India | |||
| Email: anand@ece.iisc.ac.in | Email: anandsvr@iisc.ac.in | |||
| Malati Hegde | Malati Hegde | |||
| Indian Institute of Science | Indian Institute of Science | |||
| Bangalore 560012 | Bangalore 560012 | |||
| India | India | |||
| Email: malati@ece.iisc.ac.in | Email: malati@iisc.ac.in | |||
| Charles E. Perkins | Charles E. Perkins | |||
| Futurewei | Lupin Lodge | |||
| 2330 Central Expressway | 20600 Aldercroft Heights Rd. | |||
| Santa Clara, CA 95050 | Los Gatos, CA 95033 | |||
| United States of America | United States of America | |||
| Email: charliep@computer.org | Email: charliep@computer.org | |||
| End of changes. 22 change blocks. | ||||
| 49 lines changed or deleted | 222 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/ | ||||