<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.2.2) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" consensus="true" docName="draft-ietf-cbor-time-tag-11" ipr="trust200902" sortRefs="true" submissionType="IETF" symRefs="true" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="CBOR tag for extended time">Concise Binary Object Representation (CBOR) Tags for Time, Duration, and Period</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-time-tag-11"/>
    <author fullname="Carsten Bormann" initials="C." surname="Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author fullname="Ben Gamari" initials="B." surname="Gamari">
      <organization>Well-Typed</organization>
      <address>
        <postal>
          <street>117 Middle Rd.</street>
          <city>Portsmouth</city>
          <region>NH</region>
          <code>03801</code>
          <country>United States</country>
        </postal>
        <email>ben@well-typed.com</email>
      </address>
    </author>
    <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer Institute for Secure Information Technology</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2023"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 166?>

<t>The Concise Binary Object Representation (CBOR, RFC 8949) is a data
format whose design goals include the possibility of extremely small
code size, fairly small message size, and extensibility without the
need for version negotiation.</t>
      <t>In CBOR, one point of extensibility is the definition of CBOR tags.
RFC 8949 defines two tags for time: CBOR tag 0 (RFC3339 time as a string) and tag
1 (POSIX time as int or float).  Since then, additional requirements have
become known.  The present document defines a CBOR tag for time that
allows a more elaborate representation of time, as well as related
CBOR tags for duration and time period.  This document is
intended as the reference document for the IANA registration of the
CBOR tags defined.</t>
      <t><cref anchor="status">(This cref will be removed by the RFC editor:)<br/>
The present revision (–11) addresses the ARTART and IOTDIR
directorate reviews.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cbor-time-tag/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cbor-wg/time-tag"/>.</t>
    </note>
  </front>
  <middle>
    <?line 191?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The Concise Binary Object Representation (CBOR, <xref target="RFC8949"/>) provides
for the interchange of structured data without a requirement for a
pre-agreed schema.
RFC 8949 defines a basic set of data types, as well as a tagging
mechanism that enables extending the set of data types supported via
an IANA registry for CBOR tags (<xref section="9.2" sectionFormat="of" target="RFC8949"/>, <xref target="IANA.cbor-tags"/>).</t>
      <t>RFC 8949 defines two tags for time: CBOR tag 0 (RFC3339 time as a string) and tag
1 (POSIX time as int or float).  Since then, additional requirements have
become known.  The present document defines a CBOR tag for time that
allows a more elaborate representation of time, as well as related
CBOR tags for duration and time period.  This document is
intended as the reference document for the IANA registration of the
CBOR tags defined.</t>
      <section anchor="terms">
        <name>Terminology</name>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>The term "byte" is used in its now customary sense as a synonym for
"octet".</t>
        <t>Superscript notation denotes exponentiation.  For example, 2 to the
power of 64 is notated: 2<sup>64</sup>.  In the plain-text rendition
of this specification, superscript notation is not available and
exponentiation therefore is rendered by the surrogate notation seen
here in the plain-text rendition.</t>
        <t>CBOR diagnostic notation is defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and
<xref section="G" sectionFormat="of" target="RFC8610"/>.
A machine-processable model of the data structures defined in this
specification is provided throughout the text using the Concise Data
Definition Language, CDDL <xref target="RFC8610"/>; <xref target="collected-cddl"/> provides the
collected model information.</t>
      </section>
    </section>
    <section anchor="objectives">
      <name>Objectives</name>
      <t>For the time tag,
the present specification addresses the following objectives that go
beyond the original tags 0 and 1 (defined in Sections <xref section="3.4.1" sectionFormat="bare" target="RFC8949"/> and <xref section="3.4.2" sectionFormat="bare" target="RFC8949"/> of <xref target="RFC8949"/>):</t>
      <ul spacing="normal">
        <li>
          <t>Additional resolution for epoch-based time (as in tag 1).  CBOR tag
1 only provides for integer and up to binary64 floating point
representation of times, limiting resolution to approximately
microseconds at the time of writing (and progressively becoming
worse over time).</t>
        </li>
        <li>
          <t>Indication of timescale.  Tags 0 and 1 are defined for UTC; however, some
interchanges are better performed on TAI.  Other timescales may be
registered once they become relevant (e.g., one of the proposed
successors to UTC that might no longer use leap seconds, or a
scale based on smeared leap seconds).</t>
        </li>
      </ul>
      <t>By incorporating a way to transport <xref target="IXDTF"/> suffix information (<xref target="tzh"/>,
<xref target="suff"/>), additional indications can be provided of intents about the
interpretation of the time given, in particular also for instances of
time that, at the time they are being described, are in the future.
Intents might include information about time zones, daylight savings
times, preferred calendar representations, etc.</t>
      <t>Semantics not covered by this document can be added by registering
additional map keys for the map that is the content of the tag (see
<tt>etime-detailed</tt> in <xref target="tag-1001"/>),
the specification for
which is referenced by the registry entry (see <xref target="time-format"/>).</t>
      <t>For example, map keys could be registered for direct representations
of natural platform time formats.  Some platforms use epoch-based
time formats that require some computation to convert them into the
representations allowed by tag 1; these computations can also lose
precision and cause ambiguities.  (The present specification does
not take a position on whether tag 1 can be "fixed" to include,
e.g., Decimal or BigFloat representations.  It does define how to
use these representations with the extended time format.)</t>
      <t>Additional tags are defined for durations and periods.</t>
    </section>
    <section anchor="time-format">
      <name>Time Format</name>
      <t>An extended time is indicated by CBOR tag 1001, the content of which is a map data
item (CBOR major type 5).  The map may contain integer (major types 0
and 1) or text string (major type 3) keys, with the value type
determined by each specific key.
For negative integer keys and text string values of the key,
implementations <bcp14>MUST</bcp14> ignore key/value pairs they do not understand;
these keys are "elective", as the extended time is still
usable if an implementation elects not to implement them.
Conversely, for unsigned integer keys, implementations <bcp14>MUST</bcp14> signal as
an error key/value pairs they do not understand or implement
(these are either "base time" or "critical", see below).</t>
      <t>The map must contain exactly one unsigned integer key that specifies
the "base time", and may also contain one or more negative integer or
text-string keys, which may encode supplementary information.</t>
      <t>Supplementary information may also be provided by additional unsigned
integer keys that are explicitly defined to provide supplementary
information (we say these keys are defined to be "critical"); as these
are required to be understood, there can be no confusion with base
time keys.</t>
      <t>Negative integer and text string keys always supply supplementary
information (they are "elective", and this will not be explicitly stated
below).</t>
      <t>Supplementary information may include:</t>
      <ul spacing="normal">
        <li>
          <t>a higher precision time offset to be added to the base time,</t>
        </li>
        <li>
          <t>a reference timescale and epoch different from the default UTC and 1970-01-01</t>
        </li>
        <li>
          <t>information about clock quality parameters, such as source,
accuracy, and uncertainty</t>
        </li>
      </ul>
      <t>Additional keys can be defined by registering them in the Map Key
Registry (<xref target="map-key-registry"/>).
Registered keys may, for instance, add intent information such as timezone and daylight savings time,
and/or possibly positioning coordinates, to express information that would indicate a local time.</t>
      <t>This document does not define supplementary text keys.
A number of both unsigned and negative-integer keys are defined in
the following subsections.</t>
      <t><xref target="tag-1001"/> provides a formal definition of Tag 1001 in CDDL.</t>
      <figure anchor="tag-1001">
        <name>CDDL definition of Tag 1001</name>
        <sourcecode type="cddl"><![CDATA[
Etime = #6.1001(etime-detailed)

etime-framework = {
  uint => any ; at least one base time
  * (nint/text) => any ; elective supplementary information
  * uint => any ; critical supplementary information
}

etime-detailed = ({
  $$ETIME-BASETIME
  ClockQuality-group
  * $$ETIME-ELECTIVE
  * $$ETIME-CRITICAL
  * ((nint/text) .feature "etime-elective-extension") => any
  * (uint .feature "etime-critical-extension") => any
}) .within etime-framework
]]></sourcecode>
      </figure>
      <section anchor="key-1">
        <name>Key 1</name>
        <t>Key 1 indicates a base time value that is exactly like the data item that would
be tagged by CBOR tag 1 (POSIX time <xref target="TIME_T"/> as int or float).
As described above, the time value indicated by the value under this
key can be further
modified by other keys.</t>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-BASETIME //= (1: ~time)
]]></sourcecode>
      </section>
      <section anchor="keys-4-and-5">
        <name>Keys 4 and 5</name>
        <t>Keys 4 and 5 indicate a base time value and are like key 1, except that the data item is an array as
