TOC 
6lowpanC. O'Flynn
Internet-DraftAtmel Corporation
Intended status: InformationalJuly 13, 2010
Expires: January 14, 2011 


ICMPv6 Compression for 6LoWPAN Networks
draft-ietf-6lowpan-icmphc-00

Abstract

Compression for stuff that could be compressed.

Status of this Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

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.”

This Internet-Draft will expire on January 14, 2011.

Copyright Notice

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.



Table of Contents

1.  Background
2.  ICMPv6 Compression Format
3.  LOWPAN_ICMPHC Encoding
    3.1.  GENERIC LOWPAN_ICMPHC Encoding
    3.2.  NON-GENERIC LOWPAN_ICMPHC Encoding
        3.2.1.  A and B bit usage
4.  LOWPAN_ICMPOC Encoding
    4.1.  HIJK Usage
5.  Examples of Compressed/Uncompressed ICMPv6 Messages
    5.1.  RFC2463 Messages
        5.1.1.  Destination Unreachable Message
        5.1.2.  Time Exceeded Message
    5.2.  RFC4861 Messages
        5.2.1.  Router Solcitation Message
        5.2.2.  Router Advertisement Message
        5.2.3.  Neighbor Solicitation Message
        5.2.4.  Neighbor Advertisement Message
    5.3.  RFC4861 Options
        5.3.1.  Source/Target Link-Layer Address
        5.3.2.  Prefix Information
        5.3.3.  MTU Header
        5.3.4.  Redirect Header
    5.4.  6lowpan-nd Options
        5.4.1.  Address Registration Option
        5.4.2.  6LoWPAN Context Prefix Option
        5.4.3.  Authoritive Border Router
6.  Acknowledgements
7.  Security Considerations
8.  IANA Considerations
9.  Informative References
§  Author's Address




 TOC 

1.  Background

This document was written VERY quickly. It does not yet go over exhaustively how each option works, see the examples (Examples of Compressed/Uncompressed ICMPv6 Messages) section for more details.



 TOC 

2.  ICMPv6 Compression Format

The ICMPv6 compression has two parts. The first is the ICMPv6 header compression, the second is the ICMPv6 options compression. In 6lowpan-hc-07, the Next Header Compression (NHC) field is shown as fitting in as follows:

   +-------------+-------------+-------------+-----------------+--------
   | LOWPAN_IPHC | In-line     | LOWPAN_NHC  | In-line Next    | Payload
   |   Encoding  |   IP Fields |   Encoding  |   Header Fields |
   +-------------+-------------+-------------+-----------------+--------

This is thus extended, where the LOWPAN_NHC is just the LOWPAN_ICMPHC field. However it may additionally have LOWPAN_ICMPOC (OC = Option Compression) fields after it. As an ICMPv6 message may have multiple options, each option that is compressed will have a LOWPAN_ICMPOC header. Thus a buffer with two ICMPv6 options would look like:

   +-------------+-------------+-------------+-----------------+--
   | LOWPAN_IPHC | In-line     |LOWPAN_ICMPHC| In-line ICMPv6  |
   |   Encoding  |   IP Fields |   Encoding  |   Header Fields |
   +-------------+-------------+-------------+-----------------+--

  --------------+---------------+---------------+---------------+-----
  LOWPAN_ICMPOC | Inline Option | LOWPAN_ICMPOC | Inline Option |Payload
   Encoding #1  | Fields for #1 |  Encoding #2  | Fields for #2 |
  --------------+---------------+---------------+---------------+-----

The payload could be additional ICMP data, or could be uncompressed ICMP options.



 TOC 

3.  LOWPAN_ICMPHC Encoding

The LOWPAN_ICMPHC header has two forms. The first is a 'generic' compression format, which is a single octet. The second is a specific form which compresses certain frequently occuring ICMPv6 messages better than the generic format.

The format is as follows:

    0   1   2   3   4   5   6   7
  +---+---+---+---+---+---+---+---+
  | 1 | 1 | 1 | 1 | 1 | G | X | X |
  +---+---+---+---+---+---+---+---+

G: Generic Compress Format Flag:

1: LOWPAN_ICMPHC is a GENERIC format

0: LOWPAN_ICMPHC is a NON-GENERIC format

XX: Depends on the GENERIC flag. See two sections below.



 TOC 

3.1.  GENERIC LOWPAN_ICMPHC Encoding

The format is as follows:

    0   1   2   3   4   5   6   7
  +---+---+---+---+---+---+---+---+
  | 1 | 1 | 1 | 1 | 1 | 1 | R | C |
  +---+---+---+---+---+---+---+---+

R: Reserved Octets Elided:

1: 4 Octets have been elided, at an offset of 4 octets from the start of the ICMPv6 Header.

0: No Change

C: Code Elided:

1: Code field in the ICMPv6 header has been elided, and is zero.

0: No Change

The GENERIC form takes advantage of two factors: many ICMPv6 messages have 4 reserved octets at a specific location, and many ICMPv6 messages do not use the CODE field. When using the GENERIC ICMPHC there is NO option compression used. Option compression is only possible when using the NON-GENERIC ICMP compression.



 TOC 

3.2.  NON-GENERIC LOWPAN_ICMPHC Encoding

The format is as follows:

    0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  | 1 | 1 | 1 | 1 | 1 | 0 |  RSV  |    TYPE   | A | B |  NUMOPTS  |
  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

RSV: Reserved Field, Do not use

TYPE: Type of ICMPv6 Message to Follow

000: RESERVED.

001: RFC4861 Router Solicitation

010: RFC4861 Router Advertisement

011: RFC4861 Neighbor Solicitation

100: RFC4861 Neighbor Advertisement

101: RFC4861 Redirect

A: Usage depends on TYPE field

B: Usage depends on TYPE field

NUMOPTS: Number of ICMPv6 Compressed Options that will follow. Used so 6lowpan-icmphc knows when to stop processing!



 TOC 

3.2.1.  A and B bit usage

TYPE = Router Solicitation

A: Not Used

B: Not Used

TYPE = Router Advertisement

A: Reachable Time Compression:

1: Reachable time field elided. Assume reachable time is zero.

0: Reachable time field inlined.

B: Retrans Time Compression:

1: Retrans time field elided. Assume retrans time is zero.

0: Retrans time field inlined.

TYPE = Neighbor Solicitation or Neighbor Advertisement. In this case A and B are combined to form a 2-bit field AB:

00: No changes to TARGET ADDRESS field, included in-line.

01: TARGET ADDRESS field is elided. Target address is same as destination IPv6 address from IPv6 Header.

10: TARGET ADDRESS field is elided. Target address is same as source IPv6 address from IPv6 Header.

11: Reserved.

TYPE = Redirect

A: TARGET ADDRESS field compression:

1: Target address field elided, assume target address is same as destination address field.

0: Target address field inlined.

B: Not used



 TOC 

4.  LOWPAN_ICMPOC Encoding

As mentioned option compression is only possible with NON-GENERIC ICMPHC format.

The option compression format is as follows:

    0   1   2   3   4   5   6   7
  +---+---+---+---+---+---+---+---+
  |   OPTTYPE     | H | I | J | K |
  +---+---+---+---+---+---+---+---+

OPTTYPE is the OPTION TYPE. Defined values are:

0000: Reserved

0001: Source Link-layer Address (RFC4861)

0010: Target Link-layer Address (RFC4861)

0011: Prefix Information (RFC4861)

0100: Redirected Header (RFC4861)

0101: MTU (RFC4861)

0110: Address Registration (6lowpan-nd)

0111: 6LoWPAN Context (6lowpan-nd)

1000: Authoritative Border Router (6lowpan-nd)

H: Depends on the OPTTYPE Field

I: Depends on the OPTTYPE Field

J: Depends on the OPTTYPE Field

K: Depends on the OPTTYPE Field



 TOC 

4.1.  HIJK Usage

OPTTYPE = Source Link-Layer Address or Target Link-Layer Address.

HI: L2 Address Source:

00: L2 Address and Address Length Inline

01: L2 Address taken from L2 Source

10: L2 Address taken from L2 Dest

J: Length Compression:

0: Disabled

1: Enabled (only valid if HI = 00). Length compression removes any trailing zeros from the option, to a maximum of 15. It then splits the 'length' field up into two nibbles, and writes the number of trailing zeros removed in the upper nibble of the length field.

K: Not used

OPTTYPE = Prefix Information

H: On-Link/Autoconfiguration Flag Compression:

1: 'L', 'A', and 6 bits of reserved space elided. When reconstructing option set L=0, A=1

0: 'L', 'A', and 6 bits of reserved space inlined

I: Valid Lifetime Compression:

1: Valid lifetime elided, assumed to be infinite (0xFFFFFFFF)

0: Valid Lifetime inlined

J: Preferred Lifetime Compression:

1: Preferred lifetime elided, assumed to be infinite (0xFFFFFFFF)

0: Preferred Lifetime inlined

K: Prefix length compression

1: Prefix length is elided, assumed to be 64 bits

0: Prefix length inlined

OPTTYPE = Redirected Header

H: Not Used

I: Not Used

J: Not Used

K: Not Used

OPTTYPE = MTU

