Network Working Group                                             J. Hui
Internet-Draft                                                 D. Culler
Intended status: Standards Track                   Arch Rock Corporation
Expires: December 30, 2007                                 June 28, 2007


   Stateless IPv6 Header Compression for Globally Routable Packets in
                          6LoWPAN Subnetworks
                       draft-hui-6lowpan-hc1g-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on December 30, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   This document specifies a stateless IP header compression scheme for
   IPv6 packet delivery in 6LoWPAN subnetworks.  The compression scheme
   focuses on LoWPAN nodes that may have global unicast addresses
   assigned to their interfaces.






Hui & Culler            Expires December 30, 2007               [Page 1]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  4
   2.  Header Compression . . . . . . . . . . . . . . . . . . . . . .  4
     2.1.  LOWPAN_HC1g Encoding of IPv6 Header Fields . . . . . . . .  5
     2.2.  LOWPAN_HC2 Encoding of UDP Header Fields . . . . . . . . .  7
     2.3.  ICMP and TCP Header Compression  . . . . . . . . . . . . .  7
   3.  Modified IEEE EUI-64 Interface Identifiers . . . . . . . . . .  8
   4.  16-bit Short Addresses . . . . . . . . . . . . . . . . . . . .  8
   5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 10
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 10
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10
   Intellectual Property and Copyright Statements . . . . . . . . . . 12


































Hui & Culler            Expires December 30, 2007               [Page 2]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


1.  Introduction

   The IEEE 802.15.4 standard specifies an MTU of 128 bytes, including
   the length byte [ieee802.15.4] on a 250 kbps wireless link.  Because
   the link MTU is small, in fact smaller than the required 1280-byte
   MTU of IPv6 [RFC2460], and because bandwidth, memory, or power
   resources are critical in many IEEE 802.15.4 applications, 6LoWPAN
   has defined an adaptation layer to support layer 3 (LOWPAN_HC1) and
   layer 4 (LOWPAN_HC2) header compression, and sub-IP fragmentation,
   for packet delivery over IEEE 802.15.4 links
   [I-D.ietf-6lowpan-format].  Substantial portions of the headers are
   elided, where they can be derived by the receiver from information
   contained in the IEEE 802.15.4 frame with basic assumptions of shared
   context.

   The IPv6 addressing architecture supports a notion of scoping
   [RFC4291].  Addresses defined within a scope must not extend beyond
   their scope.  Currently, IPv6 defines three unicast address scopes:
   link-local, site-local, and global.  Link-local addresses are
   composed of a well-known 64-bit prefix and a 64-bit interface
   identifier.  Link-local addresses are intended for addressing on a
   single link.  They are commonly used for configuration protocols or
   communication between nodes when no router exists.  Site-local
   addresses were originally intended for use within an
   administratively-defined domain, but their use has since been
   deprecated.  Global addresses are intended for addressing any node
   connected to the IPv6 network, including nodes within a local scope
   once configured.  A global address is composed of a n-bit global
   routing prefix, m-bit subnet identifier, and a 128-n-m-bit interface
   identifier.  Global addresses not starting with a binary 000 are
   required to have a 64-bit interface identifier, where n+m=64.

   LOWPAN_HC1 supports eliding the prefix and/or interface identifier of
   IPv6 source and destination addresses, but only for the link-local
   prefix.  Thus, for any LoWPAN node with a global unicast address
   assigned to its 802.15.4 interface and using it for communication,
   the full 128-bit address must be carried within packets to or from
   the node.  Carrying full source and destination addresses in an IEEE
   802.15.4 packet consumes a quarter of the link-layer's MTU.  This
   overhead occurs in many important situations.  For example, an IPv6
   packet communicated between two nodes within a PAN, whether over a
   single L2 hop or multiple L2 mesh-routed hops, utilizes extensive
   header compression if their link-local addresses are specified, but
   the same communication between the same nodes foregoes HC1 header
   compression if their global address is specified.  For monitoring
   networks, the data collection point is often a machine that is
   connected to the PAN by way of other non-802.15.4 links.  Similarly,
   in automation and control settings, the controller is often a machine



Hui & Culler            Expires December 30, 2007               [Page 3]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


   on existing IP links.  Communication to and from nodes external to
   the PAN utilize global address, so no HC1 header compression is
   permitted, even when only a single IEEE 802.15.4 hop is involved.
   Even where no other kinds of links are involved, IP routing among
   nodes utilizing IEEE 803.15.4 links, as might occur among 802.15.4
   subnets, perhaps using different PAN IDs, different channels, or
   different MACs, cannot utilize HC1 header compression, because the
   link-local address cannot be used.

   This document specifies a stateless header compression scheme for
   layer 3 (LOWPAN_HC1g) that allows compression of global unicast
   addresses and permits existing compression of the layer 4 header.
   Similar to LOWPAN_HC1, LOWPAN_HC1g recognizes that a prefix is shared
   throughout the PAN, but in the LOWPAN_HC1g case it is a shared global
   prefix, rather than the shared link local prefix.  Indeed, link-local
   communication is important to protocols like IPv6 Neighbor Discovery
   [RFC2461] and LOWPAN_HC1 may be used to compress link-local
   addresses.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].