defined for CBOR tag 4 or 5, respectively.
This can be used to include a Decimal or Bigfloat epoch-based float
<xref target="TIME_T"/> in an extended time, e.g., to achieve higher resolution or to
avoid rounding errors.</t>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-BASETIME //= (4: ~decfrac)
$$ETIME-BASETIME //= (5: ~bigfloat)
]]></sourcecode>
      </section>
      <section anchor="keys-3-6-9-12-15-18">
        <name>Keys -3, -6, -9, -12, -15, -18</name>
        <t>The keys -3, -6, -9, -12, -15 and -18 indicate additional decimal fractions by
giving an unsigned integer (major type 0) and scaling this with the
scale factor 1e-3, 1e-6, 1e-9, 1e-12, 1e-15, and 1e-18, respectively
(see <xref target="decfract"/>).
Each extended time data item <bcp14>MUST NOT</bcp14> contain more than one
of these keys.
These additional fractions are added to a base time in seconds <xref target="SI-SECOND"/>
indicated by a Key 1, which then <bcp14>MUST</bcp14> also be present and <bcp14>MUST</bcp14> have an
integer value.</t>
        <table anchor="decfract">
          <name>Key for decimally scaled Fractions</name>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">meaning</th>
              <th align="left">example usage</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-3</td>
              <td align="left">milliseconds</td>
              <td align="left">Java time</td>
            </tr>
            <tr>
              <td align="left">-6</td>
              <td align="left">microseconds</td>
              <td align="left">(old) UNIX time</td>
            </tr>
            <tr>
              <td align="left">-9</td>
              <td align="left">nanoseconds</td>
              <td align="left">(new) UNIX time</td>
            </tr>
            <tr>
              <td align="left">-12</td>
              <td align="left">picoseconds</td>
              <td align="left">Haskell time</td>
            </tr>
            <tr>
              <td align="left">-15</td>
              <td align="left">femtoseconds</td>
              <td align="left">(future)</td>
            </tr>
            <tr>
              <td align="left">-18</td>
              <td align="left">attoseconds</td>
              <td align="left">(future)</td>
            </tr>
          </tbody>
        </table>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-ELECTIVE //= (-3: uint)
$$ETIME-ELECTIVE //= (-6: uint)
$$ETIME-ELECTIVE //= (-9: uint)
$$ETIME-ELECTIVE //= (-12: uint)
$$ETIME-ELECTIVE //= (-15: uint)
$$ETIME-ELECTIVE //= (-18: uint)
]]></sourcecode>
        <t>Note that these keys have been provided to facilitate representing
pairs of the form second/decimal fraction of a second, as found for
instance in C <tt>timespec</tt> (Section 7.27.1 of <xref target="C"/>).
When ingesting a timestamp with one of these keys into a type provided
by the target platform, care has to be taken to meet its invariants.
E.g., for C <tt>timespec</tt>, the fractional part <tt>tv_nsec</tt> needs to be
between 0 inclusive and 10<sup>9</sup> exclusive, which can be
achieved by also adjusting the base time appropriately.</t>
      </section>
      <section anchor="key-timescale">
        <name>Key -1: Timescale</name>
        <t>Key -1 is used to indicate a timescale.  The value 0 indicates UTC,
with the POSIX epoch <xref target="TIME_T"/>; the value 1 indicates TAI, with the
PTP (Precision Time Protocol) epoch (1 January 1970 00:00:00 TAI, see
<xref target="IEEE1588-2019"/> or <xref target="IEEE1588-2008"/>).</t>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-ELECTIVE //= (-1 => $ETIME-TIMESCALE)

$ETIME-TIMESCALE /= &(etime-utc: 0)
$ETIME-TIMESCALE /= &(etime-tai: 1)
]]></sourcecode>
        <t>If key -1 is not present, the default timescale value 0 is implied.</t>
        <t>Additional values can be registered in the Timescale Registry
