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/ |