<?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-core-senml-more-units-06" indexInclude="true" ipr="trust200902" number="8798" prepTime="2020-06-25T10:54:28" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-core-senml-more-units-06" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8798" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Additional Units for SenML">Additional Units for Sensor Measurement Lists (SenML)</title>
    <seriesInfo name="RFC" value="8798" stream="IETF"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization showOnFrontPage="true">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>
    <date month="06" year="2020"/>
    <keyword>Internet of Things (IoT)</keyword>
    <keyword>data model</keyword>
    <keyword>quantities and units</keyword>
    <keyword>International System of Units (SI)</keyword>
    <keyword>International System of Quantities (ISQ)</keyword>
    <keyword/>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">The Sensor Measurement Lists (SenML) media type supports the
      indication of units for a quantity represented.  This short document
      registers a number of additional unit names in the IANA registry for
      units in SenML.  It also defines a registry for secondary units that
      cannot be in SenML's main registry, as they are derived by linear
      transformation from units already in that registry.</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 pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t 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 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/rfc8798" 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 pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t 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 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 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-new-primary-units">New Primary Units</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rationale">Rationale</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t 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-new-registry-for-secondary-">New Registry for Secondary Units</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t 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-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t 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-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t 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-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t 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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</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 pn="section-1-1">The Sensor Measurement Lists (SenML) <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> media type supports the indication of a unit, using
      the SenML field "u", for the quantity given as a data value in a SenML
      record.  For this purpose, SenML defines an IANA registry of defined
      unit names and their meanings; in the present document, we call the unit
      names registered there "primary unit names".</t>
      <t pn="section-1-2">This short document registers a number of additional units in the
      IANA registry for units in SenML that appear to be necessary for further
      adopting SenML in other Standards Development Organizations (SDOs).</t>
      <t pn="section-1-3">The document also defines a registry for secondary unit names that
cannot be in SenML's main registry, as they are derived by linear
transformation from units already in that registry.
Although SenML version 10 <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> does not provide for the direct use
of these secondary units, future support is intended via the use
of SenML extension mechanisms, one of which is proposed in <xref target="I-D.ietf-core-senml-versions" format="default" sectionFormat="of" derivedContent="SENML-VERSIONS"/>.</t>
      <t pn="section-1-4">
    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>
    </section>
    <section anchor="new-units" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-new-primary-units">New Primary Units</name>
      <t pn="section-2-1">IANA has assigned new units in the "SenML Units"
