<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="exp" consensus="true" docName="draft-irtf-icnrg-icnlowpan-11" indexInclude="true" ipr="trust200902" number="9139" prepTime="2021-11-30T15:25:36" scripts="Common,Latin" sortRefs="true" submissionType="IRTF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-irtf-icnrg-icnlowpan-11" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9139" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="ICN Adaptation to LoWPANs">Information-Centric Networking (ICN) Adaptation to Low-Power Wireless Personal Area Networks (LoWPANs)</title>
    <seriesInfo name="RFC" value="9139" stream="IRTF"/>
    <author fullname="Cenk Gündoğan" initials="C." surname="Gündoğan">
      <organization abbrev="HAW Hamburg" showOnFrontPage="true">HAW Hamburg</organization>
      <address>
        <postal>
          <street>Berliner Tor 7</street>
          <city>Hamburg</city>
          <code>D-20099</code>
          <country>Germany</country>
        </postal>
        <phone>+4940428758067</phone>
        <email>cenk.guendogan@haw-hamburg.de</email>
        <uri>http://inet.haw-hamburg.de/members/cenk-gundogan</uri>
      </address>
    </author>
    <author fullname="Thomas C. Schmidt" initials="T." surname="Schmidt">
      <organization abbrev="HAW Hamburg" showOnFrontPage="true">HAW Hamburg</organization>
      <address>
        <postal>
          <street>Berliner Tor 7</street>
          <city>Hamburg</city>
          <code>D-20099</code>
          <country>Germany</country>
        </postal>
        <email>t.schmidt@haw-hamburg.de</email>
        <uri>http://inet.haw-hamburg.de/members/schmidt</uri>
      </address>
    </author>
    <author fullname="Matthias Wählisch" initials="M." surname="Wählisch">
      <organization abbrev="link-lab &amp; FU Berlin" showOnFrontPage="true">link-lab &amp; FU Berlin</organization>
      <address>
        <postal>
          <street>Hoenower Str. 35</street>
          <city>Berlin</city>
          <code>D-10318</code>
          <country>Germany</country>
        </postal>
        <email>mw@link-lab.net</email>
        <uri>https://www.mi.fu-berlin.de/en/inf/groups/ilab/members/waehlisch.html</uri>
      </address>
    </author>
    <author fullname="Christopher Scherb" initials="C." surname="Scherb">
      <organization abbrev="FHNW" showOnFrontPage="true">University of Applied Sciences and Arts Northwestern Switzerland</organization>
      <address>
        <postal>
          <street>Peter Merian-Str. 86</street>
          <city>Basel</city>
          <code>4002</code>
          <country>Switzerland</country>
        </postal>
        <email>christopher.scherb@fhnw.ch</email>
      </address>
    </author>
    <author fullname="Claudio Marxer" initials="C." surname="Marxer">
      <organization abbrev="University of Basel" showOnFrontPage="true">University of Basel</organization>
      <address>
        <postal>
          <street>Spiegelgasse 1</street>
          <city>Basel</city>
          <code>4051</code>
          <country>Switzerland</country>
        </postal>
        <email>claudio.marxer@unibas.ch</email>
      </address>
    </author>
    <author fullname="Christian Tschudin" initials="C." surname="Tschudin">
      <organization abbrev="University of Basel" showOnFrontPage="true">University of Basel</organization>
      <address>
        <postal>
          <street>Spiegelgasse 1</street>
          <city>Basel</city>
          <code>4051</code>
          <country>Switzerland</country>
        </postal>
        <email>christian.tschudin@unibas.ch</email>
      </address>
    </author>
    <date month="11" year="2021"/>
    <workgroup>Information-Centric Networking</workgroup>
    <keyword>Content-Centric Networking (CCNx)</keyword>
    <keyword>Named Data Networking (NDN)</keyword>
    <keyword>header compression</keyword>
    <keyword>fragmentation</keyword>
    <keyword>6LoWPAN</keyword>
    <keyword>Internet of Things (IoT)</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines a convergence layer for Content-Centric Networking
      (CCNx) and Named Data Networking (NDN) over IEEE
      802.15.4 Low-Power Wireless Personal Area Networks (LoWPANs). A 
      new frame format is specified to adapt CCNx
      and NDN packets to the small MTU size of IEEE 802.15.4. For that,
      syntactic and semantic changes to the TLV-based header formats are
      described. To support compatibility with other LoWPAN technologies that
      may coexist on a wireless medium, the dispatching scheme provided by
      IPv6 over LoWPAN (6LoWPAN) is extended 
      to include new dispatch types for CCNx and NDN.
      Additionally, the fragmentation component of the 6LoWPAN
      dispatching framework is applied to Information-Centric Network (ICN) 
      chunks. In its second part, the
      document defines stateless and stateful compression schemes to improve
      efficiency on constrained links. Stateless compression reduces TLV
      expressions to static header fields for common use cases. Stateful
      compression schemes elide states local to the LoWPAN and replace names in
      Data packets by short local identifiers.</t>
      <t indent="0" pn="section-abstract-2">This document is a product of the IRTF Information-Centric
      Networking Research Group (ICNRG).</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for examination, experimental implementation, and
            evaluation. 
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document defines an Experimental Protocol for the Internet
            community.  This document is a product of the Internet Research
            Task Force (IRTF).  The IRTF publishes the results of Internet-related
            research and development activities.  These results might not be
            suitable for deployment.  This RFC represents the consensus of the
            Information-Centric Networking Research Group of the Internet Research Task Force
            (IRTF).  Documents approved for publication by the IRSG are not
            candidates for any level of Internet Standard; see Section 2 of RFC
            7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9139" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" 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-overview-of-icn-lowpan">Overview of ICN LoWPAN</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-link-layer-convergence">Link-Layer Convergence</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-stateless-header-compressio">Stateless Header Compression</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-stateful-header-compression">Stateful Header Compression</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ieee-802154-adaptation">IEEE 802.15.4 Adaptation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-lowpan-encapsulation">LoWPAN Encapsulation</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dispatch-extensions">Dispatch Extensions</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-adaptation-layer-fragmentat">Adaptation-Layer Fragmentation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-space-efficient-message-enc">Space-Efficient Message Encoding for NDN</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-encoding">TLV Encoding</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-name-tlv-compression">Name TLV Compression</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interest-messages">Interest Messages</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.3.2">
                  <li pn="section-toc.1-1.5.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.3.2.1.1"><xref derivedContent="5.3.1" format="counter" sectionFormat="of" target="section-5.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-uncompressed-interest-messa">Uncompressed Interest Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.3.2.2.1"><xref derivedContent="5.3.2" format="counter" sectionFormat="of" target="section-5.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compressed-interest-message">Compressed Interest Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.3.2.3">
                    <t indent="0" pn="section-toc.1-1.5.2.3.2.3.1"><xref derivedContent="5.3.3" format="counter" sectionFormat="of" target="section-5.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dispatch-extension">Dispatch Extension</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-messages">Data Messages</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.4.2">
                  <li pn="section-toc.1-1.5.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.5.2.4.2.1.1"><xref derivedContent="5.4.1" format="counter" sectionFormat="of" target="section-5.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-uncompressed-data-messages">Uncompressed Data Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.5.2.4.2.2.1"><xref derivedContent="5.4.2" format="counter" sectionFormat="of" target="section-5.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compressed-data-messages">Compressed Data Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.5.2.4.2.3">
                    <t indent="0" pn="section-toc.1-1.5.2.4.2.3.1"><xref derivedContent="5.4.3" format="counter" sectionFormat="of" target="section-5.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dispatch-extension-2">Dispatch Extension</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-space-efficient-message-enco">Space-Efficient Message Encoding for CCNx</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-encoding-2">TLV Encoding</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-name-tlv-compression-2">Name TLV Compression</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interest-messages-2">Interest Messages</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.3.2">
                  <li pn="section-toc.1-1.6.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.3.2.1.1"><xref derivedContent="6.3.1" format="counter" sectionFormat="of" target="section-6.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-uncompressed-interest-messag">Uncompressed Interest Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.3.2.2.1"><xref derivedContent="6.3.2" format="counter" sectionFormat="of" target="section-6.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compressed-interest-messages">Compressed Interest Messages</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.3.2.3">
                    <t indent="0" pn="section-toc.1-1.6.2.3.2.3.1"><xref derivedContent="6.3.3" format="counter" sectionFormat="of" target="section-6.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dispatch-extension-3">Dispatch Extension</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-content-objects">Content Objects</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.4.2">
                  <li pn="section-toc.1-1.6.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.4.2.1.1"><xref derivedContent="6.4.1" format="counter" sectionFormat="of" target="section-6.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-uncompressed-content-object">Uncompressed Content Objects</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.4.2.2.1"><xref derivedContent="6.4.2" format="counter" sectionFormat="of" target="section-6.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compressed-content-objects">Compressed Content Objects</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.4.2.3">
                    <t indent="0" pn="section-toc.1-1.6.2.4.2.3.1"><xref derivedContent="6.4.3" format="counter" sectionFormat="of" target="section-6.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dispatch-extension-4">Dispatch Extension</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compressed-time-encoding">Compressed Time Encoding</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-stateful-header-compression-2">Stateful Header Compression</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-lowpan-local-state">LoWPAN-Local State</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-en-route-state">En Route State</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.3">
                <t indent="0" pn="section-toc.1-1.8.2.3.1"><xref derivedContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-integrating-stateful-header">Integrating Stateful Header Compression</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-icn-lowpan-constants-and-va">ICN LoWPAN Constants and Variables</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-report-and-g">Implementation Report and Guidance</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-preferred-configuration">Preferred Configuration</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-further-experimental-deploy">Further Experimental Deployments</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2">
              <li pn="section-toc.1-1.12.2.1">
                <t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent="12.1" format="counter" sectionFormat="of" target="section-12.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-updates-to-the-6lowpan-disp">Updates to the 6LoWPAN Dispatch Type Field Registry</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <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.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-estimated-size-reduction">Estimated Size Reduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2">
              <li pn="section-toc.1-1.14.2.1">
                <t indent="0" pn="section-toc.1-1.14.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ndn">NDN</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2.1.2">
                  <li pn="section-toc.1-1.14.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.14.2.1.2.1.1"><xref derivedContent="A.1.1" format="counter" sectionFormat="of" target="section-appendix.a.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interest">Interest</xref></t>
                  </li>
                  <li pn="section-toc.1-1.14.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.14.2.1.2.2.1"><xref derivedContent="A.1.2" format="counter" sectionFormat="of" target="section-appendix.a.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data">Data</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.14.2.2">
                <t indent="0" pn="section-toc.1-1.14.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ccnx">CCNx</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.14.2.2.2">
                  <li pn="section-toc.1-1.14.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.14.2.2.2.1.1"><xref derivedContent="A.2.1" format="counter" sectionFormat="of" target="section-appendix.a.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interest-2">Interest</xref></t>
                  </li>
                  <li pn="section-toc.1-1.14.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.14.2.2.2.2.1"><xref derivedContent="A.2.2" format="counter" sectionFormat="of" target="section-appendix.a.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-content-object">Content Object</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Internet of Things (IoT) has been identified as a promising
      deployment area for Information-Centric Networking (ICN), as
      infrastructureless access to content, resilient forwarding, and
      in-network data replication demonstrates notable advantages over the
      Internet host-to-host approach <xref target="NDN-EXP1" format="default" sectionFormat="of" derivedContent="NDN-EXP1"/> <xref target="NDN-EXP2" format="default" sectionFormat="of" derivedContent="NDN-EXP2"/>. Recent studies <xref target="NDN-MAC" format="default" sectionFormat="of" derivedContent="NDN-MAC"/> have shown that an appropriate mapping to
      link-layer technologies has a large impact on the practical performance of an ICN.
      This will be even more relevant in the context of IoT communication
      where nodes often exchange messages via low-power wireless links under
      lossy conditions. In this memo, we address the base adaptation of data
      chunks to such link layers for the ICN flavors NDN <xref target="NDN" format="default" sectionFormat="of" derivedContent="NDN"/> and CCNx <xref target="RFC8569" format="default" sectionFormat="of" derivedContent="RFC8569"/> <xref target="RFC8609" format="default" sectionFormat="of" derivedContent="RFC8609"/>.</t>
      <t indent="0" pn="section-1-2">The IEEE 802.15.4 <xref target="ieee802.15.4" format="default" sectionFormat="of" derivedContent="ieee802.15.4"/> link layer is
      used in low-power and lossy networks (see <tt>LLN</tt> in
      <xref target="RFC7228" format="default" sectionFormat="of" derivedContent="RFC7228"/>), in which devices are typically
      battery operated and constrained in resources. Characteristics of LLNs
      include an unreliable environment, low-bandwidth transmissions, and
      increased latencies. IEEE 802.15.4 admits a maximum physical-layer
      packet size of 127 bytes. The maximum frame header size is 25 bytes,
      which leaves 102 bytes for the payload. IEEE 802.15.4 security features
      further reduce this payload length by up to 21 bytes, yielding a net of
      81 bytes for CCNx or NDN packet headers, signatures, and content.</t>
      <t indent="0" pn="section-1-3">6LoWPAN <xref target="RFC4944" format="default" sectionFormat="of" derivedContent="RFC4944"/> <xref target="RFC6282" format="default" sectionFormat="of" derivedContent="RFC6282"/> is a
      convergence layer that provides frame formats, header compression, and
      adaptation-layer fragmentation for IPv6 packets in IEEE 802.15.4 networks. The
      6LoWPAN adaptation introduces a dispatching framework that prepends
      further information to 6LoWPAN packets, including a protocol identifier
      for payload and meta information about fragmentation.</t>
      <t indent="0" pn="section-1-4">Prevalent packet formats based on Type-Length-Value (TLV), such as in
      CCNx and NDN, are designed to be generic and extensible.  This leads to
      header verbosity, which is inappropriate in constrained environments of
      IEEE 802.15.4 links. This document presents ICN LoWPAN, a convergence
      layer for IEEE 802.15.4 motivated by 6LoWPAN. ICN LoWPAN compresses
      packet headers of CCNx, as well as NDN, and allows for an increased
      effective payload size per packet. Additionally, reusing the dispatching
      framework defined by 6LoWPAN enables compatibility between coexisting
      wireless deployments of competing network technologies. This also allows reuse of
      the adaptation-layer fragmentation scheme specified by 6LoWPAN for ICN LoWPAN.</t>
      <t indent="0" pn="section-1-5">ICN LoWPAN defines a more space-efficient representation of CCNx and
      NDN packet formats. This syntactic change is described for CCNx and NDN
      separately, as the header formats and TLV encodings differ notably. For
      further reductions, default header values suitable for constrained IoT
      networks are selected in order to elide corresponding TLVs. Experimental
      evaluations of the ICN LoWPAN header compression schemes in <xref target="ICNLOWPAN" format="default" sectionFormat="of" derivedContent="ICNLOWPAN"/> illustrate a reduced message overhead, a shortened
      message airtime, and an overall decline in power consumption for typical
      Class 2 devices <xref target="RFC7228" format="default" sectionFormat="of" derivedContent="RFC7228"/> compared to uncompressed ICN messages.</t>
      <t indent="0" pn="section-1-6">In a typical IoT scenario (see <xref target="fig-iot_network" format="default" sectionFormat="of" derivedContent="Figure 1">
        </xref>), embedded devices are interconnected via a quasi-stationary
      infrastructure using a border router (BR) that connects the constrained
      LoWPAN network by some gateway with the public Internet. In ICN-based
      IoT networks, nonlocal Interest and Data messages transparently travel
      through the BR up and down between a gateway and the embedded devices
      situated in the constrained LoWPAN.</t>
      <figure anchor="fig-iot_network" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-iot-stub-network">IoT Stub Network</name>
        <artwork align="center" name="" type="" alt="" pn="section-1-7.1">
  |Gateway Services|
  -------------------------
        |
    ,--------,
    |        |
    |   BR   |
    |        |
    '--------'
                 LoWPAN
  O            O
         O
O                O   embedded
  O      O     O     devices
   O         O
</artwork>
      </figure>
      <t indent="0" pn="section-1-8">
        The document has received fruitful reviews by members of the ICN community and the research group (see the Acknowledgments section) for a period of two years.
        It is the consensus of ICNRG that this document should be published in the IRTF Stream of the RFC series.
        This document does not constitute an IETF standard.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
      <t indent="0" pn="section-2-2">This document uses the terminology of <xref target="RFC7476" format="default" sectionFormat="of" derivedContent="RFC7476"/>, <xref target="RFC7927" format="default" sectionFormat="of" derivedContent="RFC7927"/>, and <xref target="RFC7945" format="default" sectionFormat="of" derivedContent="RFC7945"/> for ICN entities.</t>
      <t indent="0" pn="section-2-3">The following terms are used in the document and defined as follows:
      </t>
      <dl newline="false" spacing="normal" indent="14" pn="section-2-4">
        <dt pn="section-2-4.1">ICN LoWPAN:</dt>
        <dd pn="section-2-4.2">Information-Centric Networking over
          Low-Power Wireless Personal Area Network</dd>
        <dt pn="section-2-4.3">LLN:</dt>
        <dd pn="section-2-4.4">Low-Power and Lossy Network</dd>
        <dt pn="section-2-4.5">CCNx:</dt>
        <dd pn="section-2-4.6">Content-Centric Networking</dd>
        <dt pn="section-2-4.7">NDN:</dt>
        <dd pn="section-2-4.8">Named Data Networking</dd>
        <dt pn="section-2-4.9">byte:</dt>
        <dd pn="section-2-4.10">synonym for octet</dd>
        <dt pn="section-2-4.11">nibble:</dt>
        <dd pn="section-2-4.12">synonym for 4 bits</dd>
        <dt pn="section-2-4.13">time-value:</dt>
        <dd pn="section-2-4.14">a time offset measured in seconds</dd>
        <dt pn="section-2-4.15">time-code:</dt>
        <dd pn="section-2-4.16">an 8-bit encoded time-value</dd>
      </dl>
    </section>
    <section anchor="ICNLoWPAN" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-overview-of-icn-lowpan">Overview of ICN LoWPAN</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-link-layer-convergence">Link-Layer Convergence</name>
        <t indent="0" pn="section-3.1-1">ICN LoWPAN provides a convergence layer that maps ICN packets onto
        constrained link-layer technologies. This includes features such as
        link-layer fragmentation, protocol separation on the link-layer level,
        and link-layer address mappings. The stack traversal is visualized in
        <xref target="fig.intro.hbh" format="default" sectionFormat="of" derivedContent="Figure 2"/>.</t>
        <figure anchor="fig.intro.hbh" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-icn-lowpan-convergence-laye">ICN LoWPAN Convergence Layer for IEEE 802.15.4</name>
          <artwork align="center" name="" type="" alt="" pn="section-3.1-2.1">
      Device 1                                         Device 2
,------------------,           Router            ,------------------,
|  Application   . |     __________________      | ,-&gt; Application  |
|----------------|-|    |    NDN / CCNx    |     |-|----------------|
|  NDN / CCNx    | |    | ,--------------, |     | |    NDN / CCNx  |
|----------------|-|    |-|--------------|-|     |-|----------------|
|  ICN LoWPAN    | |    | |  ICN LoWPAN  | |     | |    ICN LoWPAN  |
|----------------|-|    |-|--------------|-|     |-|----------------|
|  Link Layer    | |    | |  Link Layer  | |     | |    Link Layer  |
'----------------|-'    '-|--------------|-'     '-|----------------'
                 '--------'              '---------'
