idnits 2.17.1 draft-ietf-manet-packetbb-05.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 1495. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 1506. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 1513. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 1519. 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 434 has weird spacing: '...-length is a ...' == Line 443 has weird spacing: '...-length is a ...' == Line 451 has weird spacing: '...-length is a ...' == Line 551 has weird spacing: '...ex-stop are v...' == Line 578 has weird spacing: '...-values is a ...' -- 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 (June 15, 2007) is 6161 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) -- Possible downref: Non-RFC (?) normative reference: ref. '3' Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 8 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: December 17, 2007 BAE Systems Advanced Technology 6 Centre 7 J. Dean 8 Naval Research Laboratory 9 C. Adjih 10 INRIA Rocquencourt 11 June 15, 2007 13 Generalized MANET Packet/Message Format 14 draft-ietf-manet-packetbb-05 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 December 17, 2007. 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 53 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 54 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 6 55 4. Protocol Overview and Functioning . . . . . . . . . . . . . . 7 56 5. Signaling Framework . . . . . . . . . . . . . . . . . . . . . 8 57 5.1. Packets . . . . . . . . . . . . . . . . . . . . . . . . . 8 58 5.2. Messages . . . . . . . . . . . . . . . . . . . . . . . . . 9 59 5.2.1. Address Blocks . . . . . . . . . . . . . . . . . . . . 11 60 5.3. TLVs and TLV Blocks . . . . . . . . . . . . . . . . . . . 13 61 5.3.1. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . 13 62 5.3.2. Constraints . . . . . . . . . . . . . . . . . . . . . 16 63 5.4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 16 64 6. TLV specification . . . . . . . . . . . . . . . . . . . . . . 17 65 6.1. Address Block TLV Specification . . . . . . . . . . . . . 17 66 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 68 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 69 9.1. Normative References . . . . . . . . . . . . . . . . . . . 20 70 9.2. Informative References . . . . . . . . . . . . . . . . . . 20 71 Appendix A. Illustrations . . . . . . . . . . . . . . . . . . . 21 72 Appendix A.1. Packet . . . . . . . . . . . . . . . . . . . . . . . 21 73 Appendix A.2. Message and Padding . . . . . . . . . . . . . . . . 23 74 Appendix A.3. Message Body . . . . . . . . . . . . . . . . . . . . 29 75 Appendix A.4. Address Block . . . . . . . . . . . . . . . . . . . 30 76 Appendix A.5. TLV Block . . . . . . . . . . . . . . . . . . . . . 32 77 Appendix A.6. TLV . . . . . . . . . . . . . . . . . . . . . . . . 32 78 Appendix B. Complete Example . . . . . . . . . . . . . . . . . . 35 79 Appendix C. Contributors . . . . . . . . . . . . . . . . . . . . 37 80 Appendix D. Acknowledgements . . . . . . . . . . . . . . . . . . 38 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 82 Intellectual Property and Copyright Statements . . . . . . . . . . 40 84 1. Introduction 86 This document specifies the syntax of a general purpose multi-message 87 packet format for information exchange between MANET routers. 88 Messages consist of a message header, which is designed for control 89 of message dissemination, and a message body, which contains protocol 90 information. Only the syntax of the message body is specified. All 91 syntactical entities, including messages and packets, are specified 92 using regular expressions. 94 This document specifies: 96 o A packet format, allowing zero or more messages to be contained 97 within a single transmission, and optionally including a packet 98 header. A packet with zero messages may be sent in case the only 99 information to exchange is contained in the packet header (such as 100 a "keep alive" sequence number). 102 o A message format, where a message is composed of a message header 103 and a message body. 105 o A message header format which allows a node to make forwarding 106 decisions based on the node's present state and the message 107 header, without inspecting and processing the message body, and 108 independently of the TTL or hop limit information in the IP 109 header. Message header information permits single- and multi-hop 110 message diffusion. 112 o A message body format, containing attributes associated with the 113 message or the originator of the message, as well as blocks of 114 addresses with associated attributes. 116 o An address block format, where an address block represents sets of 117 addresses in a compact (compressed) form. 119 o A generalized type-length-value (TLV) format representing 120 attributes. Multiple TLVs can be included and associated with a 121 packet, a message, an address, or a set of addresses. 123 The specification has been explicitly designed with the following 124 properties, listed in no particular order, in mind: 126 Parsing logic - the regular expression specification facilitates 127 generic, protocol independent, parsing logic. 129 Extensibility - packets and messages defined by a protocol using 130 this specification are extensible through defining new message 131 types and new TLVs. Existing protocol specifications using this 132 specification will be able to correctly identify and skip such new 133 message types and TLVs, while correctly parsing the remainder of 134 the packet and message. 136 Efficiency - when reported addresses share common bit sequences 137 (e.g. prefixes or IPv6 interface identifiers) the address block 138 representation allows for a compact representation. Compact 139 message headers are ensured through permitting inclusion of only 140 required message header elements. 142 Separation of forwarding and processing - duplicate detection and 143 controlled scope message forwarding decisions can be made using 144 information contained in the message header, without processing 145 the message body. 147 2. Terminology 149 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 150 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 151 document are to be interpreted as described in RFC 2119. [1]. 153 Additionally, this document uses the following terminology: 155 Packet - the top level entity in this specification. Packets are 156 transmitted over a single logical hop and are not forwarded. A 157 packet contains zero or more messages, and may contain a packet 158 header. 160 Message - the fundamental entity carrying protocol information, in 161 the form of addresses and TLVs. Messages are transmitted in 162 packets, and may be forwarded based on their header information. 164 Address - an address of the same length as the source IP address in 165 the IP datagram carrying the packet. 167 TLV - a Type-Length-Value structure. This is a generic way in which 168 an attribute can be represented and correctly parsed, without the 169 parser having to understand the attribute. 171 element - a syntactic entity defined in the regular expression 172 specification, represented using the notation . 174 - if is an 8 or 16 bit field then is also used to 175 represent the value of that field. 177 ? - zero or one occurrences of the preceding element. 179 * - zero or more occurrences of the preceding element. 181 bar - a variable, usually obtained through calculations based on the 182 value(s) of field(s). Variables are introduced into the 183 specification solely as a means to clarify the description. 185 address-length - a variable whose value is the length of an address 186 in octets, it is 4 if using IPv4, 16 if using IPv6. 188 3. Applicability Statement 190 This specification describes a generic multi-message packet format, 191 for carrying MANET routing protocol signals. The specification has 192 been developed from that used by OLSR (The Optimized Link State 193 Routing Protocol) [4]. 195 The specification is designed specifically with IP (IPv4/IPv6) in 196 mind. All addresses within a control message are assumed to be of 197 the same size, deduced from IP. In the case of mixed IPv6 and IPv4 198 addresses, IPv4 addresses are represented as IPv4-mapped IPv6 199 addresses as specified in [2]. 201 The messages defined by this specification are designed to carry 202 routing protocol signals between MANET routers, and to support scope 203 limited diffusion, as well as point to point signaling in a multi-hop 204 network. 206 The packets defined by this specification are designed to carry a 207 number of messages between in a single transmission. The packets may 208 use any transport mechanism (unicast, multicast) and transport 209 protocol (TCP, UDP, ...) appropriate to the protocol using this 210 specification and may travel over a single logical hop which might 211 consist of one or more IP hops. When the diffusion mechanism enabled 212 by this specification is employed, UDP may be most appropriate. 214 This specification is particularly appropriate for extensible 215 protocols. It offers external extensibility in the form of new 216 message types. It offers internal extensibility in the form of TLVs, 217 which may be added to existing message types. 219 A protocol using the multi-message packet format defined by this 220 specification may constrain the syntax (for example requiring a full 221 message header) and features (for example specifying the suggested 222 diffusion mechanism) that the protocol will employ. 224 4. Protocol Overview and Functioning 226 This specification does not describe a protocol. It describes a 227 packet format, which may be used by any mobile ad hoc network routing 228 or other protocol. 230 5. Signaling Framework 232 This section provides syntactical specification of a packet, 233 represented by the element and the elements from which it is 234 composed. The specification is given in the form of regular 235 expressions. Illustrations of specified elements are given in 236 Appendix A. 238 The length of a is obtained as the size of the payload of 239 the transport protocol employed. 241 5.1. Packets 243 is defined by: 245 = {*}? 246 {*}* 248 where is defined in Section 5.2, and is defined 249 in Section 5.4. Successful parsing is terminated when all octets are 250 used. 252 is defined by: 254 = 255 256 ? 257 ? 259 where: 261 is an 8 bit field with all bits cleared ('0'). This field 262 serves to identify that the packet starts with a packet header. 264 is an 8 bit field, specifying the composition of 265 the packet header: 267 bit 0 (pnoseqnum): if cleared ('0'), then the packet header 268 contains a . If set ('1'), then the packet 269 header does not include a . 271 bit 1 (ptlv): if cleared ('0'), then the packet header does not 272 include a TLV block. If set ('1'), then the packet header 273 includes a TLV block. 275 bits 2-7: are RESERVED, and MUST each be cleared ('0') to be in 276 conformance with this version of the specification. 278 is omitted if the pnoseqnum bit is set ('1'), 279 otherwise is a 16 bit field, specifying a packet sequence number. 281 is omitted if the ptlv bit is cleared ('0'), and is 282 otherwise defined in Section 5.3. 284 Note that since the message type zero is reserved (see Section 7), 285 the presence or absence of a packet header can be determined by 286 inspecting the first octet of the packet. 288 5.2. Messages 290 Information is carried through messages. Messages contain: 292 o A message header. 294 o A message TLV block that contains zero or more TLVs, associated 295 with the whole message. 297 o Zero or more address blocks, each containing one or more 298 addresses. 300 o A TLV block, containing zero or more TLVs, following each address 301 block. 303 is defined by: 305 = 306 307 {}* 309 = 310 311 312 314 = ? 315 ? 316 ? 317 ? 319 where: 321 is defined in Section 5.3. 323 is defined in Section 5.2.1. 325 is an 8 bit field, specifying the type of message. A 326 type with all bits cleared ('0') MUST NOT be used. 328 is an 8 bit field, specifying the interpretation of 329 the remainder of the message header: 331 bit 0 (noorig): If cleared ('0'), then is 332 included in the . If set ('1'), then 333 is not included in the . 335 bit 1 (nohoplimit): If cleared ('0'), then is 336 included in the . If set ('1'), then is not included in the . 339 bit 2 (nohopcount): If cleared ('0'), then is 340 included in the . If set ('1'), then is not included in the 343 bit 3 (noseqnum): If cleared ('0'), then is 344 included in the . If set ('1'), then is not included in the . 347 bit 4 (typedep): If cleared ('0'), then the message sequence 348 number in the message is type-independent. If set ('1'), then 349 the message sequence number contained in the message is type 350 dependent (the message originator maintains a sequence number 351 specific to ). This bit MUST be cleared ('0') if the 352 noorig bit is set ('1'). 354 bits 5-7: are RESERVED and MUST each be cleared ('0') to be in 355 conformance with this version of the specification. 357 If bit 0 (noorig) and bit 3 (noseqnum) are both cleared, then the 358 message header provides for duplicate suppression. 360 If bit 1 (nohoplimit) and bit 2 (nohopcount) are both cleared, 361 then the message header provides for scope-delimited forwarding. 363 is a 16 bit field, specifying the size of the , 364 counted in octets. 366 is an identifier of length equal to address- 367 length, which serves to uniquely identify the node that originated 368 the message. 370 is an 8 bit field, which contains the maximum number of 371 logical hops a message should be further transmitted. 373 is an 8 bit field, which contains the number of logical 374 hops a message has traveled. 376 is a 16 bit field, which contains a unique number, 377 generated by the originator node. The , , and, if the typedep bit in the field 379 is set, the of a message serves to uniquely identify 380 the message in the network. 382 5.2.1. Address Blocks 384 An address is specified as a sequence of address-length octets of the 385 form head:mid:tail. An address block is an ordered set of addresses 386 sharing the same head and tail, and having individual mids. Network 387 addresses may be represented using the PREFIX_LENGTH TLV defined in 388 Section 6. 390
is defined by: 392 = 393 394 ? 395 ? 396 ? 397 ? 398 * 400 where: 402 is an 8 bit field containing the number of addresses 403 represented in the address block, which MUST NOT be zero. 405 is an 8 bit field specifying the interpretation of 406 the remainder of the address block: 408 bit 0 (nohead): if cleared ('0'), then is included 409 in , and may be included in . If set ('1'), then and are not 411 included in . 413 bit 1 (notail) and bit 2 (zerotail): MUST NOT both be set ('1'). 414 Otherwise, they are interpreted according to Table 1. 416 +--------+----------+---------------+-----------------+ 417 | notail | zerotail | | | 418 +--------+----------+---------------+-----------------+ 419 | 0 | 0 | included | may be included | 420 | | | | | 421 | 0 | 1 | included | not included | 422 | | | | | 423 | 1 | 0 | not included | not included | 424 +--------+----------+---------------+-----------------+ 426 Table 1 428 bits 3-7: are RESERVED and MUST each be cleared ('0') to be in 429 accordance with this version of the specification. 431 if present is an 8 bit field, which contains the total 432 length (in octets) of the head of all of the addresses. 434 head-length is a variable, defined to equal if 435 present, or 0 otherwise. 437 is omitted if head-length == 0, otherwise it is a field of 438 the head-length leftmost octets of all the addresses. 440 if present is an 8 bit field, which contains the total 441 length (in octets) of the tail of all of the addresses. 443 tail-length is a variable, defined to equal if 444 present, or 0 otherwise. 446 is omitted if tail-length == 0 or if the zerotail bit is set 447 ('1'), otherwise it is a field of the tail-length rightmost octets 448 of all the addresses. If the zerotail bit is set ('1') then the 449 tail-length rightmost octets of all the addresses are all 0. 451 mid-length is a variable, which MUST be non-negative, defined by: 453 * mid-length = address-length - head-length - tail-length 455 is omitted if mid-length == 0, otherwise each is a field 456 of length mid-length octets, representing the mid of the 457 corresponding address in the address block. 459 5.3. TLVs and TLV Blocks 461 A TLV block is defined by: 463 = 464 * 466 where: 468 is a 16 bit field, which contains the total length (in 469 octets) of all of the immediately following elements. 471 is defined in Section 5.3.1. 473 5.3.1. TLVs 475 There are three kinds of TLV, each represented by an element : 477 o A packet TLV, included in a packet header. 479 o A message TLV, included in a message before all address blocks. 481 o An address block TLV, included in a TLV block following an address 482 block. An address block TLV applies to: 484 * all addresses in the address block; OR 486 * any continuous sequence of addresses in the address block; OR 488 * a single address in the address block. 490 is defined by: 492 = 493 494 ? 495 ? 496 ? 497 ? 499 where: 501 is an 8 bit field, specifying the type of the TLV, 502 specific to the TLV kind (i.e. packet, message, or address block 503 TLV). 505 is an 8 bit field specifying the interpretation of 506 the remainder of the TLV: 508 bit 0 (extended) and bit 1 (novalue): MUST NOT both be set ('1'). 509 Otherwise, they are interpreted according to Table 2. 511 +----------+---------+--------------+--------------+ 512 | extended | novalue | | | 513 +----------+---------+--------------+--------------+ 514 | 0 | 0 | 8 bits | included | 515 | | | | | 516 | 0 | 1 | not included | not included | 517 | | | | | 518 | 1 | 0 | 16 bits | included | 519 +----------+---------+--------------+--------------+ 521 Table 2 523 bit 2 (noindex) and bit 3 (singleindex): MUST NOT both be set 524 ('1'). The former MUST be set ('1') and the latter MUST be 525 cleared ('0') for packet or message TLVs. They are interpreted 526 according to Table 3. 528 +---------+-------------+---------------+--------------+ 529 | noindex | singleindex | | | 530 +---------+-------------+---------------+--------------+ 531 | 0 | 0 | included | included | 532 | | | | | 533 | 0 | 1 | included | not included | 534 | | | | | 535 | 1 | 0 | not included | not included | 536 +---------+-------------+---------------+--------------+ 538 Table 3 540 bit 4 (multivalue): this bit serves to specify how the 541 field is interpreted, as specified below. This bit MUST be 542 cleared ('0') for packet or message TLVs, if the singleindex 543 bit is set ('1'), or if the novalue bit is set ('1'). 545 bits 5-7: are RESERVED and MUST each be cleared ('0') to be in 546 accordance with this version of the specification. 548 and when present are each an 8 bit field, 549 interpreted as follows: 551 index-start and index-stop are variables, defined according to 552 Table 4. The variable end-index is defined as follows: 554 + For message and packet TLVs: 556 - end-index = 0 558 + For address block TLVs: 560 - end-index = - 1 562 +---------+-------------+---------------+---------------+ 563 | noindex | singleindex | index-start = | index-stop = | 564 +---------+-------------+---------------+---------------+ 565 | 0 | 0 | | | 566 | | | | | 567 | 0 | 1 | | | 568 | | | | | 569 | 1 | 0 | 0 | end-index | 570 +---------+-------------+---------------+---------------+ 572 Table 4 574 For an address block TLV, the TLV applies to the addresses from 575 position index-start to position index-stop (inclusive) in the 576 address block, where the first address has position zero. 578 number-values is a variable, defined by: 580 + number-values = index-stop - index-start + 1 582 is omitted or is a 8 or 16 bit field according to Table 2. 583 If present it MUST NOT be zero. If the multivalue bit is set 584 ('1') then MUST be an integral multiple of number-values, 585 and the variable single-length is defined by: 587 * single-length = / number-values 589 If the multivalue bit is cleared ('0'), then the variable single- 590 length is defined by: 592 * single-length = 594 if present (see Table 2) is a field of length 595 octets. In an address block TLV, is associated with the 596 addresses from index-start to index-stop, inclusive. If the 597 multivalue bit is cleared ('0') then the whole of this field is 598 associated with each of the indicated addresses. If the 599 multivalue bit is set ('1') then this field is divided equally 600 into number-values fields, each of length single-length octets and 601 these are associated, in order, with the indicated addresses. 603 5.3.2. Constraints 605 TLVs in the same TLV block MUST be sorted in ascending TLV type 606 order. 608 Two or more TLVs of the same type associated with the same address 609 block MUST NOT both cover any address. 611 TLVs of the same type associated with the same address block MUST be 612 sorted in ascending index-start order. 614 5.4. Padding 616 Packet headers and messages MAY be padded to ensure 32 bit alignment 617 of each message contained within the packet and of the overall packet 618 length. 620 All elements are an integer multiple of octets, hence padding can be 621 accomplished by inserting an integer number of elements 622 after the element that is to be 32 bit aligned. 624 The number of elements required to achieve this 32 bit 625 alignment is the smallest number (0 to 3) that, when added to the 626 size of the preceding elements, produces an integer multiple of 4. 628 is an 8 bit field with all bits cleared ('0'). 630 There is no need to indicate if padding is included, since a will always precede either a message or the end of the packet. 632 In the former case, the start of a message is indicated by the next 633 non-zero octet parsed. 635 The padding after a message may be freely changed when a message is 636 forwarded without affecting the message. 638 6. TLV specification 640 This document specifies one address block TLV, which is included to 641 allow a standardized way of representing network addresses. 643 6.1. Address Block TLV Specification 645 +----------------------+------+--------+----------------------------+ 646 | Name | Type | Length | Value | 647 +----------------------+------+--------+----------------------------+ 648 | PREFIX_LENGTH | 0 | 8 bits | Indicates that the address | 649 | | | | is a network address, | 650 | | | | rather than a host | 651 | | | | address. The value is the | 652 | | | | length of the | 653 | | | | prefix/netmask. | 654 +----------------------+------+--------+----------------------------+ 656 Table 5 658 An address in an address block without an associated PREFIX_LENGTH 659 TLV may be considered to have a prefix length equal to the address 660 length in bits (i.e. address-length times 8). 662 7. IANA Considerations 664 A new registry for message types must be created with initial 665 assignments as specified in Table 6. Future values in the range 666 5-127 can be allocated using standards action [3]. Additionally, 667 values in the range 128-255 are reserved for private/local use. 669 +-------+----------------------------------------+ 670 | Value | Description | 671 +-------+----------------------------------------+ 672 | 0 | MUST NOT be allocated. | 673 | | | 674 | 1-4 | RESERVED | 675 +-------+----------------------------------------+ 677 Table 6 679 Message type 0 MUST NOT be allocated because a zero-octet signifies a 680 packet header and zero-octets are used for padding. Message types 1 681 to 4 are reserved because they are used by OLSR [4], which uses a 682 compatible packet/message header format. 684 A new registry for packet TLV types must be created, with no initial 685 assignments. Future values in the range 0-127 can be allocated using 686 standards action [3]. Additionally, values in the range 128-255 are 687 reserved for private/local use. 689 A new registry for message TLV types must be created with no initial 690 assignments. Future values in the range 0-127 can be allocated using 691 standards action [3]. Additionally, values in the range 128-255 are 692 reserved for private/local use. 694 A new registry for address block TLV types must be created with 695 initial assignments as specified in Table 7. Future values in the 696 range 1-127 can be allocated using standards action [3]. 697 Additionally, values in the range 128-255 are reserved for private/ 698 local use. 700 +--------------------+-------+--------------------------------------+ 701 | Mnemonic | Value | Description | 702 +--------------------+-------+--------------------------------------+ 703 | PREFIX_LENGTH | 0 | Indicates that associated addresses | 704 | | | are network addresses, with given | 705 | | | prefix length. | 706 +--------------------+-------+--------------------------------------+ 708 Table 7 710 8. Security Considerations 712 Messages are designed to be carriers of protocol information and MAY, 713 at each hop, be forwarded and/or processed according to the 714 information in the message header by the protocol using this 715 specification. 717 For forwarded messages where the message is unchanged by forwarding 718 nodes, then end-to-end security MAY be implemented, between nodes 719 with an existing security association, by including a suitable 720 message TLV containing a cryptographic signature in the message. 721 Since and are the only fields that may be 722 modified when such a message is forwarded in this manner, this 723 signature can be calculated based on the entire message, including 724 the message header, with the and fields set 725 to zero ('0') if present. 727 Packets are designed to carry a number of messages between 728 neighboring nodes in a single transmission and over a single logical 729 hop. Hop-by-hop packet level security MAY be implemented, between 730 nodes with an existing security association, by including a suitable 731 packet TLV containing a cryptographic signature to the packet. Since 732 packets are received as transmitted, this signature can be calculated 733 based on the entire packet, or on parts thereof as appropriate. 735 9. References 737 9.1. Normative References 739 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 740 Levels", RFC 2119, BCP 14, March 1997. 742 [2] Hinden, R. and S. Deering, "IP Version 6 Addressing 743 Architecture", RFC 4291, February 2006. 745 [3] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA 746 Considerations Section in RFCs", October 1998. 748 9.2. Informative References 750 [4] Clausen, T. and P. Jacquet, "The Optimized Link State Routing 751 Protocol", RFC 3626, October 2003. 753 Appendix A. Illustrations 755 This informative appendix illustrates the elements, which are 756 normatively specified in Section 5 using regular expressions. 758 Bits labeled Reserved, Resv, or Rsv are cleared ('0'). Bits labeled 759 N and M may be cleared ('0') or set ('1'). Octets labeled Padding 760 are cleared ('0'), and are optional. 762 Appendix A.1. Packet 764 0 1 2 3 765 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 766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 767 |0 0 0 0 0 0 0 0| Reserved |0|0| Packet Sequence Number | 768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 769 | | 770 | Message + Padding | 771 | | 772 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 773 | | 774 : ... : 775 | | 776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 777 | | 778 | Message + Padding | 779 | | 780 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 782 0 1 2 3 783 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 784 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 785 |0 0 0 0 0 0 0 0| Reserved |0|1| Padding | 786 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 787 | | 788 | Message + Padding | 789 | | 790 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 791 | | 792 : ... : 793 | | 794 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 795 | | 796 | Message + Padding | 797 | | 798 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 799 0 1 2 3 800 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 801 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 802 |0 0 0 0 0 0 0 0| Reserved |1|0| Packet Sequence Number | 803 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 804 | | 805 | Packet TLV Block | 806 | | 807 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 808 | | Padding | 809 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 810 | | 811 | Message + Padding | 812 | | 813 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 814 | | 815 : ... : 816 | | 817 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 818 | | 819 | Message + Padding | 820 | | 821 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 823 0 1 2 3 824 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 825 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 826 |0 0 0 0 0 0 0 0| Reserved |1|1| | 827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 828 | | 829 | Packet TLV Block | 830 | | 831 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 832 | | Padding | 833 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 834 | | 835 | Message + Padding | 836 | | 837 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 838 | | 839 : ... : 840 | | 841 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 | | 843 | Message + Padding | 844 | | 845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 846 0 1 2 3 847 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 848 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 849 | | 850 | Message + Padding | 851 | | 852 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 853 | | 854 : ... : 855 | | 856 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 857 | | 858 | Message + Padding | 859 | | 860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 862 Appendix A.2. Message and Padding 864 0 1 2 3 865 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 866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 867 | Message Type | Rsv |N|0|0|0|0| Message Size | 868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 869 | Originator Address | 870 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 871 | Hop Limit | Hop Count | Message Sequence Number | 872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 873 | | 874 | Message Body | 875 | | 876 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 877 | | Padding | 878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 880 0 1 2 3 881 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 882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 883 | Message Type | Rsv |0|0|0|0|1| Message Size | 884 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 885 | Hop Limit | Hop Count | Message Sequence Number | 886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 887 | | 888 | Message Body | 889 | | 890 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 | | Padding | 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 893 0 1 2 3 894 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 895 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 896 | Message Type | Rsv |N|0|0|1|0| Message Size | 897 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 898 | Originator Address | 899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 900 | Hop Count | Message Sequence Number | | 901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 902 | | 903 | Message Body | 904 | | 905 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 906 | | Padding | 907 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 909 0 1 2 3 910 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 911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 912 | Message Type | Rsv |0|0|0|1|1| Message Size | 913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 914 | Hop Count | Message Sequence Number | | 915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 916 | | 917 | Message Body | 918 | | 919 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 920 | | Padding | 921 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 923 0 1 2 3 924 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 925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 926 | Message Type | Rsv |N|0|1|0|0| Message Size | 927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 928 | Originator Address | 929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 930 | Hop Limit | Message Sequence Number | | 931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 932 | | 933 | Message Body | 934 | | 935 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 936 | | Padding | 937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 938 0 1 2 3 939 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 940 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 941 | Message Type | Rsv |N|0|1|0|1| Message Size | 942 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 943 | Hop Limit | Message Sequence Number | | 944 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 945 | | 946 | Message Body | 947 | | 948 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 949 | | Padding | 950 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 952 0 1 2 3 953 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 954 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 955 | Message Type | Rsv |N|0|1|1|0| Message Size | 956 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 957 | Originator Address | 958 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 959 | Message Sequence Number | | 960 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 961 | | 962 | Message Body | 963 | | 964 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 965 | | Padding | 966 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 968 0 1 2 3 969 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 970 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 971 | Message Type | Rsv |N|0|1|1|1| Message Size | 972 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 973 | Message Sequence Number | | 974 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 975 | | 976 | Message Body | 977 | | 978 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 979 | | Padding | 980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 981 0 1 2 3 982 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 983 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 984 | Message Type | Rsv |N|1|0|0|0| Message Size | 985 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 986 | Originator Address | 987 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 988 | Hop Limit | Hop Count | | 989 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 990 | | 991 | Message Body | 992 | | 993 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 994 | | Padding | 995 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 997 0 1 2 3 998 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 999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1000 | Message Type | Rsv |N|1|0|0|1| Message Size | 1001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1002 | Hop Limit | Hop Count | | 1003 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1004 | | 1005 | Message Body | 1006 | | 1007 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1008 | | Padding | 1009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1011 0 1 2 3 1012 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 1013 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1014 | Message Type | Rsv |N|1|0|1|0| Message Size | 1015 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1016 | Originator Address | 1017 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1018 | Hop Count | | 1019 +-+-+-+-+-+-+-+-+ | 1020 | Message Body | 1021 | | 1022 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1023 | | Padding | 1024 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1025 0 1 2 3 1026 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 1027 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1028 | Message Type | Rsv |N|1|0|1|1| Message Size | 1029 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1030 | Hop Count | | 1031 +-+-+-+-+-+-+-+-+ | 1032 | Message Body | 1033 | | 1034 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1035 | | Padding | 1036 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1038 0 1 2 3 1039 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 1040 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1041 | Message Type | Rsv |N|1|1|0|0| Message Size | 1042 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1043 | Originator Address | 1044 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1045 | Hop Limit | | 1046 +-+-+-+-+-+-+-+-+ | 1047 | Message Body | 1048 | | 1049 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1050 | | Padding | 1051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1053 0 1 2 3 1054 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 1055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1056 | Message Type | Rsv |N|1|1|0|1| Message Size | 1057 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1058 | Hop Limit | | 1059 +-+-+-+-+-+-+-+-+ | 1060 | Message Body | 1061 | | 1062 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1063 | | Padding | 1064 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1065 0 1 2 3 1066 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 1067 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1068 | Message Type | Rsv |N|1|1|1|0| Message Size | 1069 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1070 | Originator Address | 1071 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1072 | | 1073 | Message Body | 1074 | | 1075 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1076 | | Padding | 1077 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1079 0 1 2 3 1080 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 1081 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1082 | Message Type | Rsv |N|1|1|1|0| Message Size | 1083 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1084 | | 1085 | Message Body | 1086 | | 1087 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1088 | | Padding | 1089 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1091 Appendix A.3. Message Body 1093 0 1 2 3 1094 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 1095 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1096 | | 1097 | Message TLV Block | 1098 | +-+-+-+-+-+-+-+-+ 1099 | | | 1100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1101 | | 1102 | Address Block | 1103 | | 1104 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1105 | | | 1106 +-+-+-+-+-+-+-+-+ | 1107 | Address TLV Block | 1108 | | 1109 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1110 | | | 1111 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1112 | | 1113 : ... : 1114 | | 1115 | +-+-+-+-+-+-+-+-+ 1116 | | | 1117 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1118 | | 1119 | Address Block | 1120 | | 1121 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1122 | | | 1123 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1124 | | 1125 | Address TLV Block | 1126 | | 1127 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1128 | | 1129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1131 Appendix A.4. Address Block 1133 0 1 2 3 1134 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 1135 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1136 | Number Addrs | Resv |0|0|0| Head Length | Head | 1137 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1138 | Head (cont) | Tail Length | Tail | 1139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1140 | Mid | | 1141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1142 | | 1143 : ... : 1144 | | 1145 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1146 | | Mid | 1147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1149 0 1 2 3 1150 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 1151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1152 | Number Addrs | Resv |0|0|1| Tail Length | Tail | 1153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1154 | Tail (cont) | Mid | | 1155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1156 | | 1157 : ... : 1158 | | 1159 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1160 | | Mid | 1161 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1163 0 1 2 3 1164 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 1165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1166 | Number Addrs | Resv |0|1|0| Head Length | Head | 1167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1168 | Head (cont) | Mid | | 1169 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1170 | | 1171 : ... : 1172 | | 1173 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1174 | | Mid | 1175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1176 0 1 2 3 1177 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 1178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1179 | Number Addrs | Resv |0|1|1| Mid | 1180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1181 | Mid (cont) | | 1182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1183 | | 1184 : ... : 1185 | | 1186 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1187 | | Mid | 1188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1189 | Mid (cont) | 1190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1192 0 1 2 3 1193 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 1194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1195 | Number Addrs | Resv |1|0|0| Head Length | Head | 1196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1197 | Head (cont) | Tail Length | Mid | 1198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1199 | | 1200 : ... : 1201 | | 1202 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1203 | Mid | 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 | Number Addrs | Resv |1|0|1| Tail Length | Mid | 1210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1211 | Mid (cont) | | 1212 +-+-+-+-+-+-+-+-+ | 1213 | | 1214 : ... : 1215 | | 1216 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1217 | | Mid | 1218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1220 Appendix A.5. TLV Block 1222 0 1 2 3 1223 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 1224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1225 | Length | | 1226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1227 | | 1228 | TLV | 1229 | +-+-+-+-+-+-+-+-+ 1230 | | | 1231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1232 | | 1233 : ... : 1234 | | 1235 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1236 | | | 1237 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1238 | | 1239 | TLV | 1240 | +-+-+-+-+-+-+-+-+ 1241 | | 1242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1244 Appendix A.6. TLV 1246 0 1 2 3 1247 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 1248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1249 | Type |Resv |M|0|0|0|0| Index Start | Index Stop | 1250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1251 | Length | | 1252 +-+-+-+-+-+-+-+-+ | 1253 | Value | 1254 | | 1255 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1256 | | 1257 +-+-+-+-+-+-+-+-+ 1258 0 1 2 3 1259 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 1260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1261 | Type |Resv |M|0|0|0|1| Index Start | Index Stop | 1262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1263 | Length | | 1264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1265 | | 1266 | Value | 1267 | | 1268 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1269 | | 1270 +-+-+-+-+-+-+-+-+ 1272 0 1 2 3 1273 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 1274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1275 | Type |Resv |0|0|0|1|0| Index Start | Index Stop | 1276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1278 0 1 2 3 1279 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 1280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1281 | Type |Resv |M|0|1|0|0| Length | | 1282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1283 | | 1284 | Value | 1285 | | 1286 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1287 | | 1288 +-+-+-+-+-+-+-+-+ 1290 0 1 2 3 1291 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 1292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1293 | Type |Resv |M|0|1|0|1| Length | 1294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1295 | | 1296 | Value | 1297 | | 1298 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1299 | | 1300 +-+-+-+-+-+-+-+-+ 1301 0 1 2 3 1302 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 1303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1304 | Type |Resv |0|0|1|1|0| 1305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1307 0 1 2 3 1308 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 1309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1310 | Type |Resv |0|1|0|0|0| Index Start | Length | 1311 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1312 | | 1313 | Value | 1314 | | 1315 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1316 | | 1317 +-+-+-+-+-+-+-+-+ 1319 0 1 2 3 1320 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 1321 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1322 | Type |Resv |0|1|0|0|1| Index Start | Length | 1323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1324 | Length (cont) | | 1325 +-+-+-+-+-+-+-+-+ | 1326 | | 1327 | Value | 1328 | | 1329 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1330 | | 1331 +-+-+-+-+-+-+-+-+ 1333 0 1 2 3 1334 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 1335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1336 | Type |Resv |0|1|0|1|0| Index Start | 1337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1339 Appendix B. Complete Example 1341 An example packet, using IPv4 addresses (length four octets) is 1342 shown. This packet has a header, indicated by the initial octet 0. 1343 The packet header has semantics octet 0, and hence has a packet 1344 sequence number, but no packet TLV block. 1346 The packet contains a single message. This message has semantics 1347 octet 0, and hence has a complete message header, including 1348 originator address, hop limit, hop count and message sequence number 1349 (which is type independent). The message has a message TLV block 1350 with content length 9 octets, containing a single TLV. This TLV has 1351 the noindex bit of its semantics octet 4 set, and has value length 6 1352 octets. The message then has two address blocks each with a 1353 following TLV block. 1355 The first address block contains 3 addresses. It has the notail bit 1356 of its semantics octet 2 set, and has head length 2 octets, hence mid 1357 length two octets. It is followed by a TLV block, with content 1358 length 9 octets, containing two TLVs. The first of these TLVs has 1359 the noindex bit of its semantics octet 4 set, and has a single value 1360 of length 2 octets, which applies to all of the addresses in the 1361 address block. The second of these TLVs has the novalue bit of its 1362 semantics octet 2 set, and hence has no length or value fields. It 1363 does have index fields, which indicate those addresses this TLV 1364 applies to. 1366 The second address block contains 2 addresses. It has the nohead and 1367 zerotail bits of its semantics octet 5 set, and has tail length 2 1368 octets, hence mid length two octets. The two tail octets of each 1369 address are zero. It is followed by a TLV block with content length 1370 5 octets. This TLV block contains a single TLV of type PREFIX_LENGTH 1371 that has the multivalue and noindex bits of its semantics octet 20 1372 set, and a value field length of 2 octets, indicating two values each 1373 of one octet length. There is one final padding octet 0 that is not 1374 included in the message length of 59 octets. 1376 0 1 2 3 1377 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 1378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1379 |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0| Packet Sequence Number | 1380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1381 | 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| 1382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1383 | Originator Address | 1384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1385 | Hop Limit | Hop Count | Message Sequence Number | 1386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1387 |0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1| TLV Type |0 0 0 0 0 1 0 0| 1388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1389 |0 0 0 0 0 1 1 0| Value | 1390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1391 | Value (cont) |0 0 0 0 0 0 1 1| 1392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1393 |0 0 0 0 0 0 1 0|0 0 0 0 0 0 1 0| Head | 1394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1395 | Mid | Mid | 1396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1397 | Mid |0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1| 1398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1399 | TLV Type |0 0 0 0 0 1 0 0|0 0 0 0 0 0 1 0| Value | 1400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1401 | Value (cont) | TLV Type |0 0 0 0 0 0 1 0| Index Start | 1402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1403 | 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| 1404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1405 | Mid | Mid | 1406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1407 |0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1| PREFIX_LENGTH |0 0 0 1 0 1 0 0| 1408 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1409 |0 0 0 0 0 0 1 0| Value0 | Value1 |0 0 0 0 0 0 0 0| 1410 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1412 Appendix C. Contributors 1414 This specification is the result of the joint efforts of the 1415 following contributors from the OLSRv2 Design Team -- listed 1416 alphabetically. 1418 o Cedric Adjih, INRIA, France, 1420 o Emmanuel Baccelli, Hitachi Labs Europe, France, 1421 1423 o Thomas Heide Clausen, LIX, Ecole Polytechnique, France, 1424 1426 o Justin W. Dean, NRL, USA 1428 o Christopher Dearlove, BAE Systems, UK, 1429 1431 o Satoh Hiroki, Hitachi SDL, Japan, 1433 o Philippe Jacquet, INRIA, France, 1435 o Monden Kazuya, Hitachi SDL, Japan, 1437 Appendix D. Acknowledgements 1439 The authors would like to acknowledge the team behind OLSRv1, as 1440 specified in RFC 3626, including Anis Laouiti, Pascale Minet, Laurent 1441 Viennot (all at INRIA, France), and Amir Qayyum (Center for Advanced 1442 Research in Engineering, Pakistan) for their contributions. 1444 The authors would like to gratefully acknowledge the following people 1445 for intense technical discussions, early reviews and comments on the 1446 specification and its components: Joe Macker (NRL), Alan Cullen (BAE 1447 Systems), Ian Chakeres (Boeing), Charlie E. Perkins (Nokia), Andreas 1448 Schjonhaug (LIX), Florent Brunneau (LIX), Yasunori Owada (Niigata 1449 University) and the entire IETF MANET working group. 1451 Authors' Addresses 1453 Thomas Heide Clausen 1454 LIX, Ecole Polytechnique, France 1456 Phone: +33 6 6058 9349 1457 Email: T.Clausen@computer.org 1458 URI: http://www.lix.polytechnique.fr/Labo/Thomas.Clausen/ 1460 Christopher M. Dearlove 1461 BAE Systems Advanced Technology Centre 1463 Phone: +44 1245 242194 1464 Email: chris.dearlove@baesystems.com 1465 URI: http://www.baesystems.com/ocs/sharedservices/atc/ 1467 Justin W. Dean 1468 Naval Research Laboratory 1470 Phone: +1 202 767 3397 1471 Email: jdean@itd.nrl.navy.mil 1472 URI: http://pf.itd.nrl.navy.mil/ 1474 Cedric Adjih 1475 INRIA Rocquencourt 1477 Phone: +33 1 3963 5215 1478 Email: Cedric.Adjih@inria.fr 1479 URI: http://menetou.inria.fr/~adjih/ 1481 Full Copyright Statement 1483 Copyright (C) The IETF Trust (2007). 1485 This document is subject to the rights, licenses and restrictions 1486 contained in BCP 78, and except as set forth therein, the authors 1487 retain all their rights. 1489 This document and the information contained herein are provided on an 1490 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 1491 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 1492 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 1493 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 1494 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 1495 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 1497 Intellectual Property 1499 The IETF takes no position regarding the validity or scope of any 1500 Intellectual Property Rights or other rights that might be claimed to 1501 pertain to the implementation or use of the technology described in 1502 this document or the extent to which any license under such rights 1503 might or might not be available; nor does it represent that it has 1504 made any independent effort to identify any such rights. Information 1505 on the procedures with respect to rights in RFC documents can be 1506 found in BCP 78 and BCP 79. 1508 Copies of IPR disclosures made to the IETF Secretariat and any 1509 assurances of licenses to be made available, or the result of an 1510 attempt made to obtain a general license or permission for the use of 1511 such proprietary rights by implementers or users of this 1512 specification can be obtained from the IETF on-line IPR repository at 1513 http://www.ietf.org/ipr. 1515 The IETF invites any interested party to bring to its attention any 1516 copyrights, patents or patent applications, or other proprietary 1517 rights that may cover technology that may be required to implement 1518 this standard. Please address the information to the IETF at 1519 ietf-ipr@ietf.org. 1521 Acknowledgment 1523 Funding for the RFC Editor function is provided by the IETF 1524 Administrative Support Activity (IASA).