subregistry of the "Sensor Measurement Lists (SenML)" registry <xref target="IANA.SENML" format="default" sectionFormat="of" derivedContent="IANA.SENML"/> (as defined in <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/>):</t>
      <table anchor="new-unit-tbl" align="center" pn="table-1">
        <name slugifiedName="name-new-units-registered-for-se">New Units Registered for SenML</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Symbol</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">Type</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">B</td>
            <td align="left" colspan="1" rowspan="1">Byte (information content)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">VA</td>
            <td align="left" colspan="1" rowspan="1">volt-ampere (Apparent Power)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">VAs</td>
            <td align="left" colspan="1" rowspan="1">volt-ampere second (Apparent Energy)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">var</td>
            <td align="left" colspan="1" rowspan="1">volt-ampere reactive (Reactive Power)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">vars</td>
            <td align="left" colspan="1" rowspan="1">volt-ampere-reactive second (Reactive Energy)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">J/m</td>
            <td align="left" colspan="1" rowspan="1">joule per meter (Energy per distance)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kg/m3</td>
            <td align="left" colspan="1" rowspan="1">kilogram per cubic meter (mass density, mass concentration)</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">deg</td>
            <td align="left" colspan="1" rowspan="1">degree (angle)*</td>
            <td align="left" colspan="1" rowspan="1">float</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
        </tbody>
      </table>
      <section anchor="rationale" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-rationale">Rationale</name>
        <t pn="section-2.1-1">SenML <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> takes the position
        that unscaled SI units should always be used.  However, SenML makes
        one exception: The degree Celsius (as Cel) is allowed as an
        alternative to the K (Kelvin).</t>
        <t pn="section-2.1-2">This document takes the position that the same should apply to a
        small number of alternative units in wide use:</t>
        <dl spacing="normal" newline="false" pn="section-2.1-3">
          <dt pn="section-2.1-3.1">The Byte:</dt>
          <dd pn="section-2.1-3.2">
            <xref target="IEC-80000-13" format="default" sectionFormat="of" derivedContent="IEC-80000-13"/>
          defines both the bit (item 13-9.b) and the byte (item 13-9.c, also
          called octet) as alternative names for the coherent unit used for
          dimensionless quantities, for the purpose of giving storage capacity
          and related quantities.  While the name octet is associated with the
          symbol o, this is in wide use only in French-speaking countries.
          Globally more widespread is the symbol B for byte, even though B is
          already taken in SI for bel.  <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> therefore registers dB as the SenML unit for
          logarithmic relative power, leaving B free for the usage proposed
          here.  While this is potentially confusing, the situation is widely
          understood in engineering circles and is unlikely to cause actual
          problems.</dd>
          <dt pn="section-2.1-3.3">The Volt-Ampere:</dt>
          <dd pn="section-2.1-3.4">
            <xref target="IEC-80000-6" format="default" sectionFormat="of" derivedContent="IEC-80000-6"/>
          defines the volt ampere (VA) (item 6-57.a) as a unit for apparent
          power; items 6-59.a, 6-60.a, and 6-61.a also use the unit for
          complex, reactive, and non-active power.</dd>
          <dt pn="section-2.1-3.5">The Volt-Ampere Reactive:</dt>
          <dd pn="section-2.1-3.6">
            <xref target="IEC-80000-6" format="default" sectionFormat="of" derivedContent="IEC-80000-6"/> item 6-60.b defines the volt-ampere
          reactive (var) as an alternative (and fully equivalent) unit to VA
          specifically for reactive power (with the primary unit VA); it has
          become clear that there is strong interest in using this unit
          specifically for the imaginary content of complex power, i.e.,
          reactive power <xref target="IEEE-1459" format="default" sectionFormat="of" derivedContent="IEEE-1459"/>.</dd>
        </dl>
        <t pn="section-2.1-4">The Joule per meter is not a traditional electromagnetic unit.  It
        and its scaled derivatives (in particular Wh/km) are used to describe
        the energy expended for achieving motion over a given distance, e.g.,
        as an equivalent for electrical cars of the inverse of "mileage".</t>
        <t pn="section-2.1-5">The unit "degree" is in wide use in practice for plane angles (as
        in heading, bearing, etc.).  It is marked with an asterisk because the
        preferred coherent SI unit is radian ("rad").</t>
      </section>
    </section>
    <section anchor="new-registry" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-new-registry-for-secondary-">New Registry for Secondary Units</name>
      <t pn="section-3-1">IANA has created a "Secondary Units" subregistry in the
      "Sensor Measurement Lists (SenML)" registry <xref target="IANA.SENML" format="default" sectionFormat="of" derivedContent="IANA.SENML"/> defined in
      <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/>.</t>
      <t pn="section-3-2">The registry has six columns:</t>
      <ul spacing="normal" bare="false" empty="false" pn="section-3-3">
        <li pn="section-3-3.1">Secondary Unit: a newly registered name allocated within the same
        namespace as SenML units</li>
        <li pn="section-3-3.2">Description: a short description (usually just the expansion of
        an abbreviation)</li>
        <li pn="section-3-3.3">SenML Unit: an existing SenML unit from the SenML Units registry</li>
        <li pn="section-3-3.4">Scale, Offset: two rational numbers, expressed in decimal
        (optionally, with a decimal exponent given) or as a fraction
        represented using a "/" character to separate numerator and
        denominator</li>
        <li pn="section-3-3.5">Reference: where the entry comes from</li>
      </ul>
      <t pn="section-3-4">Quantities expressed in the secondary unit can be converted into the
      SenML unit by first multiplying their value with the scale number and
      then adding the offset, yielding the value in the given SenML unit.</t>
      <t pn="section-3-5">The initial content of the "Secondary Units" subregistry is provided in
      <xref target="secondary-unit-tbl" format="default" sectionFormat="of" derivedContent="Table 2"/>:</t>
      <table anchor="secondary-unit-tbl" align="center" pn="table-2">
        <name slugifiedName="name-secondary-units-registered-">Secondary Units Registered for SenML</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Secondary Unit</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">SenML Unit</th>
            <th align="right" colspan="1" rowspan="1">Scale</th>
            <th align="right" colspan="1" rowspan="1">Offset</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">ms</td>
            <td align="left" colspan="1" rowspan="1">millisecond</td>
            <td align="left" colspan="1" rowspan="1">s</td>
            <td align="right" colspan="1" rowspan="1">1/1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">min</td>
            <td align="left" colspan="1" rowspan="1">minute</td>
            <td align="left" colspan="1" rowspan="1">s</td>
            <td align="right" colspan="1" rowspan="1">60</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">h</td>
            <td align="left" colspan="1" rowspan="1">hour</td>
            <td align="left" colspan="1" rowspan="1">s</td>
            <td align="right" colspan="1" rowspan="1">3600</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">MHz</td>
            <td align="left" colspan="1" rowspan="1">megahertz</td>
            <td align="left" colspan="1" rowspan="1">Hz</td>
            <td align="right" colspan="1" rowspan="1">1000000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kW</td>
            <td align="left" colspan="1" rowspan="1">kilowatt</td>
            <td align="left" colspan="1" rowspan="1">W</td>
            <td align="right" colspan="1" rowspan="1">1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kVA</td>
            <td align="left" colspan="1" rowspan="1">kilovolt-ampere</td>
            <td align="left" colspan="1" rowspan="1">VA</td>
            <td align="right" colspan="1" rowspan="1">1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kvar</td>
            <td align="left" colspan="1" rowspan="1">kilovar</td>
            <td align="left" colspan="1" rowspan="1">var</td>
            <td align="right" colspan="1" rowspan="1">1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Ah</td>
            <td align="left" colspan="1" rowspan="1">ampere-hour</td>
            <td align="left" colspan="1" rowspan="1">C</td>
            <td align="right" colspan="1" rowspan="1">3600</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Wh</td>
            <td align="left" colspan="1" rowspan="1">watt-hour</td>
            <td align="left" colspan="1" rowspan="1">J</td>
            <td align="right" colspan="1" rowspan="1">3600</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kWh</td>
            <td align="left" colspan="1" rowspan="1">kilowatt-hour</td>
            <td align="left" colspan="1" rowspan="1">J</td>
            <td align="right" colspan="1" rowspan="1">3600000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">varh</td>
            <td align="left" colspan="1" rowspan="1">var-hour</td>
            <td align="left" colspan="1" rowspan="1">vars</td>
            <td align="right" colspan="1" rowspan="1">3600</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kvarh</td>
            <td align="left" colspan="1" rowspan="1">kilovar-hour</td>
            <td align="left" colspan="1" rowspan="1">vars</td>
            <td align="right" colspan="1" rowspan="1">3600000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">kVAh</td>
            <td align="left" colspan="1" rowspan="1">kilovolt-ampere-hour</td>
            <td align="left" colspan="1" rowspan="1">VAs</td>
            <td align="right" colspan="1" rowspan="1">3600000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Wh/km</td>
            <td align="left" colspan="1" rowspan="1">watt-hour per kilometer</td>
            <td align="left" colspan="1" rowspan="1">J/m</td>
            <td align="right" colspan="1" rowspan="1">3.6</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">KiB</td>
            <td align="left" colspan="1" rowspan="1">kibibyte</td>
            <td align="left" colspan="1" rowspan="1">B</td>
            <td align="right" colspan="1" rowspan="1">1024</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">GB</td>
            <td align="left" colspan="1" rowspan="1">gigabyte</td>
            <td align="left" colspan="1" rowspan="1">B</td>
            <td align="right" colspan="1" rowspan="1">1e9</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">Mbit/s</td>
            <td align="left" colspan="1" rowspan="1">megabit per second</td>
            <td align="left" colspan="1" rowspan="1">bit/s</td>
            <td align="right" colspan="1" rowspan="1">1000000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">B/s</td>
            <td align="left" colspan="1" rowspan="1">byte per second</td>
            <td align="left" colspan="1" rowspan="1">bit/s</td>
            <td align="right" colspan="1" rowspan="1">8</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">MB/s</td>
            <td align="left" colspan="1" rowspan="1">megabyte per second</td>
            <td align="left" colspan="1" rowspan="1">bit/s</td>
            <td align="right" colspan="1" rowspan="1">8000000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">mV</td>
            <td align="left" colspan="1" rowspan="1">millivolt</td>
            <td align="left" colspan="1" rowspan="1">V</td>
            <td align="right" colspan="1" rowspan="1">1/1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">mA</td>
            <td align="left" colspan="1" rowspan="1">milliampere</td>
            <td align="left" colspan="1" rowspan="1">A</td>
            <td align="right" colspan="1" rowspan="1">1/1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">dBm</td>
            <td align="left" colspan="1" rowspan="1">decibel (milliwatt)</td>
            <td align="left" colspan="1" rowspan="1">dBW</td>
            <td align="right" colspan="1" rowspan="1">1</td>
            <td align="right" colspan="1" rowspan="1">-30</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ug/m3</td>
            <td align="left" colspan="1" rowspan="1">microgram per cubic meter</td>
            <td align="left" colspan="1" rowspan="1">kg/m3</td>
            <td align="right" colspan="1" rowspan="1">1e-9</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">mm/h</td>
            <td align="left" colspan="1" rowspan="1">millimeter per hour</td>
            <td align="left" colspan="1" rowspan="1">m/s</td>
            <td align="right" colspan="1" rowspan="1">1/3600000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">m/h</td>
            <td align="left" colspan="1" rowspan="1">meter per hour</td>
            <td align="left" colspan="1" rowspan="1">m/s</td>
            <td align="right" colspan="1" rowspan="1">1/3600</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ppm</td>
            <td align="left" colspan="1" rowspan="1">parts per million</td>
            <td align="left" colspan="1" rowspan="1">/</td>
            <td align="right" colspan="1" rowspan="1">1e-6</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">/100</td>
            <td align="left" colspan="1" rowspan="1">percent (Note 1)</td>
            <td align="left" colspan="1" rowspan="1">/</td>
            <td align="right" colspan="1" rowspan="1">1/100</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">/1000</td>
            <td align="left" colspan="1" rowspan="1">permille</td>
            <td align="left" colspan="1" rowspan="1">/</td>
            <td align="right" colspan="1" rowspan="1">1/1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">hPa</td>
            <td align="left" colspan="1" rowspan="1">hectopascal</td>
            <td align="left" colspan="1" rowspan="1">Pa</td>
            <td align="right" colspan="1" rowspan="1">100</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">mm</td>
            <td align="left" colspan="1" rowspan="1">millimeter</td>
            <td align="left" colspan="1" rowspan="1">m</td>
            <td align="right" colspan="1" rowspan="1">1/1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">cm</td>
            <td align="left" colspan="1" rowspan="1">centimeter</td>
            <td align="left" colspan="1" rowspan="1">m</td>
            <td align="right" colspan="1" rowspan="1">1/100</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">km</td>
            <td align="left" colspan="1" rowspan="1">kilometer</td>
            <td align="left" colspan="1" rowspan="1">m</td>
            <td align="right" colspan="1" rowspan="1">1000</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">km/h</td>
            <td align="left" colspan="1" rowspan="1">kilometer per hour</td>
            <td align="left" colspan="1" rowspan="1">m/s</td>
            <td align="right" colspan="1" rowspan="1">1/3.6</td>
            <td align="right" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">RFC 8798</td>
          </tr>
        </tbody>
      </table>
      <aside pn="section-3-7">
        <t pn="section-3-7.1">Note 1: This registration does not use the obvious name "%" because
