<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<rfc number="8025" ipr="trust200902" submissionType="IETF" consensus="yes" category="std" updates="4944">

<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc authorship="yes"?>
<?rfc tocappendix="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

  <front>
    <title abbrev="6LoWPAN Paging Dispatch">IPv6 over Low-Power&nbsp;Wireless Personal&nbsp;Area Network&nbsp;(6LoWPAN)&nbsp;Paging&nbsp;Dispatch</title>

    <author initials="P." surname="Thubert" fullname="Pascal Thubert" role="editor">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <postal>
          <street>Building D - Regus</street> <street>45 Allee des Ormes</street> <street>BP1200</street>
          <city>Mougins - Sophia Antipolis</city>
          <code>06254</code>
          <country>France</country>
        </postal>
        <phone>+33 4 97 23 26 34</phone>
        <email>pthubert@cisco.com</email>
      </address>
    </author>
    <author initials="R." surname="Cragie" fullname="Robert Cragie">
      <organization abbrev="ARM">ARM Ltd.</organization>
      <address>
        <postal>
          <street>110 Fulbourn Road</street>
          <city>Cambridge</city>
          <code>CB1 9NJ</code>
          <country>United Kingdom</country>
        </postal>
        <email>robert.cragie@gridmerge.com</email>
      </address>
    </author>

    <date month="November" year="2016"/>

    <area>Internet</area>
    <workgroup>6lo</workgroup>
    
    <abstract>


<t>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>

  <middle>


<section anchor="introduction" title="Introduction">

<t>
   The design of Low-Power and Lossy Networks (LLNs) is generally
   focused on saving energy, which is often a very constrained resource.
   Other constraints, such as memory capacity and duty cycle restrictions
   on LLN devices, usually derive from that primary concern.  Energy
   is often available only from primary batteries that are expected to last
   for years or is scavenged from the environment in very limited
   amounts.  Any protocol that is intended for use in LLNs must be
   designed with a primary focus on saving energy, which is a strict
   requirement.
   
   </t>

<t>
   Controlling the amount of data transmission is one possible means of
   saving energy.  In a number of LLN standards, the frame size is limited
   to much smaller values than the IPv6 maximum transmission unit (MTU)
   of 1280 bytes.  In particular, an LLN that relies on the classical
   Physical Layer (PHY) of IEEE 802.15.4 <xref target="IEEE.802.15.4"/> is
   limited to 127 bytes per frame.
   The need to compress IPv6 packets over IEEE 802.15.4 led to the
   <xref target="RFC6282">6LoWPAN Header Compression (6LoWPAN-HC)</xref> work.

</t>

<t>
   As more and more protocols need to be compressed, the encoding
   capabilities of the original dispatch defined in the 6LowPAN adaptation-layer
   framework (<xref target="RFC4944"/> and <xref target="RFC6282"/>)
   becomes saturated.
   This specification introduces a new context switch mechanism for 6LoWPAN
   compression, expressed in terms of Pages and signaled by a new Paging
   Dispatch mechanism.

</t>

</section>
<section anchor="terminology" title="Terminology">

<t>
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   <xref target="RFC2119"/>.

</t>

<t>
   The terminology used in this document is consistent with and
   incorporates that described in <xref target="RFC7102">"Terms Used in
   Routing for Low-Power and Lossy Networks" </xref> and 
   <xref target="RFC7228">"Terminology for Constrained-Node Networks" </xref>.
</t>

</section>
<section anchor="updating-rfc-4944" title="Updating RFC 4944">

<t>
   This document adapts 6LoWPAN while maintaining backward compatibility
   with <xref target="RFC4944">IPv6 over IEEE 802.15.4</xref>
   by introducing the concept of a "parsing context" in the 6LoWPAN 
   parser, a context being identified by a Page Number.
   This specification defines 16 Pages.
</t>

<t>
   Pages are delimited in a 6LoWPAN packet by a Paging Dispatch value
   that indicates the next current Page.  The Page Number is encoded in
   a Paging Dispatch with the Value Bit Pattern of 11 11xxxx, where xxxx
   is the Page Number, 0 to 15, as described in <xref target="Pagenb"/>:
</t>