(<xref target="timescale-registry"/>); values <bcp14>MUST</bcp14> be integers or text strings.</t>
        <t>(Note that there should be no timescales "GPS" or "NTP" — instead,
the time should be converted to TAI or UTC using a single addition or subtraction.)</t>
        <figure anchor="offset">
          <name>Converting Common Offset Timescales</name>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="6.009ex" role="img" viewBox="0 -791.3 43055.4 2587.3" width="100ex">
                <defs>
                  <path d="M283 438l-10 -38h-70l-78 -320c-1 -3 -2 -8 -2 -11c0 -6 3 -12 16 -12c0 0 23 2 60 52l13 -11c-24 -31 -74 -107 -133 -107c-31 0 -39 25 -39 52c0 13 2 26 5 37l81 320h-77l5 29c75 14 136 51 177 138h13l-31 -129h70Z" id="E1-STIXWEBNORMALI-1D461-gensym001" stroke-width="1"/>
                  <path d="M444 428l-89 -348c-1 -4 -1 -6 -1 -9c0 -8 4 -14 14 -14c21 0 40 26 57 46l5 6l13 -11c-23 -33 -74 -107 -132 -107c-29 0 -40 19 -40 52c0 9 1 25 4 37l26 95h-1c-7 -5 -97 -126 -137 -156c-23 -17 -49 -28 -72 -28c-47 0 -61 36 -61 74c0 21 3 40 8 59l59 231 c4 15 6 21 6 25c0 12 -11 23 -33 23c-7 0 -19 -1 -26 -3l-3 15l157 26l-84 -326c-2 -9 -3 -16 -3 -24c0 -21 8 -34 26 -34c25 0 65 31 100 77c43 57 89 146 109 219l21 75h77Z" id="E1-STIXWEBNORMALI-1D462-gensym001" stroke-width="1"/>
                  <path d="M363 111l12 -13c-51 -60 -113 -109 -198 -109c-97 0 -137 78 -137 155c0 140 121 297 263 297c50 0 97 -27 97 -76c0 -38 -16 -70 -54 -70c-26 0 -38 21 -38 38c0 24 29 36 29 58c0 12 -10 21 -34 21c-119 0 -176 -179 -176 -259c0 -87 49 -109 94 -109 c61 0 107 33 142 67Z" id="E1-STIXWEBNORMALI-1D450-gensym001" stroke-width="1"/>
                  <path d="M637 320h-589v66h589v-66zM637 120h-589v66h589v-66Z" id="E1-STIXWEBMAIN-3D-gensym001" stroke-width="1"/>
                  <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -133c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -29 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B-gensym001" stroke-width="1"/>
                  <path d="M253 370l14 13c39 37 78 58 113 58c61 0 94 -54 94 -155c0 -129 -110 -298 -254 -298c-24 0 -42 4 -61 19l-24 -100c-3 -13 -5 -24 -5 -35c0 -22 11 -43 61 -43h16l-3 -12h-234l3 12c62 3 69 33 81 79l117 464c0 19 -1 33 -31 33c-8 0 -20 -2 -28 -4l-2 16l158 24 l-18 -69zM214 238l-46 -200c14 -16 34 -21 46 -21c101 0 176 173 176 285c0 63 -28 83 -51 83c-53 0 -105 -61 -125 -147Z" id="E1-STIXWEBNORMALI-1D45D-gensym001" stroke-width="1"/>
                  <path d="M621 220h-557v66h557v-66Z" id="E1-STIXWEBMAIN-2212-gensym001" stroke-width="1"/>
                  <path d="M474 137l-54 -137h-391v12l178 189c94 99 130 175 130 260c0 91 -54 141 -139 141c-72 0 -107 -32 -147 -130l-21 5c21 117 85 199 208 199c113 0 185 -77 185 -176c0 -79 -39 -154 -128 -248l-165 -176h234c42 0 63 11 96 67Z" id="E1-STIXWEBMAIN-32-gensym001" stroke-width="1"/>
                  <path d="M476 330c0 -172 -63 -344 -226 -344c-171 0 -226 186 -226 350c0 177 69 340 230 340c131 0 222 -141 222 -346zM380 325c0 208 -44 325 -132 325c-83 0 -128 -118 -128 -321s44 -317 130 -317c85 0 130 115 130 313Z" id="E1-STIXWEBMAIN-30-gensym001" stroke-width="1"/>
                  <path d="M445 155c0 -103 -77 -169 -197 -169c-113 0 -192 69 -192 163c0 69 23 108 130 183c-103 85 -124 123 -124 188c0 96 83 156 194 156c99 0 168 -65 168 -143c0 -75 -35 -109 -134 -162c123 -82 155 -136 155 -216zM355 533c0 69 -41 115 -109 115 c-67 0 -110 -37 -110 -99s37 -108 125 -160c68 40 94 82 94 144zM271 272l-59 40c-59 -48 -80 -89 -80 -154c0 -92 51 -144 127 -144c65 0 110 45 110 110c0 62 -30 102 -98 148Z" id="E1-STIXWEBMAIN-38-gensym001" stroke-width="1"/>
                  <path d="M59 -22l-3 20c152 27 264 132 304 296c-43 -42 -91 -57 -150 -57c-108 0 -180 81 -180 203c0 135 89 236 208 236c64 0 118 -28 157 -76c40 -50 64 -122 64 -206c0 -115 -40 -224 -120 -297c-85 -77 -150 -101 -280 -119zM362 355v39c0 168 -45 254 -132 254 c-30 0 -56 -12 -73 -34c-20 -27 -35 -86 -35 -140c0 -119 48 -194 123 -194c44 0 117 22 117 75Z" id="E1-STIXWEBMAIN-39-gensym001" stroke-width="1"/>
                  <path d="M472 428l-91 -345s-1 -2 -1 -11c0 -11 6 -17 14 -17c10 0 25 2 64 54l12 -12c-31 -47 -85 -107 -133 -107c-33 0 -42 23 -42 55c0 13 6 34 11 50h-4c-72 -92 -134 -105 -173 -105c-63 0 -89 55 -89 119c0 132 132 332 276 332c43 0 64 -24 66 -46h1l9 33h80zM367 341 c0 41 -12 71 -50 71c-68 0 -128 -87 -162 -171c-18 -45 -28 -89 -28 -124c0 -53 31 -66 58 -66c69 0 139 95 167 190c8 26 15 66 15 100Z" id="E1-STIXWEBNORMALI-1D44E-gensym001" stroke-width="1"/>
                  <path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E1-STIXWEBNORMALI-1D456-gensym001" stroke-width="1"/>
                  <path d="M492 413l-13 -45h-81c13 -15 17 -28 17 -50c0 -75 -53 -137 -141 -148c-59 -8 -88 -33 -88 -58c0 -63 233 -23 233 -148c0 -71 -66 -151 -215 -151c-134 0 -184 57 -184 115s55 88 117 108c-17 11 -24 30 -24 47c0 38 37 87 85 87v4c-67 15 -94 62 -94 109 c0 79 68 158 174 158c42 0 73 -13 88 -28h126zM336 349c0 37 -10 62 -54 62c-54 0 -98 -71 -98 -139c0 -46 12 -81 56 -81c71 0 96 102 96 158zM349 -69c0 78 -132 73 -192 95c-8 -5 -18 -10 -26 -16c-26 -19 -48 -45 -48 -72c0 -47 44 -97 139 -97c91 0 127 46 127 90Z" id="E1-STIXWEBNORMALI-1D454-gensym001" stroke-width="1"/>
                  <path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -17 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c-9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 -130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" id="E1-STIXWEBNORMALI-1D460-gensym001" stroke-width="1"/>
                  <path d="M636 220h-261v-261h-66v261h-261v66h261v261h66v-261h261v-66Z" id="E1-STIXWEBMAIN-2B-gensym001" stroke-width="1"/>
                  <path d="M61 510l-16 4c29 95 92 162 196 162c93 0 156 -55 156 -137c0 -48 -26 -98 -93 -138c44 -19 62 -31 83 -53c28 -31 44 -77 44 -129c0 -53 -17 -102 -46 -140c-48 -64 -143 -93 -232 -93c-73 0 -112 21 -112 57c0 21 18 36 41 36c17 0 33 -6 61 -26c37 -26 58 -31 86 -31 c74 0 130 68 130 153c0 76 -35 125 -104 145c-22 7 -45 10 -102 10v14c38 13 64 24 84 36c49 28 81 73 81 134c0 68 -42 102 -108 102c-62 0 -108 -32 -149 -106Z" id="E1-STIXWEBMAIN-33-gensym001" stroke-width="1"/>
                  <path d="M394 0h-276v15c74 4 95 25 95 80v449c0 34 -9 49 -30 49c-10 0 -27 -5 -45 -12l-27 -10v14l179 91l9 -3v-597c0 -43 20 -61 95 -61v-15Z" id="E1-STIXWEBMAIN-31-gensym001" stroke-width="1"/>
                  <path d="M438 681l-36 -85c-3 -7 -11 -13 -27 -13h-194l-40 -85c143 -27 193 -49 250 -128c26 -36 35 -74 35 -127c0 -96 -30 -158 -98 -208c-47 -34 -102 -49 -170 -49c-75 0 -127 24 -127 62c0 25 17 38 45 38c23 0 42 -5 74 -31c28 -23 51 -32 71 -32c70 0 135 83 135 169 c0 64 -22 114 -67 150c-47 38 -117 70 -213 70c-9 0 -12 2 -12 8c0 2 1 5 1 5l109 237h207c23 0 32 5 48 26Z" id="E1-STIXWEBMAIN-35-gensym001" stroke-width="1"/>
                  <path d="M446 684l2 -16c-157 -26 -269 -134 -296 -285c49 38 83 45 127 45c117 0 189 -80 189 -209c0 -64 -18 -120 -51 -160c-37 -46 -93 -73 -159 -73c-79 0 -142 37 -177 101c-28 51 -47 122 -47 192c0 108 38 203 109 276c86 90 165 114 303 129zM378 188 c0 128 -42 194 -135 194c-57 0 -116 -24 -116 -116c0 -152 48 -252 142 -252c72 0 109 72 109 174Z" id="E1-STIXWEBMAIN-36-gensym001" stroke-width="1"/>
                  <path d="M473 167h-103v-167h-78v167h-280v64l314 445h44v-445h103v-64zM292 231v343l-240 -343h240Z" id="E1-STIXWEBMAIN-34-gensym001" stroke-width="1"/>
                </defs>
                <g fill="black" stroke="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
                  <g transform="translate(16540,0)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" x="0" y="0"/>
                    <g transform="translate(313,-150)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D462-gensym001" transform="scale(0.707)" x="0" y="0"/>
                      <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" transform="scale(0.707)" x="474" y="0"/>
                      <use xlink:href="#E1-STIXWEBNORMALI-1D450-gensym001" transform="scale(0.707)" x="788" y="0"/>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-3D-gensym001" x="1542" y="0"/>
                    <g transform="translate(2505,0)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" x="0" y="0"/>
                      <g transform="translate(313,-150)">
                        <use xlink:href="#E1-STIXWEBNORMALI-1D45B-gensym001" transform="scale(0.707)" x="0" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" transform="scale(0.707)" x="497" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D45D-gensym001" transform="scale(0.707)" x="810" y="0"/>
                      </g>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-2212-gensym001" x="4060" y="0"/>
                    <g transform="translate(4968,0)">
                      <use xlink:href="#E1-STIXWEBMAIN-32-gensym001"/>
                      <use xlink:href="#E1-STIXWEBMAIN-32-gensym001" x="500" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-30-gensym001" x="1001" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym001" x="1501" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-39-gensym001" x="2002" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym001" x="2502" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym001" x="3003" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym001" x="3503" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-30-gensym001" x="4004" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-30-gensym001" x="4504" y="0"/>
                    </g>
                  </g>
                  <g transform="translate(16774,-1400)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" x="0" y="0"/>
                    <g transform="translate(313,-150)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" transform="scale(0.707)" x="0" y="0"/>
                      <use xlink:href="#E1-STIXWEBNORMALI-1D44E-gensym001" transform="scale(0.707)" x="313" y="0"/>
                      <use xlink:href="#E1-STIXWEBNORMALI-1D456-gensym001" transform="scale(0.707)" x="816" y="0"/>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-3D-gensym001" x="1488" y="0"/>
                    <g transform="translate(2451,0)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D461-gensym001" x="0" y="0"/>
                      <g transform="translate(313,-150)">
                        <use xlink:href="#E1-STIXWEBNORMALI-1D454-gensym001" transform="scale(0.707)" x="0" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D45D-gensym001" transform="scale(0.707)" x="492" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D460-gensym001" transform="scale(0.707)" x="982" y="0"/>
                      </g>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-2B-gensym001" x="4093" y="0"/>
                    <g transform="translate(5001,0)">
                      <use xlink:href="#E1-STIXWEBMAIN-33-gensym001"/>
                      <use xlink:href="#E1-STIXWEBMAIN-31-gensym001" x="500" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-35-gensym001" x="1001" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-39-gensym001" x="1501" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-36-gensym001" x="2002" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-34-gensym001" x="2502" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym001" x="3003" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-31-gensym001" x="3503" y="0"/>
                      <use xlink:href="#E1-STIXWEBMAIN-39-gensym001" x="4004" y="0"/>
                    </g>
                  </g>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[t    = t    - 2208988800
 utc    ntp

t    = t    + 315964819
 tai    gps
]]></artwork>
          </artset>
        </figure>
        <aside>
          <t>Editor's note:
This initial set of timescales was deliberately chosen to be frugal, as
the specification of the tag provides an extension point where
additional timescales can be registered at any time.
Registrations are clearly needed for earth-referenced timescales (such
as UT1 and TT), as well as possibly for specific realizations of
abstract time scales (such as TAI(USNO) which is more accurate as a
constant offset basis for GPS times).
While the registration process itself is trivial, these registrations
need to be made based on a solid specification of their actual
definition.</t>
        </aside>
      </section>
      <section anchor="clock-quality">
        <name>Clock Quality</name>
        <t>A number of keys are defined to indicate the quality of clock that was
used to determine the point in time.</t>
        <t>The first three are analogous to <tt>clock-quality-grouping</tt> in
<xref target="RFC8575"/>, which is in turn based on the definitions in
<xref target="IEEE1588-2008"/>; the last two are specific to this document.</t>
        <sourcecode type="cddl"><![CDATA[
ClockQuality-group = (
  ? &(ClockClass: -2) => uint .size 1 ; PTP/RFC8575
  ? &(ClockAccuracy: -4) => uint .size 1 ; PTP/RFC8575
  ? &(OffsetScaledLogVariance: -5) => uint .size 2 ; PTP/RFC8575
  ? &(Uncertainty: -7) => ~time/~duration
  ? &(Guarantee: -8) => ~time/~duration
)
]]></sourcecode>
        <section anchor="clockclass-key-2">
          <name>ClockClass (Key -2)</name>
          <t>Key -2 (ClockClass) can be used to indicate the clock class as per
<xref target="RFC8575"/> (which is based on Table 5 in Section 7.6.2.4 of
<xref target="IEEE1588-2008"/>; Table 4 in Section 7.6.2.5 of <xref target="IEEE1588-2019"/> has updated language).
It is defined as a one-byte unsigned integer as that is the range
defined in IEEE 1588.</t>
        </section>
        <section anchor="clockaccuracy-key-4">
          <name>ClockAccuracy (Key -4)</name>
          <t>Key -4 (ClockAccuracy) can be used to indicate the clock accuracy as
per <xref target="RFC8575"/> (which is based on Table 6 in Section 7.6.2.5 of
<xref target="IEEE1588-2008"/>; additional values have been defined in Table 5 in
Section 7.6.2.6 of <xref target="IEEE1588-2019"/>).
It is defined as a one-byte unsigned integer as that is the range defined there.
The range between 23 and 47 is a slightly distorted logarithmic scale
from 1 ps to 1 s in <xref target="IEEE1588-2019"/> (in <xref target="IEEE1588-2008"/> the range was
a subset of that, 32 to 47 for 25 ns to 1 s) — see
<xref target="formula-accuracy-enum"/>; the number 254 is the
value to be used if an unknown accuracy needs to be expressed.</t>
          <!-- Note that the double space after the \approx is actually needed -->
<!-- by utftex -->