</artwork>
        </figure>
        <t indent="0" pn="section-3.1-3"><xref target="sec.lowpan_adaptation" format="default" sectionFormat="of" derivedContent="Section 4"/> of this document defines the
        convergence layer for IEEE 802.15.4.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-stateless-header-compressio">Stateless Header Compression</name>
        <t indent="0" pn="section-3.2-1">ICN LoWPAN also defines a stateless header compression scheme with
        the main purpose of reducing header overhead of ICN packets. This is
        of particular importance for link layers with small MTUs. The
        stateless compression does not require preconfiguration of a global
        state.</t>
        <t indent="0" pn="section-3.2-2">The CCNx and NDN header formats are composed of Type-Length-Value
        (TLV) fields to encode header data. The advantage of the TLV format is its
        support of variably structured data. The main disadvantage of the
        TLV format is the verbosity that results from storing the type and length of
        the encoded data.</t>
        <t indent="0" pn="section-3.2-3">The stateless header compression scheme makes use of compact bit
        fields to indicate the presence of optional TLVs in the uncompressed
        packet. The order of set bits in the bit fields corresponds to the
        order of each TLV in the packet. Further compression is achieved by
        specifying default values and reducing the range of certain header
        fields.</t>
        <t indent="0" pn="section-3.2-4"><xref target="fig.TLV.compressed" format="default" sectionFormat="of" derivedContent="Figure 3"/> demonstrates the stateless
        header compression idea. In this example, the first type of the first
        TLV is removed and the corresponding bit in the bit field is set. The
        second TLV represents a fixed-length TLV (e.g., the Nonce TLV in NDN),
        so that the Type and Length fields are removed. The third TLV
        represents a boolean TLV (e.g., the MustBeFresh selector in NDN) for
        which the Type, Length, and Value fields are elided.</t>
        <figure anchor="fig.TLV.compressed" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-compression-using-a-compact">Compression Using a Compact Bit Field -- Bits Encode the Inclusion of
	  TLVs</name>
          <artwork align="center" name="" type="" alt="" pn="section-3.2-5.1">
Uncompressed:

   Variable-length TLV      Fixed-length TLV      Boolean TLV
,-----------------------,-----------------------,-------------,
+-------+-------+-------+-------+-------+-------+------+------+
|  TYP  |  LEN  |  VAL  |  TYP  |  LEN  |  VAL  |  TYP | LEN  |
+-------+-------+-------+-------+-------+-------+------+------+

Compressed:

  +---+---+---+---+---+---+---+---+
  | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |  Bit Field
  +---+---+---+---+---+---+---+---+
    |       |                   |
 ,--'       '----,              '- Boolean Value
 |               |
+-------+-------+-------+
|  LEN  |  VAL  |  VAL  |
+-------+-------+-------+
'---------------'-------'
  Var-len Value  Fixed-len Value
