6lowpan C. O'Flynn Internet-Draft Atmel Corporation Intended status: Informational July 26, 2010 Expires: January 27, 2011 ICMPv6/ND Compression for 6LoWPAN Networks draft-oflynn-6lowpan-icmphc-00 Abstract Compression for ICMPv6 Messages, specifically designed for 6lowpan-nd. 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 27, 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. O'Flynn Expires January 27, 2011 [Page 1] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 Table of Contents 1. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. ICMPv6 Compression Format . . . . . . . . . . . . . . . . . . 3 3. LOWPAN_ICMPHC Encoding . . . . . . . . . . . . . . . . . . . . 3 3.1. GENERIC LOWPAN_ICMPHC Encoding . . . . . . . . . . . . . . 4 3.2. NON-GENERIC LOWPAN_ICMPHC Encoding . . . . . . . . . . . . 4 3.2.1. A and B bit usage . . . . . . . . . . . . . . . . . . 5 4. LOWPAN_ICMPOC Encoding . . . . . . . . . . . . . . . . . . . . 6 4.1. HIJK Usage . . . . . . . . . . . . . . . . . . . . . . . . 7 5. Examples of Compressed/Uncompressed ICMPv6 Messages . . . . . 9 5.1. RFC2463 Messages . . . . . . . . . . . . . . . . . . . . . 10 5.1.1. Destination Unreachable Message . . . . . . . . . . . 10 5.1.2. Time Exceeded Message . . . . . . . . . . . . . . . . 10 5.2. RFC4861 Messages . . . . . . . . . . . . . . . . . . . . . 11 5.2.1. Router Solcitation Message . . . . . . . . . . . . . . 11 5.2.2. Router Advertisement Message . . . . . . . . . . . . . 12 5.2.3. Neighbor Solicitation Message . . . . . . . . . . . . 12 5.2.4. Neighbor Advertisement Message . . . . . . . . . . . . 14 5.3. RFC4861 Options . . . . . . . . . . . . . . . . . . . . . 15 5.3.1. Source/Target Link-Layer Address . . . . . . . . . . . 15 5.3.2. Prefix Information . . . . . . . . . . . . . . . . . . 16 5.3.3. MTU Header . . . . . . . . . . . . . . . . . . . . . . 17 5.3.4. Redirect Header . . . . . . . . . . . . . . . . . . . 18 5.4. 6lowpan-nd Options . . . . . . . . . . . . . . . . . . . . 19 5.4.1. Address Registration Option . . . . . . . . . . . . . 19 5.4.2. 6LoWPAN Context Prefix Option . . . . . . . . . . . . 20 5.4.3. Authoritive Border Router . . . . . . . . . . . . . . 21 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22 7. Security Considerations . . . . . . . . . . . . . . . . . . . 22 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 9. Informative References . . . . . . . . . . . . . . . . . . . . 22 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 23 O'Flynn Expires January 27, 2011 [Page 2] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 1. Background This document was written VERY quickly. It does not yet go over exhaustively how each option works, see the examples (Section 5) section for more details. 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. 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: O'Flynn Expires January 27, 2011 [Page 3] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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. 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. 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 | O'Flynn Expires January 27, 2011 [Page 4] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 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! 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 O'Flynn Expires January 27, 2011 [Page 5] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 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) O'Flynn Expires January 27, 2011 [Page 6] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 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 O'Flynn Expires January 27, 2011 [Page 7] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 same as valid. 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: O'Flynn Expires January 27, 2011 [Page 8] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 1: EUI64 Elided, copy from destination L2 Address 0: EUI64 Inlined I: Registered Address Compression (Only valid if 'Registered Address Present Flag' is set): 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 5. Examples of Compressed/Uncompressed ICMPv6 Messages O'Flynn Expires January 27, 2011 [Page 9] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 5.1. RFC2463 Messages 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] | 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] | O'Flynn Expires January 27, 2011 [Page 10] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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] | 5.2. RFC4861 Messages 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 ... +-+-+-+-+-+-+-+-+-+-+-+- O'Flynn Expires January 27, 2011 [Page 11] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 ... +-+-+-+-+-+-+-+-+-+-+-+- 5.2.3. Neighbor Solicitation Message Uses NON-GENERIC header compression. Maximum Saving: 20 Octets. Minimum Saving: 4 Octets O'Flynn Expires January 27, 2011 [Page 12] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 ... +-+-+-+-+-+-+-+-+-+-+-+- O'Flynn Expires January 27, 2011 [Page 13] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 ... +-+-+-+-+-+-+-+-+-+-+-+- 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 ... +-+-+-+-+-+-+-+-+-+-+-+- O'Flynn Expires January 27, 2011 [Page 14] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5.3. RFC4861 Options 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 15] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 16] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 17] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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| +-+-+-+-+-+-+-+-+ 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 ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 18] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 5.4. 6lowpan-nd Options 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) + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 19] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 + | | + +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 20] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ O'Flynn Expires January 27, 2011 [Page 21] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 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 + | | + +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6. Acknowledgements Thanks to Zach Shelby and Daniel Gavelle for various comments. 7. Security Considerations None 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 [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. 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. [I-D.narten-iana-considerations-rfc2434bis] Narten, T. and H. Alvestrand, "Guidelines for Writing an O'Flynn Expires January 27, 2011 [Page 22] Internet-Draft draft-oflynn-6lowpan-icmp-hc July 2010 IANA Considerations Section in RFCs", draft-narten-iana-considerations-rfc2434bis-09 (work in progress), March 2008. Author's Address Colin Patrick O'Flynn Atmel Corporation Colorado Springs, Colorado USA Email: colin.oflynn@atmel.com O'Flynn Expires January 27, 2011 [Page 23]