2.  Header Compression

   The LOWPAN_HC1g header compression scheme proposed in this section
   maintains many of LOWPAN_HC1's design considerations.  First,
   LOWPAN_HC1g is a very simple and low-context form of header
   compression.  Second, it integrates layer 2 with layer 3 compression.
   Finally, it also allows LoWPAN devices to send header compressed
   packets via any of its neighbors, with as little preliminary context-
   building as possible.

   LOWPAN_HC1g operates directly on top of the basic LoWPAN header
   formats defined in Section 5 of the 6LoWPAN format document.
   LOWPAN_HC1g is identified by dispatch value 0x30, whereas LOWPAN_HC1
   is identified by dispatch value 0x10.

   Layer 4 header compression uses LOWPAN_HC2; the only, yet
   significant, difference is where the layer 4 encoding bits appear in
   the header stack.  In LOWPAN_HC1g, the LOWPAN_HC2 encoding bits
   immediately precede the uncompressed layer 4 fields.

   Typical LOWPAN_HC1g/HC2 header configurations are shown in Figure 1.




Hui & Culler            Expires December 30, 2007               [Page 4]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


   +-------------------+--------------+--------------+-----
   | HC1g Header       | Uncompressed | Uncompressed | Data
   |   L4 Uncompressed |   IP Fields  |   UDP Header |
   +-------------------+--------------+--------------+-----

   +-----------------+--------------+-------------+--------------+------
   | HC1g Header     | Uncompressed | HC2 Header  | Uncompressed | Data
   |   L4 Compressed |   IP Fields  |             |   UDP Fields |
   +-----------------+--------------+-------------+--------------+------

          Figure 1: Typical LOWPAN_HC1g/HC2 Header Configurations

2.1.  LOWPAN_HC1g Encoding of IPv6 Header Fields

   The LOWPAN_HC1g header compression scheme supports the expected
   common case on 6LoWPAN networks with no added overhead to LOWPAN_HC1.
   Version is IPv6, Payload Length is derived from the 802.15.4 header
   or "datagram_size" field from the fragmentation header, Traffic Class
   and Flow Label are zero, Next Header is UDP, ICMP, or TCP, one or
   both of IPv6 source and destination addresses are local to the PAN,
   and the source and destination interface identifiers are derived
   directly from the link-layer.  The only field that cannot be
   compressed is the Hops Left field.  Thus, in the local case, the IP
   header is compressed to 2 octets.

   To support compression of global unicast addresses, LOWPAN_HC1g
   assumes that a PAN is assigned one compressible 64-bit global IP
   prefix.  When either the source or destination address matches the
   compressible global IP prefix, the prefix can be elided.  Note that
   additional global IP prefixes may be assigned to an interface, but
   those prefixes are not compressible when using LOWPAN_HC1g.

   Additionally, if interfaces are assigned a 64-bit interface
   identifier, where the upper 49-bits is zero, the 64-bit global prefix
   and the upper 48-bits of the interface identifier may be elided.
   Such interface identifiers represent those with local scope, with the
   universal/global bit set to "0".  The 49th bit is not elided to
   maintain alignment on octet boundaries.  However, enforcing the 49th
   bit to be "0", borrows from the 16-bit short address encoding
   specified in I-D.ietf-6lowpan-format.  [I-D.ietf-6lowpan-format]
   Section 4 discusses how the encoding can be useful for commonly-used
   multicast addresses.

   The address compression encoding in LOWPAN_HC1g has four possible
   forms:






