idnits 2.17.1 draft-ietf-manet-packetbb-10.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 21. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 2082. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 2093. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 2100. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 2106. 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 Copyright Line does not match the current year == Line 316 has weird spacing: '...version is a ...' == Line 319 has weird spacing: '...kt-size is a ...' == Line 429 has weird spacing: '...version is a ...' == Line 498 has weird spacing: '...-length is a ...' == Line 507 has weird spacing: '...-length is a ...' == (5 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (September 2007) is 6058 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2434 (ref. '3') (Obsoleted by RFC 5226) Summary: 2 errors (**), 0 flaws (~~), 7 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Mobile Ad hoc Networking (MANET) T. Clausen 3 Internet-Draft LIX, Ecole Polytechnique, France 4 Intended status: Standards Track C. Dearlove 5 Expires: March 4, 2008 BAE Systems Advanced Technology 6 Centre 7 J. Dean 8 Naval Research Laboratory 9 C. Adjih 10 INRIA Rocquencourt 11 September 2007 13 Generalized MANET Packet/Message Format 14 draft-ietf-manet-packetbb-10 16 Status of this Memo 18 By submitting this Internet-Draft, each author represents that any 19 applicable patent or other IPR claims of which he or she is aware 20 have been or will be disclosed, and any of which he or she becomes 21 aware will be disclosed, in accordance with Section 6 of BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF), its areas, and its working groups. Note that 25 other groups may also distribute working documents as Internet- 26 Drafts. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt. 36 The list of Internet-Draft Shadow Directories can be accessed at 37 http://www.ietf.org/shadow.html. 39 This Internet-Draft will expire on March 4, 2008. 41 Copyright Notice 43 Copyright (C) The IETF Trust (2007). 45 Abstract 47 This document specifies a multi-message packet format that may be 48 used by mobile ad hoc network routing and other protocols. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 53 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 54 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 7 55 4. Protocol Overview and Functioning . . . . . . . . . . . . . . 8 56 5. Signaling Framework . . . . . . . . . . . . . . . . . . . . . 9 57 5.1. Packets . . . . . . . . . . . . . . . . . . . . . . . . . 9 58 5.2. Messages . . . . . . . . . . . . . . . . . . . . . . . . . 10 59 5.3. Packet and Message Versioning . . . . . . . . . . . . . . 13 60 5.4. Address Blocks . . . . . . . . . . . . . . . . . . . . . . 13 61 5.5. TLVs and TLV Blocks . . . . . . . . . . . . . . . . . . . 15 62 5.5.1. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . 15 63 5.5.2. TLV Inclusion and Constraints . . . . . . . . . . . . 18 64 5.6. Malformed Elements . . . . . . . . . . . . . . . . . . . . 19 65 5.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19 66 6. TLV specification . . . . . . . . . . . . . . . . . . . . . . 21 67 6.1. Address Block TLV Specification . . . . . . . . . . . . . 21 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 69 7.1. Message Types . . . . . . . . . . . . . . . . . . . . . . 22 70 7.2. Packet TLV Types . . . . . . . . . . . . . . . . . . . . . 22 71 7.3. Message TLV Types . . . . . . . . . . . . . . . . . . . . 23 72 7.4. Address Block TLV Types . . . . . . . . . . . . . . . . . 23 73 8. Security Considerations . . . . . . . . . . . . . . . . . . . 25 74 8.1. Security Suggestions . . . . . . . . . . . . . . . . . . . 25 75 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 76 9.1. Normative References . . . . . . . . . . . . . . . . . . . 26 77 9.2. Informative References . . . . . . . . . . . . . . . . . . 26 78 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 27 79 A.1. Address Block Examples . . . . . . . . . . . . . . . . . . 27 80 A.2. TLV Examples . . . . . . . . . . . . . . . . . . . . . . . 28 81 Appendix B. Illustrations . . . . . . . . . . . . . . . . . . . 31 82 Appendix B.1. Packet . . . . . . . . . . . . . . . . . . . . . . . 31 83 Appendix B.2. Message and Padding . . . . . . . . . . . . . . . . 36 84 Appendix B.3. Message Body . . . . . . . . . . . . . . . . . . . . 42 85 Appendix B.4. Address Block . . . . . . . . . . . . . . . . . . . 43 86 Appendix B.5. TLV Block . . . . . . . . . . . . . . . . . . . . . 45 87 Appendix B.6. TLV . . . . . . . . . . . . . . . . . . . . . . . . 45 88 Appendix C. Complete Example . . . . . . . . . . . . . . . . . . 51 89 Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 53 90 Appendix E. Acknowledgements . . . . . . . . . . . . . . . . . . 54 91 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 55 92 Intellectual Property and Copyright Statements . . . . . . . . . . 56 94 1. Introduction 96 This document specifies the syntax of a general purpose multi-message 97 packet format for information exchange between MANET routers. 98 Messages consist of a message header, which is designed for control 99 of message dissemination, and a message body, which contains protocol 100 information. Only the syntax of the packet and messages is 101 specified. All syntactical entities, including packets and messages, 102 are specified using regular expressions. 104 This document specifies: 106 o A packet format, allowing zero or more messages to be contained 107 within a single transmission, and optionally including a packet 108 header. A packet with zero messages may be sent in case the only 109 information to exchange is contained in the packet header (such as 110 a "keep alive" sequence number). 112 o A message format, where a message is composed of a message header 113 and a message body. 115 o A message header format, which may allow a node to make 116 praocessing and forwarding decisions based on the node's present 117 state and the message header, without inspecting and parsing the 118 message body. Message header information permits single- and 119 multi-hop message diffusion. 121 o A message body format, containing attributes associated with the 122 message or the originator of the message, as well as blocks of 123 addresses with associated attributes. 125 o An address block format, where an address block represents sets of 126 addresses in a compact (compressed) form. 128 o A generalized type-length-value (TLV) format representing 129 attributes. Multiple TLVs can be included and each associated 130 with a packet, a message, an address, or a set of addresses. 132 The specification has been explicitly designed with the following 133 properties, listed in no particular order, in mind: 135 Parsing logic - the regular expression specification facilitates 136 generic, protocol independent, parsing logic. 138 Extensibility - packets and messages defined by a protocol using 139 this specification are extensible through defining new message 140 types and new TLVs. Existing protocol specifications using this 141 specification will be able to correctly identify and skip such new 142 message types and TLVs, while correctly parsing the remainder of 143 the packet and message. 145 Efficiency - when reported addresses share common bit sequences 146 (e.g. prefixes or IPv6 interface identifiers) the address block 147 representation allows for a compact representation. Compact 148 message headers are ensured through permitting inclusion of only 149 required message header elements, unless indicated otherwise. The 150 structure of packet and message encoding allows parsing, 151 verifying, and identifying individual elements in a single linear 152 pass. 154 Separation of forwarding and processing - duplicate detection and 155 controlled scope message forwarding decisions can be made using 156 information contained in the message header, without processing 157 the message body. 159 2. Terminology 161 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 162 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 163 document are to be interpreted as described in RFC 2119. [1]. 165 Additionally, this document uses the following terminology: 167 Packet - the top level entity in this specification. Packets are 168 transmitted over a single logical hop and are not forwarded. A 169 packet contains zero or more messages, and may contain a packet 170 header. 172 Message - the fundamental entity carrying protocol information, in 173 the form of addresses and TLVs. Messages are transmitted in 174 packets, and may be forwarded based on their header information. 176 Address - a number of octets of the same length as the source IP 177 address in the IP datagram carrying the packet. The meaning of an 178 address is defined by the protocol using this specification. 180 TLV - a Type-Length-Value structure. This is a generic way in which 181 an attribute can be represented and correctly parsed, without the 182 parser having to understand the attribute. 184 Element - a syntactic entity defined in the regular expression 185 specification, represented using the notation . 187 - if is an 8 or 16 bit field then is also used to 188 represent the value of that field. 190 ? - zero or one occurrences of the preceding element. 192 * - zero or more occurrences of the preceding element. 194 bar - a variable, usually obtained through calculations based on the 195 value(s) of field(s). Variables are introduced into the 196 specification solely as a means to clarify the description. 198 address-length - a variable whose value is the length of an address 199 in octets, it is 4 if using IPv4, 16 if using IPv6. 201 3. Applicability Statement 203 This specification describes a generic multi-message packet format, 204 for carrying MANET routing protocol signals. The specification has 205 been developed from that used by OLSR (The Optimized Link State 206 Routing Protocol) [4]. 208 The specification is designed with IP (IPv4/IPv6) in mind. All 209 addresses within a control message are assumed to be of the same 210 size, deduced from IP. In the case of mixed IPv6 and IPv4 addresses, 211 IPv4 addresses are represented as IPv4-mapped IPv6 addresses as 212 specified in [2]. 214 The messages defined by this specification are designed to carry 215 routing protocol signals between MANET routers, and to support scope 216 limited diffusion, as well as point to point signaling in a multi-hop 217 network. 219 The packets defined by this specification are designed to carry a 220 number of messages in a single transmission. The packets may be 221 unicast or multicast, may be transmitted as appropriate to the 222 protocol using this specification and may travel over a single 223 logical hop which might consist of one or more IP hops. 225 This specification is particularly appropriate for extensible 226 protocols. It offers external extensibility in the form of new 227 message types. It offers internal extensibility in the form of TLVs, 228 which may be added to existing message types. 230 A protocol using the multi-message packet format defined by this 231 specification may constrain the syntax (for example requiring a 232 specific set of message header fields) and features (for example 233 specifying the suggested diffusion mechanism) that the protocol will 234 employ. 236 4. Protocol Overview and Functioning 238 This specification does not describe a protocol. It describes a 239 packet format, which may be used by any mobile ad hoc network routing 240 or other protocol. 242 5. Signaling Framework 244 This section provides syntactical specification of a packet, 245 represented by the element and the elements from which it is 246 composed. The specification is given in the form of regular 247 expressions. Illustrations of specified elements are given in 248 Appendix B. 250 5.1. Packets 252 is defined by: 254 = {*}? 255 {*}* 257 where is defined in Section 5.2, and is defined 258 in Section 5.7. Successful parsing is terminated when all octets 259 (defined using the variable pkt-size below) are used. A packet MUST 260 contain either a or at least one . 262 is defined by: 264 = 265 266 ? 267 ? 268 ? 269 ? 271 where: 273 is an 8 bit field with all bits cleared ('0'). This field 274 serves to identify that the packet starts with a . 276 is an 8 bit field, specifying the composition of the 277 : 279 bit 0 (phasversion): If cleared ('0'), then is not 280 included in the . If set ('1'), then 281 is included in the . 283 bit 1 (phassize): if cleared ('0'), then is not 284 included in the . if set ('1'), then is 285 included in the . 287 bit 2 (pnoseqnum): if cleared ('0'), then is 288 included in the . If set ('1'), then 289 is not included in the . 291 bit 3 (phastlv): if cleared ('0'), then is not 292 included in the . If set ('1'), then 293 is included in the . 295 bits 4-7: are RESERVED, and MUST each be cleared ('0') to be in 296 conformance with this version of the specification. 298 is omitted if the phasversion bit is cleared ('0'), 299 otherwise is an 8 bit field, specifying the version of this 300 specification. 302 is omitted if the phassize bit is cleared ('0'), 303 otherwise is a 16 bit field, specifying the size of the 304 counted in octets. 306 is omitted if the pnoseqnum bit is set ('1'), 307 otherwise is a 16 bit field, specifying a packet sequence number. 309 is omitted if the phastlv bit is cleared ('0'), and is 310 otherwise as defined in Section 5.5. 312 Note that since the message type zero is not used (see Section 7), 313 the presence or absence of a packet header can be determined by 314 inspecting the first octet of the packet. 316 pkt-version is a variable, defined to equal if 317 present, or 0 otherwise. See Section 5.3. 319 pkt-size is a variable, defined to equal if present, or 320 the size of the payload of the transport protocol employed 321 otherwise. 323 5.2. Messages 325 Information is carried through messages. Messages contain: 327 o A message header. 329 o A message TLV block that contains zero or more TLVs, associated 330 with the whole message. 332 o Zero or more address blocks, each containing one or more 333 addresses. 335 o A TLV block, containing zero or more TLVs, following each address 336 block. 338 is defined by: 340 = 341 342 {}* 344 = 345 346 ? 347 ? 348 ? 349 ? 350 ? 351 ? 353 where: 355 is as defined in Section 5.5. 357 is as defined in Section 5.4. 359 is an 8 bit field, specifying the type of message. A 360 type with all bits cleared ('0') MUST NOT be used. 362 is an 8 bit field, specifying the interpretation of 363 the remainder of the message header: 365 bit 0 (mhasversion): If cleared ('0'), then is not 366 included in the . If set ('1'), then 367 is included in the . 369 bit 1 (mnoorig): If cleared ('0'), then is 370 included in the . If set ('1'), then is not included in the . 373 bit 2 (mnohoplimit): If cleared ('0'), then is 374 included in the . If set ('1'), then is not included in the . 377 bit 3 (mnohopcount): If cleared ('0'), then is 378 included in the . If set ('1'), then is not included in the 381 bit 4 (mnoseqnum): If cleared ('0'), then is 382 included in the . If set ('1'), then 383 is not included in the . 385 bit 5 (mistypedep): If cleared ('0'), then the message sequence 386 number in the message is type-independent. If set ('1'), then 387 the message sequence number contained in the message is type 388 dependent (the message originator maintains a sequence number 389 specific to ). This bit MUST be cleared ('0') if the 390 mnoorig bit is set ('1'). 392 bits 6-7: are RESERVED and MUST each be cleared ('0') to be in 393 conformance with this version of the specification. 395 If bit 1 (mnoorig) and bit 4 (mnoseqnum) are both cleared, then 396 the message header provides for duplicate suppression. 398 If bit 2 (mnohoplimit) is cleared, then the message header 399 provides for scope-delimited forwarding. 401 is omitted if the mhasversion bit is cleared ('0'), 402 otherwise is an 8 bit field, specifying the version of this 403 specification. 405 is a 16 bit field, specifying the size of the , 406 counted in octets. 408 is omitted if the mnoorig bit is set ('1'), 409 otherwise is an identifier of length equal to address-length, 410 which serves to uniquely identify the node that originated the 411 message. 413 is omitted if the mnohoplimit bit is set ('1'), 414 otherwise is an 8 bit field, which contains the maximum number of 415 logical hops that the message should be further transmitted. 417 is omitted if the mnohopcount bit is set ('1'), 418 otherwise is an 8 bit field, which contains the number of logical 419 hops that the message has traveled. 421 is omitted if the mnoseqnum bit is set ('1'), 422 otherwise is a 16 bit field, which contains a unique number, 423 generated by the message's originator node. The , 424 , and, if the mistypedep bit in the 425 field is set, the of a message serves to uniquely 426 identify the message in the network (within the time period until 427 wraps around to a matching value). 429 msg-version is a variable, defined to equal if 430 present, or to pkt-version otherwise. See Section 5.3. 432 5.3. Packet and Message Versioning 434 This specification defines packets and messages of version 0 (zero), 435 so that pkt-version and each msg-version MUST equal zero. This 436 SHOULD be indicated by clearing the phasversion and mhasversion bits 437 in and , respectively. 439 A protocol using this specification, or any future version (i.e. 440 where pkt-version or msg-version are different from zero) of this 441 specification MUST specify appropriate behavior in the case where an 442 incoming packet or message indicates a pkt-version or msg-version 443 different from the one used by that protocol, e.g. by discarding the 444 packet or message. 446 5.4. Address Blocks 448 An address is specified as a sequence of address-length octets of the 449 form head:mid:tail. An address block is an ordered set of addresses 450 sharing the same head and tail, and having individual mids. Network 451 addresses may be represented using the PREFIX_LENGTH TLV defined in 452 Section 6. 454 is defined by: 456 = 457 458 ? 459 ? 460 ? 461 ? 462 * 464 where: 466 is an 8 bit field containing the number of addresses 467 represented in the address block, which MUST NOT be zero. 469 is an 8 bit field specifying the interpretation of 470 the remainder of the address block: 472 bit 0 (anohead): if cleared ('0'), then is included 473 in the , and may be included in the 474 . If set ('1'), then and 475 are not included in the . 477 bit 1 (anotail) and bit 2 (ahaszerotail): MUST NOT both be set 478 ('1'). Otherwise, they are interpreted according to Table 1. 480 +---------+--------------+---------------+-----------------+ 481 | anotail | ahaszerotail | | | 482 +---------+--------------+---------------+-----------------+ 483 | 0 | 0 | included | may be included | 484 | | | | | 485 | 0 | 1 | included | not included | 486 | | | | | 487 | 1 | 0 | not included | not included | 488 +---------+--------------+---------------+-----------------+ 490 Table 1 492 bits 3-7: are RESERVED and MUST each be cleared ('0') to be in 493 accordance with this version of the specification. 495 if present is an 8 bit field, which contains the total 496 length (in octets) of the head of all of the addresses. 498 head-length is a variable, defined to equal if 499 present, or 0 otherwise. 501 is omitted if head-length == 0, otherwise it is a field of 502 the head-length leftmost octets of all the addresses. 504 if present is an 8 bit field, which contains the total 505 length (in octets) of the tail of all of the addresses. 507 tail-length is a variable, defined to equal if 508 present, or 0 otherwise. 510 is omitted if tail-length == 0 or if the ahaszerotail bit is 511 set ('1'), otherwise it is a field of the tail-length rightmost 512 octets of all the addresses. If the ahaszerotail bit is set ('1') 513 then the tail-length rightmost octets of all the addresses are all 514 0. 516 mid-length is a variable, which MUST be non-negative, defined by: 518 * mid-length = address-length - head-length - tail-length 520 is omitted if mid-length == 0, otherwise each is a field 521 of length mid-length octets, representing the mid of the 522 corresponding address in the address block. 524 5.5. TLVs and TLV Blocks 526 A TLV block is defined by: 528 = 529 * 531 where: 533 is a 16 bit field, which contains the total length (in 534 octets) of all of the immediately following elements. 536 is as defined in Section 5.5.1. 538 5.5.1. TLVs 540 There are three kinds of TLV, each represented by an element : 542 o A packet TLV, included in a packet header. 544 o A message TLV, included in a message before all address blocks. 546 o An address block TLV, included in a TLV block following an address 547 block. An address block TLV applies to: 549 * all addresses in the address block; OR 551 * any continuous sequence of addresses in the address block; OR 553 * a single address in the address block. 555 is defined by: 557 = 558 559 ? 560 ? 561 ? 562 ? 563 ? 565 where: 567 is an 8 bit field, specifying the type of the TLV, 568 specific to the TLV kind (i.e. packet, message, or address block 569 TLV). 571 is an 8 bit field specifying the interpretation of 572 the remainder of the TLV: 574 bit 0 (thastypeext): if cleared ('0'), then is not 575 included in the . If set ('1'), then is 576 included in the . 578 bit 1 (tisextended) and bit 2 (tnovalue): MUST NOT both be set 579 ('1'). Otherwise, they are interpreted according to Table 2. 581 +-------------+----------+--------------+--------------+ 582 | tisextended | tnovalue | | | 583 +-------------+----------+--------------+--------------+ 584 | 0 | 0 | 8 bits | included | 585 | | | | | 586 | 0 | 1 | not included | not included | 587 | | | | | 588 | 1 | 0 | 16 bits | included | 589 +-------------+----------+--------------+--------------+ 591 Table 2 593 bit 3 (tnoindex) and bit 4 (thassingleindex): MUST NOT both be 594 set ('1'). The former MUST be set ('1') and the latter MUST be 595 cleared ('0') for packet or message TLVs. They are interpreted 596 according to Table 3. 598 +----------+-----------------+---------------+--------------+ 599 | tnoindex | thassingleindex | | | 600 +----------+-----------------+---------------+--------------+ 601 | 0 | 0 | included | included | 602 | | | | | 603 | 0 | 1 | included | not included | 604 | | | | | 605 | 1 | 0 | not included | not included | 606 +----------+-----------------+---------------+--------------+ 608 Table 3 610 bit 5 (tismultivalue): this bit serves to specify how the 611 field is interpreted, as specified below. This bit MUST be 612 cleared ('0') for packet or message TLVs, if the 613 thassingleindex bit is set ('1'), or if the tnovalue bit is set 614 ('1'). 616 bits 6-7: are RESERVED and MUST each be cleared ('0') to be in 617 accordance with this version of the specification. 619 is an 8 bit field, specifying an extension of the TLV 620 type, specific to the TLV type and kind (i.e. packet, message, or 621 address block TLV). 623 tlv-type-ext is a variable, defined to equal if 624 present, or 0 otherwise. 626 tlv-fulltype is a variable, defined by: 628 * tlv-fulltype = 256 * + tlv-type-ext; 630 and when present are each an 8 bit field, 631 interpreted as follows. 633 index-start and index-stop are variables, defined according to 634 Table 4. The variable end-index is defined as follows: 636 * For message and packet TLVs: 638 + end-index = 0 640 * For address block TLVs: 642 + end-index = - 1 644 +----------+-----------------+---------------+---------------+ 645 | tnoindex | thassingleindex | index-start = | index-stop = | 646 +----------+-----------------+---------------+---------------+ 647 | 0 | 0 | | | 648 | | | | | 649 | 0 | 1 | | | 650 | | | | | 651 | 1 | 0 | 0 | end-index | 652 +----------+-----------------+---------------+---------------+ 654 Table 4 656 For an address block TLV, the TLV applies to the addresses from 657 position index-start to position index-stop (inclusive) in the 658 address block, where the first address has position zero. 660 number-values is a variable, defined by: 662 * number-values = index-stop - index-start + 1 664 is omitted or is an 8 or 16 bit field according to Table 2. 665 If the tismultivalue bit is set ('1') then MUST be an 666 integral multiple of number-values, and the variable single-length 667 is defined by: 669 * single-length = / number-values 671 If the tismultivalue bit is cleared ('0'), then the variable 672 single-length is defined by: 674 * single-length = 676 if present (see Table 2) is a field of length 677 octets. In an address block TLV, is associated with the 678 addresses from index-start to index-stop, inclusive. If the 679 tismultivalue bit is cleared ('0') then the whole of this field is 680 associated with each of the indicated addresses. If the 681 tismultivalue bit is set ('1') then this field is divided equally 682 into number-values fields, each of length single-length octets and 683 these are associated, in order, with the indicated addresses. 685 5.5.2. TLV Inclusion and Constraints 687 TLVs associates attributes to entities, where entities are individual 688 addresses in an address block, ranges of addresses in an address 689 block, messages or packets. Inclusion of a TLV serves to associate 690 an attribute to a given entity; the processing of this attribute and 691 the relationship (e.g. interpretation, order of processing) between 692 multiple different attributes associated to the same entity is to be 693 defined by the protocol which uses this specification. 695 The following constraints on TLV ordering MUST be respected: 697 o TLVs in the same TLV block MUST be sorted in non-descending tlv- 698 fulltype order. 700 o Packet and message TLVs MUST be defined so as to indicate whether 701 two TLVs with the same tlv-fulltype are, or are not, allowed in 702 the same packet or message TLV block, respectively. 704 o Two or more TLVs with the same tlv-fulltype in the same address 705 block TLV block MUST NOT be associated with the same copy of an 706 address (i.e. they must not have overlapping index ranges). 708 o TLVs with the same tlv-fulltype associated with the same address 709 block MUST be sorted in ascending index-start order. 711 Note that the above constrains only the encoding of TLVs in a TLV 712 block for transmission, and do specifically NOT mandate any given 713 order of processing or interpretation by a protocol of the TLVs and 714 the entities to which these are associated. 716 Respecting the constraints above allows parsing and verification of a 717 TLV block in a single linear pass and allows terminating the search 718 for a TLV with a specific type without traversing the entire TLV 719 block. 721 The constraints on address block TLVs, which may apply to ranges of 722 addresses, ensure that encoded information (entity-attributes) can be 723 unambiguously decoded, and that verification of such is a linear 724 operation. 726 5.6. Malformed Elements 728 An element is malformed if it cannot be parsed according to its 729 syntactical specification (including if there are insufficient octets 730 available when a length is specified, in particular if there are 731 fewer than pkt-size octets overall) or if a constraint (including, 732 but not only, those specified in Section 5.5.2) specified as one 733 which MUST be satisfied, is not. A protocol using this specification 734 MUST specify the action, or choice of actions, to be taken when a 735 packet containing such elements is received. Typical examples will 736 include discarding any affected message(s), or discarding the 737 complete packet. 739 5.7. Padding 741 Packet headers and messages MAY be padded to ensure 32 bit alignment 742 of each message contained within the packet and of the overall packet 743 length. Padding MAY also be used to ensure that all packets and/or 744 messages have the same size. 746 All elements are an integer multiple of octets, hence padding can be 747 accomplished by inserting an integer number of elements 748 after the element that is to be 32 bit aligned. 750 The number of elements required to achieve this 32 bit 751 alignment is the smallest number (0 to 3) that, when added to the 752 size of the preceding elements, produces an integer multiple of 4. 754 is an 8 bit field with all bits cleared ('0'). 756 There is no need to indicate if padding is included, since a will always precede either a message or the end of the packet. 758 In the former case, the start of a message is indicated by the next 759 non-zero octet parsed. 761 The padding after a message may be freely changed when a message is 762 forwarded without affecting the message. 764 6. TLV specification 766 This document specifies one address block TLV, which is included to 767 allow a standardized way of representing network addresses. 769 6.1. Address Block TLV Specification 771 +---------------+------+-----------+--------+-----------------------+ 772 | Name | Type | Type | Length | Value | 773 | | | extension | | | 774 +---------------+------+-----------+--------+-----------------------+ 775 | PREFIX_LENGTH | 0 | 0 | 8 bits | Indicates that the | 776 | | | | | address is a network | 777 | | | | | address, rather than | 778 | | | | | a host address. The | 779 | | | | | value is the length | 780 | | | | | of the | 781 | | | | | prefix/netmask, in | 782 | | | | | bits. | 783 +---------------+------+-----------+--------+-----------------------+ 785 Table 5 787 An address in an address block without an associated PREFIX_LENGTH 788 TLV may be considered to have a prefix length equal to the address 789 length in bits (i.e. 8 * address-length). 791 7. IANA Considerations 793 7.1. Message Types 795 A new registry for message types must be created with initial 796 assignments as specified in Table 6. Future values in the range 797 5-127 can be allocated using standards action [3]. Additionally, 798 values in the range 128-255 are reserved for private/local use. 800 +------+------------------------+ 801 | Type | Description | 802 +------+------------------------+ 803 | 0 | MUST NOT be allocated. | 804 | | | 805 | 1-4 | RESERVED | 806 +------+------------------------+ 808 Table 6 810 Message type 0 MUST NOT be allocated because a zero-octet signifies a 811 packet header and zero-octets are used for padding. Message types 1 812 to 4 are reserved because they are used by OLSR [4], which uses a 813 compatible packet/message header format. 815 7.2. Packet TLV Types 817 A new registry for packet TLV types must be created, with no initial 818 assignments. 820 Future values in the range 0-127 can be allocated using standards 821 action [3], respecting the following guidelines: 823 values 0-7 - MUST NOT be assigned except when a documented need 824 exists that TLVs of a given type are required to appear before all 825 other TLVs in the TLV block as encoded for transmission. Note 826 that the need for a TLV to be processed before other TLVs does not 827 however automatically translate into a need for the TLV to appear 828 before all other TLVs in the TLV block - the order in which TLVs 829 are to be processed MUST be defined, if applicable, in the 830 protocols using this specification. 832 values 8-127 - no constraints. 834 Additionally, values in the range 128-255 are reserved for private/ 835 local use. If a packet TLV type is allocated then a new registry for 836 type extensions of that type must be created. A document which 837 defines a packet TLV type MUST also specify the mechanism by which 838 its type extensions are allocated, from among those in [3]. 840 7.3. Message TLV Types 842 A new registry for message TLV types must be created with no initial 843 assignments. 845 Future values in the range 0-127 can be allocated using standards 846 action [3], respecting the following guidelines: 848 values 0-7 - MUST NOT be assigned except when a documented need 849 exists that TLVs of a given type are required to appear before all 850 other TLVs in the TLV block as encoded for transmission. Note 851 that the need for a TLV to be processed before other TLVs does not 852 however automatically translate into a need for the TLV to appear 853 before all other TLVs in the TLV block - the order in which TLVs 854 are to be processed MUST be defined, if applicable, in the 855 protocols using this specification. 857 values 8-127 - no constraints. 859 Additionally, values in the range 128-255 are reserved for private/ 860 local use. If a message TLV type is allocated then a new registry 861 for type extensions of that type must be created. A document which 862 defines a message TLV type MUST also specify the mechanism by which 863 its type extensions are allocated, from among those in [3]. 865 7.4. Address Block TLV Types 867 A new registry for address block TLV types must be created with 868 initial assignments as specified in Table 7. 870 +---------------+------+-----------+--------------------------------+ 871 | Mnemonic | Type | Type | Description | 872 | | | extension | | 873 +---------------+------+-----------+--------------------------------+ 874 | PREFIX_LENGTH | 0 | 0 | Indicates that associated | 875 | | | | addresses are network | 876 | | | | addresses, with given prefix | 877 | | | | length, in bits. | 878 | | | | | 879 | | 0 | 1-255 | RESERVED | 880 +---------------+------+-----------+--------------------------------+ 882 Table 7 884 Future values in the range 1-127 can be allocated using standards 885 action [3], respecting the following guidelines: 887 values 1-7 - MUST NOT be assigned except when a documented need 888 exists that TLVs of a given type are required to appear before all 889 other TLVs in the TLV block as encoded for transmission. Note 890 that the need for a TLV to be processed before other TLVs does not 891 however automatically translate into a need for the TLV appearing 892 before all other TLVs in the TLV block - the order in which TLVs 893 are to be processed MUST be defined, if applicable, in the 894 protocols using this specification. 896 values 8-127 - no constraints. 898 Additionally, values in the range 128-255 are reserved for private/ 899 local use. If an address block TLV type is allocated then a new 900 registry for type extensions of that type must be created. A 901 document which defines an address block TLV type MUST also specify 902 the mechanism by which its type extensions are allocated, from among 903 those in [3]. 905 8. Security Considerations 907 This specification does not describe a protocol; it describes a 908 packet format. As such it does not specify any security 909 considerations, these are matters for a protocol using this 910 specification. However two mechanisms which are enabled by this 911 specification, and may form part of a security approach in a protocol 912 using this specification, are described in Section 8.1. There is 913 however no requirement that a protocol using this specification 914 should use either. 916 8.1. Security Suggestions 918 The security suggestions made here, are based on that: 920 o Messages are designed to be carriers of protocol information and 921 MAY, at each hop, be forwarded and/or processed according to the 922 information in the message header by the protocol using this 923 specification. 925 o Packets are designed to carry a number of messages between 926 neighboring nodes in a single transmission and over a single 927 logical hop. 929 Consequently: 931 o For forwarded messages where the message is unchanged by 932 forwarding nodes, then end-to-end security MAY be implemented, 933 between nodes with an existing security association, by including 934 a suitable message TLV containing a cryptographic signature in the 935 message. Since and are the only fields 936 that may be modified when such a message is forwarded in this 937 manner, this signature can be calculated based on the entire 938 message, including the message header, with the and 939 fields set to zero ('0') if present. 941 o Hop-by-hop packet level security MAY be implemented, between nodes 942 with an existing security association, by including a suitable 943 packet TLV containing a cryptographic signature to the packet. 944 Since packets are received as transmitted, this signature can be 945 calculated based on the entire packet, or on parts thereof as 946 appropriate. 948 9. References 950 9.1. Normative References 952 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 953 Levels", RFC 2119, BCP 14, March 1997. 955 [2] Hinden, R. and S. Deering, "IP Version 6 Addressing 956 Architecture", RFC 4291, February 2006. 958 [3] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA 959 Considerations Section in RFCs", RFC 2434, BCP 26, October 1998. 961 9.2. Informative References 963 [4] Clausen, T. and P. Jacquet, "The Optimized Link State Routing 964 Protocol", RFC 3626, October 2003. 966 Appendix A. Examples 968 This appendix contains some examples of parts of this specification. 970 A.1. Address Block Examples 972 The following examples illustrate how some combinations of addresses 973 may be efficiently included in address blocks. These examples are 974 for IPv4, with address-length equal to 4. a, b, c etc. represent 975 distinct, non-zero, octet values. 977 Note that it is permissible to use a less efficient representation, 978 in particular one in which the anohead and anotail bits of the 979 semantics octet are set, and hence head-length = 0, tail-length = 0, 980 mid-length = address-length, and the address block consists of the 981 number of addresses, the semantics octet with value 3, and a list of 982 the uncompressed addresses. This is also the most efficient way to 983 represent a single address, and the only way to represent, for 984 example, a.b.c.d and e.f.g.h in one address block. 986 Examples: 988 o To include a.b.c.d, a.b.e.f and a.b.g.h: 990 * head-length = 2; 992 * tail-length = 0; 994 * mid-length = 2; 996 * has anotail set (value 2); 998 * and are omitted. 1000 The address block is then 3 2 2 a b c d e f g h (11 octets). 1002 o To include a.b.c.g and d.e.f.g: 1004 * head-length = 0; 1006 * tail-length = 1; 1008 * mid-length = 3; 1010 * has anohead set (value 1); 1012 * and are omitted. 1014 The address block is then 2 1 1 g a b c d e f (10 octets). 1016 o To include a.b.d.e and a.c.d.e: 1018 * head-length = 1; 1020 * tail-length = 2; 1022 * mid-length = 1; 1024 * = 0. 1026 The address block is then 2 0 1 a 2 d e b c (9 octets). 1028 o To include a.b.0.0, a.c.0.0, and a.d.0.0: 1030 * head-length = 1; 1032 * tail-length = 2; 1034 * mid-length = 1; 1036 * has ahaszerotail set (value 4); 1038 * is omitted. 1040 The address block is then 3 4 1 a 2 b c d (8 octets). 1042 o To include a.b.0.0 and c.d.0.0: 1044 * head-length = 0; 1046 * tail-length = 2; 1048 * mid-length = 2; 1050 * has anohead and ahaszerotail set (value 5); 1052 * and are omitted. 1054 The address block is then 2 5 2 a b c d (7 octets). 1056 A.2. TLV Examples 1058 If network addresses a.b.0.0/16, c.d.0.0/16, c.d.e.0/24 and 1059 c.d.e.f/32 are to be represented using a single address block 1060 containing a.b.0.0, c.d.0.0, c.d.e.0 and c.d.e.f, with the prefix 1061 lengths added using one or more address block TLVs of type 1062 PREFIX_LENGTH (0, with no type extension), then this can be done in a 1063 number of ways. Possible examples are: 1065 o Using one multivalue TLV covering all of the addresses: 1067 * has tnoindex and tismultivalue set (value 40); 1069 * and are omitted; 1071 * = 4 (single-length = 1). 1073 * The TLV is then 0 40 4 16 16 24 32 (7 octets). 1075 o Using one multivalue TLV omitting the last address (a prefix 1076 length of 32 is the default): 1078 * has tismultivalue set (value 32); 1080 * = 0; 1082 * = 2 1084 * = 3 (single-length = 1). 1086 * The TLV is then 0 32 0 2 3 16 16 24 (8 octets). 1088 o Using two single value TLVs, omitting the last address. First: 1090 * = 0; 1092 * = 0; 1094 * = 1; 1096 * = 1; 1098 * = 16. 1100 * The TLV is then 0 0 0 1 1 16 (6 octets). 1102 Second: 1104 * has thassingleindex set (value 16); 1106 * = 2; 1108 * is omitted; 1109 * = 1; 1111 * = 24. 1113 * The TLV is then 0 16 2 1 24 (5 octets). 1115 Total length of TLVs is 11 octets. 1117 In this case the first of these is the most efficient. In other 1118 cases patterns such as the others may be preferred. Regardless of 1119 efficiency, any of these may be used. 1121 Assuming the definition of an address block TLV with type EXAMPLE 1122 (and no type extension) which has no value (it is sufficient to 1123 simply indicate which addresses are examples), for the same address 1124 block, with the second and third addresses being examples, this can 1125 be indicated with a single TLV: 1127 o has tnovalue set (value 4); 1129 o = 1; 1131 o = 2; 1133 o and are omitted. 1135 o The TLV is then EXAMPLE 4 1 2 (4 octets). 1137 Assuming the definition of a message TLV with type DATA (and no type 1138 extension) which can take a value field of any length, for such a 1139 message TLV with 8 octets of data (a to h): 1141 o has tnoindex set (value 8); 1143 o and are omitted; 1145 o = 8. 1147 o The TLV is then DATA 8 8 a b c d e f g h (11 octets). 1149 If, in this example, the number of data octets were 256 or greater 1150 then would also have tisextended set and have value 1151 10. The length would require two octets (most significant first). 1152 The TLV length would be 4 + N octets, where N is the number of data 1153 octets (it can be 3 + N octets if N is 255 or less). 1155 Appendix B. Illustrations 1157 This informative appendix illustrates the elements, which are 1158 normatively specified in Section 5 using regular expressions. 1159 Examples with version fields are omitted, as not needed when using 1160 this version of this specification (although permitted). 1162 Bits labeled Resv, or Rsv are cleared ('0'). Bits labeled N or M may 1163 be cleared ('0') or set ('1'). Octets labeled Padding must be zero 1164 ('0'), and are optional. (They have been omitted where not needed 1165 for alignment.) 1167 Appendix B.1. Packet 1169 0 1 2 3 1170 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 1171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1172 |0 0 0 0 0 0 0 0| Resv |0|0|0|0| Packet Sequence Number | 1173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1174 | | 1175 | Message + Padding | 1176 | | 1177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1178 | | 1179 : ... : 1180 | | 1181 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1182 | | 1183 | Message + Padding | 1184 | | 1185 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1186 0 1 2 3 1187 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 1188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1189 |0 0 0 0 0 0 0 0| Resv |0|0|1|0| Packet Size | 1190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1191 | Packet Sequence Number | Padding | 1192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1193 | | 1194 | Message + Padding | 1195 | | 1196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1197 | | 1198 : ... : 1199 | | 1200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1201 | | 1202 | Message + Padding | 1203 | | 1204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1206 0 1 2 3 1207 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 1208 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1209 |0 0 0 0 0 0 0 0| Resv |0|1|0|0| Padding | 1210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1211 | | 1212 | Message + Padding | 1213 | | 1214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1215 | | 1216 : ... : 1217 | | 1218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1219 | | 1220 | Message + Padding | 1221 | | 1222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1223 0 1 2 3 1224 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 1225 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1226 |0 0 0 0 0 0 0 0| Resv |0|1|1|0| Packet Size | 1227 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1228 | | 1229 | Message + Padding | 1230 | | 1231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1232 | | 1233 : ... : 1234 | | 1235 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1236 | | 1237 | Message + Padding | 1238 | | 1239 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1241 0 1 2 3 1242 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 1243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1244 |0 0 0 0 0 0 0 0| Resv |1|0|0|0| Packet Sequence Number | 1245 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1246 | | 1247 | Packet TLV Block | 1248 | | 1249 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1250 | | Padding | 1251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1252 | | 1253 | Message + Padding | 1254 | | 1255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1256 | | 1257 : ... : 1258 | | 1259 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1260 | | 1261 | Message + Padding | 1262 | | 1263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1264 0 1 2 3 1265 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 1266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1267 |0 0 0 0 0 0 0 0| Resv |1|0|1|0| Packet Size | 1268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1269 | Packet Sequence Number | | 1270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1271 | | 1272 | Packet TLV Block | 1273 | | 1274 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1275 | | Padding | 1276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1277 | | 1278 | Message + Padding | 1279 | | 1280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1281 | | 1282 : ... : 1283 | | 1284 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1285 | | 1286 | Message + Padding | 1287 | | 1288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1289 0 1 2 3 1290 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 1291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1292 |0 0 0 0 0 0 0 0| Resv |1|1|0|0| | 1293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1294 | | 1295 | Packet TLV Block | 1296 | | 1297 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1298 | | Padding | 1299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1300 | | 1301 | Message + Padding | 1302 | | 1303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1304 | | 1305 : ... : 1306 | | 1307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1308 | | 1309 | Message + Padding | 1310 | | 1311 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1313 0 1 2 3 1314 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 1315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1316 |0 0 0 0 0 0 0 0| Resv |1|1|1|0| Packet Size | 1317 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1318 | | 1319 | Packet TLV Block | 1320 | | 1321 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1322 | | Padding | 1323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1324 | | 1325 | Message + Padding | 1326 | | 1327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1328 | | 1329 : ... : 1330 | | 1331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1332 | | 1333 | Message + Padding | 1334 | | 1335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1336 0 1 2 3 1337 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 1338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1339 | | 1340 | Message + Padding | 1341 | | 1342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1343 | | 1344 : ... : 1345 | | 1346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1347 | | 1348 | Message + Padding | 1349 | | 1350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1352 Appendix B.2. Message and Padding 1354 0 1 2 3 1355 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 1356 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1357 | Message Type |Rsv|N|0|0|0|0|0| Message Size | 1358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1359 | Originator Address | 1360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1361 | Hop Limit | Hop Count | Message Sequence Number | 1362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1363 | | 1364 | Message Body | 1365 | | 1366 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1367 | | Padding | 1368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1370 0 1 2 3 1371 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 1372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1373 | Message Type |Rsv|0|0|0|0|1|0| Message Size | 1374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1375 | Hop Limit | Hop Count | Message Sequence Number | 1376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1377 | | 1378 | Message Body | 1379 | | 1380 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1381 | | Padding | 1382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1383 0 1 2 3 1384 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 1385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1386 | Message Type |Rsv|N|0|0|1|0|0| Message Size | 1387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1388 | Originator Address | 1389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1390 | Hop Count | Message Sequence Number | | 1391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1392 | | 1393 | Message Body | 1394 | | 1395 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1396 | | Padding | 1397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1399 0 1 2 3 1400 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 1401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1402 | Message Type |Rsv|0|0|0|1|1|0| Message Size | 1403 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1404 | Hop Count | Message Sequence Number | | 1405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1406 | | 1407 | Message Body | 1408 | | 1409 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1410 | | Padding | 1411 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1413 0 1 2 3 1414 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 1415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1416 | Message Type |Rsv|N|0|1|0|0|0| Message Size | 1417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1418 | Originator Address | 1419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1420 | Hop Limit | Message Sequence Number | | 1421 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1422 | | 1423 | Message Body | 1424 | | 1425 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1426 | | Padding | 1427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1428 0 1 2 3 1429 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 1430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1431 | Message Type |Rsv|N|0|1|0|1|0| Message Size | 1432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1433 | Hop Limit | Message Sequence Number | | 1434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1435 | | 1436 | Message Body | 1437 | | 1438 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1439 | | Padding | 1440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1442 0 1 2 3 1443 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 1444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1445 | Message Type |Rsv|N|0|1|1|0|0| Message Size | 1446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1447 | Originator Address | 1448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1449 | Message Sequence Number | | 1450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1451 | | 1452 | Message Body | 1453 | | 1454 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1455 | | Padding | 1456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1458 0 1 2 3 1459 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 1460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1461 | Message Type |Rsv|N|0|1|1|1|0| Message Size | 1462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1463 | Message Sequence Number | | 1464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1465 | | 1466 | Message Body | 1467 | | 1468 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1469 | | Padding | 1470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1471 0 1 2 3 1472 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 1473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1474 | Message Type |Rsv|N|1|0|0|0|0| Message Size | 1475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1476 | Originator Address | 1477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1478 | Hop Limit | Hop Count | | 1479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1480 | | 1481 | Message Body | 1482 | | 1483 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1484 | | Padding | 1485 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1487 0 1 2 3 1488 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 1489 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1490 | Message Type |Rsv|N|1|0|0|1|0| Message Size | 1491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1492 | Hop Limit | Hop Count | | 1493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1494 | | 1495 | Message Body | 1496 | | 1497 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1498 | | Padding | 1499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1501 0 1 2 3 1502 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 1503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1504 | Message Type |Rsv|N|1|0|1|0|0| Message Size | 1505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1506 | Originator Address | 1507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1508 | Hop Count | | 1509 +-+-+-+-+-+-+-+-+ | 1510 | Message Body | 1511 | | 1512 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1513 | | Padding | 1514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1515 0 1 2 3 1516 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 1517 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1518 | Message Type |Rsv|N|1|0|1|1|0| Message Size | 1519 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1520 | Hop Count | | 1521 +-+-+-+-+-+-+-+-+ | 1522 | Message Body | 1523 | | 1524 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1525 | | Padding | 1526 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1528 0 1 2 3 1529 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 1530 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1531 | Message Type |Rsv|N|1|1|0|0|0| Message Size | 1532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1533 | Originator Address | 1534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1535 | Hop Limit | | 1536 +-+-+-+-+-+-+-+-+ | 1537 | Message Body | 1538 | | 1539 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1540 | | Padding | 1541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1543 0 1 2 3 1544 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 1545 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1546 | Message Type |Rsv|N|1|1|0|1|0| Message Size | 1547 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1548 | Hop Limit | | 1549 +-+-+-+-+-+-+-+-+ | 1550 | Message Body | 1551 | | 1552 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1553 | | Padding | 1554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1555 0 1 2 3 1556 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 1557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1558 | Message Type |Rsv|N|1|1|1|0|0| Message Size | 1559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1560 | Originator Address | 1561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1562 | | 1563 | Message Body | 1564 | | 1565 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1566 | | Padding | 1567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1569 0 1 2 3 1570 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 1571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1572 | Message Type |Rsv|N|1|1|1|1|0| Message Size | 1573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1574 | | 1575 | Message Body | 1576 | | 1577 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1578 | | Padding | 1579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1581 Appendix B.3. Message Body 1583 0 1 2 3 1584 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 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1586 | | 1587 | Message TLV Block | 1588 | +-+-+-+-+-+-+-+-+ 1589 | | | 1590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1591 | | 1592 | Address Block | 1593 | | 1594 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1595 | | | 1596 +-+-+-+-+-+-+-+-+ | 1597 | Address TLV Block | 1598 | | 1599 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1600 | | | 1601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1602 | | 1603 : ... : 1604 | | 1605 | +-+-+-+-+-+-+-+-+ 1606 | | | 1607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1608 | | 1609 | Address Block | 1610 | | 1611 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1612 | | | 1613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1614 | | 1615 | Address TLV Block | 1616 | | 1617 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1618 | | 1619 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1621 Appendix B.4. Address Block 1623 0 1 2 3 1624 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 1625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1626 | Number Addrs | Resv |0|0|0| Head Length | Head | 1627 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1628 | Head (cont) | Tail Length | Tail | 1629 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1630 | Mid | | 1631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1632 | | 1633 : ... : 1634 | | 1635 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1636 | | Mid | 1637 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1639 0 1 2 3 1640 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 1641 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1642 | Number Addrs | Resv |0|0|1| Tail Length | Tail | 1643 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1644 | Tail (cont) | Mid | | 1645 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1646 | | 1647 : ... : 1648 | | 1649 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1650 | | Mid | 1651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1653 0 1 2 3 1654 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 1655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1656 | Number Addrs | Resv |0|1|0| Head Length | Head | 1657 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1658 | Head (cont) | Mid | | 1659 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1660 | | 1661 : ... : 1662 | | 1663 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1664 | | Mid | 1665 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1666 0 1 2 3 1667 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 1668 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1669 | Number Addrs | Resv |0|1|1| Mid | 1670 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1671 | Mid (cont) | | 1672 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1673 | | 1674 : ... : 1675 | | 1676 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1677 | | Mid | 1678 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1679 | Mid (cont) | 1680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1682 0 1 2 3 1683 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 1684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1685 | Number Addrs | Resv |1|0|0| Head Length | Head | 1686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1687 | Head (cont) | Tail Length | Mid | 1688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1689 | | 1690 : ... : 1691 | | 1692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1693 | Mid | 1694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1696 0 1 2 3 1697 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 1698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1699 | Number Addrs | Resv |1|0|1| Tail Length | Mid | 1700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1701 | Mid (cont) | | 1702 +-+-+-+-+-+-+-+-+ | 1703 | | 1704 : ... : 1705 | | 1706 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1707 | | Mid | 1708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1710 Appendix B.5. TLV Block 1712 0 1 2 3 1713 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 1714 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1715 | Length | | 1716 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1717 | | 1718 | TLV | 1719 | +-+-+-+-+-+-+-+-+ 1720 | | | 1721 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1722 | | 1723 : ... : 1724 | | 1725 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1726 | | | 1727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1728 | | 1729 | TLV | 1730 | +-+-+-+-+-+-+-+-+ 1731 | | 1732 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1734 Appendix B.6. TLV 1736 0 1 2 3 1737 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 1738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1739 | Type |Rsv|M|0|0|0|0|0| Index Start | Index Stop | 1740 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1741 | Length | | 1742 +-+-+-+-+-+-+-+-+ | 1743 | Value | 1744 | | 1745 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1746 | | 1747 +-+-+-+-+-+-+-+-+ 1748 0 1 2 3 1749 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 1750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1751 | Type |Rsv|M|0|0|0|0|1| Type Ext | Index Start | 1752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1753 | Index Stop | Length | | 1754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1755 | | 1756 | Value | 1757 | | 1758 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1759 | | 1760 +-+-+-+-+-+-+-+-+ 1762 0 1 2 3 1763 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 1764 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1765 | Type |Rsv|M|0|0|0|1|0| Index Start | Index Stop | 1766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1767 | Length | | 1768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1769 | | 1770 | Value | 1771 | | 1772 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1773 | | 1774 +-+-+-+-+-+-+-+-+ 1776 0 1 2 3 1777 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 1778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1779 | Type |Rsv|M|0|0|0|1|1| Type Ext | Index Start | 1780 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1781 | Index Stop | Length | | 1782 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1783 | | 1784 | Value | 1785 | | 1786 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1787 | | 1788 +-+-+-+-+-+-+-+-+ 1789 0 1 2 3 1790 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 1791 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1792 | Type |Rsv|0|0|0|1|0|0| Index Start | Index Stop | 1793 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1795 0 1 2 3 1796 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 1797 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1798 | Type |Rsv|0|0|0|1|0|1| Type Ext | Index Start | 1799 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1800 | Index Stop | 1801 +-+-+-+-+-+-+-+-+ 1803 0 1 2 3 1804 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 1805 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1806 | Type |Rsv|M|0|1|0|0|0| Length | | 1807 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1808 | | 1809 | Value | 1810 | | 1811 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1812 | | 1813 +-+-+-+-+-+-+-+-+ 1815 0 1 2 3 1816 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 1817 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1818 | Type |Rsv|M|0|1|0|0|1| Type Ext | Length | 1819 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1820 | | 1821 | Value | 1822 | | 1823 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1824 | | 1825 +-+-+-+-+-+-+-+-+ 1826 0 1 2 3 1827 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 1828 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1829 | Type |Rsv|M|0|1|0|1|0| Length | 1830 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1831 | | 1832 | Value | 1833 | | 1834 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1835 | | 1836 +-+-+-+-+-+-+-+-+ 1838 0 1 2 3 1839 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 1840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1841 | Type |Rsv|M|0|1|0|1|1| Type Ext | Length | 1842 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1843 | Length (cont) | | 1844 +-+-+-+-+-+-+-+-+ | 1845 | Value | 1846 | | 1847 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1848 | | 1849 +-+-+-+-+-+-+-+-+ 1851 0 1 2 3 1852 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 1853 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1854 | Type |Rsv|0|0|1|1|0|0| 1855 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1857 0 1 2 3 1858 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 1859 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1860 | Type |Rsv|0|0|1|1|0|1| Type Ext | 1861 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1862 0 1 2 3 1863 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 1864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1865 | Type |Rsv|0|1|0|0|0|0| Index Start | Length | 1866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1867 | | 1868 | Value | 1869 | | 1870 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1871 | | 1872 +-+-+-+-+-+-+-+-+ 1874 0 1 2 3 1875 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 1876 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1877 | Type |Rsv|0|1|0|0|0|1| Type Ext | Index Start | 1878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1879 | Length | | 1880 +-+-+-+-+-+-+-+-+ | 1881 | Value | 1882 | | 1883 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1884 | | 1885 +-+-+-+-+-+-+-+-+ 1887 0 1 2 3 1888 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 1889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1890 | Type |Rsv|0|1|0|0|1|0| Index Start | Length | 1891 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1892 | Length (cont) | | 1893 +-+-+-+-+-+-+-+-+ | 1894 | | 1895 | Value | 1896 | | 1897 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1898 | | 1899 +-+-+-+-+-+-+-+-+ 1900 0 1 2 3 1901 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 1902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1903 | Type |Rsv|0|1|0|0|1|1| Type Ext | Index Start | 1904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1905 | Length | | 1906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1907 | | 1908 | Value | 1909 | | 1910 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1911 | | 1912 +-+-+-+-+-+-+-+-+ 1914 0 1 2 3 1915 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 1916 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1917 | Type |Rsv|0|1|0|1|0|0| Index Start | 1918 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1920 0 1 2 3 1921 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 1922 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1923 | Type |Rsv|0|1|0|1|0|1| Type Ext | Index Start | 1924 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1926 Appendix C. Complete Example 1928 An example packet, using IPv4 addresses (length four octets) is 1929 shown. This packet has a header, indicated by the initial octet 0. 1930 The packet header has semantics octet 0, and hence has version zero, 1931 a packet sequence number, but no packet TLV block. 1933 The packet contains a single message. This message has semantics 1934 octet 0, and hence has a complete message header, other than version 1935 (which is zero), including originator address, hop limit, hop count 1936 and message sequence number (which is type independent). The message 1937 has a message TLV block with content length 9 octets, containing a 1938 single TLV. This TLV has the tnoindex bit of its semantics octet 8 1939 set, and has value length 6 octets. The message then has two address 1940 blocks each with a following TLV block. 1942 The first address block contains 3 addresses. It has the anotail bit 1943 of its semantics octet 2 set, and has head length 2 octets, hence mid 1944 length two octets. It is followed by a TLV block, with content 1945 length 9 octets, containing two TLVs. The first of these TLVs has 1946 the tnoindex bit of its semantics octet 8 set, and has a single value 1947 of length 2 octets, which applies to all of the addresses in the 1948 address block. The second of these TLVs has the tnovalue bit of its 1949 semantics octet 4 set, and hence has no length or value fields. It 1950 does have index fields, which indicate those addresses this TLV 1951 applies to. 1953 The second address block contains 2 addresses. It has the anohead 1954 and ahaszerotail bits of its semantics octet 5 set, and has tail 1955 length 2 octets, hence mid length two octets. The two tail octets of 1956 each address are zero. It is followed by a TLV block with content 1957 length 5 octets. This TLV block contains a single TLV of type 1958 PREFIX_LENGTH that has the tismultivalue and tnoindex bits of its 1959 semantics octet 40 set, and a value field length of 2 octets, 1960 indicating two values each of one octet length. There is one final 1961 padding octet 0 that is not included in the message length of 59 1962 octets. 1964 0 1 2 3 1965 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 1966 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1967 |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0| Packet Sequence Number | 1968 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1969 | Message Type |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1| 1970 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1971 | Originator Address | 1972 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1973 | Hop Limit | Hop Count | Message Sequence Number | 1974 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1975 |0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1| TLV Type |0 0 0 0 1 0 0 0| 1976 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1977 |0 0 0 0 0 1 1 0| Value | 1978 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1979 | Value (cont) |0 0 0 0 0 0 1 1| 1980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1981 |0 0 0 0 0 0 1 0|0 0 0 0 0 0 1 0| Head | 1982 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1983 | Mid | Mid | 1984 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1985 | Mid |0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1| 1986 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1987 | TLV Type |0 0 0 0 1 0 0 0|0 0 0 0 0 0 1 0| Value | 1988 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1989 | Value (cont) | TLV Type |0 0 0 0 0 1 0 0| Index Start | 1990 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1991 | Index Stop |0 0 0 0 0 0 1 0|0 0 0 0 0 1 0 1|0 0 0 0 0 0 1 0| 1992 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1993 | Mid | Mid | 1994 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1995 |0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1| PREFIX_LENGTH |0 0 1 0 1 0 0 0| 1996 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1997 |0 0 0 0 0 0 1 0| Value0 | Value1 |0 0 0 0 0 0 0 0| 1998 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2000 Appendix D. Contributors 2002 This specification is the result of the joint efforts of the 2003 following contributors from the OLSRv2 Design Team -- listed 2004 alphabetically. 2006 o Cedric Adjih, INRIA, France, 2008 o Emmanuel Baccelli, INRIA, France, 2010 o Thomas Heide Clausen, LIX, Ecole Polytechnique, France, 2011 2013 o Justin W. Dean, NRL, USA 2015 o Christopher Dearlove, BAE Systems, UK, 2016 2018 o Satoh Hiroki, Hitachi SDL, Japan, 2020 o Philippe Jacquet, INRIA, France, 2022 o Monden Kazuya, Hitachi SDL, Japan, 2024 Appendix E. Acknowledgements 2026 The authors would like to acknowledge the team behind OLSRv1, as 2027 specified in RFC 3626, including Anis Laouiti, Pascale Minet, Laurent 2028 Viennot (all at INRIA, France), and Amir Qayyum (Center for Advanced 2029 Research in Engineering, Pakistan) for their contributions. 2031 The authors would like to gratefully acknowledge the following people 2032 for intense technical discussions, early reviews and comments on the 2033 specification and its components: Joe Macker (NRL), Alan Cullen (BAE 2034 Systems), Ian Chakeres (Motorola), Charlie E. Perkins (Nokia), 2035 Andreas Schjonhaug (LIX), Florent Brunneau (LIX), Yasunori Owada 2036 (Niigata University) and the entire IETF MANET working group. 2038 Authors' Addresses 2040 Thomas Heide Clausen 2041 LIX, Ecole Polytechnique, France 2043 Phone: +33 6 6058 9349 2044 Email: T.Clausen@computer.org 2045 URI: http://www.thomasclausen.org/ 2047 Christopher M. Dearlove 2048 BAE Systems Advanced Technology Centre 2050 Phone: +44 1245 242194 2051 Email: chris.dearlove@baesystems.com 2052 URI: http://www.baesystems.com/ 2054 Justin W. Dean 2055 Naval Research Laboratory 2057 Phone: +1 202 767 3397 2058 Email: jdean@itd.nrl.navy.mil 2059 URI: http://pf.itd.nrl.navy.mil/ 2061 Cedric Adjih 2062 INRIA Rocquencourt 2064 Phone: +33 1 3963 5215 2065 Email: Cedric.Adjih@inria.fr 2066 URI: http://menetou.inria.fr/~adjih/ 2068 Full Copyright Statement 2070 Copyright (C) The IETF Trust (2007). 2072 This document is subject to the rights, licenses and restrictions 2073 contained in BCP 78, and except as set forth therein, the authors 2074 retain all their rights. 2076 This document and the information contained herein are provided on an 2077 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 2078 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 2079 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 2080 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 2081 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 2082 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 2084 Intellectual Property 2086 The IETF takes no position regarding the validity or scope of any 2087 Intellectual Property Rights or other rights that might be claimed to 2088 pertain to the implementation or use of the technology described in 2089 this document or the extent to which any license under such rights 2090 might or might not be available; nor does it represent that it has 2091 made any independent effort to identify any such rights. Information 2092 on the procedures with respect to rights in RFC documents can be 2093 found in BCP 78 and BCP 79. 2095 Copies of IPR disclosures made to the IETF Secretariat and any 2096 assurances of licenses to be made available, or the result of an 2097 attempt made to obtain a general license or permission for the use of 2098 such proprietary rights by implementers or users of this 2099 specification can be obtained from the IETF on-line IPR repository at 2100 http://www.ietf.org/ipr. 2102 The IETF invites any interested party to bring to its attention any 2103 copyrights, patents or patent applications, or other proprietary 2104 rights that may cover technology that may be required to implement 2105 this standard. Please address the information to the IETF at 2106 ietf-ipr@ietf.org. 2108 Acknowledgment 2110 Funding for the RFC Editor function is provided by the IETF 2111 Administrative Support Activity (IASA).