<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-6lo-deadline-time-05" indexInclude="true" ipr="trust200902" number="9034" prepTime="2021-06-10T11:32:29" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="2" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-6lo-deadline-time-05" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9034" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="6lo Delivery Deadline Time">Packet Delivery Deadline Time in the Routing Header for IPv6 over Low‑Power Wireless Personal Area Networks (6LoWPANs)</title>
    <seriesInfo name="RFC" value="9034" stream="IETF"/>
    <author fullname="Lijo Thomas" initials="L." surname="Thomas">
      <organization abbrev="C-DAC" showOnFrontPage="true">Centre for Development of Advanced Computing</organization>
      <address>
        <postal>
          <street>Vellayambalam</street>
          <city>Trivandrum</city>
          <code>695033</code>
          <country>India</country>
        </postal>
        <email>lijo@cdac.in</email>
      </address>
    </author>
    <author fullname="Satish Anamalamudi" initials="S." surname="Anamalamudi">
      <organization showOnFrontPage="true">SRM University-AP</organization>
      <address>
        <postal>
          <street>Amaravati Campus</street>
          <city>Amaravati, Andhra Pradesh</city>
          <code>522 502</code>
          <country>India</country>
        </postal>
        <email>satishnaidu80@gmail.com</email>
      </address>
    </author>
    <author fullname="S.V.R. Anand" initials="S.V.R." surname="Anand">
      <organization showOnFrontPage="true">Indian Institute of Science</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <code>560012</code>
          <country>India</country>
        </postal>
        <email>anandsvr@iisc.ac.in</email>
      </address>
    </author>
    <author fullname="Malati Hegde" initials="M." surname="Hegde">
      <organization showOnFrontPage="true">Indian Institute of Science</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <code>560012</code>
          <country>India</country>
        </postal>
        <email>malati@iisc.ac.in</email>
      </address>
    </author>
    <author fullname="Charles E. Perkins" initials="C." surname="Perkins">
      <organization showOnFrontPage="true">Lupin Lodge</organization>
      <address>
        <postal>
          <street>20600 Aldercroft Heights Rd.</street>
          <city>Los Gatos</city>
          <region>CA</region>
          <code>95033</code>
          <country>United States of America</country>
        </postal>
        <email>charliep@computer.org</email>
      </address>
    </author>
    <date month="06" year="2021"/>
    <area>Internet</area>
    <workgroup>6lo</workgroup>
    <keyword>Routing header</keyword>
    <keyword>Timestamp</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
	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.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9034" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-6lorhe-generic-format">6LoRHE Generic Format</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deadline-6lorhe">Deadline-6LoRHE</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deadline-6lorhe-format">Deadline-6LoRHE Format</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deadline-6lorhe-in-three-ne">Deadline-6LoRHE in Three Network Scenarios</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scenario-1-endpoints-in-the">Scenario 1: Endpoints in the Same DODAG (N1)</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scenario-2-endpoints-in-net">Scenario 2: Endpoints in Networks with Dissimilar L2 Technologies</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-scenario-3-packet-transmiss">Scenario 3: Packet Transmission across Different DODAGs (N1 to N2)</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-synchronization-aspects">Synchronization Aspects</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-modular-arithmetic-consider">Modular Arithmetic Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="Intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
	Low-Power and Lossy Networks (LLNs) are likely to be deployed for
	real-time industrial applications requiring end-to-end
	delay guarantees <xref target="RFC8578" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-1-2">
	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.
	<xref target="RFC8138" format="default" sectionFormat="of" derivedContent="RFC8138"/> specifies the 6LoWPAN Routing Header (6LoRH),
	compression schemes for RPL (Routing Protocol for Low-Power and Lossy Networks) source routing <xref target="RFC6554" format="default" sectionFormat="of" derivedContent="RFC6554"/>, header compression of RPL packet
	information <xref target="RFC6553" format="default" sectionFormat="of" derivedContent="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 <xref target="IEEE.1588.2008" format="default" sectionFormat="of" derivedContent="IEEE.1588.2008"/>,
	IEEE 802.1AS <xref target="IEEE.802.1AS.2011" format="default" sectionFormat="of" derivedContent="IEEE.802.1AS.2011"/>,
	IEEE 802.15.4-2015 Time-Slotted Channel Hopping (TSCH) <xref target="IEEE.802.15.4" format="default" sectionFormat="of" derivedContent="IEEE.802.15.4"/>, and more.
      </t>
      <t indent="0" pn="section-1-3">
	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 <xref target="I-D.ietf-6lo-blemesh" format="default" sectionFormat="of" derivedContent="6LO-BLEMESH"/> in
	industrial IoT (Internet of Things) <xref target="IEEE-BLE-MESH" format="default" sectionFormat="of" derivedContent="IEEE-BLE-MESH"/>. BLE mesh time
	synchronization is being explored by the Bluetooth
	community.  There are also cases under consideration in Wi-SUN
	<xref target="PHY-SPEC" format="default" sectionFormat="of" derivedContent="PHY-SPEC"/> <xref target="Wi-SUN" format="default" sectionFormat="of" derivedContent="Wi-SUN"/>.
      </t>
    </section>
    <section anchor="acronyms_terms" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
      </t>
      <t indent="0" pn="section-2-2">
	This document uses the terminology defined in
	<xref target="RFC6550" format="default" sectionFormat="of" derivedContent="RFC6550"/> and
	<xref target="RFC9030" format="default" sectionFormat="of" derivedContent="RFC9030"/>.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-6lorhe-generic-format">6LoRHE Generic Format</name>
      <t indent="0" pn="section-3-1">
	Note: this section is not normative and is included for convenience.
	The generic header format of the 6LoRHE is specified in
	<xref target="RFC8138" format="default" sectionFormat="of" derivedContent="RFC8138"/>.
	<xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/> illustrates the 6LoRHE generic format.
      </t>
      <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-6lorhe-format">6LoRHE Format</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-2.1">
   0                   1
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-        ...              -+
  |1|0|1| Length  |      Type     |        Options            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-        ...              -+
                                   &lt;---    length         ---&gt;