<figure anchor="formula-accuracy-enum">
            <name>Approximate conversion from accuracy to accuracy enumeration value</name>
            <artset>
              <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="4.676ex" role="img" viewBox="0 -1221.9 14098.6 2013.3" width="32.745ex">
                  <defs>
                    <path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -167 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNORMALI-1D452-gensym002" stroke-width="1"/>
                    <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -133c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -29 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B-gensym002" stroke-width="1"/>
                    <path d="M444 428l-89 -348c-1 -4 -1 -6 -1 -9c0 -8 4 -14 14 -14c21 0 40 26 57 46l5 6l13 -11c-23 -33 -74 -107 -132 -107c-29 0 -40 19 -40 52c0 9 1 25 4 37l26 95h-1c-7 -5 -97 -126 -137 -156c-23 -17 -49 -28 -72 -28c-47 0 -61 36 -61 74c0 21 3 40 8 59l59 231 c4 15 6 21 6 25c0 12 -11 23 -33 23c-7 0 -19 -1 -26 -3l-3 15l157 26l-84 -326c-2 -9 -3 -16 -3 -24c0 -21 8 -34 26 -34c25 0 65 31 100 77c43 57 89 146 109 219l21 75h77Z" id="E1-STIXWEBNORMALI-1D462-gensym002" stroke-width="1"/>
                    <path d="M667 107l13 -11c-32 -54 -84 -104 -131 -104c-22 0 -39 10 -39 49c0 7 1 17 6 37l56 221c4 14 6 23 6 40c0 20 -6 38 -24 38c-54 0 -164 -181 -179 -242l-34 -135h-79l77 299c2 9 5 25 5 40c0 20 -5 38 -23 38c-52 0 -162 -181 -178 -242l-35 -135h-78l95 374 c0 18 -6 31 -33 31c-8 0 -19 -1 -27 -2l-2 14l157 24l-44 -169h6c94 143 154 169 192 169c37 0 55 -37 55 -81c0 -17 -3 -32 -9 -52l-10 -36h5c29 52 81 114 130 147c22 15 41 22 61 22c36 0 54 -26 54 -71c0 -18 -1 -37 -7 -61l-61 -231c-1 -3 -2 -9 -2 -12 c0 -8 6 -12 15 -12c17 0 43 16 62 53Z" id="E1-STIXWEBNORMALI-1D45A-gensym002" stroke-width="1"/>
                    <path d="M472 428l-91 -345s-1 -2 -1 -11c0 -11 6 -17 14 -17c10 0 25 2 64 54l12 -12c-31 -47 -85 -107 -133 -107c-33 0 -42 23 -42 55c0 13 6 34 11 50h-4c-72 -92 -134 -105 -173 -105c-63 0 -89 55 -89 119c0 132 132 332 276 332c43 0 64 -24 66 -46h1l9 33h80zM367 341 c0 41 -12 71 -50 71c-68 0 -128 -87 -162 -171c-18 -45 -28 -89 -28 -124c0 -53 31 -66 58 -66c69 0 139 95 167 190c8 26 15 66 15 100Z" id="E1-STIXWEBNORMALI-1D44E-gensym002" stroke-width="1"/>
                    <path d="M363 111l12 -13c-51 -60 -113 -109 -198 -109c-97 0 -137 78 -137 155c0 140 121 297 263 297c50 0 97 -27 97 -76c0 -38 -16 -70 -54 -70c-26 0 -38 21 -38 38c0 24 29 36 29 58c0 12 -10 21 -34 21c-119 0 -176 -179 -176 -259c0 -87 49 -109 94 -109 c61 0 107 33 142 67Z" id="E1-STIXWEBNORMALI-1D450-gensym002" stroke-width="1"/>
                    <path d="M604 475h33c-6 -85 -60 -204 -158 -204c-96 0 -203 128 -275 128c-70 0 -107 -67 -123 -138h-33c5 100 65 204 163 204c96 0 203 -128 276 -128c69 0 102 67 117 138zM604 239h33c-6 -85 -60 -204 -158 -204c-96 0 -203 128 -275 128c-70 0 -107 -67 -123 -138h-33 c5 100 65 204 163 204c96 0 203 -128 276 -128c69 0 102 67 117 138Z" id="E1-STIXWEBMAIN-2248-gensym002" stroke-width="1"/>
                    <path d="M473 167h-103v-167h-78v167h-280v64l314 445h44v-445h103v-64zM292 231v343l-240 -343h240Z" id="E1-STIXWEBMAIN-34-gensym002" stroke-width="1"/>
                    <path d="M445 155c0 -103 -77 -169 -197 -169c-113 0 -192 69 -192 163c0 69 23 108 130 183c-103 85 -124 123 -124 188c0 96 83 156 194 156c99 0 168 -65 168 -143c0 -75 -35 -109 -134 -162c123 -82 155 -136 155 -216zM355 533c0 69 -41 115 -109 115 c-67 0 -110 -37 -110 -99s37 -108 125 -160c68 40 94 82 94 144zM271 272l-59 40c-59 -48 -80 -89 -80 -154c0 -92 51 -144 127 -144c65 0 110 45 110 110c0 62 -30 102 -98 148Z" id="E1-STIXWEBMAIN-38-gensym002" stroke-width="1"/>
                    <path d="M636 220h-261v-261h-66v261h-261v66h261v261h66v-261h261v-66Z" id="E1-STIXWEBMAIN-2B-gensym002" stroke-width="1"/>
                    <path d="M447 -213h-259v926h66v-798c0 -64 19 -95 84 -95h109v-33Z" id="E1-STIXWEBMAIN-230A-gensym002" stroke-width="1"/>
                    <path d="M474 137l-54 -137h-391v12l178 189c94 99 130 175 130 260c0 91 -54 141 -139 141c-72 0 -107 -32 -147 -130l-21 5c21 117 85 199 208 199c113 0 185 -77 185 -176c0 -79 -39 -154 -128 -248l-165 -176h234c42 0 63 11 96 67Z" id="E1-STIXWEBMAIN-32-gensym002" stroke-width="1"/>
                    <path d="M203 253c0 -32 -27 -60 -59 -60c-33 0 -61 30 -61 60s28 60 61 60c32 0 59 -28 59 -60Z" id="E1-STIXWEBMAIN-22C5-gensym002" stroke-width="1"/>
                    <path d="M278 668l-148 -591s-1 -4 -1 -11s4 -13 12 -13c23 0 53 39 62 55l16 -12c-34 -40 -77 -106 -135 -106c-30 0 -39 26 -39 51c0 12 3 26 6 36l128 510c3 13 3 21 3 24c0 12 -8 22 -31 22c-7 0 -19 -2 -27 -3l-3 15Z" id="E1-STIXWEBNORMALI-1D459-gensym002" stroke-width="1"/>
                    <path d="M438 287c0 -139 -110 -298 -263 -298c-101 0 -135 90 -135 163c0 128 103 289 251 289c80 0 147 -46 147 -154zM357 318c0 38 -14 93 -67 93c-82 0 -169 -149 -169 -285c0 -33 3 -107 59 -107c106 0 177 223 177 299Z" id="E1-STIXWEBNORMALI-1D45C-gensym002" stroke-width="1"/>
                    <path d="M492 413l-13 -45h-81c13 -15 17 -28 17 -50c0 -75 -53 -137 -141 -148c-59 -8 -88 -33 -88 -58c0 -63 233 -23 233 -148c0 -71 -66 -151 -215 -151c-134 0 -184 57 -184 115s55 88 117 108c-17 11 -24 30 -24 47c0 38 37 87 85 87v4c-67 15 -94 62 -94 109 c0 79 68 158 174 158c42 0 73 -13 88 -28h126zM336 349c0 37 -10 62 -54 62c-54 0 -98 -71 -98 -139c0 -46 12 -81 56 -81c71 0 96 102 96 158zM349 -69c0 78 -132 73 -192 95c-8 -5 -18 -10 -26 -16c-26 -19 -48 -45 -48 -72c0 -47 44 -97 139 -97c91 0 127 46 127 90Z" id="E1-STIXWEBNORMALI-1D454-gensym002" stroke-width="1"/>
                    <path d="M394 0h-276v15c74 4 95 25 95 80v449c0 34 -9 49 -30 49c-10 0 -27 -5 -45 -12l-27 -10v14l179 91l9 -3v-597c0 -43 20 -61 95 -61v-15Z" id="E1-STIXWEBMAIN-31-gensym002" stroke-width="1"/>
                    <path d="M476 330c0 -172 -63 -344 -226 -344c-171 0 -226 186 -226 350c0 177 69 340 230 340c131 0 222 -141 222 -346zM380 325c0 208 -44 325 -132 325c-83 0 -128 -118 -128 -321s44 -317 130 -317c85 0 130 115 130 313Z" id="E1-STIXWEBMAIN-30-gensym002" stroke-width="1"/>
                    <path d="M156 301l104 -63c64 -39 88 -66 88 -123c0 -67 -64 -125 -140 -125c-21 0 -50 1 -73 9c-24 8 -35 9 -46 9c-12 0 -18 -2 -24 -12h-13v157h16c21 -97 58 -141 127 -141c51 0 83 33 83 74c0 31 -20 57 -53 75l-54 30c-83 46 -120 94 -120 145c0 79 56 123 138 123 c24 0 46 -1 67 -11c11 -5 21 -8 28 -8c4 0 8 1 16 10h11l5 -136h-15c-23 90 -53 123 -113 123c-43 0 -75 -21 -75 -68c0 -22 15 -51 43 -68Z" id="E1-STIXWEBMAIN-73-gensym002" stroke-width="1"/>
                    <path d="M621 220h-557v66h557v-66Z" id="E1-STIXWEBMAIN-2212-gensym002" stroke-width="1"/>
                    <path d="M444 372l-14 -8c-25 36 -60 47 -120 47c-63 0 -139 -44 -139 -113c0 -32 33 -51 78 -51c21 0 37 9 62 9c22 0 38 -7 38 -20c0 -17 -10 -31 -43 -31c-9 0 -40 6 -61 6c-49 0 -133 -33 -133 -103c0 -61 65 -78 125 -78c53 0 118 26 151 73l13 -10 c-42 -59 -99 -104 -210 -104c-124 0 -166 50 -166 102c0 73 49 120 116 137c-35 12 -58 33 -58 66c0 81 83 147 225 147c62 0 123 -33 136 -69Z" id="E1-STIXWEBNORMALI-1D700-gensym002" stroke-width="1"/>
                    <path d="M286 -213h-259v33h109c65 0 84 31 84 95v798h66v-926Z" id="E1-STIXWEBMAIN-230B-gensym002" stroke-width="1"/>
                  </defs>
                  <g fill="black" stroke="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452-gensym002" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B-gensym002" x="445" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462-gensym002" x="943" y="0"/>
                    <g transform="translate(1417,0)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D45A-gensym002" x="0" y="0"/>
                      <g transform="translate(710,-150)">
                        <use xlink:href="#E1-STIXWEBNORMALI-1D44E-gensym002" transform="scale(0.707)" x="0" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D450-gensym002" transform="scale(0.707)" x="502" y="0"/>
                        <use xlink:href="#E1-STIXWEBNORMALI-1D450-gensym002" transform="scale(0.707)" x="918" y="0"/>
                      </g>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-2248-gensym002" x="3448" y="0"/>
                    <g transform="translate(4411,0)">
                      <use xlink:href="#E1-STIXWEBMAIN-34-gensym002"/>
                      <use xlink:href="#E1-STIXWEBMAIN-38-gensym002" x="500" y="0"/>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-2B-gensym002" x="5635" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-230A-gensym002" x="6542" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-32-gensym002" x="7012" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-22C5-gensym002" x="7735" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D459-gensym002" x="8243" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45C-gensym002" x="8562" y="0"/>
                    <g transform="translate(9020,0)">
                      <use xlink:href="#E1-STIXWEBNORMALI-1D454-gensym002" x="0" y="0"/>
                      <g transform="translate(492,-150)">
                        <use xlink:href="#E1-STIXWEBMAIN-31-gensym002" transform="scale(0.707)"/>
                        <use xlink:href="#E1-STIXWEBMAIN-30-gensym002" transform="scale(0.707)" x="500" y="0"/>
                      </g>
                    </g>
                    <g transform="translate(10321,0)">
                      <g transform="translate(120,0)">
                        <rect height="60" width="1453" x="0" y="220"/>
                        <g transform="translate(60,676)">
                          <use xlink:href="#E1-STIXWEBNORMALI-1D44E-gensym002" x="0" y="0"/>
                          <use xlink:href="#E1-STIXWEBNORMALI-1D450-gensym002" x="502" y="0"/>
                          <use xlink:href="#E1-STIXWEBNORMALI-1D450-gensym002" x="918" y="0"/>
                        </g>
                        <use xlink:href="#E1-STIXWEBMAIN-73-gensym002" x="532" y="-686"/>
                      </g>
                    </g>
                    <use xlink:href="#E1-STIXWEBMAIN-2212-gensym002" x="12236" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D700-gensym002" x="13144" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-230B-gensym002" x="13629" y="0"/>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[                         acc
enum    ≈ 48 + ⌊2 ⋅log   ──── - ε⌋
    acc               10  s
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="offsetscaledlogvariance-key-5">
          <name>OffsetScaledLogVariance (Key -5)</name>
          <t>Key -5 (OffsetScaledLogVariance) can be used to represent the variance
exhibited by the clock when it has lost its synchronization with an
external reference clock.  The details for the computation of this
characteristic are defined in Section 7.6.3 of <xref target="IEEE1588-2019"/> and the
same section in <xref target="IEEE1588-2008"/>.</t>
        </section>
        <section anchor="uncertainty-key-7">
          <name>Uncertainty (Key -7)</name>
          <t>Key -7 (Uncertainty) can be used to represent a known measurement
uncertainty for the clock, as a numeric value in seconds or as a
duration (<xref target="duration"/>).</t>
          <t>For this document, uncertainty is defined as in Section 2.2.3 of
<xref target="GUM"/>: "parameter, associated with the result of a measurement, that
characterizes the dispersion of the values that could reasonably be
attributed to the measurand".  More specifically, the value for this
key represents the expanded uncertainty for k = 2 (Section 6.2.1 of <xref target="GUM"/>), in seconds.</t>
          <t>Note that the additional information that can be meaningfully provided
with the duration that represents an uncertainty is limited, e.g., it
is not customary to provide an uncertainty for a duration representing
an uncertainty.
Implementations are free to reduce the information contained in an
uncertainty (which is already elective) to the information they can
process.</t>
          <t>For example, a timestamp that is given to a resolution of
10<sup>-6</sup> seconds (microseconds) but only has an uncertainty of
10<sup>-3</sup> seconds (milliseconds) could be expressed by one of
the extended time tags in <xref target="uncertainty-example"/> (note the slight
rounding error in the third case, which is probably inconsequential
for an uncertainty value):</t>
          <figure anchor="uncertainty-example">
            <name>Examples Using Uncertainty</name>
            <sourcecode type="cbor-diag"><![CDATA[
1001({1: 1697724754, -6: 873294, -7: {1: 0, -6: 1000}}),
1001({1: 1697724754, -6: 873294, -7: {1: 0, -3: 1}}),
1001({1: 1697724754, -6: 873294, -7: {1: 0.001}})
]]></sourcecode>
          </figure>
        </section>
        <section anchor="guarantee-key-8">
          <name>Guarantee (Key -8)</name>
          <t>Key -8 (Guarantee) can be used to represent a stated guarantee for the
accuracy of the point in time, as a numeric value in seconds or as a
duration (<xref target="duration"/>)
representing the maximum allowed deviation from the true value.</t>
          <t>While such a guarantee is unattainable in theory, existing standards
such as <xref target="RFC3161"/> stipulate the representation of such guarantees,
and therefore this format provides a way to represent them as well;
the time value given is nominally guaranteed to not deviate from the
actual time by more than the value of the guarantee, in seconds.</t>
          <t>Note that the additional information that can be meaningfully provided
with the duration that represents a guarantee is limited, e.g., it is
not meaningful to provide a guarantee of accuracy for the duration
representing a guarantee of accuracy.
Implementations are free to reduce a guarantee (which is already
elective) to the information they can process.</t>
        </section>
      </section>
      <section anchor="tzh">
        <name>Keys -10, 10: Time Zone Hint</name>
        <t>Keys -10 and 10 supply supplementary information, where key 10 is critical.</t>
        <t>They can be used to provide a hint about the time zone that
would best fit for displaying the time given to humans, using a text
string in the format defined for <tt>time-zone-name</tt> or <tt>time-numoffset</tt>
in <xref target="IXDTF"/>.
Key -10 is equivalent to providing this information as an elective
hint, while key 10 provides this information as critical (i.e., it
<bcp14>MUST</bcp14> be used when interpreting the entry with this key).</t>
        <t>Keys -10 and 10 <bcp14>MUST NOT</bcp14> both be present.</t>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-ELECTIVE //= (-10: time-zone-info)
$$ETIME-CRITICAL //= (10: time-zone-info)

time-zone-info = tstr .abnf
                 ("time-zone-name / time-numoffset" .det IXDTFtz)
IXDTFtz = '
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-numoffset  = ("+" / "-") time-hour ":" time-minute



   time-zone-initial = ALPHA / "." / "_"
   time-zone-char    = time-zone-initial / DIGIT / "-" / "+"
   time-zone-part    = time-zone-initial *13(time-zone-char)
                       ; but not "." or ".."
   time-zone-name    = time-zone-part *("/" time-zone-part)
   ALPHA             =  %x41-5A / %x61-7A   ; A-Z / a-z
   DIGIT             =  %x30-39 ; 0-9
' ; extracted from [IXDTF] and [RFC3339]; update as needed
]]></sourcecode>
      </section>
      <section anchor="suff">
        <name>Keys -11, 11: IXDTF Suffix Information</name>
        <t>Keys -11 and 11 supply supplementary information, where key 11 is critical.</t>
        <t>Similar to keys -10 and 10, keys -11 (elective) and 11 (critical) can
