rfc9034.original | rfc9034.txt | |||
---|---|---|---|---|
6lo Lijo Thomas | Internet Engineering Task Force (IETF) L. Thomas | |||
Internet-Draft C-DAC | Request for Comments: 9034 C-DAC | |||
Intended status: Standards Track S. Anamalamudi | Category: Standards Track S. Anamalamudi | |||
Expires: January 9, 2020 SRM University-AP | ISSN: 2070-1721 SRM University-AP | |||
S.V.R.Anand | S.V.R. Anand | |||
Malati Hegde | M. Hegde | |||
Indian Institute of Science | Indian Institute of Science | |||
C. Perkins | C. Perkins | |||
Futurewei | Lupin Lodge | |||
July 8, 2019 | June 2021 | |||
Packet Delivery Deadline time in 6LoWPAN Routing Header | Packet Delivery Deadline Time in the Routing Header for IPv6 over Low- | |||
draft-ietf-6lo-deadline-time-05 | Power Wireless Personal Area Networks (6LoWPANs) | |||
Abstract | Abstract | |||
This document specifies a new type for the 6LoWPAN routing header | This document specifies a new type for the 6LoWPAN routing header | |||
containing the deadline time for data packets, designed for use over | containing the deadline time for data packets, designed for use over | |||
constrained networks. The deadline time enables forwarding and | constrained networks. The deadline time enables forwarding and | |||
scheduling decisions for time critical IoT machine to machine (M2M) | scheduling decisions for time-critical machine-to-machine (M2M) | |||
applications that operate within time-synchronized networks that | applications running on Internet-enabled devices that operate within | |||
agree on the meaning of the time representations used for the | time-synchronized networks. This document also specifies a | |||
deadline time values. | representation for the deadline time values in such networks. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on January 9, 2020. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9034. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
3. 6LoRHE Generic Format . . . . . . . . . . . . . . . . . . . . 3 | 3. 6LoRHE Generic Format | |||
4. Deadline-6LoRHE . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Deadline-6LoRHE | |||
5. Deadline-6LoRHE Format . . . . . . . . . . . . . . . . . . . 6 | 5. Deadline-6LoRHE Format | |||
6. Deadline-6LoRHE in Three Network Scenarios . . . . . . . . . 8 | 6. Deadline-6LoRHE in Three Network Scenarios | |||
6.1. Scenario 1: Endpoints in the same DODAG (N1) . . . . . . 9 | 6.1. Scenario 1: Endpoints in the Same DODAG (N1) | |||
6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 | 6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 | |||
Technologies. . . . . . . . . . . . . . . . . . . . . . . 10 | Technologies | |||
6.3. Scenario 3: Packet transmission across different DODAGs | 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 | |||
(N1 to N2). . . . . . . . . . . . . . . . . . . . . . . . 11 | to N2) | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations | |||
8. Synchronization Aspects . . . . . . . . . . . . . . . . . . . 13 | 8. Synchronization Aspects | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 9. Security Considerations | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | 10. References | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10.1. Normative References | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 10.2. Informative References | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 17 | Appendix A. Modular Arithmetic Considerations | |||
Appendix A. Changes from revision 04 to revision 05 . . . . . . 18 | Acknowledgments | |||
Appendix B. Changes from revision 03 to revision 04 . . . . . . 18 | Authors' Addresses | |||
Appendix C. Changes from revision 02 to revision 03 . . . . . . 19 | ||||
Appendix D. Changes from revision 01 to revision 02 . . . . . . 19 | ||||
Appendix E. Changes between earlier versions . . . . . . . . . . 20 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
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 [I-D.ietf-detnet-use-cases]. A Deterministic Network | guarantees [RFC8578]. A Deterministic Network ("DetNet") typically | |||
("detnet") typically requires some data packets to reach their | requires some data packets to reach their receivers within strict | |||
receivers within strict time bounds. Intermediate nodes use the | time bounds. Intermediate nodes use the deadline information to make | |||
deadline information to make appropriate packet forwarding and | appropriate packet forwarding and scheduling decisions to meet the | |||
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), so that the deadline time (i.e., the time of latest | Header (6LoRHE), Deadline-6LoRHE, so that the deadline time (i.e., | |||
acceptable delivery) of data packets can be included within the | the time of latest acceptable delivery) of data packets can be | |||
6LoWPAN routing header. [RFC8138] specifies the 6LoWPAN Routing | included within the 6LoRHE. [RFC8138] specifies the 6LoWPAN Routing | |||
Header (6LoRH), compression schemes for RPL routing (source routing) | Header (6LoRH), compression schemes for RPL (Routing Protocol for | |||
operation [RFC6554], header compression of RPL Packet Information | Low-Power and Lossy Networks) source routing [RFC6554], header | |||
[RFC6553], and IP-in-IP encapsulation. This document also specifies | compression of RPL packet information [RFC6553], and IP-in-IP | |||
handling of the deadline time when packets traverse between time- | encapsulation. This document also specifies the handling of the | |||
synchronized networks operating in different timezones or distinct | deadline time when packets traverse time-synchronized networks | |||
reference clocks. Time synchronization techniques are outside the | operating in different time zones or distinct reference clocks. | |||
scope of this document. There are a number of standards available | Time-synchronization techniques are outside the scope of this | |||
for this purpose, including IEEE 1588 [ieee-1588], IEEE 802.1AS | document. There are a number of standards available for this | |||
[dot1AS-2011], IEEE 802.15.4-2015 TSCH [dot15-tsch], and more. | purpose, including IEEE 1588 [IEEE.1588.2008], IEEE 802.1AS | |||
[IEEE.802.1AS.2011], IEEE 802.15.4-2015 Time-Slotted Channel Hopping | ||||
(TSCH) [IEEE.802.15.4], and more. | ||||
The Deadline-6LoRHE can be used in any time synchronized 6Lo network. | The Deadline-6LoRHE can be used in any time-synchronized 6LoWPAN | |||
A 6TiSCH network is used to describe the implementation of the | network. A 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4) network | |||
Deadline-6LoRHE, but this does not preclude its use in scenarios | is used to describe the implementation of the Deadline-6LoRHE, but | |||
other than 6TiSCH. For instance, there is a growing interest in | this does not preclude its use in scenarios other than 6TiSCH. For | |||
using 6lo over a BLE mesh network [I-D.ietf-6lo-blemesh] in | instance, there is a growing interest in using 6LoWPAN over a | |||
industrial IoT [dotBLEMesh]. BLE mesh time synchronization is being | Bluetooth Low Energy (BLE) mesh network [6LO-BLEMESH] in industrial | |||
explored by the Bluetooth community. There are also cases under | IoT (Internet of Things) [IEEE-BLE-MESH]. BLE mesh time | |||
consideration in Wi-SUN [Wi-SUN_PHY], [dotWi-SUN]. | synchronization is being explored by the Bluetooth community. There | |||
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 | |||
[RFC2119] [RFC8174]. | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | ||||
This document uses the terminology defined in [RFC6550] and | This document uses the terminology defined in [RFC6550] and | |||
[I-D.ietf-6tisch-terminology]. | [RFC9030]. | |||
3. 6LoRHE Generic Format | 3. 6LoRHE Generic Format | |||
Note: this section is not normative and is included for convenience. | Note: this section is not normative and is included for convenience. | |||
The generic header format of the 6LoRHE is specified in | The generic header format of the 6LoRHE is specified in [RFC8138]. | |||
[I-D.ietf-roll-routing-dispatch]. Figure 1 illustrates the 6LoRHE | Figure 1 illustrates the 6LoRHE generic format. | |||
generic format. | ||||
0 1 | 0 1 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | |||
|1|0|1| Length | Type | Options | | |1|0|1| Length | Type | Options | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+ | |||
<--- length ---> | <--- length ---> | |||
Figure 1: 6LoRHE format | Figure 1: 6LoRHE Format | |||
o Length: Length of the 6LoRHE expressed in bytes, excluding the | Length: Length of the 6LoRHE expressed in bytes, excluding the first | |||
first 2 bytes. This enables a node to skip a 6LoRHE if the Type | 2 bytes. This enables a node to skip a 6LoRHE if the Type is not | |||
is not recognized/supported. | recognized or supported. | |||
o Type (variable length): Type of the 6LoRHE (see Section 7) | Type (variable length): Type of the 6LoRHE (see Section 7). | |||
4. Deadline-6LoRHE | 4. Deadline-6LoRHE | |||
The Deadline-6LoRHE (see Figure 3) is an elective 6LoRH (i.e., a | The Deadline-6LoRHE (see Figure 3) is a 6LoRHE [RFC8138] that | |||
6LoRHE [RFC8138]) that provides the Deadline Time (DT) for an IPv6 | provides the Deadline Time (DT) for an IPv6 datagram in a compressed | |||
datagram in a compressed form. Along with the deadline, the header | form. Along with the DT, the header can include the Origination Time | |||
can include the packet Origination Time Delta (OTD), the time at | Delta (OTD) packet, which contains the time when the packet was | |||
which the packet is enqueued for transmission (expressed as a value | enqueued for transmission (expressed as a value to be subtracted from | |||
to be subtracted from DT); this enables a close estimate of the total | DT); this enables a close estimate of the total delay incurred by a | |||
delay incurred by a packet. The OTD field is initialized by the | packet. The OTD field is initialized by the sender based on the | |||
sender based on the current time at the outgoing network interface | current time at the outgoing network interface through which the | |||
through which the packet is forwarded. Since the OTD is a delta, the | packet is forwarded. Since the OTD is a delta, the length of the OTD | |||
length of the OTD field (i.e., OTL) will require fewer bits than the | field (i.e., OTL) will require fewer bits than the length of the DT | |||
length of the DT field (i.e., DTL). | field (i.e., DTL). | |||
The deadline field contains the value of the deadline time for the | The DT field contains the value of the deadline time for the packet | |||
packet -- in other words, the time by which the application expects | -- in other words, the time by which the application expects the | |||
the packet to be delivered to the Receiver. | packet to be delivered to the receiver. | |||
packet_deadline_time = packet_origination_time + max_delay | packet_deadline_time = packet_origination_time + max_delay | |||
In order to support delay-sensitive deterministic applications, all | In order to support delay-sensitive, deterministic applications, all | |||
nodes within the network should process the Deadline-6LoRHE. The | nodes within the network should process the Deadline-6LoRHE. The DT | |||
packet deadline time (DT) and origination time (OTD) are represented | and OTD packets are represented in time units determined by a scaling | |||
in time units determined by a scaling parameter in the routing | parameter in the Routing Header. The Network ASN (Absolute Slot | |||
header. The Network ASN (Absolute Slot Number) can be used as a time | Number) can be used as a time unit in a time-slotted synchronized | |||
unit in a time slotted synchronized network (for instance a 6TiSCH | network (for instance, a 6TiSCH network, where global time is | |||
network, where global time is maintained in the units of slot lengths | maintained in the units of slot lengths of a certain resolution). | |||
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 | |||
Destination Time field is updated to represent the same Destination | DT field is updated to represent the same deadline time, but | |||
Time, but expressed using the reference clock of the interface into | expressed using the reference clock of the interface into the new | |||
the new network. Then the origination time is the same as the | network. Then the origination time is the same as the current time | |||
current time when the packet is transmitted into the new network, | when the packet is transmitted into the new network, minus the delay | |||
minus the delay already experienced by the packet, say 'current_dly'. | already experienced by the packet, say 'current_dly'. In this way, | |||
In this way, within the newly entered network, the packet will appear | within the newly entered network, the packet will appear to have | |||
to have originated 'current_dly' time units earlier with respect to | originated 'current_dly' time units earlier with respect to the | |||
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 | ||||
The following example illustrates these calculations when a packet | The following example illustrates these calculations when a packet | |||
travels between three networks, each in a different time zone. 'x' | travels between three networks, each in a different time zone (TZ). | |||
can be 1, 2 or 3. Suppose that the deadline time as measured in | 'x' can be 1, 2, or 3. Suppose that the deadline time as measured in | |||
timezone 1 is 1050 and the origination time is 50. Suppose that the | TZ1 is 1050, and the origination time is 50. Suppose that the | |||
difference between TZ2 and TZ1 is 900, and the difference between TZ3 | difference between TZ2 and TZ1 is 900, and the difference between TZ2 | |||
and TZ3 is 3600. In the figure, OT is the origination time as | and TZ3 is 3600. In the figure, OT is the origination time as | |||
measured in the current timezone, and is equal to DT - OTD, that is, | measured in the current time zone, and is equal to DT - OTD, that is, | |||
DT - 1000. Figure 2 uses the following abbreviations: | DT - 1000. Figure 2 uses the following abbreviations: | |||
TxA : Time of arrival of packet in the network 'x' | TxA: Time of arrival of packet in the network 'x' | |||
TxD : Departure time of packet from the network 'x' | TxD: Departure time of packet from the network 'x' | |||
dlyx : Delay experienced by the packet in the previous network(s) | dlyx: Delay experienced by the packet in the previous network(s) | |||
TZx : The time zone of network 'x' | TZx: The time zone of network 'x' | |||
TZ1 TZ2 TZ3 | TZ1 TZ2 TZ3 | |||
T1A=50| | | | T1A=50| | | | |||
|---- dly1=50 | | | |---- dly1=50 | | | |||
| \ | | | | \ | | | |||
| \ | | | | \ | | | |||
| \ T1D=100 |T2A=1000 | | | \ T1D=100 |T2A=1000 | | |||
| -------->|----- dly2=450 | | | -------->|----- dly2=450 | | |||
| | \ | | | | \ | | |||
| | \ | | | | \ | | |||
skipping to change at page 5, line 43 ¶ | 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, MAC layer contention delay, serialization delay, and | queuing delay, Media Access Control (MAC) layer contention delay, | |||
propagation delays. Sometimes there are processing delays as well. | serialization delay, and propagation delay. Sometimes there are | |||
For the purpose of determining whether or not the deadline has | processing delays as well. For the purpose of determining whether or | |||
already passed, these various delays are not distinguished. | not the deadline has already passed, these various delays are not | |||
distinguished. | ||||
5. Deadline-6LoRHE Format | 5. Deadline-6LoRHE Format | |||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|1|0|1| Length | 6LoRH Type |D| TU| DTL | OTL | BinaryPt | | |1|0|1| Length | 6LoRH Type |D| TU| DTL | OTL | BinaryPt | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| DT (variable length) | OTD(variable length)(optional)| | | DT (variable length) | OTD(variable length)(optional)| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 3: Deadline-6LoRHE format | Figure 3: Deadline-6LoRHE Format | |||
o Length (5 bits): Length represents the total length of the | Length (5 bits): Length represents the total length of the Deadline- | |||
Deadline-6LoRHE type measured in octets. | 6LoRHE Type measured in octets. | |||
o 6LoRH Type: TBD (see Section 7) | ||||
o D flag (1 bit): The 'D' flag, set by the Sender, qualifies the | 6LoRH Type: 7 (See Section 7.) | |||
action to be taken when a 6LR detects that the deadline time has | ||||
elapsed. If 'D' bit is 1, then the 6LR MUST drop the packet if | D flag (1 bit): The 'D' flag, set by the sender, qualifies the | |||
the deadline time is elapsed. If 'D' bit is 0, the packet MAY be | action to be taken when a 6LoWPAN Router (6LR) detects that the | |||
forwarded on an exception basis, if the forwarding node is NOT in | deadline time has elapsed. | |||
a situation of constrained resource, and if there are reasons to | ||||
suspect that downstream nodes might find it useful (delay | If 'D' bit is 1, then the 6LR MUST drop the packet if the deadline | |||
measurements, interpolations, etc.). | time is elapsed. | |||
o TU (2 bits) : Indicates the time units for DT and OTD fields. The | ||||
If 'D' bit is 0, the packet MAY be forwarded on an exception | ||||
basis, if the forwarding node is NOT in a situation of constrained | ||||
resource, and if there are reasons to suspect that downstream | ||||
nodes might find it useful (delay measurements, interpolations, | ||||
etc.). | ||||
TU (2 bits): Indicates the time units for DT and OTD fields. The | ||||
encodings for the DT and OTD fields use the same time units and | encodings for the DT and OTD fields use the same time units and | |||
precision. | precision. | |||
* 00 : Time represented in seconds and fractional seconds | 00 Time represented in seconds and fractional seconds | |||
* 01 : Reserved | 01 Reserved | |||
* 10 : Network ASN | 10 Network ASN | |||
* 11 : Reserved | 11 Reserved | |||
o DTL (4 bits): Length of DT field as an unsigned 4-bit integer, | ||||
DTL (4 bits): Length of the DT field as an unsigned 4-bit integer, | ||||
encoding the length of the field in hex digits, minus one. | encoding the length of the field in hex digits, minus one. | |||
o OTL (3 bits) : Length of OTD field as an unsigned 3-bit integer, | ||||
OTL (3 bits): Length of the OTD field as an unsigned 3-bit integer, | ||||
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 deadline time in the 6LoRHE | For example, DTL = 0b0000 means the DT field in the 6LoRHE is 1 | |||
is 1 hex digit (4 bits) long. OTL = 0b111 means the | hex digit (4 bits) long. OTL = 0b111 means the OTD field is 7 hex | |||
origination time is 7 hex digits (28 bits) long. | digits (28 bits) long. | |||
o Binary Pt (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 | BinaryPt (6 bits): If zero, the number of bits of the integer part | |||
of the DT. if nonzero, the Binary Pt is a signed integer | the DT is equal to the number of bits of the fractional part of | |||
determining the position of the binary point within the value for | the DT. If nonzero, the BinaryPt is a (2's complement) signed | |||
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. | |||
o DT Value (8..64-bit) : An unsigned integer of DTL+1 hex digits | ||||
giving the Deadline Time value | DT Value (4..64 bits): An unsigned integer of DTL+1 hex digits | |||
o OTD Value (8..64-bit) : An unsigned integer of OTL hex digits | giving the DT value. | |||
giving the Origination Time as a negative offset from the DT value | ||||
OTD Value (4..28 bits): If present, an unsigned integer of OTL hex | ||||
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 | |||
has to determine how many time bits are needed to represent the | determines how many time bits are needed to represent the difference | |||
difference between the time at which the packet is launched and the | between the time at which the packet is launched and the deadline | |||
deadline time, including the representation of fractional time units. | time, including the representation of fractional time units. That | |||
That number of bits (say, N_bits) determines DTL (the length of the | number of bits (say, N_bits) determines DTL as follows: | |||
Deadline Time (DT)) as follows: | ||||
DTL = (N_bits mod 4) | DTL = ((N_bits - 1) / 4) | |||
The number of bits determined by DTL allows counting any number of | The number of bits determined by DTL allows the counting of any | |||
fractional time units in the range of interest determined by DT and | number of fractional time units in the range of interest determined | |||
the origination time OT. Denote this number of fractional time units | by DT and the OT. Denote this number of fractional time units to be | |||
to be Epoch_Range(DTL) (i.e., Epoch_Range is a function of DTL). | Epoch_Range(DTL) (i.e., Epoch_Range is a function of DTL): | |||
Epoch_Range(DTL) = (2^(4*(DTL+1)) | Epoch_Range(DTL) = 2^(4*(DTL+1)) | |||
Each point of time between OT and DT is represented by a time unit | Each point of time between OT and DT is represented by a time unit | |||
and a fractional time unit; in this section, this combined | and a fractional time unit; in this section, this combined | |||
representation is called a rational time unit (RTU). 1 RTU measures | representation is called a rational time unit (RTU). 1 RTU measures | |||
the smallest fractional time that can be represented between two | the smallest fractional time that can be represented between two | |||
points of time in the epoch (i.e., within the range of interest). | points of time in the epoch (i.e., within the range of interest). | |||
DT - OT cannot exceed 2^(4*(DTL+1)) == 16^(DTL+1). A low value of | DT - OT cannot exceed 2^(4*(DTL+1)) == 16^(DTL+1). A low value of | |||
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 (DTL) = 16^1 (for any time unit TU). The | RTUs within the Epoch_Range (i.e., Epoch_Range(DTL) = 16^1) for any | |||
values that can be represented in the current epoch are in the range | TU. The values that can be represented in the current epoch are in | |||
[0, (Epoch_Range(DTL) - 1)]. To minimize the required DTL, | the range [0, (Epoch_Range(DTL) - 1)]. | |||
wraparound is allowed but works naturally with the arithmetic modulo | ||||
Epoch_Range. | ||||
By default, DTL determines t_0 in the chosen RTUs as follows: | Assuming wraparound does not occur, OT is represented by the value | |||
(OT mod Epoch_Range), and DT is represented by the value (DT mod | ||||
Epoch_Range). All arithmetic is to be performed modulo | ||||
(Epoch_Range(DTL)), yielding only positive values for DT - OT. | ||||
t_0 = [current_time - (current_time mod Epoch_Range (DTL))]. | 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. | ||||
Naturally, t_0 occurs at time 0 (or time 0.0000...) in the current | Let OT_abs, DT_abs, and CT_abs denote the true (absolute) values (on | |||
epoch. The last possible origination time representable in the | the synchronized timelines) for OT, DT, and current time. Let N be | |||
current epoch (counted in RTUs) is t_last = (t0 + (2^(4*(DTL+1))-1)). | the number of bits to be used to represent the integer parts of | |||
In the RTUs chosen, the current epoch resides at the underlying time | OT_abs, DT_abs, and CT_abs: | |||
interval [t_0, t_last]. If DT - OT is greater than t_last - OT, then | ||||
wraparound within the Epoch_Range occurs naturally. In all cases, OT | ||||
is represented by the value (OT mod Epoch_Range) and DT is | ||||
represented by the value (DT mod Epoch_Range). All arithmetic is to | ||||
be performed modulo (Epoch_Range(DTL)), yielding only positive values | ||||
for DT - OT. | ||||
Example: Consider a 6TiSCH network with time-slot length of 10ms. | 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. | ||||
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) | |||
= 0xD4E4 (Network ASNs) | = 0xD4E4 (Network ASNs) | |||
Then, the Deadline-6LoRHE encoding with nonzero OTL is: | Then, the Deadline-6LoRHE encoding with nonzero OTL is: | |||
DTL = 3, OTL = 2, TU = 0b10, BinaryPt = 8, DT = 0xD4E4, OTD | DTL = 3, OTL = 2, TU = 0b10, BinaryPt = 8, DT = 0xD4E4, | |||
= 0x64 | OTD = 0x64 | |||
6. Deadline-6LoRHE in Three Network Scenarios | 6. Deadline-6LoRHE in Three Network Scenarios | |||
In this section, Deadline-6LoRHE operation is described for 3 network | In this section, the Deadline-6LoRHE operation is described for three | |||
scenarios. Figure 4 depicts a constrained time-synchronized LLN that | network scenarios. Figure 4 depicts a constrained time-synchronized | |||
has two subnets N1 and N2, connected through LBRs | LLN that has two subnets, N1 and N2, connected through 6LoWPAN Border | |||
[I-D.ietf-6lo-backbone-router] with different reference clock times | Routers (6LBRs) [RFC8929] with different reference clock times, T1 | |||
T1 and T2. | and T2. | |||
+-------------------+ | +-------------------+ | |||
| Time Synchronized | | | Time-Synchronized | | |||
| Network | | | Network | | |||
+---------+---------+ | +---------+---------+ | |||
| | | | |||
| | | | |||
| | | | |||
+--------------+--------------+ | +--------------+--------------+ | |||
| | | | | | |||
+-----+ +-----+ | +-----+ +-----+ | |||
| | 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 LLN o o LLN 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 | |||
6LoWPAN Network (subnet N1) 6LoWPAN Network (subnet N2) | 6LoWPAN Network (subnet N1) 6LoWPAN Network (subnet N2) | |||
Figure 4: Intra-network Timezone Scenario | Figure 4: Intra-Network Time Zone Scenario | |||
6.1. Scenario 1: Endpoints in the same DODAG (N1) | 6.1. Scenario 1: Endpoints in the Same DODAG (N1) | |||
In scenario 1, shown in Figure 5, the Sender 'S' has an IP datagram | In Scenario 1, shown in Figure 5, the Sender 'S' has an IP datagram | |||
to be routed to a Receiver 'R' within the same DODAG. For the route | to be routed to a Receiver 'R' within the same Destination-Oriented | |||
segment from Sender to 6LBR, the Sender includes a Deadline-6LoRHE by | Directed Acyclic Graph (DODAG). For the route segment from the | |||
encoding the deadline time contained in the packet. Subsequently, | sender to the 6LBR, the sender includes a Deadline-6LoRHE by encoding | |||
each 6LR will perform hop-by-hop routing to forward the packet | the deadline time contained in the packet. Subsequently, each 6LR | |||
towards the 6LBR. Once 6LBR receives the IP datagram, it sends the | will perform hop-by-hop routing to forward the packet towards the | |||
packet downstream towards 'R'. | 6LBR. Once the 6LBR receives the IP datagram, it sends the packet | |||
downstream towards 'R'. | ||||
In case of a network running RPL non-storing mode, the 6LBR generates | In the case of a network running in RPL non-storing mode, the 6LBR | |||
a IPv6-in-IPv6 encapsulated packet when sending the packet downwards | generates an IPv6-in-IPv6 encapsulated packet when sending the packet | |||
to the Receiver [I-D.ietf-roll-useofrplinfo]. The 6LBR copies the | downwards to the receiver [RFC9008]. The 6LBR copies the Deadline- | |||
Deadline-6LoRHE from the Sender originated IP header to the outer IP | 6LoRHE from the sender-originated IP header to the outer IP header. | |||
header. The Deadline-6LoRHE contained in the inner IP header is | The Deadline-6LoRHE contained in the inner IP header is removed. | |||
removed. | ||||
+-------+ | +-------+ | |||
^ | 6LBR | | | ^ | 6LBR | | | |||
| | | | | | | | | | |||
| +-------+ | | | +-------+ | | |||
Upward | / /| \ | Downward | Upward | / /| \ | Downward | |||
routing | (F) / | \ | routing | routing | (F) / | \ | routing | |||
| / \ (C) | (D) | | | / \ (C) | (D) | | |||
| / \ | | / |\ | | | / \ | | / |\ | | |||
| (A) (B) : (E) : R | | | (A) (B) : (E) : R | | |||
| /|\ | \ / \ | | | /|\ | \ / \ | | |||
| S : : : : : : v | | S : : : : : : v | |||
Figure 5: End points within 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 L2 Technologies. | 6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 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 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 border router, the packet will | deadline time information reaches the 6LBR, the packet will be | |||
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 the | 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 | |||
new network are beyond the scope of this document. | new network are beyond the scope of this document. | |||
+----------------+ | +----------------+ | |||
| Time | | | Time- | | |||
| Synchronized |------R | | Synchronized |------R | |||
| Network | | | Network | | |||
+----------------+ | +----------------+ | |||
| | | | |||
| | | | |||
----------+----------- | ----------+----------- | |||
^ | | ^ | | |||
| +---+---+ | | +---+---+ | |||
| | 6LBR | | | | 6LBR | | |||
Upward | | | | Upward | | | | |||
routing | +------++ | routing | +------++ | |||
| (F)/ /| \ | | (F)/ /| \ | |||
| / \ / | \ | | / \ / | \ | |||
| / \ (C) | (D) | | / \ (C) | (D) | |||
| (A) (B) | | / |\ | | (A) (B) | | / |\ | |||
| /|\ |\ : (E) : : | | /|\ |\ : (E) : : | |||
| S : : : : / \ | | S : : : : / \ | |||
: : | : : | |||
Figure 6: Packet transmission in Dissimilar L2 Technologies or | Figure 6: Packet Transmission in Dissimilar L2 Technologies 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 | |||
the In-band OAM [I-D.ietf-ippm-ioam-data], and then the deadline time | In-situ Operations, Administration, and Maintenance (IOAM) | |||
would be updated according to the measurement of the current time in | [IOAM-DATA], and then the deadline time would be updated according to | |||
the new network. | the measurement of the current time in the new network. | |||
6.3. Scenario 3: Packet transmission across different DODAGs (N1 to | 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 to N2) | |||
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' | |||
(belonging to DODAG 1) has an IP datagram to be sent to Receiver 'R' | (belonging to DODAG 1) has an IP datagram to be sent to Receiver 'R' | |||
belonging to another DODAG (DODAG 2). The operation of this scenario | belonging to another DODAG (DODAG 2). The operation of this scenario | |||
can be decomposed into combination of case 1 and case 2 scenarios. | can be decomposed into a combination of Scenarios 1 and 2. For the | |||
For the route segment from 'S' to 6LBR1, 'S' includes the Deadline- | route segment from 'S' to 6LBR1, 'S' includes the Deadline-6LoRHE. | |||
6LoRHE. Subsequently, each 6LR will perform hop-by-hop operation to | Subsequently, each 6LR will perform hop-by-hop operations to forward | |||
forward the packet towards the 6LBR1. Once the IP datagram reaches | the packet towards 6LBR1. Once the IP datagram reaches 6LBR1 of | |||
6LBR1 of DODAG1, it applies the same rule as described in Case 2 | DODAG1, 6LBR1 applies the same rule as described in Scenario 2 while | |||
while routing the packet to 6LBR2 over a (likely) time synchronized | routing the packet to 6LBR2 over a (likely) time-synchronized wired | |||
wired backhaul. The wired side of 6LBR2 can be mapped to receiver of | backhaul. The wired side of 6LBR2 can be mapped to the receiver of | |||
Case 2. Once the packet reaches 6LBR2, it updates the Deadline- | Scenario 2. Once the packet reaches 6LBR2, it updates the Deadline- | |||
6LoRHE by adding or subtracting the difference of time of DODAG2 and | 6LoRHE by adding or subtracting the difference of time of DODAG2 and | |||
sends the packet downstream towards 'R'. | sends the packet downstream towards 'R'. | |||
Time Synchronized Network | Time-Synchronized Network | |||
-+---------------------------+- | -+---------------------------+- | |||
| | | | | | |||
DODAG1 +---+---+ +---+---+ DODAG2 | DODAG1 +---+---+ +---+---+ DODAG2 | |||
| 6LBR1 | | 6LBR2 | | | 6LBR1 | | 6LBR2 | | |||
| | | | | | | | | | |||
+-------+ +-------+ | +-------+ +-------+ | |||
(F)/ /| \ (F)/ /| \ | (F)/ /| \ (F)/ /| \ | |||
/ \ / | \ / \ / | \ | / \ / | \ / \ / | \ | |||
/ \ (C) | (D) / \ (C) | (D) | / \ (C) | (D) / \ (C) | (D) | |||
(A) (B) | | / |\ (A) (B) | | |\ | (A) (B) | | / |\ (A) (B) | | |\ | |||
/|\ |\ : (E) : : /|\ |\ : (E) : : | /|\ |\ : (E) : : /|\ |\ : (E) : : | |||
S : : : : / \ : : : : : / \ | S : : : : / \ : : : : : / \ | |||
: : : R | : : : R | |||
Network N1, time zone T1 Network N2, time zone T2 | Network N1, time zone T1 Network N2, time zone T2 | |||
Figure 7: Packet transmission in different DODAGs(N1 to N2) | Figure 7: Packet Transmission in Different DODAGs (N1 to N2) | |||
Consider an example of a 6TiSCH network in which S in DODAG1 | Consider an example of a 6TiSCH network in which S in DODAG1 | |||
generates the packet at ASN 20000 to R in DODAG2. Let the maximum | generates the packet at ASN 20000 to R in DODAG2. Let the maximum | |||
allowable delay be 1 second. The time-slot length in DODAG1 and | allowable delay be 1 second. The time-slot length in DODAG1 and | |||
DODAG2 is assumed to be 10ms. Once the deadline time is encoded in | DODAG2 is assumed to be 10 ms. Once the deadline time is encoded in | |||
Deadline-6LoRHE, the packet is forwarded to 6LBR of DODAG1. Suppose | Deadline-6LoRHE, the packet is forwarded to 6LBR1 of DODAG1. Suppose | |||
the packet reaches 6LBR of DODAG1 at ASN 20030. | the packet reaches 6LBR1 of DODAG1 at ASN 20030. | |||
current_time = ASN at LBR * slot_length_value | current_time = ASN at 6LBR * slot_length_value | |||
remaining_time = deadline_time - current_time | remaining_time = deadline_time - current_time | |||
= ((packet_origination_time + max_delay) - current time) | ||||
= (20000 + 100) - 20030 | ||||
= 30 (in Network ASNs) | ||||
= 30 * 10^3 milliseconds. | ||||
Once the Deadline Time information reaches the border router, the | = ((packet_origination_time + max_delay) - current time) | |||
packet will be encoded according to the mechanism prescribed in the | ||||
other time-synchronized network. | = (20000 + 100) - 20030 | |||
= 30 (in Network ASNs) | ||||
= 30 * 10^3 milliseconds | ||||
Once the deadline time information reaches 6LBR2, the packet will be | ||||
encoded according to the mechanism prescribed in the other time- | ||||
synchronized network. | ||||
7. IANA Considerations | 7. IANA Considerations | |||
This document defines a new Elective 6LoWPAN Routing Header Type, and | This document defines a new Elective 6LoWPAN Routing Header Type, and | |||
IANA is requested to assign a value (TBD) from the 6LoWPAN Dispatch | IANA has assigned the value 7 from the 6LoWPAN Dispatch Page 1 number | |||
Page1 number space for this purpose. | space for this purpose. | |||
Elective 6LoRH Type Value | +=======+=================+===========+ | |||
+----------------------+--------+ | | Value | Description | Reference | | |||
| Deadline-6LoRHE | TBD | | +=======+=================+===========+ | |||
+----------------------+--------+ | | 7 | Deadline-6LoRHE | RFC 9034 | | |||
+-------+-----------------+-----------+ | ||||
Figure 8: Deadline-6LoRHE type | Table 1: Entry in the "Elective | |||
6LoWPAN Routing Header Type" | ||||
Registry | ||||
8. Synchronization Aspects | 8. Synchronization Aspects | |||
The document supports time representation of the deadline and | The document supports time representation of the deadline and | |||
origination times carried in the packets traversing through networks | origination times carried in the packets traversing networks of | |||
of different time zones having different time synchronization | different time zones having different time-synchronization | |||
mechanisms. For instance, in a 6TiSCH network where the time is | mechanisms. For instance, in a 6TiSCH network where the time is | |||
maintained as ASN time slots, the time synchronization is achieved | maintained as ASN time slots, the time synchronization is achieved | |||
through beaconing among the nodes as described in [RFC7554]. There | through beaconing among the nodes as described in [RFC7554]. There | |||
could be 6lo networks that employ NTP where the nodes are | could be 6lo networks that employ NTP where the nodes are | |||
synchronized with an external reference clock from an NTP server. | synchronized with an external reference clock from an NTP server. | |||
The specification of the time synchronization method that need to be | The specification of the time-synchronization method that needs to be | |||
followed by a network is beyond the scope of the document. | followed by a network is beyond the scope of the document. | |||
The number of hex digits chosen to represent DT, and the portion of | The number of hex digits chosen to represent DT, and the portion of | |||
that field allocated to represent integer number of seconds, | that field allocated to represent the integer number of seconds, | |||
determines the meaning of t_0, i.e., the meaning of DT == 0 in the | determines the meaning of t_0, i.e., the meaning of DT == 0 in the | |||
chosen representation. If DTL == 0, then there are only 4 bits that | chosen representation. If DTL == 0, then there are only 4 bits that | |||
can be used to count the time units, so that DT == 0 can never be | can be used to count the time units, so that DT == 0 can never be | |||
more than 16 time units (or fractional time units) in the past. This | more than 16 time units (or fractional time units) in the past. This | |||
then requires that the time synchronization between sender and | then requires that the time synchronization between sender and | |||
receiver has to be tighter than 16 units. If the binary point were | receiver has to be tighter than 16 units. If the binary point were | |||
moved so that all the bits were used for fractional time units (e.g., | moved so that all the bits were used for fractional time units (e.g., | |||
fractional seconds or fractional ASNs), the time synchronization | fractional seconds or fractional ASNs), the time-synchronization | |||
requirement would be correspondingly tighter. | requirement would be correspondingly tighter. | |||
A 4-bit field for DT allows up to 16 hex digits, which is 64 bits. | A 4-bit field for DT allows up to 16 hex digits, which is 64 bits. | |||
That is enough to represent the NTP [RFC5905] 64-bit timestamp | That is enough to represent the NTP 64-bit timestamp format | |||
format, which is more than enough for the purposes of establishing | [RFC5905], which is more than enough for the purposes of establishing | |||
deadline times. Unless the binary point is moved, this is enough to | deadline times. Unless the binary point is moved, this is enough to | |||
represent time since year 1900. | represent time since year 1900. | |||
For example, suppose that DTL = 0b0000 and the DT bits are split | For example, suppose that DTL = 0b0000 and the DT bits are split | |||
evenly; then we can count up to 3.75 seconds by quarter-seconds. | evenly; then we can count up to 3.75 seconds by quarter-seconds. | |||
If DTL = 3 and the DT bits are again split evenly, then we can count | If DTL = 3 and the DT bits are again split evenly, then we can count | |||
up to 256 seconds (in steps of 1/256 of a second). | up to 256 seconds (in steps of 1/256 of a second). | |||
In all cases, t_0 is defined as specified in Section 5 | In all cases, t_0 is defined as specified in Section 5. | |||
t_0 = [current_time - (current_time mod (2^(4*(DTL+1))))] | t_0 = [current_time - (current_time mod (2^(4*(DTL+1))))] | |||
regardless of the choice of TU. | regardless of the choice of TU. | |||
For TU = 0b00, the time units are seconds. With DTL == 15, and | For TU = 0b00, the time units are seconds. With DTL == 15, and | |||
Binary Pt == 0, the epoch is (by default) January 1, 1900 at 00:00 | BinaryPt == 0, the epoch is (by default) January 1, 1900, at 00:00 | |||
UTC. The resolution is then (2 ^ (- 32)) seconds, which is the | UTC. The resolution is then 2^-32 seconds, which is the maximum | |||
maximum possible. This time format wraps around every 2^32 seconds, | possible. This time format wraps around every 2^32 seconds, which is | |||
which is roughly 136 years. | roughly 136 years. | |||
For TU = 0b10, the time units are ASNs. The start time is relative, | For TU = 0b10, the time units are ASNs. The start time is relative, | |||
and updated by a mechanism out of scope for this document. With 10 | and updated by a mechanism that is out of scope for this document. | |||
ms slots, DTL = 15, and Binary Pt == 0, it would take over a year for | With 10 ms slots, DTL = 15, and BinaryPt == 0, it would take over a | |||
the ASN to wrap around. Typically, the number of hex digits | year for the ASN to wrap around. Typically, the number of hex digits | |||
allocated for TU = 0b10 would be less than 15. | allocated for TU = 0b10 would be less than 15. | |||
9. Security Considerations | 9. Security Considerations | |||
The security considerations of [RFC4944], [RFC6282] and [RFC6553] | The security considerations of [RFC4944] (Section 13), [RFC6282] | |||
apply. Using a compressed format as opposed to the full in-line | (Section 6), and [RFC6553] (Section 5) apply. Using a compressed | |||
format is logically equivalent and does not create an opening for a | format as opposed to the full inline format is logically equivalent | |||
new threat when compared to [RFC6550], [RFC6553] and [RFC6554]. | and does not create an opening for a new threat when compared to | |||
[RFC6550], [RFC6553], and [RFC6554]. | ||||
The protocol elements specified in this document are designed to work | The protocol elements specified in this document are designed to work | |||
in controlled operational environments (e.g., industrial process | in controlled operational environments (e.g., industrial process | |||
control and automation). In order to avoid misuse of the deadline | control and automation). In order to avoid misuse of the deadline | |||
information that could potentially result in a Denial of Service | information that could potentially result in a Denial of Service | |||
(DoS) attack, proper functioning of this deadline time mechanism | (DoS) attack, proper functioning of this deadline time mechanism | |||
requires the provisioning and management of network resources for | requires the provisioning and management of network resources for | |||
supporting traffic flows with deadlines, performance monitoring, and | supporting traffic flows with deadlines, performance monitoring, and | |||
admission control policy enforcement. The network provisioning can | admission control policy enforcement. The network provisioning can | |||
be done either centrally or in a distributed fashion. For example, | be done either centrally or in a distributed fashion. For example, | |||
tracks in a 6tisch network could be established by a centralized PCE, | tracks in a 6TiSCH network could be established by a centralized Path | |||
as described in the 6tisch architecture | Computation Element (PCE), as described in the 6TiSCH architecture | |||
[I-D.ietf-6tisch-architecture]. | [RFC9030]. | |||
The Security Considerations of Detnet architecture | The security considerations of DetNet architecture [RFC8655] | |||
[I-D.ietf-detnet-architecture] mostly apply to this document as well, | (Section 5) mostly apply to this document as well, as follows. To | |||
as follows. To secure the request and control of resources allocated | secure the request and control of resources allocated for tracks, | |||
for tracks, authentication and authorization can be used for each | authentication and authorization can be used for each device and | |||
device, and network controller devices. In the case of distributed | network controller devices. In the case of distributed control | |||
control protocols, security is expected to be provided by the | protocols, security is expected to be provided by the security | |||
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. Acknowledgements | 10. References | |||
The authors thank Pascal Thubert for suggesting the idea and | ||||
encouraging the work. Thanks to Shwetha Bhandari's suggestions which | ||||
were instrumental in extending the timing information to | ||||
heterogeneous networks. The authors acknowledge the 6TiSCH WG | ||||
members for their inputs on the mailing list. Special thanks to | ||||
Jerry Daniel, Dan Frost (Routing Directorate) Charlie Kaufman | ||||
(Security Directorate) Seema Kumar, Tal Mizrahi Avinash Mohan, Shalu | ||||
Rajendran, Anita Varghese, and Dale Worley (Gen-ART review) for their | ||||
support and valuable feedback. | ||||
11. References | ||||
11.1. Normative References | ||||
[I-D.ietf-6tisch-terminology] | ||||
Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | ||||
"Terms Used in IPv6 over the TSCH mode of IEEE 802.15.4e", | ||||
draft-ietf-6tisch-terminology-10 (work in progress), March | ||||
2018. | ||||
[I-D.ietf-detnet-architecture] | ||||
Finn, N., Thubert, P., Varga, B., and J. Farkas, | ||||
"Deterministic Networking Architecture", draft-ietf- | ||||
detnet-architecture-13 (work in progress), May 2019. | ||||
[I-D.ietf-roll-routing-dispatch] | 10.1. Normative References | |||
Thubert, P., Bormann, C., Toutain, L., and R. Cragie, | ||||
"6LoWPAN Routing Header", draft-ietf-roll-routing- | ||||
dispatch-05 (work in progress), October 2016. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | |||
"Transmission of IPv6 Packets over IEEE 802.15.4 | "Transmission of IPv6 Packets over IEEE 802.15.4 | |||
Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | |||
<https://www.rfc-editor.org/info/rfc4944>. | <https://www.rfc-editor.org/info/rfc4944>. | |||
skipping to change at page 17, line 5 ¶ | skipping to change at line 776 ¶ | |||
[RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
"IPv6 over Low-Power Wireless Personal Area Network | "IPv6 over Low-Power Wireless Personal Area Network | |||
(6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
April 2017, <https://www.rfc-editor.org/info/rfc8138>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
11.2. Informative References | [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas, | |||
"Deterministic Networking Architecture", RFC 8655, | ||||
[dot15-tsch] | DOI 10.17487/RFC8655, October 2019, | |||
"IEEE 802 Wireless", "IEEE Standard for Low-Rate Wireless | <https://www.rfc-editor.org/info/rfc8655>. | |||
Networks, Part 15.4, IEEE Std 802.15.4-2015", April 2016. | ||||
[dot1AS-2011] | ||||
"IEEE Standards", "IEEE Standard for Local and | ||||
Metropolitan Area Networks - Timing and Synchronization | ||||
for Time-Sensitive Applications in Bridged Local Area | ||||
Networks", March 2011. | ||||
[dotBLEMesh] | ||||
Leonardi, L., Pattim, G., and L. Lo Bello, "Multi-Hop | ||||
Real-Time Communications Over Bluetooth Low Energy | ||||
Industrial Wireless Mesh Networks", IEEE Access Vol 6, | ||||
26505-26519, May 2018. | ||||
[dotWi-SUN] | ||||
Harada, H., Mizutani, K., Fujiwara, J., Mochizuki, K., | ||||
Obata, K., and R. Okumura, "IEEE 802.15.4g Based Wi-SUN | ||||
Communication Systems", IEICE Transactions on | ||||
Communications volume E100.B, Jan 2017. | ||||
[I-D.ietf-6lo-backbone-router] | ||||
Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6 | ||||
Backbone Router", draft-ietf-6lo-backbone-router-11 (work | ||||
in progress), February 2019. | ||||
[I-D.ietf-6lo-blemesh] | ||||
Gomez, C., Darroudi, S., Savolainen, T., and M. Spoerk, | ||||
"IPv6 Mesh over BLUETOOTH(R) Low Energy using IPSP", | ||||
draft-ietf-6lo-blemesh-05 (work in progress), March 2019. | ||||
[I-D.ietf-6tisch-architecture] | ||||
Thubert, P., "An Architecture for IPv6 over the TSCH mode | ||||
of IEEE 802.15.4", draft-ietf-6tisch-architecture-24 (work | ||||
in progress), July 2019. | ||||
[I-D.ietf-detnet-use-cases] | ||||
Grossman, E., "Deterministic Networking Use Cases", draft- | ||||
ietf-detnet-use-cases-20 (work in progress), December | ||||
2018. | ||||
[I-D.ietf-ippm-ioam-data] | ||||
Brockners, F., Bhandari, S., Pignataro, C., Gredler, H., | ||||
Leddy, J., Youell, S., Mizrahi, T., Mozes, D., Lapukhov, | ||||
P., Chang, R., daniel.bernier@bell.ca, d., and J. Lemon, | ||||
"Data Fields for In-situ OAM", draft-ietf-ippm-ioam- | ||||
data-06 (work in progress), July 2019. | ||||
[I-D.ietf-roll-useofrplinfo] | ||||
Robles, I., Richardson, M., and P. Thubert, "Using RPL | ||||
Option Type, Routing Header for Source Routes and IPv6-in- | ||||
IPv6 encapsulation in the RPL Data Plane", draft-ietf- | ||||
roll-useofrplinfo-31 (work in progress), July 2019. | ||||
[ieee-1588] | ||||
"IEEE Standards", "IEEE Std 1588-2008 Standard for a | ||||
Precision Clock Synchronization Protocol for Networked | ||||
Measurement and Control Systems", July 2008. | ||||
[Wi-SUN_PHY] | [RFC9030] Thubert, P., Ed., "An Architecture for IPv6 over the Time- | |||
Wi-SUN Alliance, "Wi-SUN PHY Specification V1.0", March | Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)", | |||
2016. | RFC 9030, DOI 10.17487/RFC9030, May 2021, | |||
<https://www.rfc-editor.org/info/rfc9030>. | ||||
Appendix A. Changes from revision 04 to revision 05 | 10.2. Informative References | |||
This section lists the changes between draft-ietf-6lo-deadline-time | [6LO-BLEMESH] | |||
revisions ...-04.txt and ...-05.txt. | Gomez, C., Darroudi, S. M., Savolainen, T., and M. Spoerk, | |||
"IPv6 Mesh over BLUETOOTH(R) Low Energy using IPSP", Work | ||||
in Progress, Internet-Draft, draft-ietf-6lo-blemesh-10, 22 | ||||
April 2021, | ||||
<https://tools.ietf.org/html/draft-ietf-6lo-blemesh-10>. | ||||
o Included additional relevant material in Security Considerations | [IEEE-BLE-MESH] | |||
regarding expected deployment scenarios and the effect of | Leonardi, L., Patti, G., and L. Lo Bello, "Multi-Hop Real- | |||
disclosing additional information during the travel of a packet. | Time Communications Over Bluetooth Low Energy Industrial | |||
Wireless Mesh Networks", IEEE Access, Vol 6, pp. | ||||
26505-26519, DOI 10.1109/ACCESS.2018.2834479, May 2018, | ||||
<https://doi.org/10.1109/ACCESS.2018.2834479>. | ||||
o Reworked the specification for using time ranges shorter than the | [IEEE.1588.2008] | |||
maximum allowed by the choice of TU, so that fewer bits are needed | IEEE, "IEEE Standard for a Precision Clock Synchronization | |||
to represent DT and OT. | Protocol for Networked Measurement and Control Systems", | |||
DOI 10.1109/IEEESTD.2008.4579760, July 2008, | ||||
<https://doi.org/10.1109/IEEESTD.2008.4579760>. | ||||
o Revised the figures and examples to use new parameters | [IEEE.802.15.4] | |||
IEEE, "IEEE Standard for Low-Rate Wireless Networks", IEEE | ||||
Standard 802.15.4-2015, DOI 10.1109/IEEESTD.2016.7460875, | ||||
April 2016, | ||||
<https://ieeexplore.ieee.org/document/7460875>. | ||||
o Reordered the field definitions for the Deadline-6LoRHE. | [IEEE.802.1AS.2011] | |||
IEEE, "IEEE Standard for Local and Metropolitan Area | ||||
Networks - Timing and Synchronization for Time-Sensitive | ||||
Applications in Bridged Local Area Networks", IEEE Std | ||||
802.1AS-2011, DOI 10.1109/IEEESTD.2011.5741898, March | ||||
2011, <https://doi.org/10.1109/IEEESTD.2011.5741898>. | ||||
o Responded to numerous reviewer comments to improve terminology and | [IOAM-DATA] | |||
editorial consistency. | Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, | |||
Ed., "Data Fields for In-situ OAM", Work in Progress, | ||||
Internet-Draft, draft-ietf-ippm-ioam-data-12, 21 February | ||||
2021, <https://tools.ietf.org/html/draft-ietf-ippm-ioam- | ||||
data-12>. | ||||
Appendix B. Changes from revision 03 to revision 04 | [PHY-SPEC] Wi-SUN Alliance, "Wi-SUN PHY Specification V1.0", March | |||
2016, <http://wi-sun.org>. | ||||
This section lists the changes between draft-ietf-6lo-deadline-time | [RFC8578] Grossman, E., Ed., "Deterministic Networking Use Cases", | |||
revisions ...-03.txt and ...-04.txt. | RFC 8578, DOI 10.17487/RFC8578, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8578>. | ||||
o Replaced OT (Origination Time) field by OTD (Origination Time | [RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli, | |||
Delta), allowing a more compressed representation that needs less | "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929, | |||
processing during transitions between networks. | November 2020, <https://www.rfc-editor.org/info/rfc8929>. | |||
o Changed representation for DTL, OTL, DT, OTD. Eliminated EXP in | [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI | |||
favor of BinaryPt. | Option Type, Routing Header for Source Routes, and IPv6- | |||
in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, | ||||
DOI 10.17487/RFC9008, April 2021, | ||||
<https://www.rfc-editor.org/info/rfc9008>. | ||||
o Revised the figures and examples to use new parameters | [Wi-SUN] Harada, H., Mizutani, K., Fujiwara, J., Mochizuki, K., | |||
Obata, K., and R. Okumura, "IEEE 802.15.4g Based Wi-SUN | ||||
Communication Systems", IEICE Transactions on | ||||
Communications, Volume E100.B, Issue 7, pp. 1032-1043, | ||||
DOI 10.1587/transcom.2016SCI0002, January 2017, | ||||
<https://doi.org/10.1587/transcom.2016SCI0002>. | ||||
o Added new section on Synchronization Aspects to supply pertinent | Appendix A. Modular Arithmetic Considerations | |||
information about how nodes agree on the meaning of t=0. | ||||
o Responded to numerous reviewer comments to improve editorial | Graphically, one might visualize the timeline as follows: | |||
consistency and improve terminology. | ||||
Appendix C. Changes from revision 02 to revision 03 | OT_abs CT_abs DT_abs | |||
-------|-------------|-------------|------------------> | ||||
This section lists the changes between draft-ietf-6lo-deadline-time | Figure 8: Absolute Timeline Representation | |||
revisions ...-02.txt and ...-03.txt. | ||||
o Added non-normative 6LoRHE description, citing RFC 8138. | 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. | ||||
o Specified that the Origination Time (OT) is the time that packet | Representing the above situation in time segments of length 2^N (and | |||
is enqueued for transmission. | values OT, CT, DT) results in several cases where the deadline time | |||
has not elapsed: | ||||
o Mentioned more sources of packet delay. | 1) OT < CT < DT (e.g., I_k < OT_abs < CT_abs < DT_abs < I_(k+1) ) | |||
o Clarified reasons that packet MAY be forwarded if 'D' bit is 0. | 2) DT < OT < CT (e.g., I_k < OT_abs < CT_abs < I_(k+1) < DT_abs ) | |||
o Clarified that DT, OT, DTL and OTL are unsigned integers. | 3) CT < DT < OT (e.g., I_k < OT_abs < I_(k+1) < CT_abs < DT_abs ) | |||
o Updated bibliographic citations, including BLEmesh and Wi-SUN. | In the following cases, the deadline time has elapsed and the packet | |||
should be dropped. | ||||
Appendix D. Changes from revision 01 to revision 02 | 4) DT < CT < OT | |||
This section lists the changes between draft-ietf-6lo-deadline-time | 5) OT < DT < CT | |||
revisions ...-01.txt and ...-02.txt. | ||||
o Replaced 6LoRHE description by reference to RFC 8138. | 6) CT < OT < DT | |||
o Added figure to illustrate change to Origination Time when a | Again in Figure 8, consider CT_abs as time moving away from OT_abs | |||
packet crosses timezone boundaries. | 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. | ||||
o Clarified that use of 6tisch networks is descriptive, not | As time proceeds, DT_abs - CT_abs gets smaller. When the deadline | |||
normative. | 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. | ||||
o Clarified that In-Band OAM is used as an example and is not | (DT_abs - OT_abs) < 2^N*(1-SAFETY_FACTOR) satisfies the test | |||
normative. | 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). | ||||
o Updated bibliographic citations. | 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. | ||||
o Alphabetized contributor names. | 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. | ||||
Appendix E. Changes between earlier versions | 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. | ||||
This section lists the changes between draft-ietf-6lo-deadline-time | During the times prior to the expiration of the deadline, for Safe = | |||
revisions ...-00.txt and ...-01.txt. | 2^N*SAFETY_FACTOR we have: | |||
o Changed "SHOULD drop" to "MUST drop" a packet if the deadline is | (DT_abs - 2^N) < OT_abs < CT_abs < DT_abs < DT_abs+Safe | |||
passed (see Section 5). | ||||
o Added explanatory text about how packet delays might arise. (see | Naturally, DT_abs - 2^N == DT_abs mod 2^N == DT. | |||
Section 4). | ||||
o Mentioned availability of time-synchronization protocols (see | Again considering Figure 8, it is easy to see that {CT_abs - (DT_abs | |||
Section 1). | - 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. | ||||
o Updated bibliographic citations. | 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. | ||||
o Alphabetized contributor names. | Acknowledgments | |||
o Added this section. | The authors thank Pascal Thubert for suggesting the idea and | |||
encouraging the work. Thanks to Shwetha Bhandari's suggestions, | ||||
which were instrumental in extending the timing information to | ||||
heterogeneous networks. The authors acknowledge the 6TiSCH WG | ||||
members for their inputs on the mailing list. Special thanks to | ||||
Jerry Daniel, Dan Frost (Routing Directorate), Charlie Kaufman | ||||
(Security Directorate), Seema Kumar, Tal Mizrahi, Avinash Mohan, | ||||
Shalu Rajendran, Anita Varghese, and Dale Worley (General Area Review | ||||
Team (Gen-ART) review) for their support and valuable feedback. | ||||
Authors' Addresses | Authors' Addresses | |||
Lijo Thomas | Lijo Thomas | |||
C-DAC | Centre for Development of Advanced Computing | |||
Centre for Development of Advanced Computing (C-DAC), Vellayambalam | Vellayambalam | |||
Trivandrum 695033 | Trivandrum 695033 | |||
India | India | |||
Email: lijo@cdac.in | Email: lijo@cdac.in | |||
Satish Anamalamudi | Satish Anamalamudi | |||
SRM University-AP | SRM University-AP | |||
Amaravati Campus | Amaravati Campus | |||
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.ernet.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.ernet.in | Email: malati@iisc.ac.in | |||
Charles E. Perkins | Charles E. Perkins | |||
Futurewei | Lupin Lodge | |||
2330 Central Expressway | 20600 Aldercroft Heights Rd. | |||
Santa Clara 95050 | Los Gatos, CA 95033 | |||
Unites States | United States of America | |||
Email: charliep@computer.org | Email: charliep@computer.org | |||
End of changes. 136 change blocks. | ||||
465 lines changed or deleted | 538 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/ |