idnits 2.17.1 draft-oflynn-6lowpan-icmphc-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (July 26, 2010) is 5020 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'IPv6' is mentioned on line 459, but not defined == Unused Reference: 'I-D.ietf-6lowpan-nd' is defined on line 957, but no explicit reference was found in the text == Outdated reference: A later version (-21) exists of draft-ietf-6lowpan-nd-11 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6lowpan C. O'Flynn 3 Internet-Draft Atmel Corporation 4 Intended status: Informational July 26, 2010 5 Expires: January 27, 2011 7 ICMPv6/ND Compression for 6LoWPAN Networks 8 draft-oflynn-6lowpan-icmphc-00 10 Abstract 12 Compression for ICMPv6 Messages, specifically designed for 13 6lowpan-nd. 15 Status of this Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at http://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on January 27, 2011. 32 Copyright Notice 34 Copyright (c) 2010 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents 39 (http://trustee.ietf.org/license-info) in effect on the date of 40 publication of this document. Please review these documents 41 carefully, as they describe your rights and restrictions with respect 42 to this document. Code Components extracted from this document must 43 include Simplified BSD License text as described in Section 4.e of 44 the Trust Legal Provisions and are provided without warranty as 45 described in the Simplified BSD License. 47 Table of Contents 49 1. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3 50 2. ICMPv6 Compression Format . . . . . . . . . . . . . . . . . . 3 51 3. LOWPAN_ICMPHC Encoding . . . . . . . . . . . . . . . . . . . . 3 52 3.1. GENERIC LOWPAN_ICMPHC Encoding . . . . . . . . . . . . . . 4 53 3.2. NON-GENERIC LOWPAN_ICMPHC Encoding . . . . . . . . . . . . 4 54 3.2.1. A and B bit usage . . . . . . . . . . . . . . . . . . 5 55 4. LOWPAN_ICMPOC Encoding . . . . . . . . . . . . . . . . . . . . 6 56 4.1. HIJK Usage . . . . . . . . . . . . . . . . . . . . . . . . 7 57 5. Examples of Compressed/Uncompressed ICMPv6 Messages . . . . . 9 58 5.1. RFC2463 Messages . . . . . . . . . . . . . . . . . . . . . 10 59 5.1.1. Destination Unreachable Message . . . . . . . . . . . 10 60 5.1.2. Time Exceeded Message . . . . . . . . . . . . . . . . 10 61 5.2. RFC4861 Messages . . . . . . . . . . . . . . . . . . . . . 11 62 5.2.1. Router Solcitation Message . . . . . . . . . . . . . . 11 63 5.2.2. Router Advertisement Message . . . . . . . . . . . . . 12 64 5.2.3. Neighbor Solicitation Message . . . . . . . . . . . . 12 65 5.2.4. Neighbor Advertisement Message . . . . . . . . . . . . 14 66 5.3. RFC4861 Options . . . . . . . . . . . . . . . . . . . . . 15 67 5.3.1. Source/Target Link-Layer Address . . . . . . . . . . . 15 68 5.3.2. Prefix Information . . . . . . . . . . . . . . . . . . 16 69 5.3.3. MTU Header . . . . . . . . . . . . . . . . . . . . . . 17 70 5.3.4. Redirect Header . . . . . . . . . . . . . . . . . . . 18 71 5.4. 6lowpan-nd Options . . . . . . . . . . . . . . . . . . . . 19 72 5.4.1. Address Registration Option . . . . . . . . . . . . . 19 73 5.4.2. 6LoWPAN Context Prefix Option . . . . . . . . . . . . 20 74 5.4.3. Authoritive Border Router . . . . . . . . . . . . . . 21 75 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22 76 7. Security Considerations . . . . . . . . . . . . . . . . . . . 22 77 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 78 9. Informative References . . . . . . . . . . . . . . . . . . . . 22 79 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 23 81 1. Background 83 This document was written VERY quickly. It does not yet go over 84 exhaustively how each option works, see the examples (Section 5) 85 section for more details. 87 2. ICMPv6 Compression Format 89 The ICMPv6 compression has two parts. The first is the ICMPv6 header 90 compression, the second is the ICMPv6 options compression. In 91 6lowpan-hc-07, the Next Header Compression (NHC) field is shown as 92 fitting in as follows: 94 +-------------+-------------+-------------+-----------------+-------- 95 | LOWPAN_IPHC | In-line | LOWPAN_NHC | In-line Next | Payload 96 | Encoding | IP Fields | Encoding | Header Fields | 97 +-------------+-------------+-------------+-----------------+-------- 99 This is thus extended, where the LOWPAN_NHC is just the LOWPAN_ICMPHC 100 field. However it may additionally have LOWPAN_ICMPOC (OC = Option 101 Compression) fields after it. As an ICMPv6 message may have multiple 102 options, each option that is compressed will have a LOWPAN_ICMPOC 103 header. Thus a buffer with two ICMPv6 options would look like: 105 +-------------+-------------+-------------+-----------------+-- 106 | LOWPAN_IPHC | In-line |LOWPAN_ICMPHC| In-line ICMPv6 | 107 | Encoding | IP Fields | Encoding | Header Fields | 108 +-------------+-------------+-------------+-----------------+-- 110 --------------+---------------+---------------+---------------+----- 111 LOWPAN_ICMPOC | Inline Option | LOWPAN_ICMPOC | Inline Option |Payload 112 Encoding #1 | Fields for #1 | Encoding #2 | Fields for #2 | 113 --------------+---------------+---------------+---------------+----- 115 The payload could be additional ICMP data, or could be uncompressed 116 ICMP options. 118 3. LOWPAN_ICMPHC Encoding 120 The LOWPAN_ICMPHC header has two forms. The first is a 'generic' 121 compression format, which is a single octet. The second is a 122 specific form which compresses certain frequently occuring ICMPv6 123 messages better than the generic format. 125 The format is as follows: 127 0 1 2 3 4 5 6 7 128 +---+---+---+---+---+---+---+---+ 129 | 1 | 1 | 1 | 1 | 1 | G | X | X | 130 +---+---+---+---+---+---+---+---+ 132 G: Generic Compress Format Flag: 134 1: LOWPAN_ICMPHC is a GENERIC format 136 0: LOWPAN_ICMPHC is a NON-GENERIC format 138 XX: Depends on the GENERIC flag. See two sections below. 140 3.1. GENERIC LOWPAN_ICMPHC Encoding 142 The format is as follows: 144 0 1 2 3 4 5 6 7 145 +---+---+---+---+---+---+---+---+ 146 | 1 | 1 | 1 | 1 | 1 | 1 | R | C | 147 +---+---+---+---+---+---+---+---+ 149 R: Reserved Octets Elided: 151 1: 4 Octets have been elided, at an offset of 4 octets from the 152 start of the ICMPv6 Header. 154 0: No Change 156 C: Code Elided: 158 1: Code field in the ICMPv6 header has been elided, and is zero. 160 0: No Change 162 The GENERIC form takes advantage of two factors: many ICMPv6 messages 163 have 4 reserved octets at a specific location, and many ICMPv6 164 messages do not use the CODE field. When using the GENERIC ICMPHC 165 there is NO option compression used. Option compression is only 166 possible when using the NON-GENERIC ICMP compression. 168 3.2. NON-GENERIC LOWPAN_ICMPHC Encoding 170 The format is as follows: 172 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 173 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 174 | 1 | 1 | 1 | 1 | 1 | 0 | RSV | TYPE | A | B | NUMOPTS | 175 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 177 RSV: Reserved Field, Do not use 179 TYPE: Type of ICMPv6 Message to Follow 181 000: RESERVED. 183 001: RFC4861 Router Solicitation 185 010: RFC4861 Router Advertisement 187 011: RFC4861 Neighbor Solicitation 189 100: RFC4861 Neighbor Advertisement 191 101: RFC4861 Redirect 193 A: Usage depends on TYPE field 195 B: Usage depends on TYPE field 197 NUMOPTS: Number of ICMPv6 Compressed Options that will follow. Used 198 so 6lowpan-icmphc knows when to stop processing! 200 3.2.1. A and B bit usage 202 TYPE = Router Solicitation 204 A: Not Used 206 B: Not Used 208 TYPE = Router Advertisement 210 A: Reachable Time Compression: 212 1: Reachable time field elided. Assume reachable time is zero. 214 0: Reachable time field inlined. 216 B: Retrans Time Compression: 218 1: Retrans time field elided. Assume retrans time is zero. 220 0: Retrans time field inlined. 222 TYPE = Neighbor Solicitation or Neighbor Advertisement. In this case 223 A and B are combined to form a 2-bit field AB: 225 00: No changes to TARGET ADDRESS field, included in-line. 227 01: TARGET ADDRESS field is elided. Target address is same as 228 destination IPv6 address from IPv6 Header. 230 10: TARGET ADDRESS field is elided. Target address is same as 231 source IPv6 address from IPv6 Header. 233 11: Reserved. 235 TYPE = Redirect 237 A: TARGET ADDRESS field compression: 239 1: Target address field elided, assume target address is same 240 as destination address field. 242 0: Target address field inlined. 244 B: Not used 246 4. LOWPAN_ICMPOC Encoding 248 As mentioned option compression is only possible with NON-GENERIC 249 ICMPHC format. 251 The option compression format is as follows: 253 0 1 2 3 4 5 6 7 254 +---+---+---+---+---+---+---+---+ 255 | OPTTYPE | H | I | J | K | 256 +---+---+---+---+---+---+---+---+ 258 OPTTYPE is the OPTION TYPE. Defined values are: 260 0000: Reserved 262 0001: Source Link-layer Address (RFC4861) 264 0010: Target Link-layer Address (RFC4861) 266 0011: Prefix Information (RFC4861) 268 0100: Redirected Header (RFC4861) 269 0101: MTU (RFC4861) 271 0110: Address Registration (6lowpan-nd) 273 0111: 6LoWPAN Context (6lowpan-nd) 275 1000: Authoritative Border Router (6lowpan-nd) 277 H: Depends on the OPTTYPE Field 279 I: Depends on the OPTTYPE Field 281 J: Depends on the OPTTYPE Field 283 K: Depends on the OPTTYPE Field 285 4.1. HIJK Usage 287 OPTTYPE = Source Link-Layer Address or Target Link-Layer Address. 289 HI: L2 Address Source: 291 00: L2 Address and Address Length Inline 293 01: L2 Address taken from L2 Source 295 10: L2 Address taken from L2 Dest 297 J: Length Compression: 299 0: Disabled 301 1: Enabled (only valid if HI = 00). Length compression removes 302 any trailing zeros from the option, to a maximum of 15. It 303 then splits the 'length' field up into two nibbles, and writes 304 the number of trailing zeros removed in the upper nibble of the 305 length field. 307 K: Not used 309 OPTTYPE = Prefix Information 311 H: On-Link/Autoconfiguration Flag Compression: 313 1: 'L', 'A', and 6 bits of reserved space elided. When 314 reconstructing option set L=0, A=1 315 0: 'L', 'A', and 6 bits of reserved space inlined 317 I: Valid Lifetime Compression: 319 1: Valid lifetime elided, assumed to be infinite (0xFFFFFFFF) 321 0: Valid Lifetime inlined 323 J: Preferred Lifetime Compression: 325 1: Preferred lifetime elided, assumed to be same as valid. 327 0: Preferred Lifetime inlined 329 K: Prefix length compression 331 1: Prefix length is elided, assumed to be 64 bits 333 0: Prefix length inlined 335 OPTTYPE = Redirected Header 337 H: Not Used 339 I: Not Used 341 J: Not Used 343 K: Not Used 345 OPTTYPE = MTU 347 H: MTU Compression: 349 1: MTU is 1260 351 0: MTU is contained in next two bytes 353 I: Not Used 355 J: Not Used 357 K: Not Used 359 OPTTYPE = Address Registration 361 H: EUI64 Compression: 363 1: EUI64 Elided, copy from destination L2 Address 365 0: EUI64 Inlined 367 I: Registered Address Compression (Only valid if 'Registered 368 Address Present Flag' is set): 370 1: Registered address elided, take from NA or NS TARGET address 372 0: Registered address inlined 374 J: Registered Address Present Flag: 376 1: Registered address present, so length field is 4 378 0: Registered address not present, so length field is 2 380 K: Not Used 382 OPTTYPE = 6LoWPAN Context 384 H: Context Length Compression: 386 1: Context length is elided, assumed to be 64 388 0: Context length is inlined 390 I: Not Used 392 J: Not Used 394 K: Not Used 396 OPTTYPE = Authorative Boarder Router 398 H: Not Used 400 I: Not Used 402 J: Not Used 404 K: Not Used 406 5. Examples of Compressed/Uncompressed ICMPv6 Messages 407 5.1. RFC2463 Messages 409 5.1.1. Destination Unreachable Message 411 Uncompressed 413 0 1 2 3 414 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 415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 416 | Type | Code | Checksum | 417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 418 | Unused | 419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 420 | As much of invoking packet | 421 + as will fit without the ICMPv6 packet + 422 | exceeding the minimum IPv6 MTU [IPv6] | 424 Compressed: 4 Octet Savings 426 0 1 2 3 427 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 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429 |1 1 1 1 1 1 1 1| Type | Checksum | 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 431 | As much of invoking packet | 432 + as will fit without the ICMPv6 packet + 433 | exceeding the minimum IPv6 MTU [IPv6] | 435 5.1.2. Time Exceeded Message 437 Uncompressed 439 0 1 2 3 440 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 441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 442 | Type | Code | Checksum | 443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 444 | Unused | 445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 446 | As much of invoking packet | 447 + as will fit without the ICMPv6 packet + 448 | exceeding the minimum IPv6 MTU [IPv6] | 450 Compressed: 4 Octet Savings 452 0 1 2 3 453 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 454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 455 |1 1 1 1 1 1 1 1| Type | Checksum | 456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 457 | As much of invoking packet | 458 + as will fit without the ICMPv6 packet + 459 | exceeding the minimum IPv6 MTU [IPv6] | 461 5.2. RFC4861 Messages 463 5.2.1. Router Solcitation Message 465 Uncompressed 467 0 1 2 3 468 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 469 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 470 | Type | Code | Checksum | 471 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 472 | Reserved | 473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 474 | Options ... 475 +-+-+-+-+-+-+-+-+-+-+-+- 477 Compressed with GENERIC: 4 Octect Savings 479 0 1 2 3 480 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 481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 482 |1 1 1 1 1 1 1 1| Type | Checksum | 483 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 484 | Options ... 485 +-+-+-+-+-+-+-+-+-+-+-+- 487 Compressed with NON-GENERIC: 4 Octect Savings 489 0 1 2 3 490 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 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 |1 1 1 1 1 0 0 0 0 0 1 0 0 X X X| Checksum | 493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 494 | Options ... 495 +-+-+-+-+-+-+-+-+-+-+-+- 497 5.2.2. Router Advertisement Message 499 Maximum Saving: 8 Octets. Minimum Saving: 0 Octets. 501 Uncompressed 503 0 1 2 3 504 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 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 | Type | Code | Checksum | 507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 508 | Cur Hop Limit |M|O| Reserved | Router Lifetime | 509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 510 | Reachable Time | 511 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 512 | Retrans Timer | 513 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 514 | Options ... 515 +-+-+-+-+-+-+-+-+-+-+-+- 517 Compressed: 8 Octet Savings 519 0 1 2 3 520 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 521 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 522 |1 1 1 1 1 0 0 0 0 1 0 1 1 X X X| Checksum | 523 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 524 | Cur Hop Limit |M|O| Reserved | Router Lifetime | 525 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 526 | Options ... 527 +-+-+-+-+-+-+-+-+-+-+-+- 529 5.2.3. Neighbor Solicitation Message 531 Uses NON-GENERIC header compression. Maximum Saving: 20 Octets. 532 Minimum Saving: 4 Octets 533 Uncompressed 535 0 1 2 3 536 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 537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 538 | Type | Code | Checksum | 539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 540 | Reserved | 541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 542 | | 543 + + 544 | | 545 + Target Address + 546 | | 547 + + 548 | | 549 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 550 | Options ... 551 +-+-+-+-+-+-+-+-+-+-+-+- 553 Compressed: 4 Octet Saving 555 0 1 2 3 556 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 557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 558 |1 1 1 1 1 0 0 0 0 1 1 0 0 X X X| Checksum | 559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 560 | | 561 + + 562 | | 563 + Target Address + 564 | | 565 + + 566 | | 567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 568 | Options ... 569 +-+-+-+-+-+-+-+-+-+-+-+- 571 Compressed: 20 Octet Saving 573 0 1 2 3 574 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 575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 576 |1 1 1 1 1 0 0 0 0 1 1 0 1 X X X| Checksum | 577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 578 | Options ... 579 +-+-+-+-+-+-+-+-+-+-+-+- 581 5.2.4. Neighbor Advertisement Message 583 Uses NON-GENERIC header compression. Maximum Saving: 19 Octets. 584 Minimum Saving: 3 Octets 586 Uncompressed 588 0 1 2 3 589 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 590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 591 | Type | Code | Checksum | 592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 593 |R|S|O| Reserved | 594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 595 | | 596 + + 597 | | 598 + Target Address + 599 | | 600 + + 601 | | 602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 603 | Options ... 604 +-+-+-+-+-+-+-+-+-+-+-+- 606 Compressed: 3 Octet Saving 608 0 1 2 3 609 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 610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 611 |1 1 1 1 1 0 0 0 1 0 0 0 0 X X X| Checksum | 612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 613 |R|S|O| Reserved| | 614 +-+-+-+-+-+-+-+-+ | 615 | | 616 + + 617 | Target Address | 618 + + 619 | | 620 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 621 | | Options ... 622 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 624 Compressed: 19 Octet Saving 626 0 1 2 3 627 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 628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 629 |1 1 1 1 1 0 0 0 1 0 0 1 0 X X X| Checksum | 630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 631 |R|S|O| Reserved| Options ... 632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 634 5.3. RFC4861 Options 636 5.3.1. Source/Target Link-Layer Address 638 Uncompressed, 8-byte L2 Address 640 0 1 2 3 641 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 642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 643 | Type | Length = 2 | | 644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 645 | Link-Layer Address | 646 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 647 | | | 648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 649 | Padding | 650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 652 Compressed: 15 Octet Saving 654 0 1 2 3 655 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 656 +-+-+-+-+-+-+-+-+ 657 |0 0 0 1 0 1 0 0| 658 +-+-+-+-+-+-+-+-+ 660 Compressed: 6 Octet Saving 662 0 1 2 3 663 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 664 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 665 |0 0 0 1 0 0 1 0| 6 | 2 | | 666 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 667 | Link-Layer Address | 668 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 669 | | 670 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 672 5.3.2. Prefix Information 674 Uncompressed 676 0 1 2 3 677 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 678 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 679 | Type | Length | Prefix Length |L|A| Reserved1 | 680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 681 | Valid Lifetime | 682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 683 | Preferred Lifetime | 684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 685 | Reserved2 | 686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 687 | | 688 + + 689 | | 690 + Prefix + 691 | | 692 + + 693 | | 694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 696 Compressed: 7 Octet Saving (112 bit prefix) 698 0 1 2 3 699 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 700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 701 |0 0 1 1 0 0 0 0| Prefix Length |L|A| Reserved1 | Valid Lifetime 702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 703 Valid Lifetime Continued | Pref Lifetime 704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 705 Preferred Lifetime Continued | | 706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 707 | | 708 + + 709 | Prefix | 710 + + 711 | | 712 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 713 | | 714 +-+-+-+-+-+-+-+-+ 716 Compressed: 22 Octet Saving (64 bit prefix) 718 0 1 2 3 719 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 720 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 721 |0 0 1 1 1 1 1 1| | 722 +-+-+-+-+-+-+-+-+ + 723 | Prefix | 724 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 725 | | 726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 728 5.3.3. MTU Header 730 Uncompressed 732 0 1 2 3 733 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 734 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 735 | Type | Length | Reserved | 736 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 737 | MTU | 738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 740 Compressed: 5 Octet Saving 742 0 1 2 3 743 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 744 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 745 |0 1 0 1 0 0 0 0| MTU | 746 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 748 Compressed: 7 Octet Saving 750 0 1 2 3 751 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 752 +-+-+-+-+-+-+-+-+ 753 |0 1 0 1 1 0 0 0| 754 +-+-+-+-+-+-+-+-+ 756 5.3.4. Redirect Header 758 Uncompressed 760 0 1 2 3 761 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 762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 763 | Type | Length | Reserved | 764 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 765 | Reserved | 766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 767 | | 768 ~ IP header + data ~ 769 | | 770 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 772 Compressed: 6 Octet Saving 774 0 1 2 3 775 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 776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 777 |0 1 0 0 0 0 0 0| Length | | 778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 779 | | 780 ~ IP header + data ~ 781 | | 782 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 784 5.4. 6lowpan-nd Options 786 5.4.1. Address Registration Option 788 Uncompressed 790 0 1 2 3 791 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 792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 793 | Type | Length | Status | Reserved | 794 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 795 | Reserved | Registration Lifetime | 796 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 797 | | 798 + EUI-64 + 799 | | 800 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 801 | | 802 + + 803 | | 804 + Registered Address (Optional) + 805 | | 806 + + 807 | | 808 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 810 Compressed: 4 Octet Saving 812 0 1 2 3 813 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 814 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 815 |0 1 1 0 0 0 X 0| Status | Registration Lifetime | 816 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 817 | | 818 + EUI-64 + 819 | | 820 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 821 | | 822 + + 823 | | 824 + Registered Address (Optional) + 825 | | 826 + + 827 | | 828 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 830 Compressed: 28 Octet Saving 832 0 1 2 3 833 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 834 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 835 |0 1 1 0 1 1 1 0| Status | Registration Lifetime | 836 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 838 5.4.2. 6LoWPAN Context Prefix Option 840 Uncompressed 112-bit Context 842 0 1 2 3 843 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 844 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 845 | Type | Length |Context Length | Res |C| CID | 846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 847 | Reserved | Valid Lifetime | 848 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 849 | | 850 + + 851 | | 852 + Context Prefix + 853 | | 854 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 855 | | Padding | 856 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 858 Compressed 112-bit Context: 5 Octet Saving 860 0 1 2 3 861 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 862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 863 |0 1 1 1 0 0 0 0|Context Length | Res |C| CID | Valid Lifetime 864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 865 Valid Lifetime | | 866 +-+-+-+-+-+-+-+-+ + 867 | | 868 + Context Prefix + 869 | | 870 + +-+-+-+-+-+-+-+-+ 871 | | 872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 874 Uncompressed 64-bit Context 876 0 1 2 3 877 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 878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 879 | Type | Length |Context Length | Res |C| CID | 880 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 881 | Reserved | Valid Lifetime | 882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 883 | | 884 + Context Prefix + 885 | | 886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 888 Compressed 64-bit Context: 4 Octet Saving 890 0 1 2 3 891 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 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 893 |0 1 1 1 1 0 0 0| Res |C| CID | Valid Lifetime | 894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 895 | | 896 + Context Prefix + 897 | | 898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 900 5.4.3. Authoritive Border Router 902 Uncompressed 904 0 1 2 3 905 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 906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 907 | Type | Length = 3 | Reserved | 908 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 909 | Reserved | Version Number | 910 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 911 | | 912 + + 913 | | 914 + 6LBR Address + 915 | | 916 + + 917 | | 918 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 920 Compressed: 5 Octet Saving 922 0 1 2 3 923 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 924 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 925 |1 0 0 0 0 0 0 0| Version Number | | 926 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 927 | | 928 + + 929 | | 930 + 6LBR Address + 931 | | 932 + +-+-+-+-+-+-+-+-+ 933 | | 934 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 936 6. Acknowledgements 938 Thanks to Zach Shelby and Daniel Gavelle for various comments. 940 7. Security Considerations 942 None 944 8. IANA Considerations 946 This memo includes no request to IANA. 948 All drafts are required to have an IANA considerations section (see 949 the update of RFC 2434 [I-D.narten-iana-considerations-rfc2434bis] 950 for a guide). If the draft does not require IANA to do anything, the 951 section contains an explicit statement that this is the case (as 952 above). If there are no requirements for IANA, the section will be 953 removed during conversion into an RFC by the RFC Editor. 955 9. Informative References 957 [I-D.ietf-6lowpan-nd] 958 Shelby, Z., Chakrabarti, S., and E. Nordmark, "Neighbor 959 Discovery Optimization for Low-power and Lossy Networks", 960 draft-ietf-6lowpan-nd-11 (work in progress), July 2010. 962 [I-D.narten-iana-considerations-rfc2434bis] 963 Narten, T. and H. Alvestrand, "Guidelines for Writing an 964 IANA Considerations Section in RFCs", 965 draft-narten-iana-considerations-rfc2434bis-09 (work in 966 progress), March 2008. 968 Author's Address 970 Colin Patrick O'Flynn 971 Atmel Corporation 972 Colorado Springs, Colorado 973 USA 975 Email: colin.oflynn@atmel.com