be used to provide additional information in the style of IXDTF
suffixes, such as the calendar that would best fit for displaying the
time given to humans.
The key's value is a map that has IXDTF <tt>suffix-key</tt> names as keys and
corresponding suffix values as values, specifically:</t>
        <sourcecode type="cddl"><![CDATA[
$$ETIME-ELECTIVE //= (-11: suffix-info-map)
$$ETIME-CRITICAL //= (11: suffix-info-map)

suffix-info-map = { * suffix-key => suffix-values }
suffix-key = tstr .abnf ("suffix-key" .det IXDTF)
suffix-values = one-or-more<suffix-value>
one-or-more<T> = T / [ 2* T ]
suffix-value = tstr .abnf ("suffix-value" .det IXDTF)

IXDTF = '
   key-initial       = lcalpha / "_"
   key-char          = key-initial / DIGIT / "-"
   suffix-key        = key-initial *key-char

   suffix-value      = 1*alphanum
   alphanum          = ALPHA / DIGIT
   lcalpha           =  %x61-7A
   ALPHA             =  %x41-5A / %x61-7A   ; A-Z / a-z
   DIGIT             =  %x30-39 ; 0-9
' ; extracted from [IXDTF]; update as needed!
]]></sourcecode>
        <t>When keys -11 and 11 both are present, the two maps <bcp14>MUST NOT</bcp14> have
entries with the same map keys.</t>
        <t>Figure 4 of <xref target="IXDTF"/> gives an example for an extended date-time with both time zone
and suffix information:</t>
        <artwork><![CDATA[
1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew]
]]></artwork>
        <t>A time tag that is approximating this example, in CBOR diagnostic
notation, would be:</t>
        <sourcecode type="cbor-diag"><![CDATA[
/ 1996-12-19T16:39:57-08:00[America//Los_Angeles][u-ca=hebrew] /
1001({ 1: 851042397,
     -10: "America/Los_Angeles",
     -11: { "u-ca": "hebrew" }
})
]]></sourcecode>
        <t>Note that both -10 and -11 are using negative keys and therefore
provide elective information, as in the IXDTF form given in the comment.
Note also that in this example the time numeric offset (<tt>-08:00</tt>) is
lost in translating from the <xref target="RFC3339"/> information in the IXDTF into a
POSIX time that can be included under Key 1 in a time tag.</t>
      </section>
    </section>
    <section anchor="duration">
      <name>Duration Format</name>
      <t>A duration is the length of an interval of time.
Durations in this format are given in SI seconds, possibly adjusted
for conventional corrections of the timescale given (e.g., leap
seconds).</t>
      <t>Except for using Tag 1002 instead of 1001,
durations are structurally identical to time values.</t>
      <sourcecode type="cddl"><![CDATA[
Duration = #6.1002(etime-detailed)
]]></sourcecode>
      <t>Semantically, they do not measure the time elapsed from a given epoch,
but from the start to the end of (an otherwise unspecified) interval
of time.</t>
      <t>In combination with an epoch identified in the context, a duration can
also be used to express an absolute time.</t>
      <t>Without such context, durations are subject to some uncertainties
underlying the timescale used.
E.g., for durations intended as a determinant of future time periods,
there is some uncertainty of what irregularities (such as leap
seconds, timescale corrections) will be exhibited by the timescale in
that period.
For durations as measurements of past periods, abstracting the period
to a duration loses some detail about timescale irregularities.
For many applications, these uncertainties are acceptable and thus
the use of durations is appropriate.</t>
      <aside>
        <t>Note that the durations defined in <xref target="ISO8601"/> and <xref target="ISO8601-2019"/> are rather different from the ones defined
in the present specification; there is no intention to support ISO 8601
durations here.</t>
      </aside>
    </section>
    <section anchor="period">
      <name>Period Format</name>
      <t>A period is a specific interval of time, specified as either two times
giving the start and the end of that interval, or as one of these two
plus a duration.</t>
      <t>They are given as an array of unwrapped time and duration elements,
tagged with Tag 1003:</t>
      <sourcecode type="cddl"><![CDATA[
Period = #6.1003([
  start: ~Etime / null
  end: ~Etime / null
  ? duration: ~Duration / null
])
]]></sourcecode>
      <t>If the third array element is not given, the duration element is null.