H: MTU Compression:

1: MTU is 1260

0: MTU is contained in next two bytes

I: Not Used

J: Not Used

K: Not Used

OPTTYPE = Address Registration

H: EUI64 Compression:

1: EUI64 Elided, copy from destination L2 Address

0: EUI64 Inlined

I: Registered Address Compression:

1: Registered address elided, take from NA or NS TARGET address

0: Registered address inlined

J: Registered Address Present Flag:

1: Registered address present, so length field is 4

0: Registered address not present, so length field is 2

K: Not Used

OPTTYPE = 6LoWPAN Context

H: Context Length Compression:

1: Context length is elided, assumed to be 64

0: Context length is inlined

I: Not Used

J: Not Used

K: Not Used

OPTTYPE = Authorative Boarder Router

H: Not Used

I: Not Used

J: Not Used

K: Not Used



 TOC 

5.  Examples of Compressed/Uncompressed ICMPv6 Messages



 TOC 

5.1.  RFC2463 Messages



 TOC 

5.1.1.  Destination Unreachable Message

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             Unused                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    As much of invoking packet                 |
  +                as will fit without the ICMPv6 packet          +
  |                exceeding the minimum IPv6 MTU [IPv6]          |

Compressed: 4 Octet Savings

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 1 1 1|     Type      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    As much of invoking packet                 |
  +                as will fit without the ICMPv6 packet          +
  |                exceeding the minimum IPv6 MTU [IPv6]          |


 TOC 

5.1.2.  Time Exceeded Message

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             Unused                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    As much of invoking packet                 |
  +                as will fit without the ICMPv6 packet          +
  |                exceeding the minimum IPv6 MTU [IPv6]          |

Compressed: 4 Octet Savings

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 1 1 1|     Type      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    As much of invoking packet                 |
  +                as will fit without the ICMPv6 packet          +
  |                exceeding the minimum IPv6 MTU [IPv6]          |


 TOC 

5.2.  RFC4861 Messages



 TOC 

5.2.1.  Router Solcitation Message

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                            Reserved                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed with GENERIC: 4 Octect Savings

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 1 1 1|      Type     |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed with NON-GENERIC: 4 Octect Savings

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 0 0 1 0 0 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-


 TOC 

5.2.2.  Router Advertisement Message

Maximum Saving: 8 Octets. Minimum Saving: 0 Octets.

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Cur Hop Limit |M|O|  Reserved |       Router Lifetime         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Reachable Time                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          Retrans Timer                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed: 8 Octet Savings

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 0 1 0 1 1 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Cur Hop Limit |M|O|  Reserved |       Router Lifetime         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-



 TOC 

5.2.3.  Neighbor Solicitation Message

Uses NON-GENERIC header compression. Maximum Saving: 20 Octets. Minimum Saving: 4 Octets

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                           Reserved                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                       Target Address                          +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed: 4 Octet Saving

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 0 1 1 0 0 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                       Target Address                          +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed: 20 Octet Saving

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 0 1 1 0 1 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-


 TOC 

5.2.4.  Neighbor Advertisement Message

Uses NON-GENERIC header compression. Maximum Saving: 19 Octets. Minimum Saving: 3 Octets

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |R|S|O|                     Reserved                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                       Target Address                          +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-

Compressed: 3 Octet Saving

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 1 0 0 0 0 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |R|S|O| Reserved|                                               |
  +-+-+-+-+-+-+-+-+                                               |
  |                                                               |
  +                                                               +
  |                  Target Address                               |
  +                                                               +
  |                                                               |
  +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               | Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 19 Octet Saving

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 1 1 1 1 0 0 0 1 0 0 1 0 X X X|          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |R|S|O| Reserved| Options ...
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 TOC 

5.3.  RFC4861 Options



 TOC 

5.3.1.  Source/Target Link-Layer Address

Uncompressed, 8-byte L2 Address

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |    Length = 2   |                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                             +
  |                    Link-Layer Address                         |
  +                                 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                 |                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                             +
  |                    Padding                                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 15 Octet Saving

   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 0 1 0 1 0 0|
  +-+-+-+-+-+-+-+-+

Compressed: 6 Octet Saving

   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 0 1 0 0 1 0|   6   |    2    |                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                             +
  |                    Link-Layer Address                         |
  +                                 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 TOC 

5.3.2.  Prefix Information

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |    Length     | Prefix Length |L|A| Reserved1 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Valid Lifetime                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                       Preferred Lifetime                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                           Reserved2                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                            Prefix                             +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 7 Octet Saving (112 bit prefix)

   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 0 0 0| Prefix Length |L|A| Reserved1 | Valid Lifetime
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Valid Lifetime Continued            | Pref Lifetime
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              Preferred Lifetime  Continued       |               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
  |                                                               |
  +                                                               +
  |                      Prefix                                   |
  +                                                               +
  |                                                               |
  +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               |
  +-+-+-+-+-+-+-+-+