</artwork>
        </figure>
        <t indent="0" pn="section-3.2-6">Stateless TLV compression for NDN is defined in <xref target="sec.ndn" format="default" sectionFormat="of" derivedContent="Section 5"/>. <xref target="sec.ccnx" format="default" sectionFormat="of" derivedContent="Section 6"/> defines the stateless
        TLV compression for CCNx.</t>
        <t indent="0" pn="section-3.2-7">The extensibility of this compression is described in <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/> and allows future documents to update the
        compression rules outlined in this document.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-stateful-header-compression">Stateful Header Compression</name>
        <t indent="0" pn="section-3.3-1">ICN LoWPAN further employs two orthogonal, stateful compression
        schemes for packet size reductions, which are defined in <xref target="stateful.compression" format="default" sectionFormat="of" derivedContent="Section 8"/>. These mechanisms rely on shared
        contexts that are either distributed and maintained in the entire
        LoWPAN or are generated on demand hop-wise on a particular
        Interest-Data path.</t>
        <t indent="0" pn="section-3.3-2">The shared context identification is defined in <xref target="stateful.compression.local" format="default" sectionFormat="of" derivedContent="Section 8.1"/>. The hop-wise name compression
        "en route" is specified in <xref target="stateful.compression.en-route" format="default" sectionFormat="of" derivedContent="Section 8.2"/>.</t>
      </section>
    </section>
    <section anchor="sec.lowpan_adaptation" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-ieee-802154-adaptation">IEEE 802.15.4 Adaptation</name>
      <section anchor="sec.lowpan_encap" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-lowpan-encapsulation">LoWPAN Encapsulation</name>
        <t indent="0" pn="section-4.1-1">The IEEE 802.15.4 frame header does not provide a protocol
        identifier for its payload. This causes problems of misinterpreting
        frames when several network layers coexist on the same link. To
        mitigate errors, 6LoWPAN defines dispatches as encapsulation headers
        for IEEE 802.15.4 frames (see <xref target="RFC4944" section="5" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4944#section-5" derivedContent="RFC4944"/>).
        Multiple LoWPAN encapsulation headers can precede the actual payload,
        and each encapsulation header is identified by a dispatch type.</t>
        <t indent="0" pn="section-4.1-2"><xref target="RFC8025" format="default" sectionFormat="of" derivedContent="RFC8025"/> further specifies dispatch Pages to
	switch between different contexts. When a LoWPAN parser encounters a <tt>Page
	switch</tt> LoWPAN encapsulation header, all
        following encapsulation headers are interpreted by using a dispatch
        Page, as specified by the <tt>Page switch</tt>
        header. Pages 0 and 1 are reserved for 6LoWPAN. This document uses
        Page 14 (<tt>1111 1110 (0xFE)</tt>) for ICN LoWPAN.</t>
        <t indent="0" pn="section-4.1-3">The base dispatch format (<xref target="fig.disp.base" format="default" sectionFormat="of" derivedContent="Figure 4"/>) is
	used and extended by CCNx and NDN in Sections <xref target="sec.ndn" format="counter" sectionFormat="of" derivedContent="5"/> and
	<xref target="sec.ccnx" format="counter" sectionFormat="of" derivedContent="6"/>.</t>
        <figure anchor="fig.disp.base" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-base-dispatch-format-for-ic">Base Dispatch Format for ICN LoWPAN</name>
          <artwork align="center" name="" type="" alt="" pn="section-4.1-4.1">
  0   1   2   3   ...
+---+---+---+---+---
| 0 | P | M | C |
+---+---+---+---+---
</artwork>
        </figure>
        <dl newline="true" spacing="normal" indent="4" pn="section-4.1-5">
          <dt pn="section-4.1-5.1">P: Protocol</dt>
          <dd pn="section-4.1-5.2">
            <dl newline="false" spacing="normal" indent="4" pn="section-4.1-5.2.1">
              <dt pn="section-4.1-5.2.1.1">0:</dt>
              <dd pn="section-4.1-5.2.1.2">The included protocol is NDN.</dd>
              <dt pn="section-4.1-5.2.1.3">1:</dt>
              <dd pn="section-4.1-5.2.1.4">The included protocol is CCNx.</dd>
            </dl>
          </dd>
          <dt pn="section-4.1-5.3">M: Message Type</dt>
          <dd pn="section-4.1-5.4">
            <dl newline="false" spacing="normal" indent="4" pn="section-4.1-5.4.1">
              <dt pn="section-4.1-5.4.1.1">0:</dt>
              <dd pn="section-4.1-5.4.1.2">The payload contains an Interest message.</dd>
              <dt pn="section-4.1-5.4.1.3">1:</dt>
              <dd pn="section-4.1-5.4.1.4">The payload contains a Data message.</dd>
            </dl>
          </dd>
          <dt pn="section-4.1-5.5">C: Compression</dt>
          <dd pn="section-4.1-5.6">
            <dl newline="false" spacing="normal" indent="4" pn="section-4.1-5.6.1">
              <dt pn="section-4.1-5.6.1.1">0:</dt>
              <dd pn="section-4.1-5.6.1.2">The message is uncompressed.</dd>
              <dt pn="section-4.1-5.6.1.3">1:</dt>
              <dd pn="section-4.1-5.6.1.4">The message is compressed.</dd>
            </dl>
          </dd>
        </dl>
        <t indent="0" pn="section-4.1-6">ICN LoWPAN frames with compressed CCNx and NDN messages (C=1) use
        the extended dispatch format in <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</t>
        <figure anchor="fig.disp.base.compr" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-extended-dispatch-format-fo">Extended Dispatch Format for Compressed ICN LoWPAN</name>
          <artwork align="center" name="" type="" alt="" pn="section-4.1-7.1">
  0   1   2   3      ... ...
+---+---+---+---+...+---+---+
| 0 | P | M | 1 |   |CID|EXT|
+---+---+---+---+...+---+---+
</artwork>
        </figure>
        <dl newline="true" spacing="normal" indent="4" pn="section-4.1-8">
          <dt pn="section-4.1-8.1">CID: Context Identifier</dt>
          <dd pn="section-4.1-8.2">
            <dl newline="false" spacing="normal" indent="4" pn="section-4.1-8.2.1">
              <dt pn="section-4.1-8.2.1.1">0:</dt>
              <dd pn="section-4.1-8.2.1.2">No context identifiers are present.</dd>
              <dt pn="section-4.1-8.2.1.3">1:</dt>
              <dd pn="section-4.1-8.2.1.4">Context identifier(s) are present (see <xref target="stateful.compression.local" format="default" sectionFormat="of" derivedContent="Section 8.1"/>).</dd>
            </dl>
          </dd>
          <dt pn="section-4.1-8.3">EXT: Extension</dt>
          <dd pn="section-4.1-8.4">
            <dl newline="false" spacing="normal" indent="4" pn="section-4.1-8.4.1">
              <dt pn="section-4.1-8.4.1.1">0:</dt>
              <dd pn="section-4.1-8.4.1.2">No extension bytes are present.</dd>
              <dt pn="section-4.1-8.4.1.3">1:</dt>
              <dd pn="section-4.1-8.4.1.4">Extension byte(s) are present (see <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/>).</dd>
            </dl>
          </dd>
        </dl>
        <t indent="0" pn="section-4.1-9">The encapsulation format for ICN LoWPAN is displayed in <xref target="fig.ICN-LoWPAN.header" format="default" sectionFormat="of" derivedContent="Figure 6"/>.</t>
        <figure anchor="fig.ICN-LoWPAN.header" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-lowpan-encapsulation-with-i">LoWPAN Encapsulation with ICN LoWPAN</name>
          <artwork align="center" name="" type="" alt="" pn="section-4.1-10.1">
+------...------+------...-----+--------+-------...-------+-----...
| IEEE 802.15.4 | RFC4944 Disp.|  Page  | ICN LoWPAN Disp.| Payl. /
+------...------+------...-----+--------+-------...-------+-----...
</artwork>
        </figure>
        <dl newline="false" spacing="normal" indent="16" pn="section-4.1-11">
          <dt pn="section-4.1-11.1">IEEE 802.15.4:</dt>
          <dd pn="section-4.1-11.2">The IEEE 802.15.4 header.</dd>
          <dt pn="section-4.1-11.3">RFC4944 Disp.:</dt>
          <dd pn="section-4.1-11.4">Optional additional dispatches
            defined in <xref target="RFC4944" section="5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4944#section-5.1" derivedContent="RFC4944"/>.</dd>
          <dt pn="section-4.1-11.5">Page:</dt>
          <dd pn="section-4.1-11.6">
            <tt>Page switch</tt>. 14 for ICN LoWPAN.</dd>
          <dt pn="section-4.1-11.7">ICN LoWPAN:</dt>
          <dd pn="section-4.1-11.8">Dispatches as defined in Sections <xref target="sec.ndn" format="counter" sectionFormat="of" derivedContent="5"/> and <xref target="sec.ccnx" format="counter" sectionFormat="of" derivedContent="6"/>.</dd>
          <dt pn="section-4.1-11.9">Payload:</dt>
          <dd pn="section-4.1-11.10">The actual (un-)compressed CCNx or NDN
            message.</dd>
        </dl>
        <section anchor="sec.dispatch.ext" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
          <name slugifiedName="name-dispatch-extensions">Dispatch Extensions</name>
          <t indent="0" pn="section-4.1.1-1">Extension bytes allow for the extensibility of the initial
          compression rule set. The base format for an extension byte is
          depicted in <xref target="fig.ext.base" format="default" sectionFormat="of" derivedContent="Figure 7"/>.</t>
          <figure anchor="fig.ext.base" align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-base-format-for-dispatch-ex">Base Format for Dispatch Extensions</name>
            <artwork align="center" name="" type="" alt="" pn="section-4.1.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| - | - | - | - | - | - | - |EXT|
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-4.1.1-3">
            <dt pn="section-4.1.1-3.1">EXT: Extension</dt>
            <dd pn="section-4.1.1-3.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-4.1.1-3.2.1">
                <dt pn="section-4.1.1-3.2.1.1">0:</dt>
                <dd pn="section-4.1.1-3.2.1.2">No other extension byte follows.</dd>
                <dt pn="section-4.1.1-3.2.1.3">1:</dt>
                <dd pn="section-4.1.1-3.2.1.4">A further extension byte follows.</dd>
              </dl>
            </dd>
          </dl>
          <t indent="0" pn="section-4.1.1-4">Extension bytes are numbered according to their order. Future
          documents <bcp14>MUST</bcp14> follow the naming scheme <tt>EXT_0, EXT_1, ...</tt>
          when updating or referring to a specific dispatch extension byte.
          Amendments that require an exchange of configurational parameters
          between devices <bcp14>SHOULD</bcp14> use manifests to encode structured data in a
          well-defined format, e.g., as outlined in <xref target="I-D.irtf-icnrg-flic" format="default" sectionFormat="of" derivedContent="ICNRG-FLIC"/>.</t>
        </section>
      </section>
      <section anchor="sec.Fragmentation" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-adaptation-layer-fragmentat">Adaptation-Layer Fragmentation</name>
        <t indent="0" pn="section-4.2-1">Small payload sizes in the LoWPAN require fragmentation for various
        network layers. Therefore, <xref target="RFC4944" section="5.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4944#section-5.3" derivedContent="RFC4944"/>
        defines a protocol-independent fragmentation dispatch type, a
        fragmentation header for the first fragment, and a separate
        fragmentation header for subsequent fragments. ICN LoWPAN adopts this
        fragmentation handling of <xref target="RFC4944" format="default" sectionFormat="of" derivedContent="RFC4944"/>.</t>
        <t indent="0" pn="section-4.2-2">The fragmentation LoWPAN header can encapsulate other dispatch
        headers. The order of dispatch types is defined in <xref target="RFC4944" section="5" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4944#section-5" derivedContent="RFC4944"/>. <xref target="fig.fr_first" format="default" sectionFormat="of" derivedContent="Figure 8"/> shows the
        fragmentation scheme. The reassembled ICN LoWPAN frame does not
        contain any fragmentation headers and is depicted in <xref target="fig.fr_done" format="default" sectionFormat="of" derivedContent="Figure 9"/>.</t>
        <figure anchor="fig.fr_first" align="left" suppress-title="false" pn="figure-8">
          <name slugifiedName="name-fragmentation-scheme">Fragmentation Scheme</name>
          <artwork align="center" name="" type="" alt="" pn="section-4.2-3.1">
+------...------+----...----+--------+------...-------+--------...
| IEEE 802.15.4 | Frag. 1st |  Page  |   ICN LoWPAN   | Payload  /
+------...------+----...----+--------+------...-------+--------...

+------...------+----...----+--------...
| IEEE 802.15.4 | Frag. 2nd | Payload  /
+------...------+----...----+--------...

                .
                .
                .

+------...------+----...----+--------...
| IEEE 802.15.4 | Frag. Nth | Payload  /
+------...------+----...----+--------...
</artwork>
        </figure>
        <figure anchor="fig.fr_done" align="left" suppress-title="false" pn="figure-9">
          <name slugifiedName="name-reassembled-icn-lowpan-fram">Reassembled ICN LoWPAN Frame</name>
          <artwork align="center" name="" type="" alt="" pn="section-4.2-4.1">
+------...------+--------+------...-------+--------...
| IEEE 802.15.4 |  Page  |   ICN LoWPAN   | Payload  /
+------...------+--------+------...-------+--------...
</artwork>
        </figure>
        <t indent="0" pn="section-4.2-5">The 6LoWPAN Fragment Forwarding (6LFF) <xref target="RFC8930" format="default" sectionFormat="of" derivedContent="RFC8930"/> is an alternative
        approach that enables forwarding of fragments without
        reassembling packets on every intermediate hop. By reusing the
        6LoWPAN dispatching framework, 6LFF integrates into ICN LoWPAN
        as seamlessly as the conventional hop-wise
        fragmentation. However, experimental evaluations <xref target="SFR-ICNLOWPAN" format="default" sectionFormat="of" derivedContent="SFR-ICNLOWPAN"/> suggest that a more-refined
        integration can increase the cache utilization of forwarders
        on a request path.</t>
      </section>
    </section>
    <section anchor="sec.ndn" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-space-efficient-message-enc">Space-Efficient Message Encoding for NDN</name>
      <section anchor="sec.tlvencoding" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-tlv-encoding">TLV Encoding</name>
        <t indent="0" pn="section-5.1-1">The NDN packet format consists of TLV fields using the TLV encoding
        that is described in <xref target="NDN-PACKET-SPEC" format="default" sectionFormat="of" derivedContent="NDN-PACKET-SPEC"/>. Type and Length
        fields are of variable size, where numbers greater than 252 are
        encoded using multiple bytes.</t>
        <t indent="0" pn="section-5.1-2">If the type or length number is less than <tt>253</tt>,
        then that number is encoded into the actual Type or Length field. If
        the number is greater or equals <tt>253</tt> and
        fits into 2 bytes, then the Type or Length field is set to <tt>253</tt> and the number is encoded in the next
        following 2 bytes in network byte order, i.e., from the most
        significant byte (MSB) to the least significant byte (LSB). If the
        number is greater than 2 bytes and fits into 4 bytes, then the Type
        or Length field is set to <tt>254</tt> and the
        number is encoded in the subsequent 4 bytes in network byte order.
        For larger numbers, the Type or Length field is set to <tt>255</tt> and the number is encoded in the subsequent 8
        bytes in network byte order.</t>
        <t indent="0" pn="section-5.1-3">In this specification, compressed NDN TLVs encode Type and
        Length fields using self-delimiting numeric values (SDNVs)
        <xref target="RFC6256" format="default" sectionFormat="of" derivedContent="RFC6256"/> commonly known from Delay-Tolerant
	Networking (DTN) protocols.
        Instead of using the first byte as a marker for the number of
        following bytes, SDNVs use a single bit to indicate subsequent
        bytes.</t>
        <table anchor="tab.sdnvperformance" align="center" pn="table-1">
          <name slugifiedName="name-ndn-tlv-encoding-compared-t">NDN TLV Encoding Compared to SDNVs</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="left" colspan="1" rowspan="1">NDN TLV Encoding</th>
              <th align="left" colspan="1" rowspan="1">SDNV Encoding</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">0x00</td>
              <td align="left" colspan="1" rowspan="1">0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">127</td>
              <td align="left" colspan="1" rowspan="1">0x7F</td>
              <td align="left" colspan="1" rowspan="1">0x7F</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">128</td>
              <td align="left" colspan="1" rowspan="1">0x80</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">253</td>
              <td align="left" colspan="1" rowspan="1">0xFD 0x00 0xFD</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x7D</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>14</sup> - 1</td>
              <td align="left" colspan="1" rowspan="1">0xFD 0x3F 0xFF</td>
              <td align="left" colspan="1" rowspan="1">0xFF 0x7F</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>14</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFD 0x40 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x80 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>16</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFE 0x00 0x01 0x00 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x84 0x80 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>21</sup> - 1</td>
              <td align="left" colspan="1" rowspan="1">0xFE 0x00 0x1F 0xFF 0xFF</td>
              <td align="left" colspan="1" rowspan="1">0xFF 0xFF 0x7F</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>21</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFE 0x00 0x20 0x00 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x80 0x80 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>28</sup> - 1</td>
              <td align="left" colspan="1" rowspan="1">0xFE 0x0F 0xFF 0xFF 0xFF</td>
              <td align="left" colspan="1" rowspan="1">0xFF 0xFF 0xFF 0x7F</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>28</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFE 0x1F 0x00 0x00 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x80 0x80 0x80 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>32</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFF 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x90 0x80 0x80 0x80 0x00</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>35</sup> - 1</td>
              <td align="left" colspan="1" rowspan="1">0xFF 0x00 0x00 0x00 0x07 0xFF 0xFF 0xFF 0xFF</td>
              <td align="left" colspan="1" rowspan="1">0xFF 0xFF 0xFF 0xFF 0x7F</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">2<sup>35</sup></td>
              <td align="left" colspan="1" rowspan="1">0xFF 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x00</td>
              <td align="left" colspan="1" rowspan="1">0x81 0x80 0x80 0x80 0x80 0x00</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-5.1-5">
          <xref target="tab.sdnvperformance" format="default" sectionFormat="of" derivedContent="Table 1"/> compares the required
          bytes for encoding a few selected values using the NDN TLV
          encoding and SDNVs. For values up to 127, both methods
          require a single byte. Values in the range (128...252) encode
          as one byte for the NDN TLV scheme, while SDNVs require two
          bytes.  Starting at value 253, SDNVs require a less or equal
          amount of bytes compared to the NDN TLV encoding.
        </t>
      </section>
      <section anchor="sec.ndn.namecompression" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-name-tlv-compression">Name TLV Compression</name>
        <t indent="0" pn="section-5.2-1">This Name TLV compression encodes Length fields of two consecutive
        NameComponent TLVs into one byte, using a nibble for each.
        The most significant nibble indicates the length of an immediately following NameComponent TLV.
        The least significant nibble denotes the length of a subsequent NameComponent TLV.
        A length of 0 marks the end of the compressed Name TLV.
        The last Length field of an encoded NameComponent is either 0x00 for a name with an even number of components
        and 0xYF (Y &gt; 0) if an odd number of components are present.
        This process limits the length of a NameComponent TLV to 15 bytes but allows for an unlimited number of components.
        An example for this encoding is presented in <xref target="fig.ndnshortnco" format="default" sectionFormat="of" derivedContent="Figure 10"/>.</t>
        <figure anchor="fig.ndnshortnco" align="left" suppress-title="false" pn="figure-10">
          <name slugifiedName="name-name-tlv-compression-for-ha">Name TLV Compression for /HAW/Room/481/Humid/99</name>
          <artwork align="center" name="" type="" alt="" pn="section-5.2-2.1">
                Name: /HAW/Room/481/Humid/99

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 1 1|0 1 0 0|       H       |       A       |       W       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       R       |       o       |       o       |       m       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 1 1|0 1 0 1|       4       |       8       |       1       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       H       |       u       |       m       |       i       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       d       |0 0 1 0|0 0 0 0|       9       |       9       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-interest-messages">Interest Messages</name>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3.1">
          <name slugifiedName="name-uncompressed-interest-messa">Uncompressed Interest Messages</name>
          <t indent="0" pn="section-5.3.1-1">An uncompressed Interest message uses the base dispatch format
          (see <xref target="fig.disp.base" format="default" sectionFormat="of" derivedContent="Figure 4"/>) and sets the C, P, and M
          flags to <tt>0</tt> (<xref target="fig.ndn.int.uncompr" format="default" sectionFormat="of" derivedContent="Figure 11"/>).
          The Interest message is handed to the NDN stack without modifications.</t>
          <figure anchor="fig.ndn.int.uncompr" align="left" suppress-title="false" pn="figure-11">
            <name slugifiedName="name-dispatch-format-for-uncompr">Dispatch Format for Uncompressed NDN Interest Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.3.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3.2">
          <name slugifiedName="name-compressed-interest-message">Compressed Interest Messages</name>
          <t indent="0" pn="section-5.3.2-1">The compressed Interest message uses the extended dispatch format
          (<xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>) and sets the C flag to
	  <tt>1</tt> and the P and M flags to <tt>0</tt>.
          If an Interest message contains TLVs that are not mentioned in the
          following compression rules, then this message <bcp14>MUST</bcp14> be sent
          uncompressed.</t>
          <t indent="0" pn="section-5.3.2-2">This specification assumes that a HopLimit TLV is part of the
          original Interest message. If such a HopLimit TLV is not present, it
          will be inserted with a default value of DEFAULT_NDN_HOPLIMIT prior to
          the compression.</t>
          <t indent="0" pn="section-5.3.2-3">In the default use case, the Interest message is compressed with
          the following minimal rule set: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.3.2-4">
	    <li pn="section-5.3.2-4.1" derivedCounter="1.">The <tt>Type</tt> field of the outermost
            MessageType TLV is removed.</li>
            <li pn="section-5.3.2-4.2" derivedCounter="2.">The Name TLV is compressed according to <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. For this, all
	    NameComponents are expected to be of type GenericNameComponent with a length
            greater than 0. An ImplicitSha256DigestComponent or
            ParametersSha256DigestComponent <bcp14>MAY</bcp14> appear at the end of the
            name. In any other case, the message <bcp14>MUST</bcp14> be sent
            uncompressed.</li>
            <li pn="section-5.3.2-4.3" derivedCounter="3.">The Nonce TLV and InterestLifetime TLV are moved to
            the end of the compressed Interest, as illustrated in
            <xref target="fig.ndn.int.newformat" format="default" sectionFormat="of" derivedContent="Figure 12"/>.  The
            InterestLifetime is encoded as described in <xref target="sec.compressedtime" format="default" sectionFormat="of" derivedContent="Section 7"/>.  On
            decompression, this encoding may yield an
            InterestLifetime that is smaller than the original
            value.</li>
            <li pn="section-5.3.2-4.4" derivedCounter="4.">The Type and Length fields of Nonce TLV, HopLimit TLV, and
            InterestLifetime TLV are elided. The Nonce value has a length of
            4 bytes, and the HopLimit value has a length of 1 byte. The
            compressed InterestLifetime (<xref target="sec.compressedtime" format="default" sectionFormat="of" derivedContent="Section 7"/>) has a
            length of 1 byte. The presence of a Nonce TLV and InterestLifetime TLV is
            deduced from the remaining length to parse.
            A remaining length of <tt>1</tt> indicates the
            presence of an InterestLifetime, a length of <tt>4</tt> indicates
            the presence of a nonce, and a length of <tt>5</tt> indicates
            the presence of both TLVs.</li>
          </ol>
          <t indent="0" pn="section-5.3.2-5">The compressed NDN LoWPAN Interest message is visualized in <xref target="fig.ndn.int.newformat" format="default" sectionFormat="of" derivedContent="Figure 12"/>.</t>
          <figure anchor="fig.ndn.int.newformat" align="left" suppress-title="false" pn="figure-12">
            <name slugifiedName="name-compression-of-ndn-lowpan-i">Compression of NDN LoWPAN Interest Message</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.3.2-6.1">
T = Type, L = Length, V = Value
Lc = Compressed Length, Vc = Compressed Value
: = optional field, | = mandatory field

+---------+---------+                 +---------+
|  Msg T  |  Msg L  |                 |  Msg Lc |
+---------+---------+---------+       +---------+
| Name T  | Name L  | Name V  |       | Name Vc |
+---------+---------+---------+       +---------+---------+
: CBPfx T : CBPfx L :                 : FWDH Lc : FWDH Vc :
+---------+---------+                 +---------+---------+
: MBFr T  : MBFr L  :                 |  HPL V  |
+---------+---------+---------+  ==&gt;  +---------+---------+
: FWDH T  : FWDH L  : FWDH V  :       :  APM Lc : APM Vc  :
+---------+---------+---------+       +---------+---------+
: NONCE T : NONCE L : NONCE V :       : NONCE V :
+---------+---------+---------+       +---------+
:  ILT T  :  ILT L  :  ILT V  :       :  ILT Vc :
+---------+---------+---------+       +---------+
:  HPL T  :  HPL L  :  HPL V  :
+---------+---------+---------+
:  APM T  :  APM L  :  APM V  :
+---------+---------+---------+
</artwork>
          </figure>
          <t indent="0" pn="section-5.3.2-7">Further TLV compression is indicated by the ICN LoWPAN dispatch
          in <xref target="fig.ndn.intcompr" format="default" sectionFormat="of" derivedContent="Figure 13"/>.</t>
          <figure anchor="fig.ndn.intcompr" align="left" suppress-title="false" pn="figure-13">
            <name slugifiedName="name-dispatch-format-for-compres">Dispatch Format for Compressed NDN Interest Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.3.2-8.1">
  0                                       1
  0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 0 | 0 | 1 |PFX|FRE|FWD|APM|DIG|        RSV        |CID|EXT|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-5.3.2-9">
            <dt pn="section-5.3.2-9.1">PFX: CanBePrefix TLV</dt>
            <dd pn="section-5.3.2-9.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.2.1">
                <dt pn="section-5.3.2-9.2.1.1">0:</dt>
                <dd pn="section-5.3.2-9.2.1.2">The uncompressed message does not include a
                  CanBePrefix TLV.</dd>
                <dt pn="section-5.3.2-9.2.1.3">1:</dt>
                <dd pn="section-5.3.2-9.2.1.4">The uncompressed message does include a
                  CanBePrefix TLV and is removed from the compressed
                  message.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.2-9.3">FRE: MustBeFresh TLV</dt>
            <dd pn="section-5.3.2-9.4">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.4.1">
                <dt pn="section-5.3.2-9.4.1.1">0:</dt>
                <dd pn="section-5.3.2-9.4.1.2">The uncompressed message does not include a
                  MustBeFresh TLV.</dd>
                <dt pn="section-5.3.2-9.4.1.3">1:</dt>
                <dd pn="section-5.3.2-9.4.1.4">The uncompressed message does include a
                  MustBeFresh TLV and is removed from the compressed
                  message.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.2-9.5">FWD: ForwardingHint TLV</dt>
            <dd pn="section-5.3.2-9.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.6.1">
                <dt pn="section-5.3.2-9.6.1.1">0:</dt>
                <dd pn="section-5.3.2-9.6.1.2">The uncompressed message does not include a
                  ForwardingHint TLV.</dd>
                <dt pn="section-5.3.2-9.6.1.3">1:</dt>
                <dd pn="section-5.3.2-9.6.1.4">The uncompressed message does include a
                  ForwardingHint TLV. The Type field is removed from the
                  compressed message. Further, all link delegation types and
                  link preference types are removed. All included names are
                  compressed according to <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. If any name is not
                  compressible, the message <bcp14>MUST</bcp14> be sent uncompressed.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.2-9.7">APM: ApplicationParameters TLV</dt>
            <dd pn="section-5.3.2-9.8">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.8.1">
                <dt pn="section-5.3.2-9.8.1.1">0:</dt>
                <dd pn="section-5.3.2-9.8.1.2">The uncompressed message does not include
                  an ApplicationParameters TLV.</dd>
                <dt pn="section-5.3.2-9.8.1.3">1:</dt>
                <dd pn="section-5.3.2-9.8.1.4">The uncompressed message does include an
                  ApplicationParameters TLV. The Type field is removed from
                  the compressed message.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.2-9.9">DIG: ImplicitSha256DigestComponent TLV</dt>
            <dd pn="section-5.3.2-9.10">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.10.1">
                <dt pn="section-5.3.2-9.10.1.1">0:</dt>
                <dd pn="section-5.3.2-9.10.1.2">The name does not include an
                  ImplicitSha256DigestComponent as the last TLV.</dd>
                <dt pn="section-5.3.2-9.10.1.3">1:</dt>
                <dd pn="section-5.3.2-9.10.1.4">The name does include an
                  ImplicitSha256DigestComponent as the last TLV. The Type and
                  Length fields are omitted.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.2-9.11">RSV: Reserved</dt>
            <dd pn="section-5.3.2-9.12">Must be set to 0.</dd>
            <dt pn="section-5.3.2-9.13">CID: Context Identifier</dt>
            <dd pn="section-5.3.2-9.14">See <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</dd>
            <dt pn="section-5.3.2-9.15">EXT: Extension</dt>
            <dd pn="section-5.3.2-9.16">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.2-9.16.1">
                <dt pn="section-5.3.2-9.16.1.1">0:</dt>
                <dd pn="section-5.3.2-9.16.1.2">No extension byte follows.</dd>
                <dt pn="section-5.3.2-9.16.1.3">1:</dt>
                <dd pn="section-5.3.2-9.16.1.4">Extension byte <tt>EXT_0</tt>
                  follows immediately. See <xref target="sec.ndn.interest.ext0" format="default" sectionFormat="of" derivedContent="Section 5.3.3"/>.</dd>
              </dl>
            </dd>
          </dl>
        </section>
        <section anchor="sec.ndn.interest.ext0" numbered="true" toc="include" removeInRFC="false" pn="section-5.3.3">
          <name slugifiedName="name-dispatch-extension">Dispatch Extension</name>
          <t indent="0" pn="section-5.3.3-1">The <tt>EXT_0</tt> byte follows the
          description in <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/> and is illustrated
          in <xref target="fig.ndn.interest.ext0" format="default" sectionFormat="of" derivedContent="Figure 14"/>.</t>
          <figure anchor="fig.ndn.interest.ext0" align="left" suppress-title="false" pn="figure-14">
            <name slugifiedName="name-ext_0-format">EXT_0 Format</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.3.3-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|  NCS  |        RSV        |EXT|
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-5.3.3-3">
            <dt pn="section-5.3.3-3.1">NCS: Name Compression Strategy</dt>
            <dd pn="section-5.3.3-3.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.3-3.2.1">
                <dt pn="section-5.3.3-3.2.1.1">00:</dt>
                <dd pn="section-5.3.3-3.2.1.2">Names are compressed with the default name
                  compression strategy (see <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>).</dd>
                <dt pn="section-5.3.3-3.2.1.3">01:</dt>
                <dd pn="section-5.3.3-3.2.1.4">Reserved.</dd>
                <dt pn="section-5.3.3-3.2.1.5">10:</dt>
                <dd pn="section-5.3.3-3.2.1.6">Reserved.</dd>
                <dt pn="section-5.3.3-3.2.1.7">11:</dt>
                <dd pn="section-5.3.3-3.2.1.8">Reserved.</dd>
              </dl>
            </dd>
            <dt pn="section-5.3.3-3.3">RSV: Reserved</dt>
            <dd pn="section-5.3.3-3.4">Must be set to 0.</dd>
            <dt pn="section-5.3.3-3.5">EXT: Extension</dt>
            <dd pn="section-5.3.3-3.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.3.3-3.6.1">
                <dt pn="section-5.3.3-3.6.1.1">0:</dt>
                <dd pn="section-5.3.3-3.6.1.2">No extension byte follows.</dd>
                <dt pn="section-5.3.3-3.6.1.3">1:</dt>
                <dd pn="section-5.3.3-3.6.1.4">A further extension byte follows
                  immediately.</dd>
              </dl>
            </dd>
          </dl>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-data-messages">Data Messages</name>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4.1">
          <name slugifiedName="name-uncompressed-data-messages">Uncompressed Data Messages</name>
          <t indent="0" pn="section-5.4.1-1">An uncompressed Data message uses the base dispatch
          format and sets the C and P flags to <tt>0</tt> and the M flag
          to <tt>1</tt> (<xref target="fig.ndn.data.uncompr" format="default" sectionFormat="of" derivedContent="Figure 15"/>).  The Data message is
          handed to the NDN stack without modifications.</t>
          <figure anchor="fig.ndn.data.uncompr" align="left" suppress-title="false" pn="figure-15">
            <name slugifiedName="name-dispatch-format-for-uncompre">Dispatch Format for Uncompressed NDN Data Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.4.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4.2">
          <name slugifiedName="name-compressed-data-messages">Compressed Data Messages</name>
          <t indent="0" pn="section-5.4.2-1">The compressed Data message uses the extended dispatch
          format (<xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>) and sets the C
          and M flags to <tt>1</tt>. The
          P flag is set to <tt>0</tt>. If a Data
          message contains TLVs that are not mentioned in the
          following compression rules, then this message <bcp14>MUST</bcp14> be sent
          uncompressed.</t>
          <t indent="0" pn="section-5.4.2-2">By default, the Data message is compressed with the following
          base rule set: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-5.4.2-3">
	    <li pn="section-5.4.2-3.1" derivedCounter="1.">The <tt>Type</tt> field of the outermost
              MessageType TLV is removed.</li>
            <li pn="section-5.4.2-3.2" derivedCounter="2.">The Name TLV is compressed according to <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. For this, all NameComponents
              are expected to be of type GenericNameComponent and to have a
              length greater than 0. In any other case, the message <bcp14>MUST</bcp14> be
              sent uncompressed.</li>
            <li pn="section-5.4.2-3.3" derivedCounter="3.">The MetaInfo TLV Type and Length fields are elided from the
              compressed Data message.</li>
            <li pn="section-5.4.2-3.4" derivedCounter="4.">The FreshnessPeriod TLV <bcp14>MUST</bcp14> be moved to the end of the
              compressed Data message. Type and
              Length fields are elided, and the value is encoded as described
              in <xref target="sec.compressedtime" format="default" sectionFormat="of" derivedContent="Section 7"/> as a 1-byte
	      time-code. If the freshness period is not
              a valid time-value, then the message <bcp14>MUST</bcp14> be sent uncompressed
              in order to preserve the security envelope of the Data message.
              The presence of a FreshnessPeriod TLV is deduced from the
              remaining one-byte length to parse.</li>
            <li pn="section-5.4.2-3.5" derivedCounter="5.">The Type fields of the SignatureInfo TLV, SignatureType TLV,
              and SignatureValue TLV are removed.</li>
          </ol>
          <t indent="0" pn="section-5.4.2-4">The compressed NDN LoWPAN Data message is visualized in <xref target="fig.ndn.data.newformat" format="default" sectionFormat="of" derivedContent="Figure 16"/>.</t>
          <figure anchor="fig.ndn.data.newformat" align="left" suppress-title="false" pn="figure-16">
            <name slugifiedName="name-compression-of-ndn-lowpan-d">Compression of NDN LoWPAN Data Message</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.4.2-5.1">
T = Type, L = Length, V = Value
Lc = Compressed Length, Vc = Compressed Value
: = optional field, | = mandatory field

+---------+---------+                 +---------+
|  Msg T  |  Msg L  |                 |  Msg Lc |
+---------+---------+---------+       +---------+
| Name T  | Name L  | Name V  |       | Name Vc |
+---------+---------+---------+       +---------+---------+
: Meta T  : Meta L  :                 : CTyp Lc : CTyp V  :
+---------+---------+---------+       +---------+---------+
: CTyp T  : CTyp L  : CTyp V  :       : FBID V  :
+---------+---------+---------+  ==&gt;  +---------+---------+
: FrPr T  : FrPr L  : FrPr V  :       : CONT Lc : CONT V  :
+---------+---------+---------+       +---------+---------+
: FBID T  : FBID L  : FBID V  :       |  Sig Lc |
+---------+---------+---------+       +---------+---------+
: CONT T  : CONT L  : CONT V  :       | SInf Lc | SInf Vc |
+---------+---------+---------+       +---------+---------+
|  Sig T  |  Sig L  |                 | SVal Lc | SVal Vc |
+---------+---------+---------+       +---------+---------+
| SInf T  | SInf L  | SInf V  |       : FrPr Vc :
+---------+---------+---------+       +---------+
| SVal T  | SVal L  | SVal V  |
+---------+---------+---------+
</artwork>
          </figure>
          <t indent="0" pn="section-5.4.2-6">Further TLV compression is indicated by the ICN LoWPAN dispatch
          in <xref target="fig.ndn.datacompr" format="default" sectionFormat="of" derivedContent="Figure 17"/>.</t>
          <figure anchor="fig.ndn.datacompr" align="left" suppress-title="false" pn="figure-17">
            <name slugifiedName="name-dispatch-format-for-compress">Dispatch Format for Compressed NDN Data Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.4.2-7.1">
  0                                       1
  0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 0 | 1 | 1 |FBI|CON|KLO|            RSV            |CID|EXT|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-5.4.2-8">
            <dt pn="section-5.4.2-8.1">FBI: FinalBlockId TLV</dt>
            <dd pn="section-5.4.2-8.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.2-8.2.1">
                <dt pn="section-5.4.2-8.2.1.1">0:</dt>
                <dd pn="section-5.4.2-8.2.1.2">The uncompressed message does not include a
                  FinalBlockId TLV.</dd>
                <dt pn="section-5.4.2-8.2.1.3">1:</dt>
                <dd pn="section-5.4.2-8.2.1.4">The uncompressed message does include a
                  FinalBlockId, and it is encoded according to <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. If the FinalBlockId
		  TLV is not compressible, then the message <bcp14>MUST</bcp14> be sent
                  uncompressed.</dd>
              </dl>
            </dd>
            <dt pn="section-5.4.2-8.3">CON: ContentType TLV</dt>
            <dd pn="section-5.4.2-8.4">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.2-8.4.1">
                <dt pn="section-5.4.2-8.4.1.1">0:</dt>
                <dd pn="section-5.4.2-8.4.1.2">The uncompressed message does not include a
                  ContentType TLV.</dd>
                <dt pn="section-5.4.2-8.4.1.3">1:</dt>
                <dd pn="section-5.4.2-8.4.1.4">The uncompressed message does include a
                  ContentType TLV. The Type field is removed from the
                  compressed message.</dd>
              </dl>
            </dd>
            <dt pn="section-5.4.2-8.5">KLO: KeyLocator TLV</dt>
            <dd pn="section-5.4.2-8.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.2-8.6.1">
                <dt pn="section-5.4.2-8.6.1.1">0:</dt>
                <dd pn="section-5.4.2-8.6.1.2">If the included SignatureType requires a
                  KeyLocator TLV, then the KeyLocator represents a name and is
                  compressed according to <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. If the
		  name is not compressible, then the message
		  <bcp14>MUST</bcp14> be sent uncompressed.</dd>
                <dt pn="section-5.4.2-8.6.1.3">1:</dt>
                <dd pn="section-5.4.2-8.6.1.4">If the included SignatureType requires a
                KeyLocator TLV, then the KeyLocator represents a KeyDigest.
                The Type field of this KeyDigest is removed.</dd>
              </dl>
            </dd>
            <dt pn="section-5.4.2-8.7">RSV: Reserved</dt>
            <dd pn="section-5.4.2-8.8">Must be set to 0.</dd>
            <dt pn="section-5.4.2-8.9">CID: Context Identifier</dt>
            <dd pn="section-5.4.2-8.10">See <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</dd>
            <dt pn="section-5.4.2-8.11">EXT: Extension</dt>
            <dd pn="section-5.4.2-8.12">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.2-8.12.1">
                <dt pn="section-5.4.2-8.12.1.1">0:</dt>
                <dd pn="section-5.4.2-8.12.1.2">No extension byte follows.</dd>
                <dt pn="section-5.4.2-8.12.1.3">1:</dt>
                <dd pn="section-5.4.2-8.12.1.4">Extension byte <tt>EXT_0</tt>
                  follows immediately. See <xref target="sec.ndn.data.ext0" format="default" sectionFormat="of" derivedContent="Section 5.4.3"/>.</dd>
              </dl>
            </dd>
          </dl>
        </section>
        <section anchor="sec.ndn.data.ext0" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.3">
          <name slugifiedName="name-dispatch-extension-2">Dispatch Extension</name>
          <t indent="0" pn="section-5.4.3-1">The <tt>EXT_0</tt> byte follows the
          description in <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/> and is illustrated
          in <xref target="fig.ndn.data.ext0" format="default" sectionFormat="of" derivedContent="Figure 18"/>.</t>
          <figure anchor="fig.ndn.data.ext0" align="left" suppress-title="false" pn="figure-18">
            <name slugifiedName="name-ext_0-format-2">EXT_0 Format</name>
            <artwork align="center" name="" type="" alt="" pn="section-5.4.3-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|  NCS  |        RSV        |EXT|
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-5.4.3-3">
            <dt pn="section-5.4.3-3.1">NCS: Name Compression Strategy</dt>
            <dd pn="section-5.4.3-3.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.3-3.2.1">
                <dt pn="section-5.4.3-3.2.1.1">00:</dt>
                <dd pn="section-5.4.3-3.2.1.2">Names are compressed with the default name
                  compression strategy (see <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>).</dd>
                <dt pn="section-5.4.3-3.2.1.3">01:</dt>
                <dd pn="section-5.4.3-3.2.1.4">Reserved.</dd>
                <dt pn="section-5.4.3-3.2.1.5">10:</dt>
                <dd pn="section-5.4.3-3.2.1.6">Reserved.</dd>
                <dt pn="section-5.4.3-3.2.1.7">11:</dt>
                <dd pn="section-5.4.3-3.2.1.8">Reserved.</dd>
              </dl>
            </dd>
            <dt pn="section-5.4.3-3.3">RSV: Reserved</dt>
            <dd pn="section-5.4.3-3.4">Must be set to 0.</dd>
            <dt pn="section-5.4.3-3.5">EXT: Extension</dt>
            <dd pn="section-5.4.3-3.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-5.4.3-3.6.1">
                <dt pn="section-5.4.3-3.6.1.1">0:</dt>
                <dd pn="section-5.4.3-3.6.1.2">No extension byte follows.</dd>
                <dt pn="section-5.4.3-3.6.1.3">1:</dt>
                <dd pn="section-5.4.3-3.6.1.4">A further extension byte follows
                  immediately.</dd>
              </dl>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="sec.ccnx" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-space-efficient-message-enco">Space-Efficient Message Encoding for CCNx</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-tlv-encoding-2">TLV Encoding</name>
        <t indent="0" pn="section-6.1-1">The generic CCNx TLV encoding is described in <xref target="RFC8609" format="default" sectionFormat="of" derivedContent="RFC8609"/>. Type and Length fields attain the common fixed
        length of 2 bytes.</t>
        <t indent="0" pn="section-6.1-2">The TLV encoding for CCNx LoWPAN is changed to the more space-efficient
	encoding described in <xref target="sec.tlvencoding" format="default" sectionFormat="of" derivedContent="Section 5.1"/>.
        Hence, NDN and CCNx use the same compressed format for writing
        TLVs.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-name-tlv-compression-2">Name TLV Compression</name>
        <t indent="0" pn="section-6.2-1">Name TLVs are compressed using the scheme already defined in <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/> for NDN. If a Name TLV contains
        T_IPID, T_APP, or organizational TLVs, then the name remains
        uncompressed.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-interest-messages-2">Interest Messages</name>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-6.3.1">
          <name slugifiedName="name-uncompressed-interest-messag">Uncompressed Interest Messages</name>
          <t indent="0" pn="section-6.3.1-1">An uncompressed Interest message uses the base dispatch format
          (see <xref target="fig.disp.base" format="default" sectionFormat="of" derivedContent="Figure 4"/>) and sets the C and M flags to <tt>0</tt>.
          The P flag is set to <tt>1</tt> (<xref target="fig.ccnx.int.uncompr" format="default" sectionFormat="of" derivedContent="Figure 19"/>).
          The Interest message is handed to the CCNx stack without modifications.</t>
          <figure anchor="fig.ccnx.int.uncompr" align="left" suppress-title="false" pn="figure-19">
            <name slugifiedName="name-dispatch-format-for-uncompres">Dispatch Format for Uncompressed CCNx Interest Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.3.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
        </section>
        <section anchor="sec.ccnxintcompbaseheader" numbered="true" toc="include" removeInRFC="false" pn="section-6.3.2">
          <name slugifiedName="name-compressed-interest-messages">Compressed Interest Messages</name>
          <t indent="0" pn="section-6.3.2-1">The compressed Interest message uses the extended dispatch format
          (<xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>) and sets the C and P flags to <tt>1</tt>. The M flag is set to <tt>0</tt>.
          If an Interest message contains TLVs that are not mentioned in the
          following compression rules, then this message <bcp14>MUST</bcp14> be sent
          uncompressed.</t>
          <t indent="0" pn="section-6.3.2-2">In the default use case, the Interest message is compressed with
          the following minimal rule set: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.3.2-3">
	    <li pn="section-6.3.2-3.1" derivedCounter="1.">The version is elided from the fixed header and assumed to be
	    1.</li>
            <li pn="section-6.3.2-3.2" derivedCounter="2.">The Type and Length fields of the CCNx Message TLV are elided
            and are obtained from the fixed header on decompression.</li>
          </ol>
          <t indent="0" pn="section-6.3.2-4">The compressed CCNx LoWPAN Interest message is visualized in
          <xref target="fig.ccnx.int.newformat" format="default" sectionFormat="of" derivedContent="Figure 20"/>.</t>
          <figure anchor="fig.ccnx.int.newformat" align="left" suppress-title="false" pn="figure-20">
            <name slugifiedName="name-compression-of-ccnx-lowpan-">Compression of CCNx LoWPAN Interest Message</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.3.2-5.1">
T = Type, L = Length, V = Value
Lc = Compressed Length, Vc = Compressed Value
: = optional field, | = mandatory field

+-----------------------------+           +-------------------------+
|    Uncompr. Fixed Header    |           |   Compr. Fixed Header   |
+-----------------------------+           +-------------------------+
+---------+---------+---------+           +---------+
: ILT T   : ILT L   : ILT V   :           : ILT Vc  :
+---------+---------+---------+           +---------+
: MSGH T  : MSGH L  : MSGH V  :           : MSGH Vc :
+---------+---------+---------+           +---------+
+---------+---------+                     +---------+
| MSGT T  | MSGT L  |                     | Name Vc |
+---------+---------+---------+           +---------+
| Name T  | Name L  | Name V  |    ==&gt;    : KIDR Vc :
+---------+---------+---------+           +---------+
: KIDR T  : KIDR L  : KIDR V  :           : OBHR Vc :
+---------+---------+---------+           +---------+---------+
: OBHR T  : OBHR L  : OBHR V  :           : PAYL Lc : PAYL V  :
+---------+---------+---------+           +---------+---------+
: PAYL T  : PAYL L  : PAYL V  :           : VALG Lc : VALG Vc :
+---------+---------+---------+           +---------+---------+
: VALG T  : VALG L  : VALG V  :           : VPAY Lc : VPAY V  :
+---------+---------+---------+           +---------+---------+
: VPAY T  : VPAY L  : VPAY V  :
+---------+---------+---------+
</artwork>
          </figure>
          <t indent="0" pn="section-6.3.2-6">Further TLV compression is indicated by the ICN LoWPAN dispatch
          in <xref target="fig.ccnx.intcompr" format="default" sectionFormat="of" derivedContent="Figure 21"/>.</t>
          <figure anchor="fig.ccnx.intcompr" align="left" suppress-title="false" pn="figure-21">
            <name slugifiedName="name-dispatch-format-for-compresse">Dispatch Format for Compressed CCNx Interest Messages</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.3.2-7.1">
  0                                       1
  0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 0 | 1 |FLG|PTY|HPL|FRS|PAY|ILT|MGH|KIR|CHR|VAL|CID|EXT|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-6.3.2-8">
            <dt pn="section-6.3.2-8.1">FLG: Flags field in the fixed header</dt>
            <dd pn="section-6.3.2-8.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.2.1">
                <dt pn="section-6.3.2-8.2.1.1">0:</dt>
                <dd pn="section-6.3.2-8.2.1.2">The Flags field equals 0 and is removed
                  from the Interest message.</dd>
                <dt pn="section-6.3.2-8.2.1.3">1:</dt>
                <dd pn="section-6.3.2-8.2.1.4">The Flags field appears in the fixed header.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.3">PTY: PacketType field in the fixed header</dt>
            <dd pn="section-6.3.2-8.4">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.4.1">
                <dt pn="section-6.3.2-8.4.1.1">0:</dt>
                <dd pn="section-6.3.2-8.4.1.2">The PacketType field is elided and assumed
                  to be <tt>PT_INTEREST</tt>.</dd>
                <dt pn="section-6.3.2-8.4.1.3">1:</dt>
                <dd pn="section-6.3.2-8.4.1.4">The PacketType field is elided and assumed
                  to be <tt>PT_RETURN</tt>.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.5">HPL: HopLimit field in the fixed header</dt>
            <dd pn="section-6.3.2-8.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.6.1">
                <dt pn="section-6.3.2-8.6.1.1">0:</dt>
                <dd pn="section-6.3.2-8.6.1.2">The HopLimit field appears in the fixed header.</dd>
                <dt pn="section-6.3.2-8.6.1.3">1:</dt>
                <dd pn="section-6.3.2-8.6.1.4">The HopLimit field is elided and assumed to
                  be <tt>1</tt>.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.7">FRS: Reserved field in the fixed header</dt>
            <dd pn="section-6.3.2-8.8">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.8.1">
                <dt pn="section-6.3.2-8.8.1.1">0:</dt>
                <dd pn="section-6.3.2-8.8.1.2">The Reserved field appears in the fixed header.</dd>
                <dt pn="section-6.3.2-8.8.1.3">1:</dt>
                <dd pn="section-6.3.2-8.8.1.4">The Reserved field is elided and assumed to
                  be <tt>0</tt>.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.9">PAY: Optional Payload TLV</dt>
            <dd pn="section-6.3.2-8.10">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.10.1">
                <dt pn="section-6.3.2-8.10.1.1">0:</dt>
                <dd pn="section-6.3.2-8.10.1.2">The Payload TLV is absent.</dd>
                <dt pn="section-6.3.2-8.10.1.3">1:</dt>
                <dd pn="section-6.3.2-8.10.1.4">The Payload TLV is present, and the Type
                  field is elided.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.11">ILT: Optional hop-by-hop InterestLifetime TLV</dt>
            <dd pn="section-6.3.2-8.12">
              <t indent="0" pn="section-6.3.2-8.12.1">See <xref target="sec.ccnxhbhint" format="default" sectionFormat="of" derivedContent="Section 6.3.2.1"/> for further details
                  on the ordering of hop-by-hop TLVs.</t>
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.12.2">
                <dt pn="section-6.3.2-8.12.2.1">0:</dt>
                <dd pn="section-6.3.2-8.12.2.2">No InterestLifetime TLV is present in the
                  Interest message.</dd>
                <dt pn="section-6.3.2-8.12.2.3">1:</dt>
                <dd pn="section-6.3.2-8.12.2.4">An InterestLifetime TLV is present
                  with a fixed length of 1 byte and is encoded as
                  described in <xref target="sec.compressedtime" format="default" sectionFormat="of" derivedContent="Section 7"/>. The
		  Type and Length fields are elided.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.13">MGH: Optional hop-by-hop MessageHash TLV</dt>
            <dd pn="section-6.3.2-8.14">
              <t indent="0" pn="section-6.3.2-8.14.1">See <xref target="sec.ccnxhbhint" format="default" sectionFormat="of" derivedContent="Section 6.3.2.1"/> for further
		details on the ordering of hop-by-hop TLVs.</t>
              <t indent="0" pn="section-6.3.2-8.14.2">This TLV is expected to contain a T_SHA-256 TLV. If
                  another hash is contained, then the Interest <bcp14>MUST</bcp14> be sent
                  uncompressed.</t>
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.14.3">
                <dt pn="section-6.3.2-8.14.3.1">0:</dt>
                <dd pn="section-6.3.2-8.14.3.2">The MessageHash TLV is absent.</dd>
                <dt pn="section-6.3.2-8.14.3.3">1:</dt>
                <dd pn="section-6.3.2-8.14.3.4">A T_SHA-256 TLV is present, and the Type and
                  Length fields are removed. The Length field is
                  assumed to represent 32 bytes. The outer Message Hash TLV
                  is omitted.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.15">KIR: Optional KeyIdRestriction TLV</dt>
            <dd pn="section-6.3.2-8.16">
              <t indent="0" pn="section-6.3.2-8.16.1">This TLV is expected to contain a T_SHA-256 TLV. If
                  another hash is contained, then the Interest <bcp14>MUST</bcp14> be sent
                  uncompressed.</t>
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.16.2">
                <dt pn="section-6.3.2-8.16.2.1">0:</dt>
                <dd pn="section-6.3.2-8.16.2.2">The KeyIdRestriction TLV is absent.</dd>
                <dt pn="section-6.3.2-8.16.2.3">1:</dt>
                <dd pn="section-6.3.2-8.16.2.4">A T_SHA-256 TLV is present, and the Type and
                  Length fields are removed. The Length field is
                  assumed to represent 32 bytes. The outer KeyIdRestriction
                  TLV is omitted.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.17">CHR: Optional ContentObjectHashRestriction TLV</dt>
            <dd pn="section-6.3.2-8.18">
              <t indent="0" pn="section-6.3.2-8.18.1">This TLV is expected to contain a T_SHA-256 TLV. If
                  another hash is contained, then the Interest <bcp14>MUST</bcp14> be sent
                  uncompressed.</t>
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.18.2">
                <dt pn="section-6.3.2-8.18.2.1">0:</dt>
                <dd pn="section-6.3.2-8.18.2.2">The ContentObjectHashRestriction TLV is
                  absent.</dd>
                <dt pn="section-6.3.2-8.18.2.3">1:</dt>
                <dd pn="section-6.3.2-8.18.2.4">A T_SHA-256 TLV is present, and the Type and Length fields are
		removed. The Length field is assumed to represent 32 bytes. The outer
                ContentObjectHashRestriction TLV is omitted.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.19">VAL: Optional ValidationAlgorithm and ValidationPayload
	    TLVs</dt>
            <dd pn="section-6.3.2-8.20">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.20.1">
                <dt pn="section-6.3.2-8.20.1.1">0:</dt>
                <dd pn="section-6.3.2-8.20.1.2">No validation-related TLVs are present in
                  the Interest message.</dd>
                <dt pn="section-6.3.2-8.20.1.3">1:</dt>
                <dd pn="section-6.3.2-8.20.1.4">Validation-related TLVs are present in the
                Interest message. An additional byte follows immediately
                that handles validation-related TLV compressions and is
                described in <xref target="sec.ccnx.intval" format="default" sectionFormat="of" derivedContent="Section 6.3.2.2"/>.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.2-8.21">CID: Context Identifier</dt>
            <dd pn="section-6.3.2-8.22">
              <t indent="0" pn="section-6.3.2-8.22.1">See <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</t>
            </dd>
            <dt pn="section-6.3.2-8.23">EXT: Extension</dt>
            <dd pn="section-6.3.2-8.24">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2-8.24.1">
                <dt pn="section-6.3.2-8.24.1.1">0:</dt>
                <dd pn="section-6.3.2-8.24.1.2">No extension byte follows.</dd>
                <dt pn="section-6.3.2-8.24.1.3">1:</dt>
                <dd pn="section-6.3.2-8.24.1.4">Extension byte <tt>EXT_0</tt>
                follows immediately. See <xref target="sec.ccnx.interest.ext0" format="default" sectionFormat="of" derivedContent="Section 6.3.3"/>.</dd>
              </dl>
            </dd>
          </dl>
          <section anchor="sec.ccnxhbhint" toc="exclude" numbered="true" removeInRFC="false" pn="section-6.3.2.1">
            <name slugifiedName="name-hop-by-hop-header-tlvs-comp">Hop-By-Hop Header TLVs Compression</name>
            <t indent="0" pn="section-6.3.2.1-1">Hop-by-hop header TLVs are unordered. For an Interest message,
            two optional hop-by-hop header TLVs are defined in <xref target="RFC8609" format="default" sectionFormat="of" derivedContent="RFC8609"/>, but several more can be defined in higher-level
	    specifications. For the compression specified in the
            previous section, the hop-by-hop TLVs are ordered as follows:
            </t>
            <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.3.2.1-2">
	      <li pn="section-6.3.2.1-2.1" derivedCounter="1.">InterestLifetime TLV</li>
              <li pn="section-6.3.2.1-2.2" derivedCounter="2.">Message Hash TLV</li>
            </ol>
            <t indent="0" pn="section-6.3.2.1-3">Note: All hop-by-hop header TLVs other than the InterestLifetime and
            MessageHash TLVs remain uncompressed in the encoded message, and they
            appear after the InterestLifetime and MessageHash TLVs in the same
            order as in the original message.</t>
          </section>
          <section anchor="sec.ccnx.intval" toc="exclude" numbered="true" removeInRFC="false" pn="section-6.3.2.2">
            <name slugifiedName="name-validation">Validation</name>
            <figure anchor="fig.ccnx.dispatchintval" align="left" suppress-title="false" pn="figure-22">
              <name slugifiedName="name-dispatch-for-interest-valid">Dispatch for Interest Validations</name>
              <artwork align="center" name="" type="" alt="" pn="section-6.3.2.2-1.1">
0       1       2       3       4       5       6       7       8
+-------+-------+-------+-------+-------+-------+-------+-------+
|         ValidationAlg         |     KeyID     |      RSV      |
+-------+-------+-------+-------+-------+-------+-------+-------+
</artwork>
            </figure>
            <dl newline="true" spacing="normal" indent="4" pn="section-6.3.2.2-2">
              <dt pn="section-6.3.2.2-2.1">ValidationAlg: Optional ValidationAlgorithm TLV</dt>
              <dd pn="section-6.3.2.2-2.2">
                <dl newline="false" spacing="normal" indent="8" pn="section-6.3.2.2-2.2.1">
                  <dt pn="section-6.3.2.2-2.2.1.1">0000:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.2">An uncompressed ValidationAlgorithm
                    TLV is included.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.3">0001:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.4">A T_CRC32C ValidationAlgorithm TLV is
                    assumed, but no ValidationAlgorithm TLV is included.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.5">0010:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.6">A T_CRC32C ValidationAlgorithm TLV is
                    assumed, but no ValidationAlgorithm TLV is included.
                    Additionally, a SignatureTime TLV is inlined without a Type and
                    a Length field.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.7">0011:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.8">A T_HMAC-SHA256 ValidationAlgorithm
                    TLV is assumed, but no ValidationAlgorithm TLV is
                    included.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.9">0100:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.10">A T_HMAC-SHA256 ValidationAlgorithm
                    TLV is assumed, but no ValidationAlgorithm TLV is included.
                    Additionally, a SignatureTime TLV is inlined without a Type and
                    a Length field.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.11">0101:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.12">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.13">0110:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.14">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.15">0111:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.16">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.17">1000:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.18">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.19">1001:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.20">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.21">1010:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.22">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.23">1011:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.24">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.25">1100:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.26">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.27">1101:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.28">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.29">1110:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.30">Reserved.</dd>
                  <dt pn="section-6.3.2.2-2.2.1.31">1111:</dt>
                  <dd pn="section-6.3.2.2-2.2.1.32">Reserved.</dd>
                </dl>
              </dd>
              <dt pn="section-6.3.2.2-2.3">KeyID: Optional KeyID TLV within the ValidationAlgorithm TLV</dt>
              <dd pn="section-6.3.2.2-2.4">
                <dl newline="false" spacing="normal" indent="4" pn="section-6.3.2.2-2.4.1">
                  <dt pn="section-6.3.2.2-2.4.1.1">00:</dt>
                  <dd pn="section-6.3.2.2-2.4.1.2">The KeyID TLV is absent.</dd>
                  <dt pn="section-6.3.2.2-2.4.1.3">01:</dt>
                  <dd pn="section-6.3.2.2-2.4.1.4">The KeyID TLV is present and
                    uncompressed.</dd>
                  <dt pn="section-6.3.2.2-2.4.1.5">10:</dt>
                  <dd pn="section-6.3.2.2-2.4.1.6">A T_SHA-256 TLV is present, and the Type
                    and Length fields are removed. The Length
                    field is assumed to represent 32 bytes. The outer KeyID
                    TLV is omitted.</dd>
                  <dt pn="section-6.3.2.2-2.4.1.7">11:</dt>
                  <dd pn="section-6.3.2.2-2.4.1.8">A T_SHA-512 TLV is present, and the Type
                    and Length fields are removed. The Length
                    field is assumed to represent 64 bytes. The outer KeyID
                    TLV is omitted.</dd>
                </dl>
              </dd>
              <dt pn="section-6.3.2.2-2.5">RSV: Reserved</dt>
              <dd pn="section-6.3.2.2-2.6">Must be set to 0.</dd>
            </dl>
            <t indent="0" pn="section-6.3.2.2-3">The ValidationPayload TLV is present if the ValidationAlgorithm
            TLV is present. The Type field is omitted.</t>
          </section>
        </section>
        <section anchor="sec.ccnx.interest.ext0" numbered="true" toc="include" removeInRFC="false" pn="section-6.3.3">
          <name slugifiedName="name-dispatch-extension-3">Dispatch Extension</name>
          <t indent="0" pn="section-6.3.3-1">The <tt>EXT_0</tt> byte follows the
          description in <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/> and is illustrated
          in <xref target="fig.ccnx.interest.ext0" format="default" sectionFormat="of" derivedContent="Figure 23"/>.</t>
          <figure anchor="fig.ccnx.interest.ext0" align="left" suppress-title="false" pn="figure-23">
            <name slugifiedName="name-ext_0-format-3">EXT_0 Format</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.3.3-2.1">
0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|  NCS  |        RSV        |EXT|
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-6.3.3-3">
            <dt pn="section-6.3.3-3.1">NCS: Name Compression Strategy</dt>
            <dd pn="section-6.3.3-3.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.3-3.2.1">
                <dt pn="section-6.3.3-3.2.1.1">00:</dt>
                <dd pn="section-6.3.3-3.2.1.2">Names are compressed with the default name
                  compression strategy (see <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>).</dd>
                <dt pn="section-6.3.3-3.2.1.3">01:</dt>
                <dd pn="section-6.3.3-3.2.1.4">Reserved.</dd>
                <dt pn="section-6.3.3-3.2.1.5">10:</dt>
                <dd pn="section-6.3.3-3.2.1.6">Reserved.</dd>
                <dt pn="section-6.3.3-3.2.1.7">11:</dt>
                <dd pn="section-6.3.3-3.2.1.8">Reserved.</dd>
              </dl>
            </dd>
            <dt pn="section-6.3.3-3.3">RSV: Reserved</dt>
            <dd pn="section-6.3.3-3.4">Must be set to 0.</dd>
            <dt pn="section-6.3.3-3.5">EXT: Extension</dt>
            <dd pn="section-6.3.3-3.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.3.3-3.6.1">
                <dt pn="section-6.3.3-3.6.1.1">0:</dt>
                <dd pn="section-6.3.3-3.6.1.2">No extension byte follows.</dd>
                <dt pn="section-6.3.3-3.6.1.3">1:</dt>
                <dd pn="section-6.3.3-3.6.1.4">A further extension byte follows
                  immediately.</dd>
              </dl>
            </dd>
          </dl>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.4">
        <name slugifiedName="name-content-objects">Content Objects</name>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-6.4.1">
          <name slugifiedName="name-uncompressed-content-object">Uncompressed Content Objects</name>
          <t indent="0" pn="section-6.4.1-1">An uncompressed Content Object uses the base dispatch format (see
          <xref target="fig.disp.base" format="default" sectionFormat="of" derivedContent="Figure 4"/>) and sets the C flag to
	  <tt>0</tt> and the P and M flags to
          <tt>1</tt> (<xref target="fig.ccnx.data.uncompr" format="default" sectionFormat="of" derivedContent="Figure 24"/>).
          The Content Object is handed to the CCNx stack without modifications.</t>
          <figure anchor="fig.ccnx.data.uncompr" align="left" suppress-title="false" pn="figure-24">
            <name slugifiedName="name-dispatch-format-for-uncompress">Dispatch Format for Uncompressed CCNx Content Objects</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.4.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-6.4.2">
          <name slugifiedName="name-compressed-content-objects">Compressed Content Objects</name>
          <t indent="0" pn="section-6.4.2-1">The compressed Content Object uses the extended dispatch format
          (<xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>) and sets the C, P, and M
	  flags to <tt>1</tt>. If a Content Object contains TLVs that are not mentioned in
	  the following compression
          rules, then this message <bcp14>MUST</bcp14> be sent uncompressed.</t>
          <t indent="0" pn="section-6.4.2-2">By default, the Content Object is compressed with the following
          base rule set: </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.4.2-3">
	    <li pn="section-6.4.2-3.1" derivedCounter="1.">The version is elided from the fixed header and assumed to be
	    1.</li>
            <li pn="section-6.4.2-3.2" derivedCounter="2.">The PacketType field is elided from the fixed header.</li>
            <li pn="section-6.4.2-3.3" derivedCounter="3.">The Type and Length fields of the CCNx Message TLV are elided
              and are obtained from the fixed header on decompression.</li>
          </ol>
          <t indent="0" pn="section-6.4.2-4">The compressed CCNx LoWPAN Data message is visualized in <xref target="fig.ccnx.data.newformat" format="default" sectionFormat="of" derivedContent="Figure 25"/>.</t>
          <figure anchor="fig.ccnx.data.newformat" align="left" suppress-title="false" pn="figure-25">
            <name slugifiedName="name-compression-of-ccnx-lowpan-d">Compression of CCNx LoWPAN Data Message</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.4.2-5.1">
T = Type, L = Length, V = Value
Lc = Compressed Length, Vc = Compressed Value
: = optional field, | = mandatory field

+-----------------------------+           +-------------------------+
|    Uncompr. Fixed Header    |           |   Compr. Fixed Header   |
+-----------------------------+           +-------------------------+
+---------+---------+---------+           +---------+
: RCT T   : RCT L   : RCT V   :           : RCT Vc  :
+---------+---------+------.--+           +---------+
: MSGH T  : MSGH L  : MSGH V  :           : MSGH Vc :
+---------+---------+---------+           +---------+
+---------+---------+                     +---------+
| MSGT T  | MSGT L  |                     | Name Vc |
+---------+---------+---------+           +---------+
| Name T  | Name L  | Name V  |    ==&gt;    : EXPT Vc :
+---------+---------+---------+           +---------+---------+
: PTYP T  : PTYP L  : PTYP V  :           : PAYL Lc : PAYL V  :
+---------+---------+---------+           +---------+---------+
: EXPT T  : EXPT L  : EXPT V  :           : VALG Lc : VALG Vc :
+---------+---------+---------+           +---------+---------+
: PAYL T  : PAYL L  : PAYL V  :           : VPAY Lc : VPAY V  :
+---------+---------+---------+           +---------+---------+
: VALG T  : VALG L  : VALG V  :
+---------+---------+---------+
: VPAY T  : VPAY L  : VPAY V  :
+---------+---------+---------+
</artwork>
          </figure>
          <t indent="0" pn="section-6.4.2-6">Further TLV compression is indicated by the ICN LoWPAN dispatch
          in <xref target="fig.ccnx.datacompr" format="default" sectionFormat="of" derivedContent="Figure 26"/>.</t>
          <figure anchor="fig.ccnx.datacompr" align="left" suppress-title="false" pn="figure-26">
            <name slugifiedName="name-dispatch-format-for-compressed">Dispatch Format for Compressed CCNx Content Objects</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.4.2-7.1">
  0                                       1
  0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 1 | 1 | 1 |FLG|FRS|PAY|RCT|MGH| PLTYP |EXP|VAL|RSV|CID|EXT|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-6.4.2-8">
            <dt pn="section-6.4.2-8.1">FLG: Flags field in the fixed header</dt>
            <dd pn="section-6.4.2-8.2">See <xref target="sec.ccnxintcompbaseheader" format="default" sectionFormat="of" derivedContent="Section 6.3.2"/>.</dd>
            <dt pn="section-6.4.2-8.3">FRS: Reserved field in the fixed header</dt>
            <dd pn="section-6.4.2-8.4">See <xref target="sec.ccnxintcompbaseheader" format="default" sectionFormat="of" derivedContent="Section 6.3.2"/>.</dd>
            <dt pn="section-6.4.2-8.5">PAY: Optional Payload TLV</dt>
            <dd pn="section-6.4.2-8.6">See <xref target="sec.ccnxintcompbaseheader" format="default" sectionFormat="of" derivedContent="Section 6.3.2"/>.</dd>
            <dt pn="section-6.4.2-8.7">RCT: Optional hop-by-hop Recommended Cache Time TLV</dt>
            <dd pn="section-6.4.2-8.8">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.2-8.8.1">
                <dt pn="section-6.4.2-8.8.1.1">0:</dt>
                <dd pn="section-6.4.2-8.8.1.2">The Recommended Cache Time TLV is
                  absent.</dd>
                <dt pn="section-6.4.2-8.8.1.3">1:</dt>
                <dd pn="section-6.4.2-8.8.1.4">The Recommended Cache Time TLV is present,
                  and the Type and Length fields are elided.</dd>
              </dl>
            </dd>
            <dt pn="section-6.4.2-8.9">MGH: Optional hop-by-hop MessageHash TLV</dt>
            <dd pn="section-6.4.2-8.10">
              <t indent="0" pn="section-6.4.2-8.10.1">See <xref target="sec.ccnxhbhdata" format="default" sectionFormat="of" derivedContent="Section 6.4.2.1"/> for
	      further details on the ordering of hop-by-hop TLVs.</t>
              <t indent="0" pn="section-6.4.2-8.10.2">This TLV is expected to contain a T_SHA-256 TLV. If
              another hash is contained, then the Content Object
	      <bcp14>MUST</bcp14> be sent uncompressed.</t>
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.2-8.10.3">
                <dt pn="section-6.4.2-8.10.3.1">0:</dt>
                <dd pn="section-6.4.2-8.10.3.2">The MessageHash TLV is absent.</dd>
                <dt pn="section-6.4.2-8.10.3.3">1:</dt>
                <dd pn="section-6.4.2-8.10.3.4">A T_SHA-256 TLV is present, and the Type and
                  Length fields are removed. The Length field is
                  assumed to represent 32 bytes. The outer Message Hash TLV
                  is omitted.</dd>
              </dl>
            </dd>
            <dt pn="section-6.4.2-8.11">PLTYP: Optional PayloadType TLV</dt>
            <dd pn="section-6.4.2-8.12">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.2-8.12.1">
                <dt pn="section-6.4.2-8.12.1.1">00:</dt>
                <dd pn="section-6.4.2-8.12.1.2">The PayloadType TLV is absent.</dd>
                <dt pn="section-6.4.2-8.12.1.3">01:</dt>
                <dd pn="section-6.4.2-8.12.1.4">The PayloadType TLV is absent, and
                  T_PAYLOADTYPE_DATA is assumed.</dd>
                <dt pn="section-6.4.2-8.12.1.5">10:</dt>
                <dd pn="section-6.4.2-8.12.1.6">The PayloadType TLV is absent, and
                  T_PAYLOADTYPE_KEY is assumed.</dd>
                <dt pn="section-6.4.2-8.12.1.7">11:</dt>
                <dd pn="section-6.4.2-8.12.1.8">The PayloadType TLV is present and
                  uncompressed.</dd>
              </dl>
            </dd>
            <dt pn="section-6.4.2-8.13">EXP: Optional ExpiryTime TLV</dt>
            <dd pn="section-6.4.2-8.14">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.2-8.14.1">
                <dt pn="section-6.4.2-8.14.1.1">0:</dt>
                <dd pn="section-6.4.2-8.14.1.2">The ExpiryTime TLV is absent.</dd>
                <dt pn="section-6.4.2-8.14.1.3">1:</dt>
                <dd pn="section-6.4.2-8.14.1.4">The ExpiryTime TLV is present, and the Type
                  and Length fields are elided.</dd>
              </dl>
            </dd>
            <dt pn="section-6.4.2-8.15">VAL: Optional ValidationAlgorithm and ValidationPayload
	    TLVs</dt>
            <dd pn="section-6.4.2-8.16">See
              <xref target="sec.ccnxintcompbaseheader" format="default" sectionFormat="of" derivedContent="Section 6.3.2"/>.</dd>
            <dt pn="section-6.4.2-8.17">RSV: Reserved</dt>
            <dd pn="section-6.4.2-8.18">Must be set to 0.</dd>
            <dt pn="section-6.4.2-8.19">CID: Context Identifier</dt>
            <dd pn="section-6.4.2-8.20">See <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</dd>
            <dt pn="section-6.4.2-8.21">EXT: Extension</dt>
            <dd pn="section-6.4.2-8.22">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.2-8.22.1">
                <dt pn="section-6.4.2-8.22.1.1">0:</dt>
                <dd pn="section-6.4.2-8.22.1.2">No extension byte follows.</dd>
                <dt pn="section-6.4.2-8.22.1.3">1:</dt>
                <dd pn="section-6.4.2-8.22.1.4">Extension byte <tt>EXT_0</tt>
                  follows immediately. See <xref target="sec.ccnx.data.ext0" format="default" sectionFormat="of" derivedContent="Section 6.4.3"/>.</dd>
              </dl>
            </dd>
          </dl>
          <section anchor="sec.ccnxhbhdata" toc="exclude" numbered="true" removeInRFC="false" pn="section-6.4.2.1">
            <name slugifiedName="name-hop-by-hop-header-tlvs-compr">Hop-By-Hop Header TLVs Compression</name>
            <t indent="0" pn="section-6.4.2.1-1">Hop-by-hop header TLVs are unordered. For a Content Object
            message, two optional hop-by-hop header TLVs are defined in 
	    <xref target="RFC8609" format="default" sectionFormat="of" derivedContent="RFC8609"/>, but several more can be defined in
	    higher-level specifications. For the compression specified in the
            previous section, the hop-by-hop TLVs are ordered as follows:
            </t>
            <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.4.2.1-2">
	      <li pn="section-6.4.2.1-2.1" derivedCounter="1.">Recommended Cache Time TLV</li>
              <li pn="section-6.4.2.1-2.2" derivedCounter="2.">Message Hash TLV</li>
            </ol>
            <t indent="0" pn="section-6.4.2.1-3">Note: All hop-by-hop header TLVs other than the RecommendedCacheTime
            and MessageHash TLVs remain uncompressed in the encoded message, and
            they appear after the RecommendedCacheTime and MessageHash TLVs in
            the same order as in the original message.</t>
          </section>
        </section>
        <section anchor="sec.ccnx.data.ext0" numbered="true" toc="include" removeInRFC="false" pn="section-6.4.3">
          <name slugifiedName="name-dispatch-extension-4">Dispatch Extension</name>
          <t indent="0" pn="section-6.4.3-1">The <tt>EXT_0</tt> byte follows the
          description in <xref target="sec.dispatch.ext" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/> and is illustrated
          in <xref target="fig.ccnx.data.ext0" format="default" sectionFormat="of" derivedContent="Figure 27"/>.</t>
          <figure anchor="fig.ccnx.data.ext0" align="left" suppress-title="false" pn="figure-27">
            <name slugifiedName="name-ext_0-format-4">EXT_0 Format</name>
            <artwork align="center" name="" type="" alt="" pn="section-6.4.3-2.1">
0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|  NCS  |        RSV        |EXT|
+---+---+---+---+---+---+---+---+
</artwork>
          </figure>
          <dl newline="true" spacing="normal" indent="4" pn="section-6.4.3-3">
            <dt pn="section-6.4.3-3.1">NCS: Name Compression Strategy</dt>
            <dd pn="section-6.4.3-3.2">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.3-3.2.1">
                <dt pn="section-6.4.3-3.2.1.1">00:</dt>
                <dd pn="section-6.4.3-3.2.1.2">Names are compressed with the default name
                  compression strategy (see <xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>).</dd>
                <dt pn="section-6.4.3-3.2.1.3">01:</dt>
                <dd pn="section-6.4.3-3.2.1.4">Reserved.</dd>
                <dt pn="section-6.4.3-3.2.1.5">10:</dt>
                <dd pn="section-6.4.3-3.2.1.6">Reserved.</dd>
                <dt pn="section-6.4.3-3.2.1.7">11:</dt>
                <dd pn="section-6.4.3-3.2.1.8">Reserved.</dd>
              </dl>
            </dd>
            <dt pn="section-6.4.3-3.3">RSV: Reserved</dt>
            <dd pn="section-6.4.3-3.4">Must be set to 0.</dd>
            <dt pn="section-6.4.3-3.5">EXT: Extension</dt>
            <dd pn="section-6.4.3-3.6">
              <dl newline="false" spacing="normal" indent="4" pn="section-6.4.3-3.6.1">
                <dt pn="section-6.4.3-3.6.1.1">0:</dt>
                <dd pn="section-6.4.3-3.6.1.2">No extension byte follows.</dd>
                <dt pn="section-6.4.3-3.6.1.3">1:</dt>
                <dd pn="section-6.4.3-3.6.1.4">A further extension byte follows
                  immediately.</dd>
              </dl>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="sec.compressedtime" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-compressed-time-encoding">Compressed Time Encoding</name>
      <t indent="0" pn="section-7-1">
        This document adopts the 8-bit compact time representation for
        relative time-values described in <xref target="RFC5497" section="5" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5497#section-5" derivedContent="RFC5497"/> with the constant factor <tt>C</tt> set to <tt>C :=
        1/32</tt>.
      </t>
      <t indent="0" pn="section-7-2">
        Valid time offsets in CCNx and NDN range from a few
        milliseconds (e.g., lifetime of low-latency Interests) to
        several years (e.g., content freshness periods in caches).
        Therefore, this document adds two modifications to the
        compression algorithm.
      </t>
      <t indent="0" pn="section-7-3">
        The first modification is the inclusion of a subnormal form
        <xref target="IEEE.754.2019" format="default" sectionFormat="of" derivedContent="IEEE.754.2019"/> for time-codes with exponent
        0 to provide an increased precision and a gradual underflow
        for the smallest numbers. The formula is changed as
        follows (a := mantissa, b := exponent):

      </t>
      <dl newline="false" spacing="normal" indent="3" pn="section-7-4">
        <dt pn="section-7-4.1">Subnormal (b == 0):</dt>
        <dd pn="section-7-4.2"> (0 + a/8) * 2 * C
          </dd>
        <dt pn="section-7-4.3">Normalized (b &gt; 0):</dt>
        <dd pn="section-7-4.4"> (1 + a/8) * 2<sup>b</sup> * C (see <xref target="RFC5497" format="default" sectionFormat="of" derivedContent="RFC5497"/>)
          </dd>
      </dl>
      <t indent="0" pn="section-7-5">This configuration allows for the following ranges:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-7-6">
        <li pn="section-7-6.1">Minimum subnormal number: 0 seconds</li>
        <li pn="section-7-6.2">2nd minimum subnormal number: ~0.007812 seconds</li>
        <li pn="section-7-6.3">Maximum subnormal number: ~0.054688 seconds</li>
        <li pn="section-7-6.4">Minimum normalized number: ~0.062500 seconds</li>
        <li pn="section-7-6.5">2nd minimum normalized number: ~0.070312 seconds</li>
        <li pn="section-7-6.6">Maximum normalized number: ~3.99 years</li>
      </ul>
      <t indent="0" pn="section-7-7">
        The second modification only applies to uncompressible time
        offsets that are outside any security envelope. An invalid
        time-value <bcp14>MUST</bcp14> be set to the largest valid time-value that is
        smaller than the invalid input value before compression.
      </t>
    </section>
    <section anchor="stateful.compression" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-stateful-header-compression-2">Stateful Header Compression</name>
      <t indent="0" pn="section-8-1">Stateful header compression in ICN LoWPAN enables packet size
      reductions in two ways. First, common information that is shared
      throughout the local LoWPAN may be memorized in the context state at all
      nodes and omitted from communication. Second, redundancy in a single
      Interest-Data exchange may be removed from ICN stateful forwarding on a
      hop-by-hop basis and memorized in en route state tables.</t>
      <section anchor="stateful.compression.local" numbered="true" toc="include" removeInRFC="false" pn="section-8.1">
        <name slugifiedName="name-lowpan-local-state">LoWPAN-Local State</name>
        <t indent="0" pn="section-8.1-1">A Context Identifier (CID) is a byte that refers to a particular
        conceptual context between network devices and <bcp14>MAY</bcp14> be used to replace
        frequently appearing information, such as name prefixes, suffixes, or
        meta information, such as Interest lifetime.</t>
        <figure anchor="fig.cid" align="left" suppress-title="false" pn="figure-28">
          <name slugifiedName="name-context-identifier">Context Identifier</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.1-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| X |            CID            |
+---+---+---+---+---+---+---+---+
</artwork>
        </figure>
        <t indent="0" pn="section-8.1-3">The 7-bit CID is a locally scoped unique identifier that
        represents the context state shared between the sender and receiver of the
        corresponding frame (see <xref target="fig.cid" format="default" sectionFormat="of" derivedContent="Figure 28"/>).
        If set, the most significant bit indicates the presence of another, subsequent
        CID byte (see <xref target="fig.cid.chain" format="default" sectionFormat="of" derivedContent="Figure 33"/>).</t>
        <t indent="0" pn="section-8.1-4">The context state shared between senders and receivers is removed from the
        compressed packet prior to sending and reinserted after reception
        prior to passing to the upper stack.</t>
        <t indent="0" pn="section-8.1-5">The actual information in a context and how it is encoded are out of scope of this document.
        The initial distribution and maintenance of shared context is out
        of scope of this document. Frames containing unknown or invalid CIDs <bcp14>MUST</bcp14> be silently discarded.</t>
      </section>
      <section anchor="stateful.compression.en-route" numbered="true" toc="include" removeInRFC="false" pn="section-8.2">
        <name slugifiedName="name-en-route-state">En Route State</name>
        <t indent="0" pn="section-8.2-1">In CCNx and NDN, Name TLVs are included in Interest messages, and
        they return in Data messages. Returning Name TLVs either equal the
        original Name TLV or contain the original Name TLV as a prefix.
        ICN LoWPAN reduces this redundancy in responses by replacing Name TLVs
        with single bytes that represent link-local HopIDs. HopIDs are
        carried as Context Identifiers (see <xref target="stateful.compression.local" format="default" sectionFormat="of" derivedContent="Section 8.1"/>) of link-local scope, as shown in <xref target="fig.hopid" format="default" sectionFormat="of" derivedContent="Figure 29"/>.</t>
        <figure anchor="fig.hopid" align="left" suppress-title="false" pn="figure-29">
          <name slugifiedName="name-context-identifier-as-hopid">Context Identifier as HopID</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.2-2.1">
  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
| X |          HopID            |
+---+---+---+---+---+---+---+---+
</artwork>
        </figure>
        <t indent="0" pn="section-8.2-3">A HopID is valid if not all ID bits are set to zero and invalid
        otherwise. This yields 127 distinct HopIDs. If this range (1...127) is
        exhausted, the messages <bcp14>MUST</bcp14> be sent without en route state
        compression until new HopIDs are available. An ICN LoWPAN node that
        forwards without replacing the Name TLV with a HopID (without en route
        compression) <bcp14>MUST</bcp14> invalidate the HopID by setting all ID bits to
        zero.</t>
        <t indent="0" pn="section-8.2-4">While an Interest is traversing, a forwarder generates an ephemeral
        HopID that is tied to a Pending Interest Table (PIT) entry. Each HopID
	<bcp14>MUST</bcp14> be unique within
        the local PIT and only exists during the lifetime of a PIT entry. To
        maintain HopIDs, the local PIT is extended by two new columns: HIDi
        (inbound HopIDs) and HIDo (outbound HopIDs).</t>
        <t indent="0" pn="section-8.2-5">HopIDs are included in Interests and stored on the next hop with
        the resulting PIT entry in the HIDi column. The HopID is replaced with
        a newly generated local HopID before the Interest is forwarded. This
        new HopID is stored in the HIDo column of the local PIT (see <xref target="fig.enroute-a" format="default" sectionFormat="of" derivedContent="Figure 30"/>). </t>
        <figure anchor="fig.enroute-a" align="left" suppress-title="false" pn="figure-30">
          <name slugifiedName="name-setting-compression-state-e">Setting Compression State En Route (Interest)</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.2-6.1">
    PIT of B      PIT Extension          PIT of C      PIT Extension
+--------+------++------+------+     +--------+------++------+------+
| Prefix | Face || HIDi | HIDo |     | Prefix | Face || HIDi | HIDo |
+========+======++======+======+     +========+======++======+======+
|  /p0   | F_A  || h_A  | h_B  |     |  /p0   | F_A  || h_A  |      |
+--------+------++------+------+     +--------+------++------+------+
                    ^       |                            ^
              store |       '----------------------, ,---' store
                    |                 send         v |
,---,         /p0, h_A          ,---,         /p0, h_B          ,---,
| A | ------------------------&gt; | B | ------------------------&gt; | C |
'---'                           '---'                           '---'
</artwork>
        </figure>
        <t indent="0" pn="section-8.2-7">Responses include HopIDs that were obtained from Interests. If the
        returning Name TLV equals the original Name TLV, then the name is
        entirely elided. Otherwise, only the matching name prefix is elided, and
        the distinct name suffix is included along with
        the HopID. When a response is forwarded, the contained HopID is
        extracted and used to match against the correct PIT entry by
        performing a lookup on the HIDo column. The HopID is then replaced
        with the corresponding HopID from the HIDi column prior to forwarding
        the response (<xref target="fig.enroute-b" format="default" sectionFormat="of" derivedContent="Figure 31"/>). </t>
        <figure anchor="fig.enroute-b" align="left" suppress-title="false" pn="figure-31">
          <name slugifiedName="name-eliding-name-tlvs-using-en-">Eliding Name TLVs Using En Route State (Data)</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.2-8.1">
    PIT of B      PIT Extension          PIT of C      PIT Extension
+--------+------++------+------+     +--------+------++------+------+
| Prefix | Face || HIDi | HIDo |     | Prefix | Face || HIDi | HIDo |
+========+======++======+======+     +========+======++======+======+
|  /p0   | F_A  || h_A  | h_B  |     |  /p0   | F_A  || h_A  |      |
+--------+------++------+------+     +--------+------++------+------+
                    |       ^                            |
               send |       '----------------------, ,---' send
                    v                 match        | v
,---,              h_A          ,---,              h_B          ,---,
| A | &lt;------------------------ | B | &lt;------------------------ | C |
'---'                           '---'                           '---'
</artwork>
        </figure>
        <t indent="0" pn="section-8.2-9">It should be noted that each forwarder of an Interest in an ICN
        LoWPAN network can individually decide whether to participate in
        en route compression or not. However, an ICN LoWPAN node <bcp14>SHOULD</bcp14> use
        en route compression whenever the stateful compression mechanism is
        activated.</t>
        <t indent="0" pn="section-8.2-10">Note also that the extensions of the PIT data structure are
        required only at ICN LoWPAN nodes, while regular NDN/CCNx forwarders
        outside of an ICN LoWPAN domain do not need to implement these
        extensions.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-8.3">
        <name slugifiedName="name-integrating-stateful-header">Integrating Stateful Header Compression</name>
        <t indent="0" pn="section-8.3-1">A CID appears whenever the CID flag is set (see <xref target="fig.disp.base.compr" format="default" sectionFormat="of" derivedContent="Figure 5"/>). The CID is appended to the last ICN
        LoWPAN dispatch byte, as shown in <xref target="fig.cid.loc" format="default" sectionFormat="of" derivedContent="Figure 32"/>.</t>
        <figure anchor="fig.cid.loc" align="left" suppress-title="false" pn="figure-32">
          <name slugifiedName="name-lowpan-encapsulation-with-ic">LoWPAN Encapsulation with ICN LoWPAN and CIDs</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.3-2.1">
...-------+--------+-------...-------+--...-+-------...
/  ...    |  Page  | ICN LoWPAN Disp.| CIDs | Payload /
...-------+--------+-------...-------+--...-+-------...
</artwork>
        </figure>
        <t indent="0" pn="section-8.3-3">Multiple CIDs are chained together, with the most significant bit
        indicating the presence of a subsequent CID (<xref target="fig.cid.chain" format="default" sectionFormat="of" derivedContent="Figure 33"/>). This allows the use of multiple shared contexts in compressed messages.</t>
        <t indent="0" pn="section-8.3-4">The HopID is always included as the very first CID.</t>
        <figure anchor="fig.cid.chain" align="left" suppress-title="false" pn="figure-33">
          <name slugifiedName="name-chaining-of-context-identif">Chaining of Context Identifiers</name>
          <artwork align="center" name="" type="" alt="" pn="section-8.3-5.1">
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
|1| CID / HopID | --&gt; |1|     CID     | --&gt; |0|     CID     |
+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+
</artwork>
        </figure>
      </section>
    </section>
    <section anchor="sec.ndn.constvars" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-icn-lowpan-constants-and-va">ICN LoWPAN Constants and Variables</name>
      <t indent="0" pn="section-9-1">This is a summary of all ICN LoWPAN constants and variables. </t>
      <dl newline="false" spacing="normal" indent="8" pn="section-9-2">
        <dt pn="section-9-2.1">DEFAULT_NDN_HOPLIMIT:</dt>
        <dd pn="section-9-2.2">255</dd>
      </dl>
    </section>
    <section anchor="implementationnotice" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-implementation-report-and-g">Implementation Report and Guidance</name>
      <t indent="0" pn="section-10-1">The ICN LoWPAN scheme defined in this document has been implemented as
      an extension of the NDN/CCNx software stack <xref target="CCN-LITE" format="default" sectionFormat="of" derivedContent="CCN-LITE"/> in
      its IoT version on RIOT <xref target="RIOT" format="default" sectionFormat="of" derivedContent="RIOT"/>. An experimental
      evaluation for NDN over ICN LoWPAN with varying configurations has been
      performed in <xref target="ICNLOWPAN" format="default" sectionFormat="of" derivedContent="ICNLOWPAN"/>.  Energy profiling and
      processing time measurements indicate significant energy savings, and the 
      amortized costs for processing show no penalties.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-10.1">
        <name slugifiedName="name-preferred-configuration">Preferred Configuration</name>
        <t indent="0" pn="section-10.1-1">The header compression performance depends on certain aspects and
        configurations. It works best for the following cases: </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-10.1-2">
          <li pn="section-10.1-2.1">Signed time offsets compress, per <xref target="sec.compressedtime" format="default" sectionFormat="of" derivedContent="Section 7"/>, without the need for rounding.</li>
          <li pn="section-10.1-2.2">The context state (e.g., prefixes) is distributed such that
            long names can be elided from Interest and Data messages.</li>
          <li pn="section-10.1-2.3">Frequently used TLV type numbers for CCNx and NDN stay
            in the lower range (&lt; 255).</li>
        </ul>
        <t indent="0" pn="section-10.1-3">
          Name components are of type GenericNameComponent and are limited to a
        length of 15 bytes to enable compression for all messages.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-10.2">
        <name slugifiedName="name-further-experimental-deploy">Further Experimental Deployments</name>
        <t indent="0" pn="section-10.2-1">An investigation of ICN LoWPAN in large-scale deployments
        with varying traffic patterns using larger samples of the
        different board types available remains as future work. This
        document will be revised to progress it to the Standards
        Track, once sufficient operational experience has been
        acquired. Experience reports are encouraged, particularly in
        the following areas:
        </t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-10.2-2">
          <li pn="section-10.2-2.1">The name compression scheme (<xref target="sec.ndn.namecompression" format="default" sectionFormat="of" derivedContent="Section 5.2"/>) is optimized for short
          name components of type GenericNameComponent. An empirical
          study on name lengths in different deployments of selected
          use cases, such as smart home, smart city, and industrial
          IoT can provide meaningful reports on necessary name
          component types and lengths. A conclusive outcome helps to
          understand whether and how extension mechanisms are needed
          (<xref target="sec.ndn.interest.ext0" format="default" sectionFormat="of" derivedContent="Section 5.3.3"/>). As a preliminary
          analysis, <xref target="ICNLOWPAN" format="default" sectionFormat="of" derivedContent="ICNLOWPAN"/> investigates the
          effectiveness of the proposed compression scheme with URLs
          obtained from the WWW. Studies on deployments of Constrained Application Protocol (CoAP) <xref target="RFC7252" format="default" sectionFormat="of" derivedContent="RFC7252"/> can offer additional insights
          on naming schemes in the IoT.</li>
          <li pn="section-10.2-2.2">The fragmentation scheme (<xref target="sec.Fragmentation" format="default" sectionFormat="of" derivedContent="Section 4.2"/>) inherited from 6LoWPAN allows
          for a transparent, hop-wise reassembly of CCNx or NDN
          packets. Fragment forwarding <xref target="RFC8930" format="default" sectionFormat="of" derivedContent="RFC8930"/> with selective
          fragment recovery <xref target="RFC8931" format="default" sectionFormat="of" derivedContent="RFC8931"/> can improve the
          end-to-end latency and reliability while it reduces buffer
          requirements on forwarders. Initial evaluations <xref target="SFR-ICNLOWPAN" format="default" sectionFormat="of" derivedContent="SFR-ICNLOWPAN"/> show that a naive integration of
          these upcoming fragmentation features into ICN LoWPAN
          renders the hop-wise content replication inoperative, since
          Interest and Data messages are reassembled end-to-end. More
          deployment experiences are necessary to gauge the
          feasibility of different fragmentation schemes in ICN
          LoWPAN.
          </li>
          <li pn="section-10.2-2.3">The context state (<xref target="stateful.compression.local" format="default" sectionFormat="of" derivedContent="Section 8.1"/>) holds information
          that is shared between a set of devices in a LoWPAN. Fixed
          name prefixes and suffixes are good candidates to be
          distributed to all nodes in order to elide them from request
          and response messages. More experience and a deeper
          inspection of currently available and upcoming protocol
          features is necessary to identify other protocol fields.</li>
          <li pn="section-10.2-2.4">The distribution and synchronization of the context state
          can potentially be adopted from <xref target="RFC6775" section="7.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6775#section-7.2" derivedContent="RFC6775"/> but requires further evaluations. While
          6LoWPAN uses the Neighbor Discovery protocol to disseminate
          state, CCNx and NDN deployments are missing out on a
          standard mechanism to bootstrap and manage
          configurations.</li>
          <li pn="section-10.2-2.5">The stateful en route compression (<xref target="stateful.compression.en-route" format="default" sectionFormat="of" derivedContent="Section 8.2"/>) supports a limited
          number of 127 distinct HopIDs that can be simultaneously in
          use on a single node. Complex deployment scenarios that make
          use of multiple, concurrent requests can provide a better
          insight on the number of open requests stored in the 
          PIT of memory-constrained devices. This number
          can serve as an upper bound and determines whether the HopID
          length needs to be resized to fit more HopIDs at the cost of
          additional header overhead.</li>
          <li pn="section-10.2-2.6">Multiple implementations that generate and deploy the
          compression options of this memo in different ways will also
          add to the experience and understanding of the benefits and
          limitations of the proposed schemes. Different reports can
          help to illuminate the complexity of implementing ICN
          LoWPAN for constrained devices, as well as on maintaining
          interoperability with other implementations.</li>
        </ul>
      </section>
    </section>
    <section anchor="security.considerations" numbered="true" toc="include" removeInRFC="false" pn="section-11">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-11-1">Main memory is typically a scarce resource of constrained networked
      devices. Fragmentation, as described in this memo, preserves fragments and
      purges them only after a packet is reassembled, which requires a
      buffering of all fragments. This scheme is able to handle fragments for
      distinctive packets simultaneously, which can lead to overflowing packet
      buffers that cannot hold all necessary fragments for packet reassembly.
      Implementers are thus urged to make use of appropriate buffer
      replacement strategies for fragments. Minimal fragment forwarding
      <xref target="RFC8930" format="default" sectionFormat="of" derivedContent="RFC8930"/> can potentially prevent fragment buffer saturation in forwarders.</t>
      <t indent="0" pn="section-11-2">The stateful header compression generates ephemeral HopIDs for
      incoming and outgoing Interests and consumes them on returning Data
      packets. Forged Interests can deplete the number of available HopIDs,
      thus leading to a denial of compression service for subsequent content
      requests.</t>
      <t indent="0" pn="section-11-3">To further alleviate the problems caused by forged fragments or
      Interest initiations, proper protective mechanisms for accessing the
      link layer should be deployed. IEEE 802.15.4, e.g., provides capabilities to protect frames and restrict them to a point-to-point link or a group of devices.</t>
    </section>
    <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn="section-12">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-12.1">
        <name slugifiedName="name-updates-to-the-6lowpan-disp">Updates to the 6LoWPAN Dispatch Type Field Registry</name>
        <t indent="0" pn="section-12.1-1">IANA has assigned dispatch values for ICN LoWPAN in the "Dispatch Type Field"
        subregistry <xref target="RFC4944" format="default" sectionFormat="of" derivedContent="RFC4944"/> <xref target="RFC8025" format="default" sectionFormat="of" derivedContent="RFC8025"/> of 
        the "IPv6 Low Power Personal Area Network Parameters" registry.
        <xref target="tab.iana.dispatches" format="default" sectionFormat="of" derivedContent="Table 2"/> represents the updates to the registry.</t>
        <table anchor="tab.iana.dispatches" align="center" pn="table-2">
          <name slugifiedName="name-dispatch-types-for-ndn-and-">Dispatch Types for NDN and CCNx</name>
          <thead>
            <tr>
              <th align="center" colspan="1" rowspan="1">Bit Pattern</th>
              <th align="center" colspan="1" rowspan="1">Page</th>
              <th align="left" colspan="1" rowspan="1">Header Type</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" colspan="1" rowspan="1">00 000000</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Uncompressed NDN Interest messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">00 01xxxx</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Compressed NDN Interest messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">00 100000</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Uncompressed NDN Data messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">00 11xxxx</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Compressed NDN Data messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">01 000000</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Uncompressed CCNx Interest messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">01 01xxxx</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Compressed CCNx Interest messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">01 100000</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Uncompressed CCNx Content Object messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
            <tr>
              <td align="center" colspan="1" rowspan="1">01 11xxxx</td>
              <td align="center" colspan="1" rowspan="1">14</td>
              <td align="left" colspan="1" rowspan="1">Compressed CCNx Content Object messages</td>
              <td align="left" colspan="1" rowspan="1">RFC 9139</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.irtf-icnrg-flic" to="ICNRG-FLIC"/>
    <references pn="section-13">
      <name slugifiedName="name-references">References</name>
      <references pn="section-13.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IEEE.754.2019" target="https://standards.ieee.org/content/ieee-standards/en/standard/754-2019.html" quoteTitle="true" derivedAnchor="IEEE.754.2019">
          <front>
            <title>IEEE Standard for Floating-Point Arithmetic</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
          </front>
          <seriesInfo name="IEEE Std" value="754-2019"/>
        </reference>
        <reference anchor="ieee802.15.4" target="https://standards.ieee.org/standard/802_15_4-2020.html" quoteTitle="true" derivedAnchor="ieee802.15.4">
          <front>
            <title>IEEE Standard for Low-Rate Wireless Networks</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
          </front>
          <seriesInfo name="IEEE Std" value="802.15.4-2020"/>
        </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 indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4944" target="https://www.rfc-editor.org/info/rfc4944" quoteTitle="true" derivedAnchor="RFC4944">
          <front>
            <title>Transmission of IPv6 Packets over IEEE 802.15.4 Networks</title>
            <author initials="G." surname="Montenegro" fullname="G. Montenegro">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Kushalnagar" fullname="N. Kushalnagar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Hui" fullname="J. Hui">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Culler" fullname="D. Culler">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="September"/>
            <abstract>
              <t indent="0">This document describes the frame format for transmission of IPv6 packets and the method of forming IPv6 link-local addresses and statelessly autoconfigured addresses on IEEE 802.15.4 networks. Additional specifications include a simple header compression scheme using shared context and provisions for packet delivery in IEEE 802.15.4 meshes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4944"/>
          <seriesInfo name="DOI" value="10.17487/RFC4944"/>
        </reference>
        <reference anchor="RFC5497" target="https://www.rfc-editor.org/info/rfc5497" quoteTitle="true" derivedAnchor="RFC5497">
          <front>
            <title>Representing Multi-Value Time in Mobile Ad Hoc Networks (MANETs)</title>
            <author initials="T." surname="Clausen" fullname="T. Clausen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Dearlove" fullname="C. Dearlove">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="March"/>
            <abstract>
              <t indent="0">This document describes a general and flexible TLV (type-length-value structure) for representing time-values, such as an interval or a duration, using the generalized Mobile Ad hoc NETwork (MANET) packet/ message format.  It defines two Message TLVs and two Address Block TLVs for representing validity and interval times for MANET routing protocols.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5497"/>
          <seriesInfo name="DOI" value="10.17487/RFC5497"/>
        </reference>
        <reference anchor="RFC6256" target="https://www.rfc-editor.org/info/rfc6256" quoteTitle="true" derivedAnchor="RFC6256">
          <front>
            <title>Using Self-Delimiting Numeric Values in Protocols</title>
            <author initials="W." surname="Eddy" fullname="W. Eddy">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Davies" fullname="E. Davies">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="May"/>
            <abstract>
              <t indent="0">Self-Delimiting Numeric Values (SDNVs) have recently been introduced as a field type in proposed Delay-Tolerant Networking protocols. SDNVs encode an arbitrary-length non-negative integer or arbitrary- length bitstring with minimum overhead.  They are intended to provide protocol flexibility without sacrificing economy and to assist in future-proofing protocols under development.  This document describes formats and algorithms for SDNV encoding and decoding, along with notes on implementation and usage.  This document is a product of the Delay-Tolerant Networking Research Group and has been reviewed by that group.  No objections to its publication as an RFC were raised.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6256"/>
          <seriesInfo name="DOI" value="10.17487/RFC6256"/>
        </reference>
        <reference anchor="RFC6282" target="https://www.rfc-editor.org/info/rfc6282" quoteTitle="true" derivedAnchor="RFC6282">
          <front>
            <title>Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks</title>
            <author initials="J." surname="Hui" fullname="J. Hui" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="September"/>
            <abstract>
              <t indent="0">This document updates RFC 4944, "Transmission of IPv6 Packets over IEEE 802.15.4 Networks".  This document specifies an IPv6 header compression format for IPv6 packet delivery in Low Power Wireless Personal Area Networks (6LoWPANs).  The compression format relies on shared context to allow compression of arbitrary prefixes.  How the information is maintained in that shared context is out of scope. This document specifies compression of multicast addresses and a framework for compressing next headers.  UDP header compression is specified within this framework.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6282"/>
          <seriesInfo name="DOI" value="10.17487/RFC6282"/>
        </reference>
        <reference anchor="RFC6775" target="https://www.rfc-editor.org/info/rfc6775" quoteTitle="true" derivedAnchor="RFC6775">
          <front>
            <title>Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)</title>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Chakrabarti" fullname="S. Chakrabarti">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Nordmark" fullname="E. Nordmark">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="November"/>
            <abstract>
              <t indent="0">The IETF work in IPv6 over Low-power Wireless Personal Area Network (6LoWPAN) defines 6LoWPANs such as IEEE 802.15.4.  This and other similar link technologies have limited or no usage of multicast signaling due to energy conservation.  In addition, the wireless network may not strictly follow the traditional concept of IP subnets and IP links.  IPv6 Neighbor Discovery was not designed for non- transitive wireless links, as its reliance on the traditional IPv6 link concept and its heavy use of multicast make it inefficient and sometimes impractical in a low-power and lossy network.  This document describes simple optimizations to IPv6 Neighbor Discovery, its addressing mechanisms, and duplicate address detection for Low- power Wireless Personal Area Networks and similar networks.  The document thus updates RFC 4944 to specify the use of the optimizations defined here.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6775"/>
          <seriesInfo name="DOI" value="10.17487/RFC6775"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references pn="section-13.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="CCN-LITE" target="https://github.com/cn-uofbasel/ccn-lite" quoteTitle="true" derivedAnchor="CCN-LITE">
          <front>
            <title>CCN-lite, a lightweight implementation of the CCNx protocol and its variations</title>
            <author/>
          </front>
        </reference>
        <reference anchor="ICNLOWPAN" target="https://doi.org/10.1016/j.comcom.2020.10.002" quoteTitle="true" derivedAnchor="ICNLOWPAN">
          <front>
            <title>Designing a LoWPAN convergence layer for the Information Centric Internet of Things</title>
            <author initials="C." surname="Gündoğan">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="P." surname="Kietzmann">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="T." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="December" year="2020"/>
          </front>
          <refcontent>Computer Communications, Vol. 164, No. 1, p. 114–123, Elsevier</refcontent>
        </reference>
        <reference anchor="I-D.irtf-icnrg-flic" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-irtf-icnrg-flic-02" derivedAnchor="ICNRG-FLIC">
          <front>
            <title>File-Like ICN Collections (FLIC)</title>
            <author initials="C." surname="Tschudin" fullname="Christian Tschudin">
              <organization showOnFrontPage="true">University of Basel</organization>
            </author>
            <author initials="C." surname="Wood" fullname="Christopher A. Wood">
              <organization showOnFrontPage="true">University of California Irvine</organization>
            </author>
            <author initials="M." surname="Mosko" fullname="Marc Mosko">
              <organization showOnFrontPage="true">PARC, Inc.</organization>
            </author>
            <author initials="D." surname="Oran" fullname="David R. Oran" role="editor">
              <organization showOnFrontPage="true">Network Systems Research &amp; Design</organization>
            </author>
            <date month="November" day="4" year="2019"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-icnrg-flic-02"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-irtf-icnrg-flic-02.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="NDN" target="https://doi.org/10.1145/1658939.1658941" quoteTitle="true" derivedAnchor="NDN">
          <front>
            <title>Networking named content</title>
            <author initials="V." surname="Jacobson"/>
            <author initials="D." surname="Smetters"/>
            <author initials="J." surname="Thornton"/>
            <author initials="M." surname="Plass"/>
            <author initials="N." surname="Briggs"/>
            <author initials="R." surname="Braynard"/>
            <date month="December" year="2009"/>
          </front>
          <refcontent>5th Int. Conf. on emerging Networking Experiments and Technologies
	  (ACM CoNEXT)</refcontent>
        </reference>
        <reference anchor="NDN-EXP1" target="http://dx.doi.org/10.1145/2660129.2660144" quoteTitle="true" derivedAnchor="NDN-EXP1">
          <front>
            <title>Information centric networking in the IoT: experiments with NDN in the wild</title>
            <author initials="E." surname="Baccelli">
              <organization showOnFrontPage="true">INRIA</organization>
            </author>
            <author initials="C." surname="Mehlis">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="O." surname="Hahm">
              <organization showOnFrontPage="true">INRIA</organization>
            </author>
            <author initials="TC." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="September" year="2014"/>
          </front>
          <refcontent>Proc. of 1st ACM Conf. on Information-Centric Networking (ICN-2014)
	  ACM DL, pp. 77-86</refcontent>
        </reference>
        <reference anchor="NDN-EXP2" target="https://doi.org/10.1145/3267955.3267967" quoteTitle="true" derivedAnchor="NDN-EXP2">
          <front>
            <title>NDN, CoAP, and MQTT: a comparative measurement study in the IoT</title>
            <author initials="C." surname="Gündoğan">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="P." surname="Kietzmann">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Lenders">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="H." surname="Petersen">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="TC." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="September" year="2018"/>
          </front>
          <refcontent>Proc. of 5th ACM Conf. on Information-Centric Networking (ICN-2018)
	  ACM DL, pp. 159-171</refcontent>
        </reference>
        <reference anchor="NDN-MAC" target="https://doi.org/10.1145/3125719.3125737" quoteTitle="true" derivedAnchor="NDN-MAC">
          <front>
            <title>The need for a name to MAC address mapping in NDN: towards quantifying the resource gain</title>
            <author initials="P." surname="Kietzmann">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="C." surname="Gündoğan">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="TC." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="O." surname="Hahm">
              <organization showOnFrontPage="true">riot-os.org</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="September" year="2017"/>
          </front>
          <refcontent>Proc. of 4th ACM Conf. on Information-Centric Networking (ICN-2017)
	  ACM DL, pp. 36-42</refcontent>
        </reference>
        <reference anchor="NDN-PACKET-SPEC" target="https://named-data.net/doc/NDN-packet-spec/0.3/" quoteTitle="true" derivedAnchor="NDN-PACKET-SPEC">
          <front>
            <title>NDN Packet Format Specification</title>
            <author/>
          </front>
        </reference>
        <reference anchor="RFC7228" target="https://www.rfc-editor.org/info/rfc7228" quoteTitle="true" derivedAnchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Ersue" fullname="M. Ersue">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Keranen" fullname="A. Keranen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="May"/>
            <abstract>
              <t indent="0">The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" quoteTitle="true" derivedAnchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t indent="0">The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t indent="0">CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7476" target="https://www.rfc-editor.org/info/rfc7476" quoteTitle="true" derivedAnchor="RFC7476">
          <front>
            <title>Information-Centric Networking: Baseline Scenarios</title>
            <author initials="K." surname="Pentikousis" fullname="K. Pentikousis" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Ohlman" fullname="B. Ohlman">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Corujo" fullname="D. Corujo">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Boggia" fullname="G. Boggia">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Tyson" fullname="G. Tyson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Davies" fullname="E. Davies">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Molinaro" fullname="A. Molinaro">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Eum" fullname="S. Eum">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="March"/>
            <abstract>
              <t indent="0">This document aims at establishing a common understanding about a set of scenarios that can be used as a base for the evaluation of different information-centric networking (ICN) approaches so that they can be tested and compared against each other while showcasing their own advantages.  Towards this end, we review the ICN literature and document scenarios which have been considered in previous performance evaluation studies.  We discuss a variety of aspects that an ICN solution can address.  This includes general aspects, such as, network efficiency, reduced complexity, increased scalability and reliability, mobility support, multicast and caching performance, real-time communication efficiency, energy consumption frugality, and disruption and delay tolerance.  We detail ICN-specific aspects as well, such as information security and trust, persistence, availability, provenance, and location independence.</t>
              <t indent="0">This document is a product of the IRTF Information-Centric Networking Research Group (ICNRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7476"/>
          <seriesInfo name="DOI" value="10.17487/RFC7476"/>
        </reference>
        <reference anchor="RFC7927" target="https://www.rfc-editor.org/info/rfc7927" quoteTitle="true" derivedAnchor="RFC7927">
          <front>
            <title>Information-Centric Networking (ICN) Research Challenges</title>
            <author initials="D." surname="Kutscher" fullname="D. Kutscher" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Eum" fullname="S. Eum">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Pentikousis" fullname="K. Pentikousis">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Psaras" fullname="I. Psaras">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Corujo" fullname="D. Corujo">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Saucez" fullname="D. Saucez">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Schmidt" fullname="T. Schmidt">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Waehlisch" fullname="M. Waehlisch">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="July"/>
            <abstract>
              <t indent="0">This memo describes research challenges for Information-Centric Networking (ICN), an approach to evolve the Internet infrastructure to directly support information distribution by introducing uniquely named data as a core Internet principle.  Data becomes independent from location, application, storage, and means of transportation, enabling or enhancing a number of desirable features, such as security, user mobility, multicast, and in-network caching. Mechanisms for realizing these benefits is the subject of ongoing research in the IRTF and elsewhere.  This document describes current research challenges in ICN, including naming, security, routing, system scalability, mobility management, wireless networking, transport services, in-network caching, and network management.</t>
              <t indent="0">This document is a product of the IRTF Information-Centric Networking Research Group (ICNRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7927"/>
          <seriesInfo name="DOI" value="10.17487/RFC7927"/>
        </reference>
        <reference anchor="RFC7945" target="https://www.rfc-editor.org/info/rfc7945" quoteTitle="true" derivedAnchor="RFC7945">
          <front>
            <title>Information-Centric Networking: Evaluation and Security Considerations</title>
            <author initials="K." surname="Pentikousis" fullname="K. Pentikousis" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Ohlman" fullname="B. Ohlman">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Davies" fullname="E. Davies">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Spirou" fullname="S. Spirou">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Boggia" fullname="G. Boggia">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="September"/>
            <abstract>
              <t indent="0">This document presents a number of considerations regarding evaluating Information-Centric Networking (ICN) and sheds some light on the impact of ICN on network security.  It also surveys the evaluation tools currently available to researchers in the ICN area and provides suggestions regarding methodology and metrics.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7945"/>
          <seriesInfo name="DOI" value="10.17487/RFC7945"/>
        </reference>
        <reference anchor="RFC8025" target="https://www.rfc-editor.org/info/rfc8025" quoteTitle="true" derivedAnchor="RFC8025">
          <front>
            <title>IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Paging Dispatch</title>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Cragie" fullname="R. Cragie">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="November"/>
            <abstract>
              <t indent="0">This specification updates RFC 4944 to introduce a new context switch mechanism for IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) compression, expressed in terms of Pages and signaled by a new Paging Dispatch.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8025"/>
          <seriesInfo name="DOI" value="10.17487/RFC8025"/>
        </reference>
        <reference anchor="RFC8569" target="https://www.rfc-editor.org/info/rfc8569" quoteTitle="true" derivedAnchor="RFC8569">
          <front>
            <title>Content-Centric Networking (CCNx) Semantics</title>
            <author initials="M." surname="Mosko" fullname="M. Mosko">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Solis" fullname="I. Solis">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Wood" fullname="C. Wood">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="July"/>
            <abstract>
              <t indent="0">This document describes the core concepts of the Content-Centric Networking (CCNx) architecture and presents a network protocol based on two messages: Interests and Content Objects.  It specifies the set of mandatory and optional fields within those messages and describes their behavior and interpretation.  This architecture and protocol specification is independent of a specific wire encoding.</t>
              <t indent="0">The protocol also uses a control message called an Interest Return, whereby one system can return an Interest message to the previous hop due to an error condition.  This indicates to the previous hop that the current system will not respond to the Interest.</t>
              <t indent="0">This document is a product of the Information-Centric Networking Research Group (ICNRG).  The document received wide review among ICNRG participants.  Two full implementations are in active use and have informed the technical maturity of the protocol specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8569"/>
          <seriesInfo name="DOI" value="10.17487/RFC8569"/>
        </reference>
        <reference anchor="RFC8609" target="https://www.rfc-editor.org/info/rfc8609" quoteTitle="true" derivedAnchor="RFC8609">
          <front>
            <title>Content-Centric Networking (CCNx) Messages in TLV Format</title>
            <author initials="M." surname="Mosko" fullname="M. Mosko">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Solis" fullname="I. Solis">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Wood" fullname="C. Wood">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="July"/>
            <abstract>
              <t indent="0">Content-Centric Networking (CCNx) is a network protocol that uses a hierarchical name to forward requests and to match responses to requests.  This document specifies the encoding of CCNx messages in a TLV packet format, including the TLV types used by each message element and the encoding of each value.  The semantics of CCNx messages follow the encoding-independent CCNx Semantics specification.</t>
              <t indent="0">This document is a product of the Information Centric Networking research group (ICNRG).  The document received wide review among ICNRG participants and has two full implementations currently in active use, which have informed the technical maturity of the protocol specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8609"/>
          <seriesInfo name="DOI" value="10.17487/RFC8609"/>
        </reference>
        <reference anchor="RFC8930" target="https://www.rfc-editor.org/info/rfc8930" quoteTitle="true" derivedAnchor="RFC8930">
          <front>
            <title>On Forwarding 6LoWPAN Fragments over a Multi-Hop IPv6 Network</title>
            <author initials="T." surname="Watteyne" fullname="T. Watteyne" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2020" month="November"/>
            <abstract>
              <t indent="0">This document provides generic rules to enable the forwarding of an IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) fragment over a route-over network. Forwarding fragments can improve both end-to-end latency and reliability as well as reduce the buffer requirements in intermediate nodes; it may be implemented using RFC 4944 and Virtual Reassembly Buffers (VRBs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8930"/>
          <seriesInfo name="DOI" value="10.17487/RFC8930"/>
        </reference>
        <reference anchor="RFC8931" target="https://www.rfc-editor.org/info/rfc8931" quoteTitle="true" derivedAnchor="RFC8931">
          <front>
            <title>IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Selective Fragment Recovery</title>
            <author initials="P." surname="Thubert" fullname="P. Thubert" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2020" month="November"/>
            <abstract>
              <t indent="0">This document updates RFC 4944 with a protocol that forwards individual fragments across a route-over mesh and recovers them end to end, with congestion control capabilities to protect the network.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8931"/>
          <seriesInfo name="DOI" value="10.17487/RFC8931"/>
        </reference>
        <reference anchor="RIOT" target="https://doi.org/10.1109/JIOT.2018.2815038" quoteTitle="true" derivedAnchor="RIOT">
          <front>
            <title>RIOT: An Open Source Operating System for Low-End Embedded Devices in the IoT</title>
            <author initials="E." surname="Baccelli">
              <organization showOnFrontPage="true">INRIA</organization>
            </author>
            <author initials="C." surname="Gündoğan">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="O." surname="Hahm">
              <organization showOnFrontPage="true">INRIA and FU Berlin</organization>
            </author>
            <author initials="P." surname="Kietzmann">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="MS." surname="Lenders">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="H." surname="Petersen">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="K." surname="Schleiser">
              <organization showOnFrontPage="true">INRIA and FU Berlin</organization>
            </author>
            <author initials="TC." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="December" year="2018"/>
          </front>
          <refcontent>IEEE Internet of Things Journal Vol. 5, No. 6, p.
	  4428-4440</refcontent>
        </reference>
        <reference anchor="SFR-ICNLOWPAN" target="https://doi.org/10.1145/3405656.3418719" quoteTitle="true" derivedAnchor="SFR-ICNLOWPAN">
          <front>
            <title>Connecting the Dots: Selective Fragment Recovery in ICNLoWPAN</title>
            <author initials="M." surname="Lenders">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <author initials="C." surname="Gündoğan">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="TC." surname="Schmidt">
              <organization showOnFrontPage="true">HAW Hamburg</organization>
            </author>
            <author initials="M." surname="Wählisch">
              <organization showOnFrontPage="true">FU Berlin</organization>
            </author>
            <date month="September" year="2020"/>
          </front>
          <refcontent>Proc. of 7th ACM Conf. on Information-Centric Networking (ICN-2020)
	  ACM DL, pp. 70-76</refcontent>
        </reference>
        <reference anchor="TLV-ENC-802.15.4" target="https://datatracker.ietf.org/meeting/interim-2015-icnrg-01/materials/slides-interim-2015-icnrg-1-2" quoteTitle="true" derivedAnchor="TLV-ENC-802.15.4">
          <front>
            <title>CCN and NDN TLV encodings in 802.15.4 packets</title>
            <author initials="M." surname="Mosko"/>
            <author initials="C." surname="Tschudin"/>
            <date month="January" year="2015"/>
          </front>
        </reference>
        <reference anchor="WIRE-FORMAT-CONSID" target="https://datatracker.ietf.org/meeting/interim-2015-icnrg-01/materials/slides-interim-2015-icnrg-1-8" quoteTitle="true" derivedAnchor="WIRE-FORMAT-CONSID">
          <front>
            <title>CCN/NDN Protocol Wire Format and Functionality Considerations</title>
            <author initials="G." surname="Wang"/>
            <author initials="C." surname="Tschudin"/>
            <author initials="R." surname="Ravindran"/>
            <date month="January" year="2015"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="sec.EstimatedSizeReduction" numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-estimated-size-reduction">Estimated Size Reduction</name>
      <t indent="0" pn="section-appendix.a-1">In the following, a theoretical evaluation is given to estimate the
      gains of ICN LoWPAN compared to uncompressed CCNx and NDN messages.</t>
      <t indent="0" pn="section-appendix.a-2">We assume that <tt>n</tt> is the number of name
      components; <tt>comps_n</tt> denotes the sum of n
      name component lengths. We also assume that the length of each name
      component is lower than 16 bytes. The length of the content is given by
      <tt>clen</tt>. The lengths of TLV components are 
      specific to the CCNx or NDN encoding and are outlined below.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1">
        <name slugifiedName="name-ndn">NDN</name>
        <t indent="0" pn="section-appendix.a.1-1">The NDN TLV encoding has variable-sized TLV fields. For simplicity,
        the 1-byte form of each TLV component is assumed. A typical TLV
        component therefore is of size 2 (Type field + Length field) + the
        actual value.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1.1">
          <name slugifiedName="name-interest">Interest</name>
          <t indent="0" pn="section-appendix.a.1.1-1"><xref target="fig.Size.NDN.interest.uncompressed" format="default" sectionFormat="of" derivedContent="Figure 34"/> depicts the
          size requirements for a basic, uncompressed NDN Interest containing
          a CanBePrefix TLV, a MustBeFresh TLV, an InterestLifetime TLV set to
          4 seconds, and a HopLimit TLV set to 6. Numbers below represent the
          amount of bytes.</t>
          <figure anchor="fig.Size.NDN.interest.uncompressed" align="left" suppress-title="false" pn="figure-34">
            <name slugifiedName="name-estimated-size-of-an-uncomp">Estimated Size of an Uncompressed NDN Interest</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.1.1-2.1">
------------------------------------,
Interest TLV            = 2         |
  ---------------------,            |
  Name                 |  2 +       |
    NameComponents      = 2n +      |
                       |  comps_n   |
  ---------------------'             = 21 + 2n + comps_n
  CanBePrefix           = 2         |
  MustBeFresh           = 2         |
  Nonce                 = 6         |
  InterestLifetime      = 4         |
  HopLimit              = 3         |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.1.1-3"><xref target="fig.Size.NDN.interest.compressed" format="default" sectionFormat="of" derivedContent="Figure 35"/> depicts the
          size requirements after compression.</t>
          <figure anchor="fig.Size.NDN.interest.compressed" align="left" suppress-title="false" pn="figure-35">
            <name slugifiedName="name-estimated-size-of-a-compres">Estimated Size of a Compressed NDN Interest</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.1.1-4.1">
------------------------------------,
Dispatch Page Switch    = 1         |
NDN Interest Dispatch   = 2         |
Interest TLV            = 1         |
-----------------------,            |
Name                   |            |
  NameComponents        = n/2 +      = 10 + n/2 + comps_n
                       |  comps_n   |
-----------------------'            |
Nonce                   = 4         |
HopLimit                = 1         |
InterestLifetime        = 1         |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.1.1-5">The size difference is 11 + 1.5n bytes.</t>
          <t indent="0" pn="section-appendix.a.1.1-6">For the name <tt>/DE/HH/HAW/BT7</tt>, the
          total size gain is 17 bytes, which is 43% of the uncompressed
          packet.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1.2">
          <name slugifiedName="name-data">Data</name>
          <t indent="0" pn="section-appendix.a.1.2-1"><xref target="fig.Size.NDN.Data.uncompressed" format="default" sectionFormat="of" derivedContent="Figure 36"/> depicts the size
          requirements for a basic, uncompressed NDN Data containing a
          FreshnessPeriod as MetaInfo. A FreshnessPeriod of 1 minute is
          assumed, and the value is encoded using 1 byte. An HMACWithSha256 is
          assumed as a signature. The key locator is assumed to contain a Name
          TLV of length klen.</t>
          <figure anchor="fig.Size.NDN.Data.uncompressed" align="left" suppress-title="false" pn="figure-36">
            <name slugifiedName="name-estimated-size-of-an-uncompr">Estimated Size of an Uncompressed NDN Data</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.1.2-2.1">
------------------------------------,
Data TLV                = 2         |
  ---------------------,            |
  Name                 |  2 +       |
    NameComponents      = 2n +      |
                       |  comps_n   |
  ---------------------'            |
  ---------------------,            |
  MetaInfo             |            |
    FreshnessPeriod     = 6         |
                       |             = 53 + 2n + comps_n +
  ---------------------'            |  clen + klen
  Content               = 2 + clen  |
  ---------------------,            |
  SignatureInfo        |            |
    SignatureType      |            |
      KeyLocator        = 41 + klen |
  SignatureValue       |            |
    DigestSha256       |            |
  ---------------------'            |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.1.2-3"><xref target="fig.Size.NDN.Data.compressed" format="default" sectionFormat="of" derivedContent="Figure 37"/> depicts the size
          requirements for the compressed version of the above Data
          packet.</t>
          <figure anchor="fig.Size.NDN.Data.compressed" align="left" suppress-title="false" pn="figure-37">
            <name slugifiedName="name-estimated-size-of-a-compress">Estimated Size of a Compressed NDN Data</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.1.2-4.1">
------------------------------------,
Dispatch Page Switch    = 1         |
NDN Data Dispatch       = 2         |
-----------------------,            |
Name                   |            |
  NameComponents        = n/2 +     |
                       |  comps_n    = 38 + n/2 + comps_n +
-----------------------'            |  clen + klen
Content                 = 1 + clen  |
KeyLocator              = 1 + klen  |
DigestSha256            = 32        |
FreshnessPeriod         = 1         |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.1.2-5">The size difference is 15 + 1.5n bytes.</t>
          <t indent="0" pn="section-appendix.a.1.2-6">For the name <tt>/DE/HH/HAW/BT7</tt>, the
          total size gain is 21 bytes.</t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2">
        <name slugifiedName="name-ccnx">CCNx</name>
        <t indent="0" pn="section-appendix.a.2-1">The CCNx TLV encoding defines a 2-byte encoding for Type and
        Length fields, summing up to 4 bytes in total without a value.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2.1">
          <name slugifiedName="name-interest-2">Interest</name>
          <t indent="0" pn="section-appendix.a.2.1-1"><xref target="fig.Size.CCNx.interest.uncompressed" format="default" sectionFormat="of" derivedContent="Figure 38"/> depicts
	  the size requirements for a basic, uncompressed CCNx Interest. No
          hop-by-hop TLVs are included, the protocol version is assumed to be
          1, and the Reserved field is assumed to be 0. A KeyIdRestriction TLV
          with T_SHA-256 is included to limit the responses to Content Objects
          containing the specific key.</t>
          <figure anchor="fig.Size.CCNx.interest.uncompressed" align="left" suppress-title="false" pn="figure-38">
            <name slugifiedName="name-estimated-size-of-an-uncompre">Estimated Size of an Uncompressed CCNx Interest</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.2.1-2.1">
------------------------------------,
Fixed Header            = 8         |
Message                 = 4         |
  ---------------------,            |
  Name                 |  4 +        = 56 + 4n + comps_n
    NameSegments        = 4n +      |
                       |  comps_n   |
  ---------------------'            |
  KeyIdRestriction      = 40        |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.2.1-3"><xref target="fig.Size.CCNx.interest.compressed" format="default" sectionFormat="of" derivedContent="Figure 39"/> 
	  depicts the size requirements after compression.</t>
          <figure anchor="fig.Size.CCNx.interest.compressed" align="left" suppress-title="false" pn="figure-39">
            <name slugifiedName="name-estimated-size-of-a-compresse">Estimated Size of a Compressed CCNx Interest</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.2.1-4.1">
------------------------------------,
Dispatch Page Switch    = 1         |
CCNx Interest Dispatch  = 2         |
Fixed Header            = 3         |
-----------------------,            |
Name                   |             = 38 + n/2 + comps_n
  NameSegments          = n/2 +     |
                       |  comps_n   |
-----------------------'            |
T_SHA-256               = 32        |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.2.1-5">The size difference is 18 + 3.5n bytes.</t>
          <t indent="0" pn="section-appendix.a.2.1-6">For the name <tt>/DE/HH/HAW/BT7</tt>, the size
          is reduced by 53 bytes, which is 53% of the uncompressed
          packet.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2.2">
          <name slugifiedName="name-content-object">Content Object</name>
          <t indent="0" pn="section-appendix.a.2.2-1"><xref target="fig.Size.CCNx.Data.uncompressed" format="default" sectionFormat="of" derivedContent="Figure 40"/> 
	  depicts the size
          requirements for a basic, uncompressed CCNx Content Object
          containing an ExpiryTime Message TLV, an HMAC_SHA-256 signature, the
          signature time, and a hash of the shared secret key. In the fixed
          header, the protocol version is assumed to be 1 and the Reserved
          field is assumed to be 0</t>
          <figure anchor="fig.Size.CCNx.Data.uncompressed" align="left" suppress-title="false" pn="figure-40">
            <name slugifiedName="name-estimated-size-of-an-uncompres">Estimated Size of an Uncompressed CCNx Content Object</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.2.2-2.1">
------------------------------------,
Fixed Header            = 8         |
Message                 = 4         |
  ---------------------,            |
  Name                 |  4 +       |
    NameSegments        = 4n +      |
                       |  comps_n   |
  ---------------------'            |
  ExpiryTime            = 12         = 124 + 4n + comps_n + clen
  Payload               = 4 + clen  |
  ---------------------,            |
  ValidationAlgorithm  |            |
    T_HMAC-256          = 56        |
      KeyID            |            |
    SignatureTime      |            |
  ---------------------'            |
  ValidationPayload     = 36        |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.2.2-3"><xref target="fig.Size.CCNx.Data.compressed" format="default" sectionFormat="of" derivedContent="Figure 41"/> 
	  depicts the size
          requirements for a basic, compressed CCNx Data.</t>
          <figure anchor="fig.Size.CCNx.Data.compressed" align="left" suppress-title="false" pn="figure-41">
            <name slugifiedName="name-estimated-size-of-a-compressed">Estimated Size of a Compressed CCNx Data Object</name>
            <artwork align="center" name="" type="" alt="" pn="section-appendix.a.2.2-4.1">
------------------------------------,
Dispatch Page Switch    = 1         |
CCNx Content Dispatch   = 3         |
Fixed Header            = 2         |
-----------------------,            |
Name                   |            |
  NameSegments          = n/2 +     |
                       |  comps_n    = 89 + n/2 + comps_n + clen
-----------------------'            |
ExpiryTime              = 8         |
Payload                 = 1 + clen  |
T_HMAC-SHA256           = 32        |
SignatureTime           = 8         |
ValidationPayload       = 34        |
------------------------------------'
</artwork>
          </figure>
          <t indent="0" pn="section-appendix.a.2.2-5">The size difference is  35 + 3.5n bytes.</t>
          <t indent="0" pn="section-appendix.a.2.2-6">For the name <tt>/DE/HH/HAW/BT7</tt>, the size
          is reduced by 70 bytes, which is 40% of the uncompressed packet
          containing a 4-byte payload.</t>
        </section>
      </section>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.b-1">This work was stimulated by fruitful discussions in the ICNRG
      and the communities of RIOT and CCNlite. We would like to
      thank all active members for constructive thoughts and feedback. In
      particular, the authors would like to thank (in alphabetical order)
      <contact fullname="Peter Kietzmann"/>, <contact fullname="Dirk Kutscher"/>, 
      <contact fullname="Martine Lenders"/>, <contact fullname="Colin Perkins"/>, 
      and <contact fullname="Junxiao Shi"/>. The
      hop-wise stateful name compression was brought up in a discussion by
      <contact fullname="Dave Oran"/>, which is gratefully acknowledged. 
      Larger parts of this work
      are inspired by <xref target="RFC4944" format="default" sectionFormat="of" derivedContent="RFC4944"/> and 
      <xref target="RFC6282" format="default" sectionFormat="of" derivedContent="RFC6282"/>.
      Special mention goes to <contact fullname="Mark Mosko"/>, as well as 
      <contact fullname="G.Q. Wang"/> and <contact fullname="Ravi Ravindran"/>, 
      as their previous work in <xref target="TLV-ENC-802.15.4" format="default" sectionFormat="of" derivedContent="TLV-ENC-802.15.4"/>
      and <xref target="WIRE-FORMAT-CONSID" format="default" sectionFormat="of" derivedContent="WIRE-FORMAT-CONSID"/> provided a good base for our
      discussions on stateless header compression mechanisms.
      Many thanks also to <contact fullname="Carsten Bormann"/> and 
      <contact fullname="Lars Eggert"/>, who contributed in-depth comments during 
      the IRSG review.
      This work was supported in part by the German Federal Ministry of Research and
      Education within the projects I3 and RAPstore.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Cenk Gündoğan" initials="C." surname="Gündoğan">
        <organization abbrev="HAW Hamburg" showOnFrontPage="true">HAW Hamburg</organization>
        <address>
          <postal>
            <street>Berliner Tor 7</street>
            <city>Hamburg</city>
            <code>D-20099</code>
            <country>Germany</country>
          </postal>
          <phone>+4940428758067</phone>
          <email>cenk.guendogan@haw-hamburg.de</email>
          <uri>http://inet.haw-hamburg.de/members/cenk-gundogan</uri>
        </address>
      </author>
      <author fullname="Thomas C. Schmidt" initials="T." surname="Schmidt">
        <organization abbrev="HAW Hamburg" showOnFrontPage="true">HAW Hamburg</organization>
        <address>
          <postal>
            <street>Berliner Tor 7</street>
            <city>Hamburg</city>
            <code>D-20099</code>
            <country>Germany</country>
          </postal>
          <email>t.schmidt@haw-hamburg.de</email>
          <uri>http://inet.haw-hamburg.de/members/schmidt</uri>
        </address>
      </author>
      <author fullname="Matthias Wählisch" initials="M." surname="Wählisch">
        <organization abbrev="link-lab &amp; FU Berlin" showOnFrontPage="true">link-lab &amp; FU Berlin</organization>
        <address>
          <postal>
            <street>Hoenower Str. 35</street>
            <city>Berlin</city>
            <code>D-10318</code>
            <country>Germany</country>
          </postal>
          <email>mw@link-lab.net</email>
          <uri>https://www.mi.fu-berlin.de/en/inf/groups/ilab/members/waehlisch.html</uri>
        </address>
      </author>
      <author fullname="Christopher Scherb" initials="C." surname="Scherb">
        <organization abbrev="FHNW" showOnFrontPage="true">University of Applied Sciences and Arts Northwestern Switzerland</organization>
        <address>
          <postal>
            <street>Peter Merian-Str. 86</street>
            <city>Basel</city>
            <code>4002</code>
            <country>Switzerland</country>
          </postal>
          <email>christopher.scherb@fhnw.ch</email>
        </address>
      </author>
      <author fullname="Claudio Marxer" initials="C." surname="Marxer">
        <organization abbrev="University of Basel" showOnFrontPage="true">University of Basel</organization>
        <address>
          <postal>
            <street>Spiegelgasse 1</street>
            <city>Basel</city>
            <code>4051</code>
            <country>Switzerland</country>
          </postal>
          <email>claudio.marxer@unibas.ch</email>
        </address>
      </author>
      <author fullname="Christian Tschudin" initials="C." surname="Tschudin">
        <organization abbrev="University of Basel" showOnFrontPage="true">University of Basel</organization>
        <address>
          <postal>
            <street>Spiegelgasse 1</street>
            <city>Basel</city>
            <code>4051</code>
            <country>Switzerland</country>
          </postal>
          <email>christian.tschudin@unibas.ch</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