Hui & Culler            Expires December 30, 2007               [Page 5]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


      Full 128-bit Address:  Full 128-bit IPv6 address carried
         unmodified in-line.
      Compressed 64-bit Address:  64-bit prefix elided, 64-bit interface
         identifier carried in-line.  The 64-bit prefix is derived from
         the 64-bit prefix assigned to the PAN.
      Compressed 16-bit Address:  64-bit prefix elided, least
         significant 16 bits of 64-bit interface identifier inline.  The
         64-bit prefix is derived from the 64-bit prefix assigned to the
         PAN.  The upper 48 bits of the interface identifier are assumed
         to be all zeros.
      Full 128-bit IPv6 address elided:  The prefix identifier is
         derived from the 64-bit global prefix assigned to the PAN.  The
         64-bit interface identifier is derived either from the LoWPAN
         Mesh Addressing header or from the IEEE 802.15.4 link header.
         The link-layer addresses used to derive the 64-bit interface
         identifier is a short address, the short address describes the
         lower 16 bits of the interface identifier.  The upper 48 bits
         are assumed to be all zeros.

   The LOWPAN_HC1g encoding field is shown in Figure 2.

                       0   1   2   3   4   5   6   7
                     +---+---+---+---+---+---+---+---+
                     |  SC   |  DC   |VTF|  NH   |L4C|
                     +---+---+---+---+---+---+---+---+

             Figure 2: LOWPAN_HC1g Header Compression Encoding

   SC: IPv6 source address compression (bits 0 and 1):
      00:  Full 128-bit address
      01:  Compressed 64-bit address
      10:  Compressed 16-bit address
      11:  Full 128-bit IPv6 address elided

   DC: IPv6 destination address compression (bits 2 and 3):
      00:  Full 128-bit address
      01:  Compressed 64-bit address
      10:  Compressed 16-bit address
      11:  Full 128-bit IPv6 address elided

   VTF: Version, Traffic Class, and Flow Label (bit 4):
      0: Full 4 bits for Version, 8 bits for Traffic Class, and 20 bits
         for Flow Label are carried in-line.
      1: Version, Traffic Class, and Flow Label are elided and assumed
         to be zero.






Hui & Culler            Expires December 30, 2007               [Page 6]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


   NH: Next Header (bits 5 and 6):
      00:  Next header field carried in-line.
      01:  UDP
      10:  ICMP
      11:  TCP

   L4C: Layer 4 Compression (bit 7):
      0: Full layer 4 header is carried in-line.  An HC2 encoding does
         not precede the layer 4 header.
      1: Layer 4 header is compressed.  An HC2 encoding follows the IP
         header but precedes the layer 4 header.  Currently, this
         indicator only supports UDP compression.

   Of the fields in the IPv6 header, the uncompressed field that MUST
   always be carried in-line is Hop Limit.  Payload Length MUST never
   appear, as it is always derived from the IEEE 802.15.4 header or the
   "datagram_size" field in the LoWPAN fragmentation header.  All other
   fields, when carried in-line, MUST appear in the same order as
   specified in RFC 2460 [RFC2460].  When all fields are carried in-
   line, the header looks identical to a full IPv6 header without the
   Payload Length field.  This differs from LOWPAN_HC1, where fields do
   not appear in this order.  While it is possible to always assume IPv6
   for the Version field, it is carried in-line whenever Traffic Class
   and Flow Label are carried in-line.  Not doing so will result in
   field alignment not falling on an octet boundary.  The actual next
   header specified by the LOWPAN_HC1g encoding immediately follows all
   IPv6 header fields carried in-line.

2.2.  LOWPAN_HC2 Encoding of UDP Header Fields

   Bit 7 in the LOWPAN_HC1g encoding specifies whether or not the layer
   4 header is compressed.  If layer 4 compression is specified, then
   the LOWPAN_HC2g encoding replaces the uncompressed form of the layer
   4 header.  For UDP, the HC_UDP encoding scheme remains unchanged from
   the 6LoWPAN format document [I-D.ietf-6lowpan-format].  The only
   difference is that the HC_UDP encoding field immediately precedes the
   in-line UDP fields, rather than sitting between the HC1 encoding and
   in-line IPv6 fields.  This co-locates the bits describing UDP headers
   with the in-line fields.

2.3.  ICMP and TCP Header Compression

   This document does not specify a compression scheme for ICMP and TCP.
   Such compression schemes may be specified in the future.







Hui & Culler            Expires December 30, 2007               [Page 7]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


3.  Modified IEEE EUI-64 Interface Identifiers

   For LOWPAN_HC1g to compress a 128-bit address down to 16-bits, two
   conditions must be satisfied: (i) the prefix matches the compressible
   global prefix assigned to the PAN and (ii) the upper 49-bits of the
   interface identifier must be zeros.  This interface identifier is
   constructed in Modified EUI-64 format, MUST have scope limited to the
   assigned compressible global subnet-prefix, and MUST be subnet-prefix
   unique.  Included in the upper 49-bits is the universal/local bit,
   which is set to "0" to indicate local scope.  As suggested in RFC
   4291 [RFC4291], possible approaches to select such a PAN-unique
   interface identifier may include:

      Manual Configuration
      Node Serial Number
      Other Node-Specific Token