this name has been taken in <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> already, where it is a <bcp14>NOT RECOMMENDED</bcp14> synonym for "/" (unity) for legacy reasons.  Note that the
presence of both "%" and "/100" with different meanings is likely to
create confusion, so the present document adds some weight to the
recommendation against using the counterintuitive unit name "%".</t>
      </aside>
      <t pn="section-3-8">Example: The value of a quantity given as 100 ms is first multiplied by
1/1000, yielding the number 0.1, and the offset 0 is then added, yielding the
number 0.1 again, leading to a quantity of 0.1 s.  The value of a quantity
given as 10 dBm is first multiplied by 1, yielding the number 10, and the
offset -30 is then added, yielding the number -20, leading to a quantity of -20
dBW.</t>
      <t pn="section-3-9">New entries can be added to the registration by Expert Review as
      defined in <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>.  Experts should
      exercise their own good judgment, with the same guidelines as used for
      SenML units (<xref target="RFC8428" sectionFormat="of" section="12.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8428#section-12.1" derivedContent="RFC8428"/>), but without applying rules 4, 5, and 8.  Note
      that rule 7 limits the use of what could be understood as prefixes on
      their own, not the use of prefixes inside secondary unit names.
      Guidelines to the difference between units (which can go into the
      registry) and quantities (which cannot) are widely available; see, for
      instance, <xref target="RS" format="default" sectionFormat="of" derivedContent="RS"/> and <xref target="BIPM" format="default" sectionFormat="of" derivedContent="BIPM"/>.</t>
      <t pn="section-3-10">As of SenML version 10 <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/>, SenML packs are limited to