</artwork>
      </figure>
      <dl indent="3" newline="false" spacing="normal" pn="section-3-3">
        <dt pn="section-3-3.1">Length:</dt>
        <dd pn="section-3-3.2">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.</dd>
        <dt pn="section-3-3.3">Type (variable length):</dt>
        <dd pn="section-3-3.4">Type of the 6LoRHE (see <xref target="iana" format="default" sectionFormat="of" derivedContent="Section 7"/>).</dd>
      </dl>
    </section>
    <section anchor="Description" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-deadline-6lorhe">Deadline-6LoRHE</name>
      <t indent="0" pn="section-4-1">
	    The Deadline-6LoRHE (see <xref target="fig2" format="default" sectionFormat="of" derivedContent="Figure 3"/>) is  
	    a 6LoRHE <xref target="RFC8138" format="default" sectionFormat="of" derivedContent="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).
      </t>
      <t indent="0" pn="section-4-2"> 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.
      </t>
      <t indent="3" pn="section-4-3">
        packet_deadline_time = packet_origination_time + max_delay 
      </t>
      <t indent="0" pn="section-4-4">
	    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).
      </t>
      <t indent="0" pn="section-4-5"> 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.</t>
      <t indent="3" pn="section-4-6">
	 new_network_origin_time = time_now_in_new_network - current_dly
</t>
      <t indent="0" pn="section-4-7">
	    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.
	    <xref target="time-update" format="default" sectionFormat="of" derivedContent="Figure 2"/> uses the following abbreviations:
      </t>
      <dl indent="3" newline="false" spacing="normal" pn="section-4-8">
        <dt pn="section-4-8.1">TxA:</dt>
        <dd pn="section-4-8.2">Time of arrival of packet in the network 'x' </dd>
        <dt pn="section-4-8.3">TxD:</dt>
        <dd pn="section-4-8.4">Departure time of packet from the network 'x' </dd>
        <dt pn="section-4-8.5">dlyx:</dt>
        <dd pn="section-4-8.6">Delay experienced by the packet in the previous network(s) </dd>
        <dt pn="section-4-8.7">TZx:</dt>
        <dd pn="section-4-8.8">The time zone of network 'x' </dd>
      </dl>
      <figure anchor="time-update" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-deadline-time-update-exampl">Deadline Time Update Example</name>
        <artwork name="" type="" align="left" alt="" pn="section-4-9.1"> 
            TZ1                      TZ2                    TZ3
  T1A=50|                 |                             |
        |----  dly1=50    |                             |
        |     \           |                             |
        |      \          |                             |
        |       \ T1D=100 |T2A=1000                     |
        |        --------&gt;|-----           dly2=450     |
        |                 |     \                       |
        |                 |      \                      |
        |                 |       \          T2D=1400   | T3A=5000
        |                 |         -------------------&gt;|----------&gt;
        |                 |                             |
        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
</artwork>
      </figure>
      <t indent="0" pn="section-4-10"> 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.
      </t>
    </section>
    <section anchor="Format" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-deadline-6lorhe-format">Deadline-6LoRHE Format</name>
      <figure anchor="fig2" align="left" suppress-title="false" pn="figure-3">
        <name slugifiedName="name-deadline-6lorhe-format-2">Deadline-6LoRHE Format</name>
        <artwork name="" type="" align="left" alt="" pn="section-5-1.1">
     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)|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        </artwork>
      </figure>
      <dl indent="3" newline="false" spacing="normal" pn="section-5-2">
        <dt pn="section-5-2.1">Length (5 bits):
</dt>
        <dd pn="section-5-2.2">Length represents the total length of the Deadline-6LoRHE Type measured in octets.
</dd>
        <dt pn="section-5-2.3">6LoRH Type:</dt>
        <dd pn="section-5-2.4">7 (See <xref target="iana" format="default" sectionFormat="of" derivedContent="Section 7"/>.)
</dd>
        <dt pn="section-5-2.5">D flag (1 bit): 
</dt>
        <dd pn="section-5-2.6">
          <t indent="0" pn="section-5-2.6.1">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.</t>
          <t indent="0" pn="section-5-2.6.2">If 'D' bit is 1, then the 6LR
<bcp14>MUST</bcp14> drop the packet if the deadline time is elapsed.</t>
          <t indent="0" pn="section-5-2.6.3">If 'D'
bit is 0, the packet <bcp14>MAY</bcp14> 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.).</t>
        </dd>
        <dt pn="section-5-2.7">TU (2 bits):
</dt>
        <dd pn="section-5-2.8">
          <t indent="0" pn="section-5-2.8.1">Indicates the time units for DT and OTD fields.  The encodings for the 
      DT and OTD fields use the same time units and precision.  </t>
          <dl spacing="compact" indent="3" newline="false" pn="section-5-2.8.2">
            <dt pn="section-5-2.8.2.1">00</dt>
            <dd pn="section-5-2.8.2.2">Time represented in seconds and fractional seconds</dd>
            <dt pn="section-5-2.8.2.3">01</dt>
            <dd pn="section-5-2.8.2.4">Reserved</dd>
            <dt pn="section-5-2.8.2.5">10</dt>
            <dd pn="section-5-2.8.2.6">Network ASN</dd>
            <dt pn="section-5-2.8.2.7">11</dt>
            <dd pn="section-5-2.8.2.8">Reserved</dd>
          </dl>
        </dd>
        <dt pn="section-5-2.9">DTL (4 bits):
</dt>
        <dd pn="section-5-2.10">Length of the DT field as an unsigned 4-bit integer, encoding the length of
the field in hex digits, minus one.
</dd>
        <dt pn="section-5-2.11">OTL (3 bits):
</dt>
        <dd pn="section-5-2.12">
          <t indent="0" pn="section-5-2.12.1">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 <bcp14>MUST NOT</bcp14> exceed the value of DTL
plus one.
          </t>
          <t indent="0" pn="section-5-2.12.2">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.</t>
        </dd>
        <dt pn="section-5-2.13">BinaryPt (6 bits):
</dt>
        <dd pn="section-5-2.14">
          <t indent="0" pn="section-5-2.14.1">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].</t>
          <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5-2.14.2">
            <li pn="section-5-2.14.2.1"> 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.</li>
            <li pn="section-5-2.14.2.2"> 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.</li>
          </ul>
        </dd>
        <dt pn="section-5-2.15">DT Value (4..64 bits):
