summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9034.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9034.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9034.txt')
-rw-r--r--doc/rfc/rfc9034.txt1010
1 files changed, 1010 insertions, 0 deletions
diff --git a/doc/rfc/rfc9034.txt b/doc/rfc/rfc9034.txt
new file mode 100644
index 0000000..8ac3d82
--- /dev/null
+++ b/doc/rfc/rfc9034.txt
@@ -0,0 +1,1010 @@
+
+
+
+
+Internet Engineering Task Force (IETF) L. Thomas
+Request for Comments: 9034 C-DAC
+Category: Standards Track S. Anamalamudi
+ISSN: 2070-1721 SRM University-AP
+ S.V.R. Anand
+ M. Hegde
+ Indian Institute of Science
+ C. Perkins
+ Lupin Lodge
+ June 2021
+
+
+ Packet Delivery Deadline Time in the Routing Header for IPv6 over
+ Low-Power Wireless Personal Area Networks (6LoWPANs)
+
+Abstract
+
+ This document specifies a new type for the 6LoWPAN routing header
+ containing the deadline time for data packets, designed for use over
+ constrained networks. The deadline time enables forwarding and
+ scheduling decisions for time-critical machine-to-machine (M2M)
+ applications running on Internet-enabled devices that operate within
+ time-synchronized networks. This document also specifies a
+ representation for the deadline time values in such networks.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ 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 (c) 2021 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Terminology
+ 3. 6LoRHE Generic Format
+ 4. Deadline-6LoRHE
+ 5. Deadline-6LoRHE Format
+ 6. Deadline-6LoRHE in Three Network Scenarios
+ 6.1. Scenario 1: Endpoints in the Same DODAG (N1)
+ 6.2. Scenario 2: Endpoints in Networks with Dissimilar L2
+ Technologies
+ 6.3. Scenario 3: Packet Transmission across Different DODAGs (N1
+ to N2)
+ 7. IANA Considerations
+ 8. Synchronization Aspects
+ 9. Security Considerations
+ 10. References
+ 10.1. Normative References
+ 10.2. Informative References
+ Appendix A. Modular Arithmetic Considerations
+ Acknowledgments
+ Authors' Addresses
+
+1. Introduction
+
+ Low-Power and Lossy Networks (LLNs) are likely to be deployed for
+ real-time industrial applications requiring end-to-end delay
+ guarantees [RFC8578]. A Deterministic Network ("DetNet") typically
+ requires some data packets to reach their receivers within strict
+ time bounds. Intermediate nodes use the deadline information to make
+ appropriate packet forwarding and scheduling decisions to meet the
+ time bounds.
+
+ This document specifies a new type for the Elective 6LoWPAN Routing
+ Header (6LoRHE), Deadline-6LoRHE, so that the deadline time (i.e.,
+ the time of latest acceptable delivery) of data packets can be
+ included within the 6LoRHE. [RFC8138] specifies the 6LoWPAN Routing
+ Header (6LoRH), compression schemes for RPL (Routing Protocol for
+ Low-Power and Lossy Networks) source routing [RFC6554], header
+ compression of RPL packet information [RFC6553], and IP-in-IP
+ encapsulation. This document also specifies the handling of the
+ deadline time when packets traverse time-synchronized networks
+ operating in different time zones or distinct reference clocks.
+ Time-synchronization techniques are outside the scope of this
+ document. There are a number of standards available for this
+ 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 6LoWPAN
+ network. A 6TiSCH (IPv6 over the TSCH mode of IEEE 802.15.4) network
+ is used to describe the implementation of the Deadline-6LoRHE, but
+ this does not preclude its use in scenarios other than 6TiSCH. For
+ instance, there is a growing interest in using 6LoWPAN over a
+ Bluetooth Low Energy (BLE) mesh network [6LO-BLEMESH] in industrial
+ IoT (Internet of Things) [IEEE-BLE-MESH]. BLE mesh time
+ synchronization is being explored by the Bluetooth community. There
+ are also cases under consideration in Wi-SUN [PHY-SPEC] [Wi-SUN].
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+ This document uses the terminology defined in [RFC6550] and
+ [RFC9030].
+
+3. 6LoRHE Generic Format
+
+ Note: this section is not normative and is included for convenience.
+ The generic header format of the 6LoRHE is specified in [RFC8138].
+ Figure 1 illustrates the 6LoRHE generic format.
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
+ |1|0|1| Length | Type | Options |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+
+ <--- length --->
+
+ Figure 1: 6LoRHE Format
+
+ Length: Length of the 6LoRHE expressed in bytes, excluding the first
+ 2 bytes. This enables a node to skip a 6LoRHE if the Type is not
+ recognized or supported.
+
+ Type (variable length): Type of the 6LoRHE (see Section 7).
+
+4. Deadline-6LoRHE
+
+ The Deadline-6LoRHE (see Figure 3) is a 6LoRHE [RFC8138] that
+ provides the Deadline Time (DT) for an IPv6 datagram in a compressed
+ form. Along with the DT, the header can include the Origination Time
+ Delta (OTD) packet, which contains the time when the packet was
+ enqueued for transmission (expressed as a value to be subtracted from
+ DT); this enables a close estimate of the total delay incurred by a
+ packet. The OTD field is initialized by the sender based on the
+ current time at the outgoing network interface through which the
+ packet is forwarded. Since the OTD is a delta, the length of the OTD
+ field (i.e., OTL) will require fewer bits than the length of the DT
+ field (i.e., DTL).
+
+ The DT field contains the value of the deadline time for the packet
+ -- in other words, the time by which the application expects the
+ packet to be delivered to the receiver.
+
+ packet_deadline_time = packet_origination_time + max_delay
+
+ In order to support delay-sensitive, deterministic applications, all
+ nodes within the network should process the Deadline-6LoRHE. The DT
+ and OTD packets are represented in time units determined by a scaling
+ parameter in the Routing Header. The Network ASN (Absolute Slot
+ Number) can be used as a time unit in a time-slotted synchronized
+ network (for instance, a 6TiSCH network, where global time is
+ maintained in the units of slot lengths of a certain resolution).
+
+ The delay experienced by packets in the network is a useful metric
+ for network diagnostics and performance monitoring. Whenever a
+ packet crosses into a network using a different reference clock, the
+ DT field is updated to represent the same deadline time, but
+ expressed using the reference clock of the interface into the new
+ network. Then the origination time is the same as the current time
+ when the packet is transmitted into the new network, minus the delay
+ already experienced by the packet, say 'current_dly'. In this way,
+ within the newly entered network, the packet will appear to have
+ originated 'current_dly' time units earlier with respect to the
+ reference clock of the new network.
+
+ new_network_origin_time = time_now_in_new_network - current_dly
+
+ The following example illustrates these calculations when a packet
+ travels between three networks, each in a different time zone (TZ).
+ 'x' can be 1, 2, or 3. Suppose that the deadline time as measured in
+ TZ1 is 1050, and the origination time is 50. Suppose that the
+ 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
+ measured in the current time zone, and is equal to DT - OTD, that is,
+ DT - 1000. Figure 2 uses the following abbreviations:
+
+ TxA: Time of arrival of packet in the network 'x'
+
+ TxD: Departure time of packet from the network 'x'
+
+ dlyx: Delay experienced by the packet in the previous network(s)
+
+ TZx: The time zone of network 'x'
+
+
+ TZ1 TZ2 TZ3
+ T1A=50| | |
+ |---- dly1=50 | |
+ | \ | |
+ | \ | |
+ | \ T1D=100 |T2A=1000 |
+ | -------->|----- dly2=450 |
+ | | \ |
+ | | \ |
+ | | \ T2D=1400 | T3A=5000
+ | | ------------------->|---------->
+ | | |
+ v v v
+
+ dly0 = 0 dly1 = T1D-OT1 dly2 = T2D-OT2
+ = 100-50 = 1400 - 950
+ = 50 = 450
+
+ OT1 = T1A-dly0 OT2 = T2A-dly1 OT3 = T3A-dly2
+ = 50 = 1000-50 = 5000 - 450
+ = 950 = 4550
+
+ Figure 2: Deadline Time Update Example
+
+ There are multiple ways that a packet can be delayed, including
+ queuing delay, Media Access Control (MAC) layer contention delay,
+ serialization delay, and propagation delay. Sometimes there are
+ processing delays as well. For the purpose of determining whether or
+ not the deadline has already passed, these various delays are not
+ distinguished.
+
+5. Deadline-6LoRHE Format
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |1|0|1| Length | 6LoRH Type |D| TU| DTL | OTL | BinaryPt |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | DT (variable length) | OTD(variable length)(optional)|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 3: Deadline-6LoRHE Format
+
+ Length (5 bits): Length represents the total length of the Deadline-
+ 6LoRHE Type measured in octets.
+
+ 6LoRH Type: 7 (See Section 7.)
+
+ D flag (1 bit): The 'D' flag, set by the sender, qualifies the
+ action to be taken when a 6LoWPAN Router (6LR) detects that the
+ deadline time has elapsed.
+
+ If 'D' bit is 1, then the 6LR MUST drop the packet if the deadline
+ time is elapsed.
+
+ 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
+ precision.
+
+ 00 Time represented in seconds and fractional seconds
+ 01 Reserved
+ 10 Network ASN
+ 11 Reserved
+
+ 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.
+
+ 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
+ OTD field is not present. The value of OTL MUST NOT exceed the
+ value of DTL plus one.
+
+ 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
+ digits (28 bits) long.
+
+ 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. If nonzero, the BinaryPt is a (2's complement) signed
+ 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
+ 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
+ correspondingly reduced. This increases the range of DT.
+
+ * If BinaryPt value is negative, then the number of bits for the
+ 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
+ correspondingly increased. This increases the precision of the
+ fractional seconds part of DT.
+
+ DT Value (4..64 bits): An unsigned integer of DTL+1 hex digits
+ giving 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
+ Deadline-6LoRHE along with other 6LoRH information. For information
+ about the time-synchronization requirements between sender and
+ receiver, see Section 8.
+
+ For the chosen time unit, a compressed time representation is
+ available as follows. First, the application on the originating node
+ determines how many time bits are needed to represent the difference
+ between the time at which the packet is launched and the deadline
+ time, including the representation of fractional time units. That
+ number of bits (say, N_bits) determines DTL as follows:
+
+ DTL = ((N_bits - 1) / 4)
+
+ The number of bits determined by DTL allows the counting of any
+ number of fractional time units in the range of interest determined
+ by DT and the OT. Denote this number of fractional time units to be
+ Epoch_Range(DTL) (i.e., Epoch_Range is a function of DTL):
+
+ Epoch_Range(DTL) = 2^(4*(DTL+1))
+
+ Each point of time between OT and DT is represented by a time unit
+ and a fractional time unit; in this section, this combined
+ representation is called a rational time unit (RTU). 1 RTU measures
+ the smallest fractional time that can be represented between two
+ 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
+ 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
+ TU. The values that can be represented in the current epoch are in
+ the range [0, (Epoch_Range(DTL) - 1)].
+
+ 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.
+
+ 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.
+ Let the time units be ASNs (TU == (binary)0b10). Let the current
+ ASN when the packet is originated be 54400, and the maximum
+ allowable delay (max_delay) for the packet delivery be 1 second
+ from the packet origination, then:
+
+ deadline_time = packet_origination_time + max_delay
+
+ = 0xD480 + 0x64 (Network ASNs)
+
+ = 0xD4E4 (Network ASNs)
+
+ Then, the Deadline-6LoRHE encoding with nonzero OTL is:
+
+ DTL = 3, OTL = 2, TU = 0b10, BinaryPt = 8, DT = 0xD4E4,
+ OTD = 0x64
+
+6. Deadline-6LoRHE in Three Network Scenarios
+
+ In this section, the Deadline-6LoRHE operation is described for three
+ network scenarios. Figure 4 depicts a constrained time-synchronized
+ LLN that has two subnets, N1 and N2, connected through 6LoWPAN Border
+ Routers (6LBRs) [RFC8929] with different reference clock times, T1
+ and T2.
+
+ +-------------------+
+ | Time-Synchronized |
+ | Network |
+ +---------+---------+
+ |
+ |
+ |
+ +--------------+--------------+
+ | |
+ +-----+ +-----+
+ | | Backbone | | Backbone
+ o | | router | | router
+ +-----+ +-----+
+ o o o
+ o o o o o o o o o
+ o LLN o o LLN o o
+ o o o o o o o o o
+ 6LoWPAN Network (subnet N1) 6LoWPAN Network (subnet N2)
+
+ Figure 4: Intra-Network Time Zone Scenario
+
+6.1. Scenario 1: Endpoints in the Same DODAG (N1)
+
+ In Scenario 1, shown in Figure 5, the Sender 'S' has an IP datagram
+ to be routed to a Receiver 'R' within the same Destination-Oriented
+ Directed Acyclic Graph (DODAG). For the route segment from the
+ sender to the 6LBR, the sender includes a Deadline-6LoRHE by encoding
+ the deadline time contained in the packet. Subsequently, each 6LR
+ will perform hop-by-hop routing to forward the packet towards the
+ 6LBR. Once the 6LBR receives the IP datagram, it sends the packet
+ downstream towards 'R'.
+
+ In the case of a network running in RPL non-storing mode, the 6LBR
+ generates an IPv6-in-IPv6 encapsulated packet when sending the packet
+ downwards to the receiver [RFC9008]. The 6LBR copies the Deadline-
+ 6LoRHE from the sender-originated IP header to the outer IP header.
+ The Deadline-6LoRHE contained in the inner IP header is removed.
+
+ +-------+
+ ^ | 6LBR | |
+ | | | |
+ | +-------+ |
+ Upward | / /| \ | Downward
+ routing | (F) / | \ | routing
+ | / \ (C) | (D) |
+ | / \ | | / |\ |
+ | (A) (B) : (E) : R |
+ | /|\ | \ / \ |
+ | S : : : : : : v
+
+ Figure 5: Endpoints within the Same DODAG (Subnet N1)
+
+ At the tunnel endpoint of the encapsulation, the Deadline-6LoRHE is
+ copied back from the outer header to inner header, and the inner IP
+ packet is delivered to 'R'.
+
+6.2. Scenario 2: Endpoints in Networks with Dissimilar L2 Technologies
+
+ 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-
+ synchronized IPv6 network. For the route segment from 'S' to 6LBR,
+ 'S' includes a Deadline-6LoRHE. Subsequently, each 6LR will perform
+ hop-by-hop routing to forward the packet towards the 6LBR. Once the
+ deadline time information reaches the 6LBR, the packet will be
+ encoded according to the mechanism prescribed in the other time-
+ synchronized network depicted as "Time-Synchronized Network" in
+ Figure 6. The specific data encapsulation mechanisms followed in the
+ new network are beyond the scope of this document.
+
+ +----------------+
+ | Time- |
+ | Synchronized |------R
+ | Network |
+ +----------------+
+ |
+ |
+ ----------+-----------
+ ^ |
+ | +---+---+
+ | | 6LBR |
+ Upward | | |
+ routing | +------++
+ | (F)/ /| \
+ | / \ / | \
+ | / \ (C) | (D)
+ | (A) (B) | | / |\
+ | /|\ |\ : (E) : :
+ | S : : : : / \
+ : :
+
+ Figure 6: Packet Transmission in Dissimilar L2 Technologies or
+ Internet
+
+ For instance, the IP datagram could be routed to another time-
+ synchronized, deterministic network using the mechanism specified in
+ In-situ Operations, Administration, and Maintenance (IOAM)
+ [IOAM-DATA], and then the deadline time would be updated according to
+ the measurement of the current time in the new network.
+
+6.3. Scenario 3: Packet Transmission across Different DODAGs (N1 to N2)
+
+ 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 another DODAG (DODAG 2). The operation of this scenario
+ can be decomposed into a combination of Scenarios 1 and 2. For the
+ route segment from 'S' to 6LBR1, 'S' includes the Deadline-6LoRHE.
+ Subsequently, each 6LR will perform hop-by-hop operations to forward
+ the packet towards 6LBR1. Once the IP datagram reaches 6LBR1 of
+ DODAG1, 6LBR1 applies the same rule as described in Scenario 2 while
+ routing the packet to 6LBR2 over a (likely) time-synchronized wired
+ backhaul. The wired side of 6LBR2 can be mapped to the receiver of
+ Scenario 2. Once the packet reaches 6LBR2, it updates the Deadline-
+ 6LoRHE by adding or subtracting the difference of time of DODAG2 and
+ sends the packet downstream towards 'R'.
+
+ Time-Synchronized Network
+ -+---------------------------+-
+ | |
+ DODAG1 +---+---+ +---+---+ DODAG2
+ | 6LBR1 | | 6LBR2 |
+ | | | |
+ +-------+ +-------+
+ (F)/ /| \ (F)/ /| \
+ / \ / | \ / \ / | \
+ / \ (C) | (D) / \ (C) | (D)
+ (A) (B) | | / |\ (A) (B) | | |\
+ /|\ |\ : (E) : : /|\ |\ : (E) : :
+ S : : : : / \ : : : : : / \
+ : : : R
+ Network N1, time zone T1 Network N2, time zone T2
+
+ Figure 7: Packet Transmission in Different DODAGs (N1 to N2)
+
+ 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
+ allowable delay be 1 second. The time-slot length in DODAG1 and
+ DODAG2 is assumed to be 10 ms. Once the deadline time is encoded in
+ Deadline-6LoRHE, the packet is forwarded to 6LBR1 of DODAG1. Suppose
+ the packet reaches 6LBR1 of DODAG1 at ASN 20030.
+
+ current_time = ASN at 6LBR * slot_length_value
+
+ 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 6LBR2, the packet will be
+ encoded according to the mechanism prescribed in the other time-
+ synchronized network.
+
+7. IANA Considerations
+
+ This document defines a new Elective 6LoWPAN Routing Header Type, and
+ IANA has assigned the value 7 from the 6LoWPAN Dispatch Page 1 number
+ space for this purpose.
+
+ +=======+=================+===========+
+ | Value | Description | Reference |
+ +=======+=================+===========+
+ | 7 | Deadline-6LoRHE | RFC 9034 |
+ +-------+-----------------+-----------+
+
+ Table 1: Entry in the "Elective
+ 6LoWPAN Routing Header Type"
+ Registry
+
+8. Synchronization Aspects
+
+ The document supports time representation of the deadline and
+ origination times carried in the packets traversing networks of
+ different time zones having different time-synchronization
+ mechanisms. For instance, in a 6TiSCH network where the time is
+ maintained as ASN time slots, the time synchronization is achieved
+ through beaconing among the nodes as described in [RFC7554]. There
+ could be 6lo networks that employ NTP where the nodes are
+ synchronized with an external reference clock from an NTP server.
+ The specification of the time-synchronization method that needs to be
+ followed by a network is beyond the scope of the document.
+
+ The number of hex digits chosen to represent DT, and the portion of
+ 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
+ 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
+ more than 16 time units (or fractional time units) in the past. This
+ then requires that the time synchronization between sender and
+ 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.,
+ fractional seconds or fractional ASNs), the time-synchronization
+ requirement would be correspondingly tighter.
+
+ A 4-bit field for DT allows up to 16 hex digits, which is 64 bits.
+ That is enough to represent the NTP 64-bit timestamp format
+ [RFC5905], which is more than enough for the purposes of establishing
+ deadline times. Unless the binary point is moved, this is enough to
+ represent time since year 1900.
+
+ 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.
+
+ 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).
+
+ In all cases, t_0 is defined as specified in Section 5.
+
+ t_0 = [current_time - (current_time mod (2^(4*(DTL+1))))]
+
+ regardless of the choice of TU.
+
+ For TU = 0b00, the time units are seconds. With DTL == 15, and
+ BinaryPt == 0, the epoch is (by default) January 1, 1900, at 00:00
+ UTC. The resolution is then 2^-32 seconds, which is the maximum
+ possible. This time format wraps around every 2^32 seconds, which is
+ roughly 136 years.
+
+ For TU = 0b10, the time units are ASNs. The start time is relative,
+ and updated by a mechanism that is out of scope for this document.
+ With 10 ms slots, DTL = 15, and BinaryPt == 0, it would take over a
+ year for the ASN to wrap around. Typically, the number of hex digits
+ allocated for TU = 0b10 would be less than 15.
+
+9. Security Considerations
+
+ The security considerations of [RFC4944] (Section 13), [RFC6282]
+ (Section 6), and [RFC6553] (Section 5) apply. Using a compressed
+ format as opposed to the full inline format is logically equivalent
+ 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
+ in controlled operational environments (e.g., industrial process
+ control and automation). In order to avoid misuse of the deadline
+ information that could potentially result in a Denial of Service
+ (DoS) attack, proper functioning of this deadline time mechanism
+ requires the provisioning and management of network resources for
+ supporting traffic flows with deadlines, performance monitoring, and
+ admission control policy enforcement. The network provisioning can
+ be done either centrally or in a distributed fashion. For example,
+ tracks in a 6TiSCH network could be established by a centralized Path
+ Computation Element (PCE), as described in the 6TiSCH architecture
+ [RFC9030].
+
+ The security considerations of DetNet architecture [RFC8655]
+ (Section 5) mostly apply to this document as well, as follows. To
+ secure the request and control of resources allocated for tracks,
+ authentication and authorization can be used for each device and
+ network controller devices. In the case of distributed control
+ protocols, security is expected to be provided by the security
+ properties of the protocols in use.
+
+ The identification of deadline-bearing flows on a per-flow basis may
+ provide attackers with additional information about the data flows
+ compared to networks that do not include per-flow identification.
+ The security implications of disclosing that additional information
+ deserve consideration when implementing this deadline specification.
+
+ Because of the requirement of precise time synchronization, the
+ accuracy, availability, and integrity of time synchronization is of
+ critical importance. Extensive discussion of this topic can be found
+ in [RFC7384].
+
+10. References
+
+10.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
+ "Transmission of IPv6 Packets over IEEE 802.15.4
+ Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007,
+ <https://www.rfc-editor.org/info/rfc4944>.
+
+ [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
+ "Network Time Protocol Version 4: Protocol and Algorithms
+ Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010,
+ <https://www.rfc-editor.org/info/rfc5905>.
+
+ [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6
+ Datagrams over IEEE 802.15.4-Based Networks", RFC 6282,
+ DOI 10.17487/RFC6282, September 2011,
+ <https://www.rfc-editor.org/info/rfc6282>.
+
+ [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
+ Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
+ JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
+ Low-Power and Lossy Networks", RFC 6550,
+ DOI 10.17487/RFC6550, March 2012,
+ <https://www.rfc-editor.org/info/rfc6550>.
+
+ [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low-
+ Power and Lossy Networks (RPL) Option for Carrying RPL
+ Information in Data-Plane Datagrams", RFC 6553,
+ DOI 10.17487/RFC6553, March 2012,
+ <https://www.rfc-editor.org/info/rfc6553>.
+
+ [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6
+ Routing Header for Source Routes with the Routing Protocol
+ for Low-Power and Lossy Networks (RPL)", RFC 6554,
+ DOI 10.17487/RFC6554, March 2012,
+ <https://www.rfc-editor.org/info/rfc6554>.
+
+ [RFC7384] Mizrahi, T., "Security Requirements of Time Protocols in
+ Packet Switched Networks", RFC 7384, DOI 10.17487/RFC7384,
+ October 2014, <https://www.rfc-editor.org/info/rfc7384>.
+
+ [RFC7554] Watteyne, T., Ed., Palattella, M., and L. Grieco, "Using
+ IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the
+ Internet of Things (IoT): Problem Statement", RFC 7554,
+ DOI 10.17487/RFC7554, May 2015,
+ <https://www.rfc-editor.org/info/rfc7554>.
+
+ [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie,
+ "IPv6 over Low-Power Wireless Personal Area Network
+ (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138,
+ April 2017, <https://www.rfc-editor.org/info/rfc8138>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8655] Finn, N., Thubert, P., Varga, B., and J. Farkas,
+ "Deterministic Networking Architecture", RFC 8655,
+ DOI 10.17487/RFC8655, October 2019,
+ <https://www.rfc-editor.org/info/rfc8655>.
+
+ [RFC9030] Thubert, P., Ed., "An Architecture for IPv6 over the Time-
+ Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)",
+ RFC 9030, DOI 10.17487/RFC9030, May 2021,
+ <https://www.rfc-editor.org/info/rfc9030>.
+
+10.2. Informative References
+
+ [6LO-BLEMESH]
+ 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>.
+
+ [IEEE-BLE-MESH]
+ Leonardi, L., Patti, G., and L. Lo Bello, "Multi-Hop Real-
+ 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>.
+
+ [IEEE.1588.2008]
+ IEEE, "IEEE Standard for a Precision Clock Synchronization
+ Protocol for Networked Measurement and Control Systems",
+ DOI 10.1109/IEEESTD.2008.4579760, July 2008,
+ <https://doi.org/10.1109/IEEESTD.2008.4579760>.
+
+ [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>.
+
+ [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>.
+
+ [IOAM-DATA]
+ 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>.
+
+ [PHY-SPEC] Wi-SUN Alliance, "Wi-SUN PHY Specification V1.0", March
+ 2016, <http://wi-sun.org>.
+
+ [RFC8578] Grossman, E., Ed., "Deterministic Networking Use Cases",
+ RFC 8578, DOI 10.17487/RFC8578, May 2019,
+ <https://www.rfc-editor.org/info/rfc8578>.
+
+ [RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli,
+ "IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929,
+ November 2020, <https://www.rfc-editor.org/info/rfc8929>.
+
+ [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI
+ 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>.
+
+ [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>.
+
+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) satisfies 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
+
+ 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
+
+ Lijo Thomas
+ Centre for Development of Advanced Computing
+ Vellayambalam
+ Trivandrum 695033
+ India
+
+ Email: lijo@cdac.in
+
+
+ Satish Anamalamudi
+ SRM University-AP
+ Amaravati Campus
+ Amaravati, Andhra Pradesh 522 502
+ India
+
+ Email: satishnaidu80@gmail.com
+
+
+ S.V.R. Anand
+ Indian Institute of Science
+ Bangalore 560012
+ India
+
+ Email: anandsvr@iisc.ac.in
+
+
+ Malati Hegde
+ Indian Institute of Science
+ Bangalore 560012
+ India
+
+ Email: malati@iisc.ac.in
+
+
+ Charles E. Perkins
+ Lupin Lodge
+ 20600 Aldercroft Heights Rd.
+ Los Gatos, CA 95033
+ United States of America
+
+ Email: charliep@computer.org