Exactly two out of the three elements must be non-null, this can be
somewhat verbosely expressed in CDDL as:</t>
      <sourcecode type="cddl"><![CDATA[
clumsy-Period = #6.1003([
  (start: ~Etime,
   ((end: ~Etime,
     ? duration: null) //
    (end: null,
     duration: ~Duration))) //
  (start: null,
   end: ~Etime,
   duration: ~Duration)
])
]]></sourcecode>
    </section>
    <section anchor="cddl-typenames">
      <name>CDDL typenames</name>
      <t>When detailed validation is not needed, the
type names defined in <xref target="tag-cddl"/> are recommended:</t>
      <figure anchor="tag-cddl">
        <name>Recommended type names for CDDL</name>
        <sourcecode type="cddl"><![CDATA[
etime = #6.1001({* (int/tstr) => any})
duration = #6.1002({* (int/tstr) => any})
period = #6.1003([~etime/null, ~etime/null, ~duration/null])
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFCthis with the RFC
number of this RFC, and remove this note.</cref></t>
      <section anchor="cbor-tags">
        <name>CBOR tags</name>
        <t>In the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>,
IANA has allocated the tags in <xref target="tab-tag-values"/> from what was at the
time the
FCFS space, with the present document as the specification reference.</t>
        <table anchor="tab-tag-values">
          <name>Values for Tags</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">1001</td>
              <td align="left">map</td>
              <td align="left">[RFCthis] extended time</td>
            </tr>
            <tr>
              <td align="right">1002</td>
              <td align="left">map</td>
              <td align="left">[RFCthis] duration</td>
            </tr>
            <tr>
              <td align="right">1003</td>
              <td align="left">array</td>
              <td align="left">[RFCthis] period</td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to change the "Data Item" column for Tag 1003 from
"map" to "array".</t>
      </section>
      <section anchor="timescale-registry">
        <name>Timescale Registry</name>
        <t>This specification defines a new registry titled "Timescales" in the
"CBOR Tags" registry group <xref target="IANA.cbor-tags"/>, with a combination of "Expert Review"
and "RFC Required" as the Registration Procedure (Sections <xref section="4.5" sectionFormat="bare" target="BCP26"/> and <xref section="4.7" sectionFormat="bare" target="BCP26"/> of <xref target="BCP26"/>).</t>
        <t>Each entry needs to provide a timescale name (a sequence of uppercase
ASCII characters and digits, where a digit may not occur at the start:
<tt>[A-Z][A-Z0-9]*</tt>), a value (CBOR unsigned integer, uint), and brief description
of the semantics, and a specification reference (RFC).
The initial contents are shown in <xref target="tab-timescales"/>.</t>
        <table anchor="tab-timescales">
          <name>Initial Content of Timescale Registry</name>
          <thead>
            <tr>
              <th align="left">Timescale</th>
              <th align="right">Value</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">UTC</td>
              <td align="right">0</td>
              <td align="left">UTC with POSIX Epoch</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="left">TAI</td>
              <td align="right">1</td>
              <td align="left">TAI with PTP Epoch</td>
              <td align="left">[RFCthis]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="map-key-registry">
        <name>Time Tag Map Key Registry</name>
        <t>This specification defines a new registry titled "Time Tag Map Keys"
in the "CBOR Tags" registry group <xref target="IANA.cbor-tags"/>, with "Specification
Required" as the Registration Procedure (<xref section="4.6" sectionFormat="of" target="BCP26"/>).</t>
        <t>The designated expert is requested to assign the key values with the
shortest encodings (1+0 and 1+1 encoding) to registrations that are
likely to enjoy wide use and can benefit from short encodings.</t>
        <t>Each entry needs to provide a map key value (CBOR integer, int), a brief description
of the semantics, and a specification reference.
Note that negative integers indicate an elective key, while unsigned
integers indicate a key that either provides a base time or is
critical.
For the unsigned integers as keys, the choice of base time or critical
needs to be indicated in the brief semantics description.
(Elective map keys may be explicitly marked as such in the
description, e.g., to distinguish them from critical keys.)</t>
        <t>The initial contents are shown in <xref target="tab-mapkeys"/>.</t>
        <table anchor="tab-mapkeys">
          <name>Initial Content of Time Tag Map Keys Registry</name>
          <thead>
            <tr>
              <th align="right">Value</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">-18</td>
              <td align="left">attoseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-15</td>
              <td align="left">femtoseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-12</td>
              <td align="left">picoseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-11</td>
              <td align="left">IXDTF Suffix Information (elective)</td>
              <td align="left">[RFCthis], <xref target="IXDTF"/></td>
            </tr>
            <tr>
              <td align="right">-10</td>
              <td align="left">IXDTF Time Zone Hint (elective)</td>
              <td align="left">[RFCthis], <xref target="IXDTF"/></td>
            </tr>
            <tr>
              <td align="right">-9</td>
              <td align="left">nanoseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-8</td>
              <td align="left">Guarantee</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-7</td>
              <td align="left">Uncertainty</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-6</td>
              <td align="left">microseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-5</td>
              <td align="left">Offset-Scaled Log Variance</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-4</td>
              <td align="left">Clock Accuracy</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-3</td>
              <td align="left">milliseconds</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">-2</td>
              <td align="left">Clock Class</td>
              <td align="left">[RFCthis]</td>
            </tr>
            <tr>
              <td align="right">1</td>
              <td align="left">base time value as in CBOR Tag 1</td>
              <td align="left">
                <xref target="RFC8949"/> [RFCthis]</td>
            </tr>
            <tr>
              <td align="right">4</td>
              <td align="left">base time value as in CBOR Tag 4</td>
              <td align="left">
                <xref target="RFC8949"/> [RFCthis]</td>
            </tr>
            <tr>
              <td align="right">5</td>
              <td align="left">base time value as in CBOR Tag 5</td>
              <td align="left">
                <xref target="RFC8949"/> [RFCthis]</td>
            </tr>
            <tr>
              <td align="right">10</td>
              <td align="left">IXDTF Time Zone Hint (critical)</td>
              <td align="left">[RFCthis], <xref target="IXDTF"/></td>
            </tr>
            <tr>
              <td align="right">11</td>
              <td align="left">IXDTF Suffix Information (critical)</td>
              <td align="left">[RFCthis], <xref target="IXDTF"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of RFC 8949 apply; the tags introduced
here are not expected to raise security considerations beyond those.</t>
      <t>Time, of course, has significant security considerations; these
include the exploitation of ambiguities where time is security
relevant (e.g., for freshness or in a validity span) or the disclosure
of characteristics of the emitting system (e.g., time zone, or clock
resolution and wall clock offset).</t>
    </section>
  </middle>
  <back>
    <displayreference target="ISO8601" to="ISO8601:1988"/>
    <displayreference target="ISO8601-2019" to="ISO8601-1:2019"/>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="BCP26">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="TIME_T" target="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_16">
          <front>
            <title>Vol. 1: Base Definitions, Issue 7</title>
            <author>
              <organization>The Open Group Base Specifications</organization>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="Section 4.16" value="'Seconds Since the Epoch'"/>
          <seriesInfo name="IEEE Std" value="1003.1-2017"/>
          <seriesInfo name="2018" value="Edition"/>
        </reference>
        <reference anchor="SI-SECOND">
          <front>
            <title>Quantities and units — Part 3: Space and time</title>
            <author>
              <organization>International Organization for Standardization (ISO)</organization>
            </author>
            <date day="01" month="March" year="2006"/>
          </front>
          <seriesInfo name="ISO" value="80000-3"/>
        </reference>
        <reference anchor="RFC8575">
          <front>
            <title>YANG Data Model for the Precision Time Protocol (PTP)</title>
            <author fullname="Y. Jiang" initials="Y." role="editor" surname="Jiang"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="J. Xu" initials="J." surname="Xu"/>
            <author fullname="R. Cummings" initials="R." role="editor" surname="Cummings"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration of devices and clocks using the Precision Time Protocol (PTP) as specified in IEEE Std 1588-2008. It also defines the retrieval of the configuration information, the data sets and the running states of PTP clocks. The YANG module in this document conforms to the Network Management Datastore Architecture (NMDA).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8575"/>
          <seriesInfo name="DOI" value="10.17487/RFC8575"/>
        </reference>
        <reference anchor="IEEE1588-2008" target="https://standards.ieee.org/ieee/1588/4355/">
          <front>
            <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date month="July" year="2008"/>
          </front>
          <seriesInfo name="IEEE" value="1588-2008"/>
          <annotation>Often called PTP v2, as it replaced the earlier 2002 version of this standard by a non-backwards compatible protocol.</annotation>
        </reference>
        <reference anchor="IEEE1588-2019" target="https://standards.ieee.org/ieee/1588/6825/">
          <front>
            <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date month="June" year="2020"/>
          </front>
          <seriesInfo name="IEEE" value="1588-2019"/>
          <annotation>Often called PTP v2.1, as it has been designed so it can be used in a way that is fully backwards compatible to IEEE1588-2008.</annotation>
        </reference>
        <reference anchor="GUM" target="https://www.bipm.org/en/publications/guides/gum.html">
          <front>
            <title>Evaluation of measurement data — Guide to the expression of uncertainty in measurement</title>
            <author>
              <organization>Joint Committee for Guides in Metrology</organization>
            </author>
            <date month="September" year="2008"/>
          </front>
          <seriesInfo name="JCGM" value="100:2008"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="IXDTF">
          <front>
            <title>Date and Time on the Internet: Timestamps with additional information</title>
            <author fullname="Ujjwal Sharma" initials="U." surname="Sharma">
              <organization>Igalia, S.L.</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="5" month="October" year="2023"/>
            <abstract>
              <t>   This document defines an extension to the timestamp format defined in
   RFC3339 for representing additional information including a time
   zone.

   It updates RFC3339 in the specific interpretation of the local offset
   Z, which is no longer understood to "imply that UTC is the preferred
   reference point for the specified time"; see Section 2.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present version (-09) addresses comments received during IETF last
   // call.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sedate-datetime-extended-10"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
            <abstract>
              <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="ISO8601" target="https://www.iso.org/standard/15903.html">
          <front>
            <title>Data elements and interchange formats — Information interchange — Representation of dates and times</title>
            <author>
              <organization abbrev="ISO">International Organization for Standardization</organization>
            </author>
            <date month="June" year="1988"/>
          </front>
          <seriesInfo name="ISO" value="8601:1988"/>
          <annotation>Also available from &lt;⁠<eref target="https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub4-1-1991.pdf">https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub4-1-1991.pdf</eref>&gt;.</annotation>
        </reference>
        <reference anchor="ISO8601-2019" target="https://www.iso.org/standard/70907.html">
          <front>
            <title>Date and time — Representations for information interchange — Part 1: Basic rules</title>
            <author>
              <organization abbrev="ISO">International Organization for Standardization</organization>
            </author>
            <date month="February" year="2019"/>
          </front>
          <seriesInfo name="ISO" value="8601-1:2019"/>
        </reference>
        <reference anchor="C" target="https://www.iso.org/standard/74528.html">
          <front>
            <title>Information technology — Programming languages — C</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date month="June" year="2018"/>
          </front>
          <seriesInfo name="ISO/IEC" value="9899:2018"/>
          <annotation>Contents available via &lt;⁠<eref target="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf">https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf</eref>&gt;</annotation>
          <refcontent>Fourth Edition</refcontent>
        </reference>
      </references>
    </references>
    <?line 875?>

<section anchor="collected-cddl">
      <name>Collected CDDL</name>
      <t>This appendix collects the CDDL rules spread over the document into
one convenient place.</t>
      <figure anchor="fig-collected-cddl">
        <name>Collected CDDL rules from this specification</name>
        <sourcecode name="time-tag-collected-cddl.cddl" type="cddl"><![CDATA[
Etime = #6.1001(etime-detailed)

etime-framework = {
  uint => any ; at least one base time
  * (nint/text) => any ; elective supplementary information
  * uint => any ; critical supplementary information
}

etime-detailed = ({
  $$ETIME-BASETIME
  ClockQuality-group
  * $$ETIME-ELECTIVE
  * $$ETIME-CRITICAL
  * ((nint/text) .feature "etime-elective-extension") => any
  * (uint .feature "etime-critical-extension") => any
}) .within etime-framework


$$ETIME-BASETIME //= (1: ~time)


$$ETIME-BASETIME //= (4: ~decfrac)
$$ETIME-BASETIME //= (5: ~bigfloat)


$$ETIME-ELECTIVE //= (-3: uint)
$$ETIME-ELECTIVE //= (-6: uint)
$$ETIME-ELECTIVE //= (-9: uint)
$$ETIME-ELECTIVE //= (-12: uint)
$$ETIME-ELECTIVE //= (-15: uint)
$$ETIME-ELECTIVE //= (-18: uint)


$$ETIME-ELECTIVE //= (-1 => $ETIME-TIMESCALE)

$ETIME-TIMESCALE /= &(etime-utc: 0)
$ETIME-TIMESCALE /= &(etime-tai: 1)


ClockQuality-group = (
  ? &(ClockClass: -2) => uint .size 1 ; PTP/RFC8575
  ? &(ClockAccuracy: -4) => uint .size 1 ; PTP/RFC8575
  ? &(OffsetScaledLogVariance: -5) => uint .size 2 ; PTP/RFC8575
  ? &(Uncertainty: -7) => ~time/~duration
  ? &(Guarantee: -8) => ~time/~duration
)


$$ETIME-ELECTIVE //= (-10: time-zone-info)
$$ETIME-CRITICAL //= (10: time-zone-info)

time-zone-info = tstr .abnf
                 ("time-zone-name / time-numoffset" .det IXDTFtz)
IXDTFtz = '
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-numoffset  = ("+" / "-") time-hour ":" time-minute



   time-zone-initial = ALPHA / "." / "_"
   time-zone-char    = time-zone-initial / DIGIT / "-" / "+"
   time-zone-part    = time-zone-initial *13(time-zone-char)
                       ; but not "." or ".."
   time-zone-name    = time-zone-part *("/" time-zone-part)
   ALPHA             =  %x41-5A / %x61-7A   ; A-Z / a-z
   DIGIT             =  %x30-39 ; 0-9
' ; extracted from [IXDTF] and [RFC3339]; update as needed


$$ETIME-ELECTIVE //= (-11: suffix-info-map)
$$ETIME-CRITICAL //= (11: suffix-info-map)

suffix-info-map = { * suffix-key => suffix-values }
suffix-key = tstr .abnf ("suffix-key" .det IXDTF)
suffix-values = one-or-more<suffix-value>
one-or-more<T> = T / [ 2* T ]
suffix-value = tstr .abnf ("suffix-value" .det IXDTF)

IXDTF = '
   key-initial       = lcalpha / "_"
   key-char          = key-initial / DIGIT / "-"
   suffix-key        = key-initial *key-char

   suffix-value      = 1*alphanum
   alphanum          = ALPHA / DIGIT
   lcalpha           =  %x61-7A
   ALPHA             =  %x41-5A / %x61-7A   ; A-Z / a-z
   DIGIT             =  %x30-39 ; 0-9
' ; extracted from [IXDTF]; update as needed!


Duration = #6.1002(etime-detailed)


Period = #6.1003([
  start: ~Etime / null
  end: ~Etime / null
  ? duration: ~Duration / null
])


clumsy-Period = #6.1003([
  (start: ~Etime,
   ((end: ~Etime,
     ? duration: null) //
    (end: null,
     duration: ~Duration))) //
  (start: null,
   end: ~Etime,
   duration: ~Duration)
])


etime = #6.1001({* (int/tstr) => any})
duration = #6.1002({* (int/tstr) => any})
period = #6.1003([~etime/null, ~etime/null, ~duration/null])
]]></sourcecode>
      </figure>
    </section>
    <section anchor="acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>The authors would like to acknowledge the many comments from members
of the CBOR WG,
<contact fullname="Francesca Palombini"/> for her AD review, and
<contact fullname="Thomas Fossati"/> and
<contact fullname="Qin Wu"/> for their directorate reviews.</t>
      <!--  LocalWords:  CBOR extensibility IANA uint sint IEEE endian TAI
 -->
<!--  LocalWords:  signedness endianness NTP IXDTF
 -->

</section>
  </back>
  <!-- ##markdown-source:
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
VlC//wKgXQYH0IcAAA==

-->

</rfc>