</dt>
        <dd pn="section-5-2.16">An unsigned integer of DTL+1 hex digits giving the DT value.
</dd>
        <dt pn="section-5-2.17">OTD Value (4..28 bits):
</dt>
        <dd pn="section-5-2.18">If present, an unsigned integer of OTL hex digits giving the origination time as a
negative offset from the DT value.
</dd>
      </dl>
      <t indent="0" pn="section-5-3"> 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 <xref target="sync" format="default" sectionFormat="of" derivedContent="Section 8"/>.
      </t>
      <t indent="0" pn="section-5-4">

	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:
      </t>
      <t indent="3" pn="section-5-5">
        DTL = ((N_bits - 1) / 4)
      </t>
      <t indent="0" pn="section-5-6">
	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):
      </t>
      <t indent="3" pn="section-5-7">
        Epoch_Range(DTL) = 2<sup>4*(DTL+1)</sup>
      </t>
      <t indent="0" pn="section-5-8">
	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). 
      </t>
      <t indent="0" pn="section-5-9">
	DT - OT cannot exceed 2<sup>4*(DTL+1)</sup> == 16<sup>DTL+1</sup>.  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<sup>1</sup>) for any TU.  The
	values that can be represented in the current epoch are in the range
	[0, (Epoch_Range(DTL) - 1)].</t>
      <t indent="0" pn="section-5-10">
        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>
      <t indent="0" pn="section-5-11">
        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.
      </t>
      <t indent="0" pn="section-5-12">
        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: 
      </t>
      <t indent="6" pn="section-5-13">N = {4*(DTL+1)/2} + BinaryPt </t>
      <t indent="0" pn="section-5-14">
	The originating node has to pick a segment size (2^N) so that
	DT_abs - OT_abs &lt; 2^N, and so that intermediate network nodes
	can detect whether or not CT_abs &gt; DT_abs.
      </t>
      <t indent="0" pn="section-5-15">
	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.
      </t>
      <t indent="0" pn="section-5-16">
	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 &gt; CT_abs), the following is 
	required: 
      </t>
      <t indent="6" anchor="assumption" pn="section-5-17">Assumption 1: DT_abs - OT_abs &lt; 2^N.</t>
      <t indent="0" pn="section-5-18">
        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.
      </t>
      <t indent="0" pn="section-5-19">
	Under <xref target="assumption" format="none" sectionFormat="of" derivedContent="">Assumption 1</xref>, 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 <xref target="assumption" format="none" sectionFormat="of" derivedContent="">Assumption 1</xref> 
	is valid, which means that the originating node has to be careful to pick proper
	values for DTL and for BinaryPt.
      </t>
      <t indent="0" pn="section-5-20">
	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 &gt; 2^N?
      </t>
      <t indent="0" pn="section-5-21">
	In order to solve this problem, a safety margin has to be provided,
	in addition to requiring that DT_abs - OT_abs &lt; 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) &lt; 2^N*(1-SAFETY_FACTOR).
      </t>
      <t indent="0" pn="section-5-22">
	Each intermediate node that receives the packet with the
	Deadline-6LoRHE must determine whether
	((CT - DT) mod 2^N) &gt; SAFETY_FACTOR*2^N.
	If this test condition is not satisfied, the deadline time has expired.
	See <xref target="modular" format="default" sectionFormat="of" derivedContent="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 &gt; DT_abs.  The value of
	SAFETY_FACTOR is specified in this document to be 20%.
      </t>
      <t indent="3" pn="section-5-23">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:
      </t>
      <t indent="6" pn="section-5-24"> deadline_time = packet_origination_time + max_delay</t>
      <t indent="9" pn="section-5-25"> = 0xD480 + 0x64 (Network ASNs) </t>
      <t indent="9" pn="section-5-26"> = 0xD4E4 (Network ASNs) </t>
      <t indent="6" pn="section-5-27"> Then, the Deadline-6LoRHE encoding with nonzero OTL is:</t>
      <t indent="9" pn="section-5-28"> DTL = 3, OTL = 2, TU = 0b10, BinaryPt = 8, DT = 0xD4E4, OTD = 0x64</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-deadline-6lorhe-in-three-ne">Deadline-6LoRHE in Three Network Scenarios</name>
      <t indent="0" pn="section-6-1">
	In this section, the Deadline-6LoRHE operation is described for three
	network scenarios.  <xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 4"/> depicts a
	constrained time-synchronized LLN that has two subnets, N1 and N2,
	connected through 6LoWPAN Border Routers (6LBRs) <xref target="RFC8929" format="default" sectionFormat="of" derivedContent="RFC8929"/>
	with different reference clock times, T1 and T2.
      </t>
      <figure anchor="fig3" align="left" suppress-title="false" pn="figure-4">
        <name slugifiedName="name-intra-network-time-zone-sce">Intra-Network Time Zone Scenario</name>
        <artwork name="" type="" align="left" alt="" pn="section-6-2.1">
                       +-------------------+
                       | 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)
                   </artwork>
      </figure>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-scenario-1-endpoints-in-the">Scenario 1: Endpoints in the Same DODAG (N1)</name>
        <t indent="0" pn="section-6.1-1">
	In Scenario 1, shown in <xref target="fig4" format="default" sectionFormat="of" derivedContent="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'.
        </t>
        <t indent="0" pn="section-6.1-2">
	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 <xref target="RFC9008" format="default" sectionFormat="of" derivedContent="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.
        </t>
        <figure anchor="fig4" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-endpoints-within-the-same-d">Endpoints within the Same DODAG (Subnet N1)</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.1-3.1">
                           +-------+
                ^          | 6LBR  |       |
                |          |       |       |
                |          +-------+       |
        Upward  |         /      /| \      | Downward
        routing |      (F)      / |  \     | routing
                |     /  \    (C) |  (D)   |
                |    /    \    |  | / |\   |
                |  (A)    (B)  : (E)  : R  |
                |  /|\     | \   / \       |
                | S : :    : :  :  :       v </artwork>
        </figure>
        <t indent="0" pn="section-6.1-4">
	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'.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-scenario-2-endpoints-in-net">Scenario 2: Endpoints in Networks with Dissimilar L2 Technologies</name>
        <t indent="0" pn="section-6.2-1">
	In Scenario 2, shown in <xref target="fig5" format="default" sectionFormat="of" derivedContent="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 <xref target="fig5" format="default" sectionFormat="of" derivedContent="Figure 6"/>.
 	The specific data encapsulation mechanisms followed in the new network 	
	are beyond the scope of this document.
        </t>
        <figure anchor="fig5" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-packet-transmission-in-diss">Packet Transmission in Dissimilar L2 Technologies or Internet</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.2-2.1">
                           +----------------+
                           | Time-          |
                           | Synchronized   |------R
                           | Network        |
                           +----------------+
                                   |
                                   |
                         ----------+-----------
                  ^                |
                  |            +---+---+
                  |            | 6LBR  |
         Upward   |            |       |
         routing  |            +------++
                  |        (F)/      /| \
                  |       /  \      / |  \
                  |      /    \   (C) |  (D)
                  |    (A)    (B)  |  | / |\
                  |    /|\     |\  : (E)  : :
                  |   S : :    : :   / \
                                    :   :
        </artwork>
        </figure>
        <t indent="0" pn="section-6.2-3">
	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)  
        <xref target="I-D.ietf-ippm-ioam-data" format="default" sectionFormat="of" derivedContent="IOAM-DATA"/>, and then
	the deadline time would be updated according to the measurement
	of the current time in the new network.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-scenario-3-packet-transmiss">Scenario 3: Packet Transmission across Different DODAGs (N1 to N2)</name>
        <t indent="0" pn="section-6.3-1">
	Consider the scenario depicted in <xref target="fig6" format="default" sectionFormat="of" derivedContent="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'.
        </t>
        <figure anchor="fig6" align="left" suppress-title="false" pn="figure-7">
          <name slugifiedName="name-packet-transmission-in-diff">Packet Transmission in Different DODAGs (N1 to N2)</name>
          <artwork name="" type="" align="left" alt="" pn="section-6.3-2.1">
                 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
    </artwork>
        </figure>
        <t indent="0" pn="section-6.3-3">
	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.
        </t>
        <t indent="3" pn="section-6.3-4"> current_time = ASN at 6LBR * slot_length_value </t>
        <t indent="3" pn="section-6.3-5"> remaining_time = deadline_time - current_time</t>
        <t indent="6" pn="section-6.3-6"> = ((packet_origination_time + max_delay) - current time)</t>
        <t indent="6" pn="section-6.3-7"> = (20000 + 100) - 20030 </t>
        <t indent="6" pn="section-6.3-8"> = 30 (in Network ASNs)</t>
        <t indent="6" pn="section-6.3-9"> = 30 * 10<sup>3</sup> milliseconds </t>
        <t indent="0" pn="section-6.3-10">
	Once the deadline time information reaches 6LBR2,
	the packet will be encoded according to the mechanism prescribed
	in the other time-synchronized network.
        </t>
      </section>
    </section>
    <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-7-1">
	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.

      </t>
      <table anchor="iana_reg" align="center" pn="table-1">
        <name slugifiedName="name-entry-in-the-elective-6lowp">Entry in the "Elective 6LoWPAN Routing Header Type" Registry</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">7</td>
            <td align="left" colspan="1" rowspan="1">Deadline-6LoRHE</td>
            <td align="left" colspan="1" rowspan="1">RFC 9034</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sync" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-synchronization-aspects">Synchronization Aspects</name>
      <t indent="0" pn="section-8-1">
	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
	<xref target="RFC7554" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-8-2"> 
	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<sub>0</sub>, 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.
      </t>
      <t indent="0" pn="section-8-3"> 
	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 <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-8-4"> 
	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.

      </t>
      <t indent="0" pn="section-8-5"> 
	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).
      </t>
      <t indent="0" pn="section-8-6"> 
	In all cases, t<sub>0</sub> is defined as specified in <xref target="Format" format="default" sectionFormat="of" derivedContent="Section 5"/>.
      </t>
      <t indent="3" pn="section-8-7">t<sub>0</sub> = [current_time - (current_time mod (2<sup>4*(DTL+1)</sup>))] </t>
      <t indent="0" pn="section-8-8">
	regardless of the choice of TU.
      </t>
      <t indent="0" pn="section-8-9"> 

	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<sup>-32</sup> seconds,
	which is the maximum possible.
	This time format wraps around every 2<sup>32</sup> seconds, which is
	roughly 136 years.
      </t>
      <t indent="0" pn="section-8-10"> 
	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.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-9-1">
	The security considerations of 
        <xref target="RFC4944" section="13" sectionFormat="parens" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4944#section-13" derivedContent="RFC4944"/>,
	<xref target="RFC6282" section="6" sectionFormat="parens" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6282#section-6" derivedContent="RFC6282"/>, and 
        <xref target="RFC6553" section="5" sectionFormat="parens" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6553#section-5" derivedContent="RFC6553"/> 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 <xref target="RFC6550" format="default" sectionFormat="of" derivedContent="RFC6550"/>, <xref target="RFC6553" format="default" sectionFormat="of" derivedContent="RFC6553"/>,
	and <xref target="RFC6554" format="default" sectionFormat="of" derivedContent="RFC6554"/>.
      </t>
      <t indent="0" pn="section-9-2">
	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
	<xref target="RFC9030" format="default" sectionFormat="of" derivedContent="RFC9030"/>. 
      </t>
      <t indent="0" pn="section-9-3">
	The security considerations of DetNet architecture
	<xref target="RFC8655" section="5" sectionFormat="parens" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8655#section-5" derivedContent="RFC8655"/> 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.
      </t>
      <t indent="0" pn="section-9-4">
          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.
      </t>
      <t indent="0" pn="section-9-5">
	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 <xref target="RFC7384" format="default" sectionFormat="of" derivedContent="RFC7384"/>.  
      </t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-ippm-ioam-data" to="IOAM-DATA"/>
    <displayreference target="I-D.ietf-6lo-blemesh" to="6LO-BLEMESH"/>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4944" target="https://www.rfc-editor.org/info/rfc4944" quoteTitle="true" derivedAnchor="RFC4944">
          <front>
            <title>Transmission of IPv6 Packets over IEEE 802.15.4 Networks</title>
            <author initials="G." surname="Montenegro" fullname="G. Montenegro">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Kushalnagar" fullname="N. Kushalnagar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Culler" fullname="D. Culler">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="September"/>
            <abstract>
              <t indent="0">This document describes the frame format for transmission of IPv6 packets and the method of forming IPv6 link-local addresses and statelessly autoconfigured addresses on IEEE 802.15.4 networks. Additional specifications include a simple header compression scheme using shared context and provisions for packet delivery in IEEE 802.15.4 meshes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4944"/>
          <seriesInfo name="DOI" value="10.17487/RFC4944"/>
        </reference>
        <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" quoteTitle="true" derivedAnchor="RFC5905">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author initials="D." surname="Mills" fullname="D. Mills">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Martin" fullname="J. Martin" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Burbank" fullname="J. Burbank">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Kasch" fullname="W. Kasch">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="RFC6282" target="https://www.rfc-editor.org/info/rfc6282" quoteTitle="true" derivedAnchor="RFC6282">
          <front>
            <title>Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks</title>
            <author initials="J." surname="Hui" fullname="J. Hui" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="September"/>
            <abstract>
              <t indent="0">This document updates RFC 4944, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks".  This document specifies an IPv6 header compression format for IPv6 packet delivery in Low Power Wireless Personal Area Networks (6LoWPANs).  The compression format relies on shared context to allow compression of arbitrary prefixes.  How the information is maintained in that shared context is out of scope. This document specifies compression of multicast addresses and a framework for compressing next headers.  UDP header compression is specified within this framework.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6282"/>
          <seriesInfo name="DOI" value="10.17487/RFC6282"/>
        </reference>
        <reference anchor="RFC6550" target="https://www.rfc-editor.org/info/rfc6550" quoteTitle="true" derivedAnchor="RFC6550">
          <front>
            <title>RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks</title>
            <author initials="T." surname="Winter" fullname="T. Winter" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Brandt" fullname="A. Brandt">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Kelsey" fullname="R. Kelsey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Levis" fullname="P. Levis">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Pister" fullname="K. Pister">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Struik" fullname="R. Struik">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Alexander" fullname="R. Alexander">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="March"/>
            <abstract>
              <t indent="0">Low-Power and Lossy Networks (LLNs) are a class of network in which both the routers and their interconnect are constrained.  LLN routers typically operate with constraints on processing power, memory, and energy (battery power).  Their interconnects are characterized by high loss rates, low data rates, and instability.  LLNs are comprised of anything from a few dozen to thousands of routers.  Supported traffic flows include point-to-point (between devices inside the LLN), point-to-multipoint (from a central control point to a subset of devices inside the LLN), and multipoint-to-point (from devices inside the LLN towards a central control point).  This document specifies the IPv6 Routing Protocol for Low-Power and Lossy Networks (RPL), which provides a mechanism whereby multipoint-to-point traffic from devices inside the LLN towards a central control point as well as point-to-multipoint traffic from the central control point to the devices inside the LLN are supported.  Support for point-to-point traffic is also available.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6550"/>
          <seriesInfo name="DOI" value="10.17487/RFC6550"/>
        </reference>
        <reference anchor="RFC6553" target="https://www.rfc-editor.org/info/rfc6553" quoteTitle="true" derivedAnchor="RFC6553">
          <front>
            <title>The Routing Protocol for Low-Power and Lossy Networks (RPL) Option for Carrying RPL Information in Data-Plane Datagrams</title>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="March"/>
            <abstract>
              <t indent="0">The Routing Protocol for Low-Power and Lossy Networks (RPL) includes routing information in data-plane datagrams to quickly identify inconsistencies in the routing topology.  This document describes the RPL Option for use among RPL routers to include such routing information.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6553"/>
          <seriesInfo name="DOI" value="10.17487/RFC6553"/>
        </reference>
        <reference anchor="RFC6554" target="https://www.rfc-editor.org/info/rfc6554" quoteTitle="true" derivedAnchor="RFC6554">
          <front>
            <title>An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks (RPL)</title>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Culler" fullname="D. Culler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Manral" fullname="V. Manral">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="March"/>
            <abstract>
              <t indent="0">In Low-Power and Lossy Networks (LLNs), memory constraints on routers may limit them to maintaining, at most, a few routes.  In some configurations, it is necessary to use these memory-constrained routers to deliver datagrams to nodes within the LLN.  The Routing Protocol for Low-Power and Lossy Networks (RPL) can be used in some deployments to store most, if not all, routes on one (e.g., the Directed Acyclic Graph (DAG) root) or a few routers and forward the IPv6 datagram using a source routing technique to avoid large routing tables on memory-constrained routers.  This document specifies a new IPv6 Routing header type for delivering datagrams within a RPL routing domain.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6554"/>
          <seriesInfo name="DOI" value="10.17487/RFC6554"/>
        </reference>
        <reference anchor="RFC7384" target="https://www.rfc-editor.org/info/rfc7384" quoteTitle="true" derivedAnchor="RFC7384">
          <front>
            <title>Security Requirements of Time Protocols in Packet Switched Networks</title>
            <author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="October"/>
            <abstract>
              <t indent="0">As time and frequency distribution protocols are becoming increasingly common and widely deployed, concern about their exposure to various security threats is increasing.  This document defines a set of security requirements for time protocols, focusing on the Precision Time Protocol (PTP) and the Network Time Protocol (NTP). This document also discusses the security impacts of time protocol practices, the performance implications of external security practices on time protocols, and the dependencies between other security services and time synchronization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7384"/>
          <seriesInfo name="DOI" value="10.17487/RFC7384"/>
        </reference>
        <reference anchor="RFC7554" target="https://www.rfc-editor.org/info/rfc7554" quoteTitle="true" derivedAnchor="RFC7554">
          <front>
            <title>Using IEEE 802.15.4e Time-Slotted Channel Hopping (TSCH) in the Internet of Things (IoT): Problem Statement</title>
            <author initials="T." surname="Watteyne" fullname="T. Watteyne" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Palattella" fullname="M. Palattella">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Grieco" fullname="L. Grieco">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="May"/>
            <abstract>
              <t indent="0">This document describes the environment, problem statement, and goals for using the Time-Slotted Channel Hopping (TSCH) Medium Access Control (MAC) protocol of IEEE 802.14.4e in the context of Low-Power and Lossy Networks (LLNs).  The set of goals enumerated in this document form an initial set only.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7554"/>
          <seriesInfo name="DOI" value="10.17487/RFC7554"/>
        </reference>
        <reference anchor="RFC8138" target="https://www.rfc-editor.org/info/rfc8138" quoteTitle="true" derivedAnchor="RFC8138">
          <front>
            <title>IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Routing Header</title>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Toutain" fullname="L. Toutain">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Cragie" fullname="R. Cragie">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="April"/>
            <abstract>
              <t indent="0">This specification introduces a new IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) dispatch type for use in 6LoWPAN route-over topologies, which initially covers the needs of Routing Protocol for Low-Power and Lossy Networks (RPL) data packet compression (RFC 6550).  Using this dispatch type, this specification defines a method to compress the RPL Option (RFC 6553) information and Routing Header type 3 (RFC 6554), an efficient IP-in-IP technique, and is extensible for more applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8138"/>
          <seriesInfo name="DOI" value="10.17487/RFC8138"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8655" target="https://www.rfc-editor.org/info/rfc8655" quoteTitle="true" derivedAnchor="RFC8655">
          <front>
            <title>Deterministic Networking Architecture</title>
            <author initials="N." surname="Finn" fullname="N. Finn">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Varga" fullname="B. Varga">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Farkas" fullname="J. Farkas">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="October"/>
            <abstract>
              <t indent="0">This document provides the overall architecture for Deterministic Networking (DetNet), which provides a capability to carry specified unicast or multicast data flows for real-time applications with extremely low data loss rates and bounded latency within a network domain.  Techniques used include 1) reserving data-plane resources for individual (or aggregated) DetNet flows in some or all of the intermediate nodes along the path of the flow, 2) providing explicit routes for DetNet flows that do not immediately change with the network topology, and 3) distributing data from DetNet flow packets over time and/or space to ensure delivery of each packet's data in spite of the loss of a path.  DetNet operates at the IP layer and delivers service over lower-layer technologies such as MPLS and Time- Sensitive Networking (TSN) as defined by IEEE 802.1.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8655"/>
          <seriesInfo name="DOI" value="10.17487/RFC8655"/>
        </reference>
        <reference anchor="RFC9030" target="https://www.rfc-editor.org/info/rfc9030" quoteTitle="true" derivedAnchor="RFC9030">
          <front>
            <title>An Architecture for IPv6 over the Time-Slotted Channel Hopping Mode of IEEE 802.15.4 (6TiSCH)</title>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="May"/>
            <abstract>
              <t indent="0">This document describes a network architecture that provides low-latency, low-jitter, and high-reliability packet delivery.  It combines a high-speed powered backbone and subnetworks using IEEE 802.15.4 time-slotted channel hopping (TSCH) to meet the requirements of low-power wireless deterministic applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9030"/>
          <seriesInfo name="DOI" value="10.17487/RFC9030"/>
        </reference>
      </references>
      <references pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-6lo-blemesh" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-6lo-blemesh-10" derivedAnchor="6LO-BLEMESH">
          <front>
            <title>IPv6 Mesh over BLUETOOTH(R) Low Energy using IPSP</title>
            <author initials="C." surname="Gomez" fullname="Carles Gomez">
              <organization showOnFrontPage="true">Universitat Politecnica de Catalunya</organization>
            </author>
            <author initials="S. M." surname="Darroudi" fullname="Seyed Mahdi Darroudi">
              <organization showOnFrontPage="true">Universitat Politecnica de Catalunya</organization>
            </author>
            <author initials="T." surname="Savolainen" fullname="Teemu Savolainen">
              <organization showOnFrontPage="true">Unaffiliated</organization>
            </author>
            <author initials="M." surname="Spoerk" fullname="Michael Spoerk">
              <organization showOnFrontPage="true">Graz University of Technology</organization>
            </author>
            <date month="April" day="22" year="2021"/>
            <abstract>
              <t indent="0">   RFC 7668 describes the adaptation of 6LoWPAN techniques to enable
   IPv6 over Bluetooth low energy networks that follow the star
   topology.  However, recent Bluetooth specifications allow the
   formation of extended topologies as well.  This document specifies
   mechanisms that are needed to enable IPv6 mesh over Bluetooth Low
   Energy links established by using the Bluetooth Internet Protocol
   Support Profile.  This document does not specify the routing protocol
   to be used in an IPv6 mesh over Bluetooth LE links.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6lo-blemesh-10"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-6lo-blemesh-10.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="IEEE-BLE-MESH" quoteTitle="true" target="https://doi.org/10.1109/ACCESS.2018.2834479" derivedAnchor="IEEE-BLE-MESH">
          <front>
            <title>Multi-Hop Real-Time Communications Over Bluetooth Low Energy Industrial Wireless Mesh Networks</title>
            <author fullname="Luca Leonardi" initials="L." surname="Leonardi">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Gaetano Patti" initials="G." surname="Patti">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Lucia Lo Bello" initials="L." surname="Lo Bello">
              <organization showOnFrontPage="true"></organization>
            </author>
            <date month="May" year="2018"/>
          </front>
          <refcontent>IEEE Access, Vol 6, pp. 26505-26519</refcontent>
          <seriesInfo name="DOI" value="10.1109/ACCESS.2018.2834479"/>
        </reference>
        <reference anchor="IEEE.1588.2008" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2008.4579760" derivedAnchor="IEEE.1588.2008">
          <front>
            <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="July" year="2008"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2008.4579760"/>
        </reference>
        <reference anchor="IEEE.802.15.4" target="https://ieeexplore.ieee.org/document/7460875" quoteTitle="true" derivedAnchor="IEEE.802.15.4">
          <front>
            <title>IEEE Standard for Low-Rate Wireless Networks</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="April" year="2016"/>
          </front>
          <seriesInfo name="IEEE Standard" value="802.15.4-2015"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2016.7460875"/>
        </reference>
        <reference anchor="IEEE.802.1AS.2011" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2011.5741898" derivedAnchor="IEEE.802.1AS.2011">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks - Timing and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks</title>
            <author surname="IEEE 802.1AS Working Group">
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="March" year="2011"/>
          </front>
          <refcontent>IEEE Std 802.1AS-2011</refcontent>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2011.5741898"/>
        </reference>
        <reference anchor="I-D.ietf-ippm-ioam-data" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-ippm-ioam-data-12" derivedAnchor="IOAM-DATA">
          <front>
            <title>Data Fields for In-situ OAM</title>
            <author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
              <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
            </author>
            <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
              <organization showOnFrontPage="true">Thoughtspot</organization>
            </author>
            <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi" role="editor">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <date month="February" day="21" year="2021"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-data-12"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-ippm-ioam-data-12.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="PHY-SPEC" target="http://wi-sun.org" quoteTitle="true" derivedAnchor="PHY-SPEC">
          <front>
            <title>Wi-SUN PHY Specification V1.0</title>
            <author>
              <organization showOnFrontPage="true">Wi-SUN Alliance</organization>
            </author>
            <date month="March" year="2016"/>
          </front>
        </reference>
        <reference anchor="RFC8578" target="https://www.rfc-editor.org/info/rfc8578" quoteTitle="true" derivedAnchor="RFC8578">
          <front>
            <title>Deterministic Networking Use Cases</title>
            <author initials="E." surname="Grossman" fullname="E. Grossman" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="May"/>
            <abstract>
              <t indent="0">This document presents use cases for diverse industries that have in common a need for "deterministic flows".  "Deterministic" in this context means that such flows provide guaranteed bandwidth, bounded latency, and other properties germane to the transport of time-sensitive data.  These use cases differ notably in their network topologies and specific desired behavior, providing as a group broad industry context for Deterministic Networking (DetNet).  For each use case, this document will identify the use case, identify representative solutions used today, and describe potential improvements that DetNet can enable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8578"/>
          <seriesInfo name="DOI" value="10.17487/RFC8578"/>
        </reference>
        <reference anchor="RFC8929" target="https://www.rfc-editor.org/info/rfc8929" quoteTitle="true" derivedAnchor="RFC8929">
          <front>
            <title>IPv6 Backbone Router</title>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C.E." surname="Perkins" fullname="C.E. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Levy-Abegnoli" fullname="E. Levy-Abegnoli">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2020" month="November"/>
            <abstract>
              <t indent="0">This document updates RFCs 6775 and 8505 in order to enable proxy services for IPv6 Neighbor Discovery by Routing Registrars called "Backbone Routers". Backbone Routers are placed along the wireless edge of a backbone and federate multiple wireless links to form a single Multi-Link Subnet (MLSN).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8929"/>
          <seriesInfo name="DOI" value="10.17487/RFC8929"/>
        </reference>
        <reference anchor="RFC9008" target="https://www.rfc-editor.org/info/rfc9008" quoteTitle="true" derivedAnchor="RFC9008">
          <front>
            <title>Using RPI Option Type, Routing Header for Source Routes, and IPv6-in-IPv6 Encapsulation in the RPL Data Plane</title>
            <author initials="M.I." surname="Robles" fullname="M.I. Robles">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Richardson" fullname="M. Richardson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="April"/>
            <abstract>
              <t indent="0">This document looks at different data flows through Low-Power and Lossy Networks (LLN) where RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) is used to establish routing. The document enumerates the cases where RPL Packet Information (RPI) Option Type (RFC 6553), RPL Source Route Header (RFC 6554), and IPv6-in-IPv6 encapsulation are required in the data plane. This analysis provides the basis upon which to design efficient compression of these headers. This document updates RFC 6553 by adding a change to the RPI Option Type. Additionally, this document updates RFC 6550 by defining a flag in the DODAG Information Object (DIO) Configuration option to indicate this change and updates RFC 8138 as well to consider the new Option Type when the RPL Option is decompressed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9008"/>
          <seriesInfo name="DOI" value="10.17487/RFC9008"/>
        </reference>
        <reference anchor="Wi-SUN" quoteTitle="true" target="https://doi.org/10.1587/transcom.2016SCI0002" derivedAnchor="Wi-SUN">
          <front>
            <title>IEEE 802.15.4g Based Wi-SUN Communication Systems</title>
            <author fullname="Hiroshi Harada" initials="H." surname="Harada">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Keiichi Mizutani" initials="K." surname="Mizutani">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Jun Fujiwara" initials="J." surname="Fujiwara">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Kentaro Mochizuki" initials="K." surname="Mochizuki">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Kentaro Obata" initials="K." surname="Obata">
              <organization showOnFrontPage="true"></organization>
            </author>
            <author fullname="Ryota Okumura" initials="R." surname="Okumura">
              <organization showOnFrontPage="true"></organization>
            </author>
            <date month="January" year="2017"/>
          </front>
          <refcontent>IEICE Transactions on Communications</refcontent>
          <refcontent>Volume E100.B, Issue 7, pp. 1032-1043</refcontent>
          <seriesInfo name="DOI" value="10.1587/transcom.2016SCI0002"/>
        </reference>
      </references>
    </references>
    <section anchor="modular" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-modular-arithmetic-consider">Modular Arithmetic Considerations</name>
      <t indent="0" pn="section-appendix.a-1">
	Graphically, one might visualize the timeline as follows:
      </t>
      <figure anchor="fig7" align="left" suppress-title="false" pn="figure-8">
        <name slugifiedName="name-absolute-timeline-represent">Absolute Timeline Representation</name>
        <artwork align="left" pn="section-appendix.a-2.1">
           OT_abs        CT_abs        DT_abs
      -------|-------------|-------------|------------------&gt;
        </artwork>
      </figure>
      <t indent="0" pn="section-appendix.a-3">
	In <xref target="fig7" format="default" sectionFormat="of" derivedContent="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 <em>always</em> less than DT_abs, it could be that
	DT &lt; 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.
      </t>
      <t indent="0" pn="section-appendix.a-4">
	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:
      </t>
      <dl indent="3" newline="false" spacing="normal" pn="section-appendix.a-5">
        <dt pn="section-appendix.a-5.1">  1) OT &lt; CT &lt; DT </dt>
        <dd pn="section-appendix.a-5.2"> (e.g., I_k &lt; OT_abs &lt;  CT_abs  &lt;  DT_abs  &lt;  I_(k+1) ) </dd>
        <dt pn="section-appendix.a-5.3"> 2) DT &lt; OT &lt; CT </dt>
        <dd pn="section-appendix.a-5.4">(e.g., I_k &lt; OT_abs &lt; CT_abs  &lt; I_(k+1) &lt; DT_abs ) </dd>
        <dt pn="section-appendix.a-5.5"> 3) CT &lt; DT &lt; OT </dt>
        <dd pn="section-appendix.a-5.6"> (e.g., I_k &lt; OT_abs &lt; I_(k+1) &lt; CT_abs  &lt; DT_abs ) </dd>
      </dl>
      <t indent="0" pn="section-appendix.a-6">
	    In the following cases, the deadline time has elapsed and the
	    packet should be dropped.
      </t>
      <dl indent="3" newline="false" spacing="normal" pn="section-appendix.a-7">
        <dt pn="section-appendix.a-7.1"> 4) DT &lt; CT &lt; OT </dt>
        <dd pn="section-appendix.a-7.2"/>
        <dt pn="section-appendix.a-7.3"> 5) OT &lt; DT &lt; CT </dt>
        <dd pn="section-appendix.a-7.4"/>
        <dt pn="section-appendix.a-7.5"> 6) CT &lt; OT &lt; DT </dt>
        <dd pn="section-appendix.a-7.6"/>
      </dl>
      <t indent="0" pn="section-appendix.a-8">
	Again in <xref target="fig7" format="default" sectionFormat="of" derivedContent="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.
      </t>
      <t indent="0" pn="section-appendix.a-9">
	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
	<em>slightly negative</em> but for an intermediate point to <em>detect</em> that it
	has gone negative.
	Note that in modular arithmetic, "slightly negative" means <em>exactly</em>
	the same as "almost as large as the modulus (i.e., 2^N)".
	Now consider the test condition
	((CT - DT) mod 2^N) &gt; SAFETY_FACTOR*2^N.
      </t>
      <t indent="0" pn="section-appendix.a-10">
	(DT_abs - OT_abs) &lt;  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 &lt; -2^N*(1-SAFETY_FACTOR).
	Inverting the inequality,
	OT_abs - DT_abs &gt; 2^N*(1-SAFETY_FACTOR), and thus at
	launch CT_abs - DT_abs &gt; 2^N*(1-SAFETY_FACTOR).
      </t>
      <t indent="0" pn="section-appendix.a-11">
	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.
      </t>
      <t indent="0" pn="section-appendix.a-12">
	As CT_abs grows still larger, CT_abs &gt; 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.
      </t>
      <t indent="0" pn="section-appendix.a-13">
	A note about "inverting the inequality".  Observe that a &lt; b
	implies that -a &gt; -b on the real number line.  Also,
	(a - b) == -(b - a).  These facts hold also for modular arithmetic.
      </t>
      <t indent="0" pn="section-appendix.a-14">
	During the times prior to the expiration of the deadline, for
	Safe = 2^N*SAFETY_FACTOR we have:
      </t>
      <t indent="6" pn="section-appendix.a-15">