4.  16-bit Short Addresses

   [I-D.ietf-6lowpan-format] specifies an encoding for 16-bit short
   addresses to be used in 6LoWPAN packets.  The document reserves
   0xffff (16-bit broadcast) and 0xfffe as defined in IEEE 802.15.4
   [ieee802.15.4].  The document also specifies five different value
   ranges.  The lower 32,768 values are reserved for unicast addresses
   and the next 8192 values are reserved for a link-layer multicast
   address mapping.

   This document allocates another range of 8192 values to be used for
   commonly used, well-known IPv6 multicast addresses.  By creating a
   mapping between full 128-bit well-known multicast addresses to 16-bit
   short addresses, commonly-used multicast addresses can be compressed
   to 16-bits.  The multicast mapping can be used with the 6LoWPAN Mesh
   Delivery header or a LoWPAN_HC1g header by specifying use of the 16-
   bit short address form.  The encoding used for the 13-bits is as
   follows:

                      0                   1
                      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     |Range| Scope | Mapped Group ID |
                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 3: LOWPAN_HC1g Header Compression Encoding







Hui & Culler            Expires December 30, 2007               [Page 8]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


   Range:  3-bit range identifier which indicates the use of a mapped
      well-known IPv6 multicast address.
   Scope:  4-bit multicast scope as specified in RFC 4007 [RFC4007].
   Mapped Group ID:  9-bit mapped multicast group identifier.

   The full 128-bit multicast address can be reconstructed from the 16-
   bit mapped multicast address.  By definition, the 3-bit range
   identifier indicates the well-known multicast prefix (0xFF) in
   addition to a flags field set to all zeros (indicating a permanently
   assigned multicast address, that the multicast address is not
   assigned based on the network prefix, and that it doesn't embed the
   address of a Rendezvous Point).  The 4-bit scope is carried in-line
   and the 112-bit group ID is derived from the 9-bit mapped group ID
   using a well-known mapping maintained by the Internet Assigned
   Numbers Authority (IANA).

   This document defines an initial mapping.  Additional mappings
   between 9-bit mapped group IDs and 112-bit group IDs may be specified
   in the future.

                +-------+---------+-----------------------+
                | 9-bit | 112-bit | Description           |
                +-------+---------+-----------------------+
                |   1   |    1    | All Nodes Addresses   |
                |   2   |    2    | All Routers Addresses |
                +-------+---------+-----------------------+

                     9-bit to 128-bit Group ID Mapping


5.  IANA Considerations

   This document defines a new layer 3 header compression scheme for
   6LoWPAN networks.  The document allocate a new Dispatch type value of
   0x30 that indicates the use of LOWPAN_HC1g.

   This document requests another range, preferably Range 3 in the 16-
   bit short address field specified in [I-D.ietf-6lowpan-format].

   This document creates a new IANA registry for mapped well-known
   multicast addresses, mapping 112-bit group identifiers to compressed
   9-bit ones.  The registry MUST include the All Nodes Address (1) and
   the All Routers Address (2).


6.  Security Considerations

   The definition of LOWPAN_HC1g permits the compression of header



Hui & Culler            Expires December 30, 2007               [Page 9]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


   information on communication that could take place in its absence,
   albeit in a less efficient form.  It recognizes that a IEEE 802.15.4
   PAN may have associated with it a global prefix.  How that global
   prefix is assigned and managed is beyond the scope of this document.

   All drafts are required to have a security considerations section.
   See RFC 3552 [RFC3552] for a guide.


7.  References

7.1.  Normative References

   [I-D.ietf-6lowpan-format]
              Montenegro, G., "Transmission of IPv6 Packets over IEEE
              802.15.4 Networks", draft-ietf-6lowpan-format-13 (work in
              progress), April 2007.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.

   [RFC2461]  Narten, T., Nordmark, E., and W. Simpson, "Neighbor
              Discovery for IP Version 6 (IPv6)", RFC 2461,
              December 1998.

   [RFC4007]  Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and
              B. Zill, "IPv6 Scoped Address Architecture", RFC 4007,
              March 2005.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, February 2006.

   [ieee802.15.4]
              IEEE Computer Society, "IEEE Std. 802.15.4-2006",
              October 2006.

7.2.  Informative References

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552,
              July 2003.







Hui & Culler            Expires December 30, 2007              [Page 10]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


Authors' Addresses

   Jonathan W. Hui
   Arch Rock Corporation
   657 Mission St. Ste. 600
   San Francisco, California  94105
   USA

   Phone: +415 692 0828
   Email: jhui@archrock.com


   David E. Culler
   Arch Rock Corporation
   657 Mission St. Ste. 600
   San Francisco, California  94105
   USA

   Phone: +415 692 0828
   Email: dculler@archrock.com































Hui & Culler            Expires December 30, 2007              [Page 11]


Internet-Draft   6LoWPAN Compression of Global Addresses       June 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Hui & Culler            Expires December 30, 2007              [Page 12]