Compressed: 22 Octet Saving (64 bit prefix)

   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 1 1 1 1|                                               |
  +-+-+-+-+-+-+-+-+                                               +
  |                     Prefix                                    |
  +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



 TOC 

5.3.3.  MTU Header

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |    Length     |            Reserved           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                           MTU                                 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 5 Octet Saving

   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 1 0 1 0 0 0 0|            MTU                |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 7 Octet Saving

   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 1 0 1 1 0 0 0|
  +-+-+-+-+-+-+-+-+


 TOC 

5.3.4.  Redirect Header

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |    Length     |            Reserved           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                           Reserved                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  ~                       IP header + data                        ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 6 Octet Saving

   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 1 0 0 0 0 0 0|    Length     |                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
  |                                                               |
  ~                       IP header + data                        ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 TOC 

5.4.  6lowpan-nd Options



 TOC 

5.4.1.  Address Registration Option

Uncompressed

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |    Status     |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved            |     Registration Lifetime     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                            EUI-64                             +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                 Registered Address (Optional)                 +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 4 Octet Saving

   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 1 1 0 0 0 X 0|    Status     |     Registration Lifetime     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                            EUI-64                             +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                 Registered Address (Optional)                 +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 28 Octet Saving

   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 1 1 0 1 1 1 0|    Status     |     Registration Lifetime     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 TOC 

5.4.2.  6LoWPAN Context Prefix Option

Uncompressed 112-bit Context

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Length    |Context Length | Res |C|  CID  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Reserved           |         Valid Lifetime        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                     Context Prefix                            +
  |                                                               |
  +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                               |            Padding            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed 112-bit Context: 5 Octet Saving

   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 1 1 1 0 0 0 0|Context Length | Res |C|  CID  | Valid Lifetime
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Valid Lifetime |                                               |
  +-+-+-+-+-+-+-+-+                                               +
  |                                                               |
  +                     Context Prefix                            +
  |                                                               |
  +                                               +-+-+-+-+-+-+-+-+
  |                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Uncompressed 64-bit Context

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Length    |Context Length | Res |C|  CID  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Reserved           |         Valid Lifetime        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                    Context Prefix                             +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed 64-bit Context: 4 Octet Saving

   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 1 1 1 1 0 0 0| Res |C|  CID  |       Valid Lifetime          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                     Context Prefix                            +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



 TOC 

5.4.3.  Authoritive Border Router

Uncompressed

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |  Length = 3   |           Reserved            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |            Reserved           |        Version Number         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  +                                                               +
  |                                                               |
  +                          6LBR Address                         +
  |                                                               |
  +                                                               +
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Compressed: 5 Octet Saving

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1 0 0 0 0 0 0 0|      Version Number           |               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
  |                                                               |
  +                                                               +
  |                                                               |
  +                          6LBR Address                         +
  |                                                               |
  +                                               +-+-+-+-+-+-+-+-+
  |                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


 TOC 

6.  Acknowledgements

Thanks to Zach Shelby and Daniel Gavelle for various comments.



 TOC 

7.  Security Considerations

None



 TOC 

8.  IANA Considerations

This memo includes no request to IANA.

All drafts are required to have an IANA considerations section (see the update of RFC 2434 (Narten, T. and H. Alvestrand, “Guidelines for Writing an IANA Considerations Section in RFCs,” March 2008.) [I‑D.narten‑iana‑considerations‑rfc2434bis] for a guide). If the draft does not require IANA to do anything, the section contains an explicit statement that this is the case (as above). If there are no requirements for IANA, the section will be removed during conversion into an RFC by the RFC Editor.



 TOC 

9. Informative References

[I-D.ietf-6lowpan-nd] Shelby, Z., Chakrabarti, S., and E. Nordmark, “Neighbor Discovery Optimization for Low-power and Lossy Networks,” draft-ietf-6lowpan-nd-11 (work in progress), July 2010 (TXT).
[I-D.narten-iana-considerations-rfc2434bis] Narten, T. and H. Alvestrand, “Guidelines for Writing an IANA Considerations Section in RFCs,” draft-narten-iana-considerations-rfc2434bis-09 (work in progress), March 2008 (TXT).


 TOC 

Author's Address

  Colin Patrick O'Flynn
  Atmel Corporation
  Colorado Springs, Colorado
  USA
Email:  colin.oflynn@atmel.com