using primary units in "u" fields.
The use of primary units enables direct comparison of measurements
from different sources.  Also, it facilitates implementations that
trigger on the presence of a quantity in a certain unit, without the
need to track any additional secondary units that may be registered
for this quantity.</t>
      <t pn="section-3-11">Where the benefits of directly using a secondary unit in a SenML pack
outweigh the above considerations,
the use of secondary units in "u" fields <bcp14>MAY</bcp14> be enabled by indicating a new SenML
version that specifically allows this and/or by using a field with a label name that ends with the "_"
character ("must-understand" field) whose definition specifically allows this.
The definition of these versions and fields is outside the scope of
the present specification; one such definition is proposed in <xref target="I-D.ietf-core-senml-versions" format="default" sectionFormat="of" derivedContent="SENML-VERSIONS"/>.</t>
    </section>
    <section anchor="operational-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t pn="section-4-1">The "Secondary Units" subregistry is expected to grow at a faster pace than
the subregistry of primary unit names.  It also is amenable to automatic
interpretation, by making use of the scale and offset columns.</t>
      <t pn="section-4-2">Implementers may be tempted to equip each instance of their systems
with code to download new versions of the registry from IANA
frequently in order to be able to make use of newly defined secondary
unit names.  This can create high load at IANA and a potential single
point of failure.  Instead of pulling the registry in each individual
instance of the code, the software update mechanism (or a similar
mechanism that leads to less frequent IANA visits) <bcp14>SHOULD</bcp14> be used to disseminate
updated units registries obtained from IANA towards the instances via
common repositories.</t>
    </section>
    <section anchor="seccons" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t pn="section-5-1">The security considerations of <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> apply.</t>
      <t pn="section-5-2">The introduction of new measurement units poses no additional security