<figure title="Paging Dispatch with Page Number Encoding" anchor="Pagenb"><artwork><![CDATA[
                         0               
                         0 1 2 3 4 5 6 7 
                        +-+-+-+-+-+-+-+-+
                        |1|1|1|1|Page Nb|
                        +-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>
   Values of the Dispatch byte defined in <xref target="RFC4944"/> are
   considered as belonging to the Page 0 parsing context, which is the
   default and does not need to be signaled explicitly at the beginning of a
   6LoWPAN packet. This ensures backward compatibility with existing
   implementations of 6LoWPAN.
</t>

<t>
   The Dispatch bits defined in <xref target="RFC4944"/> are used in Page 0
   and are free to be reused in Pages 1 to 15. In <xref target="new-disp"/>, this
   specification allocates some values in
   Page 1 and leaves the rest open for future
   allocations. 
</t>

<t>
Values made available by this specification in Pages 1 to 14 are to be
assigned for new protocols whereas Page 15 is reserved for Experimental Use
<xref target="RFC5226"/>.
</t>

<t>
   Note: This specification does not use the Escape Dispatch, which
   extends Page 0 to more values, but rather allocates another Dispatch
   Bit Pattern (11 11xxxx) for a new Paging Dispatch that is present in
   all Pages, including Page 0 and Pages defined in future
   specifications, to indicate the next parsing context represented by
   its Page Number.  The rationale for avoiding that approach is that
   there can be multiple occurrences of a new header indexed by this
   specification in a single frame and the overhead on an octet each
   time for the Escape Dispatch would be prohibitive.
</t>

<t>
   A Page (say Page N) is said to be active once the Page N Paging
   Dispatch is parsed, and it remains active until another Paging
   Dispatch is parsed.
</t>



</section>

<section anchor="new-disp" title="Page 1 Paging Dispatch">
<t>
   This specification defines some special properties for Page 1,
   detailed below:
<list>
<t>
      The Dispatch bits defined for LOWPAN_IPHC by the <xref target="RFC6282">
      "Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks"
      </xref> are defined with the same values in Page 1, so there is no need to
      switch context from Page 1 to Page 0 to decode a packet that is encoded
      per <xref target="RFC6282"/>.
</t>

<t>
      Mesh Headers represent Layer 2 information and are processed
      before any Layer 3 information that is encoded in Page 1.  If a
      6LoWPAN packet requires a Mesh Header, the Mesh Header MUST always
      be placed in the packet before the first Page 1 Paging Dispatch,
      if any.
</t>

<t>
      For the same reason, Fragment Headers as defined in
      <xref target="RFC4944"/> MUST always be placed in the packet before the
      first Page 1 Paging Dispatch, if any.
</t>

<t>
      The NALP Dispatch Bit Pattern as defined in <xref target="RFC4944"/> is
      only defined for the first octet in the packet. Switching back to Page
      0 for NALP inside a 6LoWPAN packet does not make sense.
</t>

<t>
      As a result, there is no need to restore the Page 0
      parsing context after a context was switched to Page 1, so the
      value for the Page 0 Paging Dispatch of 11 110000 may not actually
      occur in those packets that adhere to 6LoWPAN specifications
      available at the time of writing this specification.
</t>
</list>
</t>
</section> 

<section anchor="security-considerations" title="Security Considerations">

<t>The security considerations of <xref target="RFC4944"/> and <xref target="RFC6282"/> apply.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<section anchor="disptype" title="Page Switch Dispatch Types">
<t>
   This document allocates 16 values for "Page switch" from the "Dispatch Type Field" registry 
   that was created by <xref target="RFC4944"/>. The allocated values are
   from 11 110000 through 11 111111 and represent Page Numbers 0 through 15 as
   discussed in this document.
</t>

</section>

<section anchor="perpagedisptype" title="New Column in Dispatch Type Registry">


<t>
   This document extends the "Dispatch Type Field" registry, which was created by
   <xref target="RFC4944"/> and updated by <xref target="RFC6282"/>, by adding
   a new column called "Page".   
</t>
<t>
   This document defines 16 Pages, "Page 0" to "Page 15". 
</t>
<t>
   The preexisting registry content is assigned to "Page 0".
</t>
<t>   
   This document also associates the Dispatch type field values that are
   allocated for LOWPAN_IPHC by <xref target="RFC6282"/> to Page
   1. These values range from 01 100000 through 01 111111 and have the same
   definition in Page 1 as they do in Page 0; as a result, Page 0 and Page 1 are grouped together in the registry for this range.
</t>
<t>
   Values ranging from 00 000000 to 11 101111 in Page 15 (that is, all
   of Page 15 except the space used for Page switch) are reserved for
   Experimental Use <xref target="RFC5226"/> and shall not be assigned.
</t>
<t><xref target="ppc"/> represents the updates to the registry as described                  
   above. Refer to &lt;http://www.iana.org/assignments/_6lowpan-parameters&gt; for             
   the complete list of updates.   

	  <figure align="center" 
title="Integrating the New Page Column"  anchor="ppc"> <artwork align="left">
<![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Bit Pattern  |    Page     | Header Type |    Reference            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |     0       |  NALP       | RFC 4944, this document |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  00 xxxxxx    |    1-14     |  Unassigned |                         |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
|               |    15       |  Reserved   |     this document       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |     0       |  ESC        | RFC 6282, this document |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  01 000000    |    1-14     |  Unassigned |                         |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
|               |    15       |  Reserved   |     this document       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      ...                   ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |    0-1      | LOWPAN_IPHC | RFC 6282, this document |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  01 1xxxxx    |    2-14     |  Unassigned |                         |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
|               |    15       |  Reserved   |     this document       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      ...                   ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  11 11xxxx    |    0-15     | Page switch |      this document      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


]]>
</artwork>  </figure>
</t>
<t>
   Future assignments in these registries are to be coordinated via IANA
   under the policy of "Specification Required" <xref target="RFC5226"/>.
   It is expected that this policy will allow for other (non-IETF)
   organizations to more easily obtain assignments.
</t>

</section>


</section>

  </middle>

  <back>

    <references title='Normative References'>

	  <?rfc include="reference.RFC.2119"?>
	  <?rfc include="reference.RFC.5226"?>
	  <?rfc include="reference.RFC.4944"?>
	  <?rfc include="reference.RFC.6282"?>

<reference anchor='IEEE.802.15.4' target='http://ieeexplore.ieee.org/document/7460875/'>
 <front>
  <title>IEEE Standard for Low-Rate Wireless Networks
</title>
  <author>
   <organization>IEEE</organization>
  </author>
  <date />

 </front>
 <seriesInfo name='IEEE' value='802.15.4-2015' />
 <seriesInfo name='DOI' value='10.1109/IEEESTD.2016.7460875' />
</reference>


    </references>

    <references title='Informative References'>


	  <?rfc include="reference.RFC.7102"?>
	  <?rfc include="reference.RFC.7228"?>

    </references>

<section anchor="acknowledgments" title="Acknowledgments" numbered="no">

<t>The authors wish to thank Tom Phinney, Thomas Watteyne, Tengfei Chang, Martin Turon,
James Woodyatt, Samita Chakrabarti, Jonathan Hui, Gabriel Montenegro, and Ralph Droms
for constructive reviews of the design in the 6lo working group.</t>

</section>

  </back>
</rfc>