(DT_abs - 2^N)  &lt; OT_abs  &lt;  CT_abs  &lt;  DT_abs  &lt;  DT_abs+Safe
      </t>
      <t indent="0" pn="section-appendix.a-16">
	Naturally, DT_abs - 2^N  ==  DT_abs mod 2^N == DT.
      </t>
      <t indent="0" pn="section-appendix.a-17">
	Again considering <xref target="fig7" format="default" sectionFormat="of" derivedContent="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 &lt; CT_abs - DT_abs &lt; 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.
      </t>
      <t indent="0" pn="section-appendix.a-18">
	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.
      </t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">
	The authors thank <contact fullname="Pascal Thubert"/> for suggesting the idea and
	encouraging the work. Thanks to <contact fullname="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
		<contact fullname="Jerry Daniel"/>,
		<contact fullname="Dan Frost"/> (Routing Directorate),
		<contact fullname="Charlie Kaufman"/> (Security Directorate),
		<contact fullname="Seema Kumar"/>,
		<contact fullname="Tal Mizrahi"/>,
		<contact fullname="Avinash Mohan"/>,
		<contact fullname="Shalu Rajendran"/>,
		<contact fullname="Anita Varghese"/>, and 
                <contact fullname="Dale Worley"/> (General Area Review Team (Gen-ART) review)
	for their support and valuable feedback.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Lijo Thomas" initials="L." surname="Thomas">
        <organization abbrev="C-DAC" showOnFrontPage="true">Centre for Development of Advanced Computing</organization>
        <address>
          <postal>
            <street>Vellayambalam</street>
            <city>Trivandrum</city>
            <code>695033</code>
            <country>India</country>
          </postal>
          <email>lijo@cdac.in</email>
        </address>
      </author>
      <author fullname="Satish Anamalamudi" initials="S." surname="Anamalamudi">
        <organization showOnFrontPage="true">SRM University-AP</organization>
        <address>
          <postal>
            <street>Amaravati Campus</street>
            <city>Amaravati, Andhra Pradesh</city>
            <code>522 502</code>
            <country>India</country>
          </postal>
          <email>satishnaidu80@gmail.com</email>
        </address>
      </author>
      <author fullname="S.V.R. Anand" initials="S.V.R." surname="Anand">
        <organization showOnFrontPage="true">Indian Institute of Science</organization>
        <address>
          <postal>
            <city>Bangalore</city>
            <code>560012</code>
            <country>India</country>
          </postal>
          <email>anandsvr@iisc.ac.in</email>
        </address>
      </author>
      <author fullname="Malati Hegde" initials="M." surname="Hegde">
        <organization showOnFrontPage="true">Indian Institute of Science</organization>
        <address>
          <postal>
            <city>Bangalore</city>
            <code>560012</code>
            <country>India</country>
          </postal>
          <email>malati@iisc.ac.in</email>
        </address>
      </author>
      <author fullname="Charles E. Perkins" initials="C." surname="Perkins">
        <organization showOnFrontPage="true">Lupin Lodge</organization>
        <address>
          <postal>
            <street>20600 Aldercroft Heights Rd.</street>
            <city>Los Gatos</city>
            <region>CA</region>
            <code>95033</code>
            <country>United States of America</country>
          </postal>
          <email>charliep@computer.org</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