considerations except a potential for additional
confusion about the proper unit to use and the risk that an
implementation based on the assumption described in the penultimate
paragraph of <xref target="new-registry" format="default" sectionFormat="of" derivedContent="Section 3"/> no longer works properly.
However, an implementation processing a pack while making use of
secondary units is guaranteed to have been developed with an awareness
of the risks of having multiple units available for the same logical
type.
In any case, the existing risk of an existing SenML implementation not
understanding a unit that was not in the initial registry content
provided in <xref target="RFC8428" format="default" sectionFormat="of" derivedContent="RFC8428"/> is unchanged, and implementations are warned
properly about the potential use of secondary units by the need for a
must-understand field or an updated version field.</t>
    </section>
    <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t pn="section-6-1">See <xref target="new-units" format="default" sectionFormat="of" derivedContent="Section 2"/> and <xref target="new-registry" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-core-senml-versions" to="SENML-VERSIONS"/>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IANA.SENML" target="https://www.iana.org/assignments/senml" quoteTitle="true" derivedAnchor="IANA.SENML">
          <front>
            <title>Sensor Measurement Lists (SenML)</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IEC-80000-13" quoteTitle="true" derivedAnchor="IEC-80000-13">
          <front>
            <title>Quantities and units - Part 13: Information science and technology</title>
            <author>
              <organization showOnFrontPage="true">IEC</organization>
            </author>
            <date year="2008" month="March"/>
          </front>
          <seriesInfo name="IEC" value="80000-13"/>
          <refcontent>Edition 1.0</refcontent>
        </reference>
        <reference anchor="IEC-80000-6" quoteTitle="true" derivedAnchor="IEC-80000-6">
          <front>
            <title>Quantities and units - Part 6: Electromagnetism</title>
            <author>
              <organization showOnFrontPage="true">IEC</organization>
            </author>
            <date year="2008" month="March"/>
          </front>
          <seriesInfo name="IEC" value="80000-6"/>
          <refcontent>Edition 1.0</refcontent>
        </reference>
        <reference anchor="IEEE-1459" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2010.5439063" derivedAnchor="IEEE-1459">
          <front>
            <title>IEEE Standard Definitions for the Measurement of Electric Power Quantities Under Sinusoidal, Nonsinusoidal, Balanced, or Unbalanced Conditions</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date year="2010" month="March"/>
          </front>
          <seriesInfo name="IEEE Std" value="1459-2010"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2010.5439063"/>
        </reference>
        <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>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="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <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="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>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="RFC8428" target="https://www.rfc-editor.org/info/rfc8428" quoteTitle="true" derivedAnchor="RFC8428">
          <front>
            <title>Sensor Measurement Lists (SenML)</title>
            <author initials="C." surname="Jennings" fullname="C. Jennings">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Arkko" fullname="J. Arkko">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Keranen" fullname="A. Keranen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="August"/>
            <abstract>
              <t>This specification defines a format for representing simple sensor measurements and device parameters in Sensor Measurement Lists (SenML).  Representations are defined in JavaScript Object Notation (JSON), Concise Binary Object Representation (CBOR), Extensible Markup Language (XML), and Efficient XML Interchange (EXI), which share the common SenML data model.  A simple sensor, such as a temperature sensor, could use one of these media types in protocols such as HTTP or the Constrained Application Protocol (CoAP) to transport the measurements of the sensor or to be configured.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8428"/>
          <seriesInfo name="DOI" value="10.17487/RFC8428"/>
        </reference>
      </references>
      <references pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="BIPM" target="https://www.bipm.org/utils/common/pdf/si-brochure/SI-Brochure-9-EN.pdf" quoteTitle="true" derivedAnchor="BIPM">
          <front>
            <title>The International System of Units (SI)</title>
            <author>
              <organization showOnFrontPage="true">Bureau International des Poids et Mesures</organization>
            </author>
            <date year="2019"/>
          </front>
          <refcontent>9th edition</refcontent>
          <refcontent>version 1.06</refcontent>
        </reference>
        <reference anchor="RS" target="https://scdn.rohde-schwarz.com/ur/pws/dl_downloads/dl_common_library/dl_brochures_and_datasheets/pdf_1/Standard-compliant_usage_of_quantities_units_and_equations_bro_en_5214-5061-62_v0500.pdf" quoteTitle="true" derivedAnchor="RS">
          <front>
            <title>Standard-compliant usage of quantities, units and equations</title>
            <author>
              <organization showOnFrontPage="true">Rohde &amp; Schwarz</organization>
            </author>
            <date year="2017" month="July"/>
          </front>
          <refcontent>version 5.0</refcontent>
        </reference>
        <reference anchor="I-D.ietf-core-senml-versions" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-core-senml-versions-00" derivedAnchor="SENML-VERSIONS">
          <front>
            <title>SenML Features and Versions</title>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="May" day="13" year="2020"/>
            <abstract>
              <t>This short document updates RFC 8428, Sensor Measurement Lists (SenML), by specifying the use of independently selectable "SenML Features" and mapping them to SenML version numbers.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-senml-versions-00"/>
          <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-core-senml-versions-00.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acks" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t pn="section-appendix.a-1"><contact fullname="Ari Keränen"/> pointed out the need for additional units in SenML.
Comments provided by him as well as by <contact fullname="Thomas Fossati"/>,
<contact fullname="Joaquin Prado"/>,
<contact fullname="Jaime Jiménez"/>, <contact fullname="Benjamin Kaduk"/>, and
<contact fullname="Rob Wilton"/> helped improve the document.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-address">Author's Address</name>
      <author initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization showOnFrontPage="true">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>
    </section>
  </back>
</rfc>
