draft-ietf-manet-packetbb-10.txt   draft-ietf-manet-packetbb-11.txt 
Mobile Ad hoc Networking (MANET) T. Clausen Mobile Ad hoc Networking (MANET) T. Clausen
Internet-Draft LIX, Ecole Polytechnique, France Internet-Draft LIX, Ecole Polytechnique, France
Intended status: Standards Track C. Dearlove Intended status: Standards Track C. Dearlove
Expires: March 4, 2008 BAE Systems Advanced Technology Expires: May 17, 2008 BAE Systems Advanced Technology
Centre Centre
J. Dean J. Dean
Naval Research Laboratory Naval Research Laboratory
C. Adjih C. Adjih
INRIA Rocquencourt INRIA Rocquencourt
September 2007 November 14, 2007
Generalized MANET Packet/Message Format Generalized MANET Packet/Message Format
draft-ietf-manet-packetbb-10 draft-ietf-manet-packetbb-11
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 40 skipping to change at page 1, line 40
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 4, 2008. This Internet-Draft will expire on May 17, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This document specifies a multi-message packet format that may be This document specifies a multi-message packet format that may be
used by mobile ad hoc network routing and other protocols. used by mobile ad hoc network routing and other protocols.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Applicability Statement . . . . . . . . . . . . . . . . . . . 7 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 6
4. Protocol Overview and Functioning . . . . . . . . . . . . . . 8 4. Protocol Overview and Functioning . . . . . . . . . . . . . . 7
5. Signaling Framework . . . . . . . . . . . . . . . . . . . . . 9 5. Signaling Framework . . . . . . . . . . . . . . . . . . . . . 8
5.1. Packets . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1. Packets . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2. Messages . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2. Messages . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3. Packet and Message Versioning . . . . . . . . . . . . . . 13 5.3. Packet and Message Versioning . . . . . . . . . . . . . . 12
5.4. Address Blocks . . . . . . . . . . . . . . . . . . . . . . 13 5.4. Address Blocks . . . . . . . . . . . . . . . . . . . . . . 12
5.5. TLVs and TLV Blocks . . . . . . . . . . . . . . . . . . . 15 5.5. TLVs and TLV Blocks . . . . . . . . . . . . . . . . . . . 15
5.5.1. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.5.1. TLVs . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.5.2. TLV Inclusion and Constraints . . . . . . . . . . . . 18 5.5.2. TLV Inclusion and Constraints . . . . . . . . . . . . 18
5.6. Malformed Elements . . . . . . . . . . . . . . . . . . . . 19 5.6. Malformed Elements . . . . . . . . . . . . . . . . . . . . 19
5.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 20
6. TLV specification . . . . . . . . . . . . . . . . . . . . . . 21 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
6.1. Address Block TLV Specification . . . . . . . . . . . . . 21 6.1. Message Types . . . . . . . . . . . . . . . . . . . . . . 21
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 6.2. Packet TLV Types . . . . . . . . . . . . . . . . . . . . . 21
7.1. Message Types . . . . . . . . . . . . . . . . . . . . . . 22 6.3. Message TLV Types . . . . . . . . . . . . . . . . . . . . 22
7.2. Packet TLV Types . . . . . . . . . . . . . . . . . . . . . 22 6.4. Address Block TLV Types . . . . . . . . . . . . . . . . . 22
7.3. Message TLV Types . . . . . . . . . . . . . . . . . . . . 23 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24
7.4. Address Block TLV Types . . . . . . . . . . . . . . . . . 23 7.1. Security Suggestions . . . . . . . . . . . . . . . . . . . 24
8. Security Considerations . . . . . . . . . . . . . . . . . . . 25 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.1. Security Suggestions . . . . . . . . . . . . . . . . . . . 25 8.1. Normative References . . . . . . . . . . . . . . . . . . . 25
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26 8.2. Informative References . . . . . . . . . . . . . . . . . . 25
9.1. Normative References . . . . . . . . . . . . . . . . . . . 26 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 26
9.2. Informative References . . . . . . . . . . . . . . . . . . 26 A.1. Address Block Examples . . . . . . . . . . . . . . . . . . 26
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 27
A.1. Address Block Examples . . . . . . . . . . . . . . . . . . 27
A.2. TLV Examples . . . . . . . . . . . . . . . . . . . . . . . 28 A.2. TLV Examples . . . . . . . . . . . . . . . . . . . . . . . 28
Appendix B. Illustrations . . . . . . . . . . . . . . . . . . . 31 Appendix B. Illustrations . . . . . . . . . . . . . . . . . . . 31
Appendix B.1. Packet . . . . . . . . . . . . . . . . . . . . . . . 31 Appendix B.1. Packet . . . . . . . . . . . . . . . . . . . . . . . 31
Appendix B.2. Message and Padding . . . . . . . . . . . . . . . . 36 Appendix B.2. Message and Padding . . . . . . . . . . . . . . . . 36
Appendix B.3. Message Body . . . . . . . . . . . . . . . . . . . . 42 Appendix B.3. Message Body . . . . . . . . . . . . . . . . . . . . 42
Appendix B.4. Address Block . . . . . . . . . . . . . . . . . . . 43 Appendix B.4. Address Block . . . . . . . . . . . . . . . . . . . 43
Appendix B.5. TLV Block . . . . . . . . . . . . . . . . . . . . . 45 Appendix B.5. TLV Block . . . . . . . . . . . . . . . . . . . . . 50
Appendix B.6. TLV . . . . . . . . . . . . . . . . . . . . . . . . 45 Appendix B.6. TLV . . . . . . . . . . . . . . . . . . . . . . . . 50
Appendix C. Complete Example . . . . . . . . . . . . . . . . . . 51 Appendix C. Complete Example . . . . . . . . . . . . . . . . . . 56
Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 53 Appendix D. Contributors . . . . . . . . . . . . . . . . . . . . 58
Appendix E. Acknowledgements . . . . . . . . . . . . . . . . . . 54 Appendix E. Acknowledgements . . . . . . . . . . . . . . . . . . 59
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 55 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 60
Intellectual Property and Copyright Statements . . . . . . . . . . 56 Intellectual Property and Copyright Statements . . . . . . . . . . 61
1. Introduction 1. Introduction
This document specifies the syntax of a general purpose multi-message This document specifies the syntax of a general purpose multi-message
packet format for information exchange between MANET routers. packet format for information exchange between MANET routers.
Messages consist of a message header, which is designed for control Messages consist of a message header, which is designed for control
of message dissemination, and a message body, which contains protocol of message dissemination, and a message body, which contains protocol
information. Only the syntax of the packet and messages is information. Only the syntax of the packet and messages is
specified. All syntactical entities, including packets and messages, specified. All syntactical entities, including packets and messages,
are specified using regular expressions. are specified using regular expressions.
This document specifies: This document specifies:
o A packet format, allowing zero or more messages to be contained o A packet format, allowing zero or more messages to be contained
within a single transmission, and optionally including a packet within a single transmission, and optionally including a packet
header. A packet with zero messages may be sent in case the only header. A packet with zero messages may be sent in case the only
information to exchange is contained in the packet header (such as information to exchange is contained in the packet header.
a "keep alive" sequence number).
o A message format, where a message is composed of a message header o A message format, where a message is composed of a message header
and a message body. and a message body.
o A message header format, which may allow a node to make o A message header format, which contains information which may be
praocessing and forwarding decisions based on the node's present sufficient to allow a protocol using this specification to make
state and the message header, without inspecting and parsing the processing and forwarding decisions.
message body. Message header information permits single- and
multi-hop message diffusion.
o A message body format, containing attributes associated with the o A message body format, containing attributes associated with the
message or the originator of the message, as well as blocks of message or the originator of the message, as well as blocks of
addresses with associated attributes. addresses with associated attributes.
o An address block format, where an address block represents sets of o An address block format, where an address block represents sets of
addresses in a compact (compressed) form. network addresses in a compact (compressed) form.
o A generalized type-length-value (TLV) format representing o A generalized type-length-value (TLV) format representing
attributes. Multiple TLVs can be included and each associated attributes. Multiple TLVs can be included and each associated
with a packet, a message, an address, or a set of addresses. with a packet, a message, an address, or a set of addresses.
The specification has been explicitly designed with the following The specification has been explicitly designed with the following
properties, listed in no particular order, in mind: properties, listed in no particular order, in mind:
Parsing logic - the regular expression specification facilitates Parsing logic - the regular expression specification facilitates
generic, protocol independent, parsing logic. generic, protocol independent, parsing logic.
skipping to change at page 5, line 13 skipping to change at page 4, line 11
specification will be able to correctly identify and skip such new specification will be able to correctly identify and skip such new
message types and TLVs, while correctly parsing the remainder of message types and TLVs, while correctly parsing the remainder of
the packet and message. the packet and message.
Efficiency - when reported addresses share common bit sequences Efficiency - when reported addresses share common bit sequences
(e.g. prefixes or IPv6 interface identifiers) the address block (e.g. prefixes or IPv6 interface identifiers) the address block
representation allows for a compact representation. Compact representation allows for a compact representation. Compact
message headers are ensured through permitting inclusion of only message headers are ensured through permitting inclusion of only
required message header elements, unless indicated otherwise. The required message header elements, unless indicated otherwise. The
structure of packet and message encoding allows parsing, structure of packet and message encoding allows parsing,
verifying, and identifying individual elements in a single linear verifying, and identifying individual elements in a single pass.
pass.
Separation of forwarding and processing - duplicate detection and Separation of forwarding and processing - a protocol using this
specification can be designed such that duplicate detection and
controlled scope message forwarding decisions can be made using controlled scope message forwarding decisions can be made using
information contained in the message header, without processing information contained in the message header, without processing
the message body. the message body.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119. [1]. document are to be interpreted as described in RFC 2119. [1].
Additionally, this document uses the following terminology: Additionally, this document uses the following terminology:
Packet - the top level entity in this specification. Packets are Packet - the top level entity in this specification. Packets are
transmitted over a single logical hop and are not forwarded. A transmitted over a single logical hop and are not forwarded. A
packet contains zero or more messages, and may contain a packet packet contains zero or more messages, and may contain a packet
header. header.
Message - the fundamental entity carrying protocol information, in Message - the fundamental entity carrying protocol information, in
the form of addresses and TLVs. Messages are transmitted in the form of addresses and TLVs. Messages are designed to be able
packets, and may be forwarded based on their header information. to be forwarded over one or more logical hops.
Address - a number of octets of the same length as the source IP Address - a number of octets of the same length as the source IP
address in the IP datagram carrying the packet. The meaning of an address in the IP datagram carrying the packet. The meaning of an
address is defined by the protocol using this specification. address is defined by the protocol using this specification.
Network Address - An address plus a prefix length between zero and
the length of an address in bits, inclusive.
TLV - a Type-Length-Value structure. This is a generic way in which TLV - a Type-Length-Value structure. This is a generic way in which
an attribute can be represented and correctly parsed, without the an attribute can be represented and correctly parsed, without the
parser having to understand the attribute. parser having to understand the attribute.
Element - a syntactic entity defined in the regular expression Element - a syntactic entity defined in the regular expression
specification, represented using the notation <foo>. specification, represented using the notation <foo>.
<foo> - if <foo> is an 8 or 16 bit field then <foo> is also used to <foo> - if <foo> is an 8 or 16 bit field then <foo> is also used to
represent the value of that field. represent the value of that field.
skipping to change at page 10, line 13 skipping to change at page 9, line 13
included in the <pkt-header>. included in the <pkt-header>.
bit 2 (pnoseqnum): if cleared ('0'), then <pkt-seq-num> is bit 2 (pnoseqnum): if cleared ('0'), then <pkt-seq-num> is
included in the <pkt-header>. If set ('1'), then <pkt-seq-num> included in the <pkt-header>. If set ('1'), then <pkt-seq-num>
is not included in the <pkt-header>. is not included in the <pkt-header>.
bit 3 (phastlv): if cleared ('0'), then <tlv-block> is not bit 3 (phastlv): if cleared ('0'), then <tlv-block> is not
included in the <pkt-header>. If set ('1'), then <tlv-block> included in the <pkt-header>. If set ('1'), then <tlv-block>
is included in the <pkt-header>. is included in the <pkt-header>.
bits 4-7: are RESERVED, and MUST each be cleared ('0') to be in bit 4 (pnouniord): if cleared ('0'), then the packet TLV block
MUST conform to the constraints in Section 5.5.2. If set
('1'), then the packet TLV block is not subject to the
constraints in Section 5.5.2. Additional constraints MAY be
imposed by a protocol using this specification.
bits 5-7: are RESERVED, and MUST each be cleared ('0') to be in
conformance with this version of the specification. conformance with this version of the specification.
<pkt-version> is omitted if the phasversion bit is cleared ('0'), <pkt-version> is omitted if the phasversion bit is cleared ('0'),
otherwise is an 8 bit field, specifying the version of this otherwise is an 8 bit field, specifying the version of this
specification. specification.
<pkt-size> is omitted if the phassize bit is cleared ('0'), <pkt-size> is omitted if the phassize bit is cleared ('0'),
otherwise is a 16 bit field, specifying the size of the <packet> otherwise is a 16 bit field, specifying the size of the <packet>
counted in octets. counted in octets.
<pkt-seq-num> is omitted if the pnoseqnum bit is set ('1'), <pkt-seq-num> is omitted if the pnoseqnum bit is set ('1'),
otherwise is a 16 bit field, specifying a packet sequence number. otherwise is a 16 bit field, specifying a packet sequence number.
<tlv-block> is omitted if the phastlv bit is cleared ('0'), and is <tlv-block> is omitted if the phastlv bit is cleared ('0'), and is
otherwise as defined in Section 5.5. otherwise as defined in Section 5.5.
Note that since the message type zero is not used (see Section 7), Note that since the message type zero is not used (see Section 6),
the presence or absence of a packet header can be determined by the presence or absence of a packet header can be determined by
inspecting the first octet of the packet. inspecting the first octet of the packet.
pkt-version is a variable, defined to equal <pkt-version> if pkt-version is a variable, defined to equal <pkt-version> if
present, or 0 otherwise. See Section 5.3. present, or 0 otherwise. See Section 5.3.
pkt-size is a variable, defined to equal <pkt-size> if present, or pkt-size is a variable, defined to equal <pkt-size> if present, or
the size of the payload of the transport protocol employed the size of the payload of the network or transport protocol
otherwise. employed otherwise. (If not present, and the payload size is
unknown, then the packet cannot be parsed, and is considered
malformed.)
5.2. Messages 5.2. Messages
Information is carried through messages. Messages contain: Information is carried through messages. Messages contain:
o A message header. o A message header.
o A message TLV block that contains zero or more TLVs, associated o A message TLV block that contains zero or more TLVs, associated
with the whole message. with the whole message.
o Zero or more address blocks, each containing one or more o Zero or more address blocks, each containing one or more
addresses. addresses.
o A TLV block, containing zero or more TLVs, following each address o An address TLV block, containing zero or more TLVs, following each
block. address block.
<message> is defined by: <message> is defined by:
<message> = <msg-header> <message> = <msg-header>
<tlv-block> <tlv-block>
{<addr-block><tlv-block>}* {<addr-block><tlv-block>}*
<msg-header> = <msg-type> <msg-header> = <msg-type>
<msg-semantics> <msg-semantics>
<msg-version>? <msg-version>?
<msg-size>? <msg-size>
<msg-orig-addr>? <msg-orig-addr>?
<msg-hop-limit>? <msg-hop-limit>?
<msg-hop-count>? <msg-hop-count>?
<msg-seq-num>? <msg-seq-num>?
where: where:
<tlv-block> is as defined in Section 5.5. <tlv-block> is as defined in Section 5.5.
<addr-block> is as defined in Section 5.4. <addr-block> is as defined in Section 5.4.
skipping to change at page 12, line 15 skipping to change at page 11, line 28
included in the <msg-header>. If set ('1'), then <msg-seq-num> included in the <msg-header>. If set ('1'), then <msg-seq-num>
is not included in the <msg-header>. is not included in the <msg-header>.
bit 5 (mistypedep): If cleared ('0'), then the message sequence bit 5 (mistypedep): If cleared ('0'), then the message sequence
number in the message is type-independent. If set ('1'), then number in the message is type-independent. If set ('1'), then
the message sequence number contained in the message is type the message sequence number contained in the message is type
dependent (the message originator maintains a sequence number dependent (the message originator maintains a sequence number
specific to <msg-type>). This bit MUST be cleared ('0') if the specific to <msg-type>). This bit MUST be cleared ('0') if the
mnoorig bit is set ('1'). mnoorig bit is set ('1').
bits 6-7: are RESERVED and MUST each be cleared ('0') to be in bit 6 (mnouniord): if cleared ('0'), then the message TLV block
conformance with this version of the specification. and all address TLV blocks in the message MUST conform to the
constraints in Section 5.5.2. If set ('1'), then the message
TLV block and all address TLV blocks in the message are not
subject to the constraints in Section 5.5.2. Additional
constraints MAY be imposed by a protocol using this
specification.
bit 7: is RESERVED and MUST be cleared ('0') to be in conformance
with this version of the specification.
If bit 1 (mnoorig) and bit 4 (mnoseqnum) are both cleared, then If bit 1 (mnoorig) and bit 4 (mnoseqnum) are both cleared, then
the message header provides for duplicate suppression. the message header provides for duplicate suppression.
If bit 2 (mnohoplimit) is cleared, then the message header If bit 2 (mnohoplimit) is cleared, then the message header
provides for scope-delimited forwarding. provides for scope-delimited forwarding.
<msg-version> is omitted if the mhasversion bit is cleared ('0'), <msg-version> is omitted if the mhasversion bit is cleared ('0'),
otherwise is an 8 bit field, specifying the version of this otherwise is an 8 bit field, specifying the version of this
specification. specification.
skipping to change at page 12, line 39 skipping to change at page 12, line 13
counted in octets. counted in octets.
<msg-orig-addr> is omitted if the mnoorig bit is set ('1'), <msg-orig-addr> is omitted if the mnoorig bit is set ('1'),
otherwise is an identifier of length equal to address-length, otherwise is an identifier of length equal to address-length,
which serves to uniquely identify the node that originated the which serves to uniquely identify the node that originated the
message. message.
<msg-hop-limit> is omitted if the mnohoplimit bit is set ('1'), <msg-hop-limit> is omitted if the mnohoplimit bit is set ('1'),
otherwise is an 8 bit field, which contains the maximum number of otherwise is an 8 bit field, which contains the maximum number of
logical hops that the message should be further transmitted. logical hops that the message should be further transmitted.
(<msg-hop-limit> SHOULD be decremented if the message is
forwarded.)
<msg-hop-count> is omitted if the mnohopcount bit is set ('1'), <msg-hop-count> is omitted if the mnohopcount bit is set ('1'),
otherwise is an 8 bit field, which contains the number of logical otherwise is an 8 bit field, which contains the number of logical
hops that the message has traveled. hops that the message has traveled. (<msg-hop-count> SHOULD be
incremented if the message is forwarded.)
<msg-seq-num> is omitted if the mnoseqnum bit is set ('1'), <msg-seq-num> is omitted if the mnoseqnum bit is set ('1'),
otherwise is a 16 bit field, which contains a unique number, otherwise is a 16 bit field, which contains a unique number,
generated by the message's originator node. The <msg-orig-addr>, generated by the message's originator node. The <msg-orig-addr>,
<msg-seq-num>, and, if the mistypedep bit in the <msg-semantics> <msg-seq-num>, and, if the mistypedep bit in the <msg-semantics>
field is set, the <msg-type> of a message serves to uniquely field is set, the <msg-type> of a message serves to uniquely
identify the message in the network (within the time period until identify the message in the network (within the time period until
<msg-seq-num> wraps around to a matching value). <msg-seq-num> wraps around to a matching value).
msg-version is a variable, defined to equal <msg-version> if msg-version is a variable, defined to equal <msg-version> if
skipping to change at page 13, line 24 skipping to change at page 12, line 48
A protocol using this specification, or any future version (i.e. A protocol using this specification, or any future version (i.e.
where pkt-version or msg-version are different from zero) of this where pkt-version or msg-version are different from zero) of this
specification MUST specify appropriate behavior in the case where an specification MUST specify appropriate behavior in the case where an
incoming packet or message indicates a pkt-version or msg-version incoming packet or message indicates a pkt-version or msg-version
different from the one used by that protocol, e.g. by discarding the different from the one used by that protocol, e.g. by discarding the
packet or message. packet or message.
5.4. Address Blocks 5.4. Address Blocks
An address is specified as a sequence of address-length octets of the An address block may specify one or more addresses, or one or more
form head:mid:tail. An address block is an ordered set of addresses network addresses (address plus prefix length). An address is
sharing the same head and tail, and having individual mids. Network specified as a sequence of address-length octets of the form head:
addresses may be represented using the PREFIX_LENGTH TLV defined in mid:tail. An address block is an ordered set of addresses sharing
Section 6. the same head and tail, and having individual mids. An address block
may specify network addresses either with a single prefix length for
all network addresses, or with a prefix length for each network
address.
<address-block> is defined by: <address-block> is defined by:
<address-block> = <num-addr> <address-block> = <num-addr>
<addr-semantics> <addr-semantics>
<head-length>? <head-length>?
<head>? <head>?
<tail-length>? <tail-length>?
<tail>? <tail>?
<mid>* <mid>*
<prefix-length>*
where: where:
<num-addr> is an 8 bit field containing the number of addresses <num-addr> is an 8 bit field containing the number of addresses
represented in the address block, which MUST NOT be zero. represented in the address block, which MUST NOT be zero.
<addr-semantics> is an 8 bit field specifying the interpretation of <addr-semantics> is an 8 bit field specifying the interpretation of
the remainder of the address block: the remainder of the address block:
bit 0 (anohead): if cleared ('0'), then <head-length> is included bit 0 (anohead): if cleared ('0'), then <head-length> is included
skipping to change at page 14, line 13 skipping to change at page 13, line 40
are not included in the <address-block>. are not included in the <address-block>.
bit 1 (anotail) and bit 2 (ahaszerotail): MUST NOT both be set bit 1 (anotail) and bit 2 (ahaszerotail): MUST NOT both be set
('1'). Otherwise, they are interpreted according to Table 1. ('1'). Otherwise, they are interpreted according to Table 1.
+---------+--------------+---------------+-----------------+ +---------+--------------+---------------+-----------------+
| anotail | ahaszerotail | <tail-length> | <tail> | | anotail | ahaszerotail | <tail-length> | <tail> |
+---------+--------------+---------------+-----------------+ +---------+--------------+---------------+-----------------+
| 0 | 0 | included | may be included | | 0 | 0 | included | may be included |
| | | | | | | | | |
| 0 | 1 | included | not included |
| | | | |
| 1 | 0 | not included | not included | | 1 | 0 | not included | not included |
| | | | |
| 0 | 1 | included | not included |
+---------+--------------+---------------+-----------------+ +---------+--------------+---------------+-----------------+
Table 1 Table 1
bits 3-7: are RESERVED and MUST each be cleared ('0') to be in bit 3 (ahassingleprelen) and bit 4 (ahasmultiprelen): MUST NOT
both be set ('1'). Otherwise, they are interpreted according
to Table 2.
+------------+------------+--------------------+--------------------+
| ahassingle | ahasmulti | number of | nth network |
| prelen | prelen | <prefix-length> | address prefix |
| | | fields | length |
+------------+------------+--------------------+--------------------+
| 0 | 0 | zero | 8 * address-length |
| | | | |
| 1 | 0 | one | <prefix-length> |
| | | | |
| 0 | 1 | <num-addr> | nth |
| | | | <prefix-length> |
+------------+------------+--------------------+--------------------+
Table 2
bits 5-7: are RESERVED and MUST each be cleared ('0') to be in
accordance with this version of the specification. accordance with this version of the specification.
<head-length> if present is an 8 bit field, which contains the total <head-length> if present is an 8 bit field, which contains the total
length (in octets) of the head of all of the addresses. length (in octets) of the head of all of the addresses.
head-length is a variable, defined to equal <head-length> if head-length is a variable, defined to equal <head-length> if
present, or 0 otherwise. present, or 0 otherwise.
<head> is omitted if head-length == 0, otherwise it is a field of <head> is omitted if head-length == 0, otherwise it is a field of
the head-length leftmost octets of all the addresses. the head-length leftmost octets of all the addresses.
skipping to change at page 15, line 5 skipping to change at page 15, line 5
0. 0.
mid-length is a variable, which MUST be non-negative, defined by: mid-length is a variable, which MUST be non-negative, defined by:
* mid-length = address-length - head-length - tail-length * mid-length = address-length - head-length - tail-length
<mid> is omitted if mid-length == 0, otherwise each <mid> is a field <mid> is omitted if mid-length == 0, otherwise each <mid> is a field
of length mid-length octets, representing the mid of the of length mid-length octets, representing the mid of the
corresponding address in the address block. corresponding address in the address block.
<prefix-length> is an 8 bit field containing the length, in bits, of
the prefix length of a network address. If the ahassingleprelen
bit is set ('1') then a single <prefix-length> field contains the
prefix length of all addresses in the address block. If the
ahasmultiprelen bit is set ('1') then each of the <num-addr>
<prefix-length> fields contains the prefix length of the
corresponding address in the address block (in the same order).
Otherwise no <prefix-length> fields are present; each address may
be considered to have a prefix length equal to 8 * address-length
bits. The address block is malformed if any <prefix-length> field
has a value greater than 8 * address-length.
5.5. TLVs and TLV Blocks 5.5. TLVs and TLV Blocks
A TLV block is defined by: A TLV block is defined by:
<tlv-block> = <tlvs-length> <tlv-block> = <tlvs-length>
<tlv>* <tlv>*
where: where:
<tlvs-length> is a 16 bit field, which contains the total length (in <tlvs-length> is a 16 bit field, which contains the total length (in
octets) of all of the immediately following <tlv> elements. octets) of all of the immediately following <tlv> elements.
<tlv> is as defined in Section 5.5.1. <tlv> is as defined in Section 5.5.1.
5.5.1. TLVs 5.5.1. TLVs
There are three kinds of TLV, each represented by an element <tlv>: There are three kinds of TLV, each represented by an element <tlv>:
o A packet TLV, included in a packet header. o A packet TLV, included in the packet TLV block in a packet header.
o A message TLV, included in a message before all address blocks. o A message TLV, included in the message TLV block in a message,
before the first address block.
o An address block TLV, included in a TLV block following an address o An address block TLV, included in an address TLV block following
block. An address block TLV applies to: an address block. An address block TLV applies to:
* all addresses in the address block; OR * all addresses in the address block; OR
* any continuous sequence of addresses in the address block; OR * any continuous sequence of addresses in the address block; OR
* a single address in the address block. * a single address in the address block.
<tlv> is defined by: <tlv> is defined by:
<tlv> = <tlv-type> <tlv> = <tlv-type>
skipping to change at page 16, line 12 skipping to change at page 16, line 26
specific to the TLV kind (i.e. packet, message, or address block specific to the TLV kind (i.e. packet, message, or address block
TLV). TLV).
<tlv-semantics> is an 8 bit field specifying the interpretation of <tlv-semantics> is an 8 bit field specifying the interpretation of
the remainder of the TLV: the remainder of the TLV:
bit 0 (thastypeext): if cleared ('0'), then <tlv-type-ext> is not bit 0 (thastypeext): if cleared ('0'), then <tlv-type-ext> is not
included in the <tlv>. If set ('1'), then <tlv-type-ext> is included in the <tlv>. If set ('1'), then <tlv-type-ext> is
included in the <tlv>. included in the <tlv>.
bit 1 (tisextended) and bit 2 (tnovalue): MUST NOT both be set bit 1 (thasextlen) and bit 2 (tnovalue): MUST NOT both be set
('1'). Otherwise, they are interpreted according to Table 2. ('1'). Otherwise, they are interpreted according to Table 3.
+-------------+----------+--------------+--------------+ +------------+----------+--------------+--------------+
| tisextended | tnovalue | <length> | <value> | | thasextlen | tnovalue | <length> | <value> |
+-------------+----------+--------------+--------------+ +------------+----------+--------------+--------------+
| 0 | 0 | 8 bits | included | | 0 | 0 | 8 bits | included |
| | | | | | | | | |
| 0 | 1 | not included | not included |
| | | | |
| 1 | 0 | 16 bits | included | | 1 | 0 | 16 bits | included |
+-------------+----------+--------------+--------------+ | | | | |
| 0 | 1 | not included | not included |
+------------+----------+--------------+--------------+
Table 2 Table 3
bit 3 (tnoindex) and bit 4 (thassingleindex): MUST NOT both be bit 3 (tnoindex) and bit 4 (thassingleindex): MUST NOT both be
set ('1'). The former MUST be set ('1') and the latter MUST be set ('1'). The former MUST be set ('1') and the latter MUST be
cleared ('0') for packet or message TLVs. They are interpreted cleared ('0') for packet or message TLVs. They are interpreted
according to Table 3. according to Table 4.
+----------+-----------------+---------------+--------------+ +----------+-----------------+---------------+--------------+
| tnoindex | thassingleindex | <index-start> | <index-stop> | | tnoindex | thassingleindex | <index-start> | <index-stop> |
+----------+-----------------+---------------+--------------+ +----------+-----------------+---------------+--------------+
| 0 | 0 | included | included | | 0 | 0 | included | included |
| | | | | | | | | |
| 0 | 1 | included | not included |
| | | | |
| 1 | 0 | not included | not included | | 1 | 0 | not included | not included |
| | | | |
| 0 | 1 | included | not included |
+----------+-----------------+---------------+--------------+ +----------+-----------------+---------------+--------------+
Table 3 Table 4
bit 5 (tismultivalue): this bit serves to specify how the <value> bit 5 (tismultivalue): this bit serves to specify how the <value>
field is interpreted, as specified below. This bit MUST be field is interpreted, as specified below. This bit MUST be
cleared ('0') for packet or message TLVs, if the cleared ('0') for packet or message TLVs, if the
thassingleindex bit is set ('1'), or if the tnovalue bit is set thassingleindex bit is set ('1'), or if the tnovalue bit is set
('1'). ('1').
bits 6-7: are RESERVED and MUST each be cleared ('0') to be in bits 6-7: are RESERVED and MUST each be cleared ('0') to be in
accordance with this version of the specification. accordance with this version of the specification.
skipping to change at page 17, line 23 skipping to change at page 17, line 41
present, or 0 otherwise. present, or 0 otherwise.
tlv-fulltype is a variable, defined by: tlv-fulltype is a variable, defined by:
* tlv-fulltype = 256 * <tlv-type> + tlv-type-ext; * tlv-fulltype = 256 * <tlv-type> + tlv-type-ext;
<index-start> and <index-stop> when present are each an 8 bit field, <index-start> and <index-stop> when present are each an 8 bit field,
interpreted as follows. interpreted as follows.
index-start and index-stop are variables, defined according to index-start and index-stop are variables, defined according to
Table 4. The variable end-index is defined as follows: Table 5. The variable end-index is defined as follows:
* For message and packet TLVs: * For message and packet TLVs:
+ end-index = 0 + end-index = 0
* For address block TLVs: * For address block TLVs:
+ end-index = <num-addr> - 1 + end-index = <num-addr> - 1
+----------+-----------------+---------------+---------------+ +----------+-----------------+---------------+---------------+
| tnoindex | thassingleindex | index-start = | index-stop = | | tnoindex | thassingleindex | index-start = | index-stop = |
+----------+-----------------+---------------+---------------+ +----------+-----------------+---------------+---------------+
| 0 | 0 | <index-start> | <index-stop> | | 0 | 0 | <index-start> | <index-stop> |
| | | | | | | | | |
| 0 | 1 | <index-start> | <index-start> |
| | | | |
| 1 | 0 | 0 | end-index | | 1 | 0 | 0 | end-index |
| | | | |
| 0 | 1 | <index-start> | <index-start> |
+----------+-----------------+---------------+---------------+ +----------+-----------------+---------------+---------------+
Table 4 Table 5
For an address block TLV, the TLV applies to the addresses from For an address block TLV, the TLV applies to the addresses from
position index-start to position index-stop (inclusive) in the position index-start to position index-stop (inclusive) in the
address block, where the first address has position zero. address block, where the first address has position zero.
number-values is a variable, defined by: number-values is a variable, defined by:
* number-values = index-stop - index-start + 1 * number-values = index-stop - index-start + 1
<length> is omitted or is an 8 or 16 bit field according to Table 2.
<length> is omitted or is an 8 or 16 bit field according to Table 3.
If the tismultivalue bit is set ('1') then <length> MUST be an If the tismultivalue bit is set ('1') then <length> MUST be an
integral multiple of number-values, and the variable single-length integral multiple of number-values, and the variable single-length
is defined by: is defined by:
* single-length = <length> / number-values * single-length = <length> / number-values
If the tismultivalue bit is cleared ('0'), then the variable If the tismultivalue bit is cleared ('0'), then the variable
single-length is defined by: single-length is defined by:
* single-length = <length> * single-length = <length>
<value> if present (see Table 2) is a field of length <length> <value> if present (see Table 3) is a field of length <length>
octets. In an address block TLV, <value> is associated with the octets. In an address block TLV, <value> is associated with the
addresses from index-start to index-stop, inclusive. If the addresses from index-start to index-stop, inclusive. If the
tismultivalue bit is cleared ('0') then the whole of this field is tismultivalue bit is cleared ('0') then the whole of this field is
associated with each of the indicated addresses. If the associated with each of the indicated addresses. If the
tismultivalue bit is set ('1') then this field is divided equally tismultivalue bit is set ('1') then this field is divided equally
into number-values fields, each of length single-length octets and into number-values fields, each of length single-length octets and
these are associated, in order, with the indicated addresses. these are associated, in order, with the indicated addresses.
5.5.2. TLV Inclusion and Constraints 5.5.2. TLV Inclusion and Constraints
TLVs associates attributes to entities, where entities are individual A TLV associates an attribute with a packet, a message or one or more
addresses in an address block, ranges of addresses in an address consecutive network addresses in an address block. The
block, messages or packets. Inclusion of a TLV serves to associate interpretation and processing of this attribute, and the relationship
an attribute to a given entity; the processing of this attribute and (including order of processing) between different attributes
the relationship (e.g. interpretation, order of processing) between associated with the same entity MUST be defined by a protocol which
multiple different attributes associated to the same entity is to be uses this specification.
defined by the protocol which uses this specification.
The following constraints on TLV ordering MUST be respected: If the appropriate semantics bit (pnouniord for a packet TLV block,
mnouniord for a message TLV block or an address TLV block) is clear
('0'), then the following constraints MUST be respected. These bits
MUST always be clear ('0') unless a protocol using this specification
defines otherwise. Protocols SHOULD only define use of these bits
when necessary, and then MUST indicate what constraints do apply if
each of the indicated bits is set ('1'); each of these constraints
SHOULD be retained unless otherwise necessary.
o TLVs in the same TLV block MUST be sorted in non-descending tlv- o TLVs in the same TLV block are sorted in non-descending tlv-
fulltype order. fulltype order.
o Packet and message TLVs MUST be defined so as to indicate whether o Two or more address TLVs with the same tlv-fulltype in the same
two TLVs with the same tlv-fulltype are, or are not, allowed in message are not associated with the same network address.
the same packet or message TLV block, respectively.
o Two or more TLVs with the same tlv-fulltype in the same address
block TLV block MUST NOT be associated with the same copy of an
address (i.e. they must not have overlapping index ranges).
o TLVs with the same tlv-fulltype associated with the same address o TLVs with the same tlv-fulltype associated with the same address
block MUST be sorted in ascending index-start order. block are sorted in ascending index-start order.
In addition, packet and message TLVs MUST be defined so as to
indicate whether two such TLVs with the same tlv-fulltype are, or are
not, allowed in the same packet or message TLV block, respectively.
Note that the above constrains only the encoding of TLVs in a TLV Note that the above constrains only the encoding of TLVs in a TLV
block for transmission, and do specifically NOT mandate any given block for transmission, and do specifically NOT mandate any given
order of processing or interpretation by a protocol of the TLVs and order of processing or interpretation by a protocol of the TLVs and
the entities to which these are associated. the entities to which these are associated.
Respecting the constraints above allows parsing and verification of a Respecting the constraints above allows parsing and verification of a
TLV block in a single linear pass and allows terminating the search TLV block in a single pass and allows terminating the search for a
for a TLV with a specific type without traversing the entire TLV TLV with a specific type without traversing the entire TLV block.
block.
The constraints on address block TLVs, which may apply to ranges of The constraints on address block TLVs ensure that encoded information
addresses, ensure that encoded information (entity-attributes) can be (entity-attributes) can be unambiguously decoded.
unambiguously decoded, and that verification of such is a linear
operation.
5.6. Malformed Elements 5.6. Malformed Elements
An element is malformed if it cannot be parsed according to its An element is malformed if it cannot be parsed according to its
syntactical specification (including if there are insufficient octets syntactical specification (including if there are insufficient octets
available when a length is specified, in particular if there are available when a length is specified, in particular if there are
fewer than pkt-size octets overall) or if a constraint (including, fewer than pkt-size octets overall) or if a constraint (including,
but not only, those specified in Section 5.5.2) specified as one but not only, those specified in Section 5.5.2) specified as one
which MUST be satisfied, is not. A protocol using this specification which MUST be satisfied, is not. A protocol using this specification
MUST specify the action, or choice of actions, to be taken when a MUST specify the action, or choice of actions, to be taken when a
skipping to change at page 21, line 5 skipping to change at page 21, line 5
<pad-octet> is an 8 bit field with all bits cleared ('0'). <pad-octet> is an 8 bit field with all bits cleared ('0').
There is no need to indicate if padding is included, since a <pad- There is no need to indicate if padding is included, since a <pad-
octet> will always precede either a message or the end of the packet. octet> will always precede either a message or the end of the packet.
In the former case, the start of a message is indicated by the next In the former case, the start of a message is indicated by the next
non-zero octet parsed. non-zero octet parsed.
The padding after a message may be freely changed when a message is The padding after a message may be freely changed when a message is
forwarded without affecting the message. forwarded without affecting the message.
6. TLV specification 6. IANA Considerations
This document specifies one address block TLV, which is included to
allow a standardized way of representing network addresses.
6.1. Address Block TLV Specification
+---------------+------+-----------+--------+-----------------------+
| Name | Type | Type | Length | Value |
| | | extension | | |
+---------------+------+-----------+--------+-----------------------+
| PREFIX_LENGTH | 0 | 0 | 8 bits | Indicates that the |
| | | | | address is a network |
| | | | | address, rather than |
| | | | | a host address. The |
| | | | | value is the length |
| | | | | of the |
| | | | | prefix/netmask, in |
| | | | | bits. |
+---------------+------+-----------+--------+-----------------------+
Table 5
An address in an address block without an associated PREFIX_LENGTH
TLV may be considered to have a prefix length equal to the address
length in bits (i.e. 8 * address-length).
7. IANA Considerations
7.1. Message Types 6.1. Message Types
A new registry for message types must be created with initial A new registry for message types must be created with initial
assignments as specified in Table 6. Future values in the range assignments as specified in Table 6. Future values in the range
5-127 can be allocated using standards action [3]. Additionally, 5-127 can be allocated using standards action [3]. Additionally,
values in the range 128-255 are reserved for private/local use. values in the range 128-255 are reserved for private/local use.
+------+------------------------+ +------+------------------------+
| Type | Description | | Type | Description |
+------+------------------------+ +------+------------------------+
| 0 | MUST NOT be allocated. | | 0 | MUST NOT be allocated. |
skipping to change at page 22, line 29 skipping to change at page 21, line 29
| 1-4 | RESERVED | | 1-4 | RESERVED |
+------+------------------------+ +------+------------------------+
Table 6 Table 6
Message type 0 MUST NOT be allocated because a zero-octet signifies a Message type 0 MUST NOT be allocated because a zero-octet signifies a
packet header and zero-octets are used for padding. Message types 1 packet header and zero-octets are used for padding. Message types 1
to 4 are reserved because they are used by OLSR [4], which uses a to 4 are reserved because they are used by OLSR [4], which uses a
compatible packet/message header format. compatible packet/message header format.
7.2. Packet TLV Types 6.2. Packet TLV Types
A new registry for packet TLV types must be created, with no initial A new registry for packet TLV types must be created, with no initial
assignments. assignments.
Future values in the range 0-127 can be allocated using standards Future values in the range 0-127 can be allocated using standards
action [3], respecting the following guidelines: action [3], respecting the following guidelines:
values 0-7 - MUST NOT be assigned except when a documented need values 0-7 - MUST NOT be assigned except when a documented need
exists that TLVs of a given type are required to appear before all exists that TLVs of a given type are required to appear before all
other TLVs in the TLV block as encoded for transmission. Note other TLVs in the TLV block as encoded for transmission. Note
skipping to change at page 23, line 5 skipping to change at page 22, line 5
protocols using this specification. protocols using this specification.
values 8-127 - no constraints. values 8-127 - no constraints.
Additionally, values in the range 128-255 are reserved for private/ Additionally, values in the range 128-255 are reserved for private/
local use. If a packet TLV type is allocated then a new registry for local use. If a packet TLV type is allocated then a new registry for
type extensions of that type must be created. A document which type extensions of that type must be created. A document which
defines a packet TLV type MUST also specify the mechanism by which defines a packet TLV type MUST also specify the mechanism by which
its type extensions are allocated, from among those in [3]. its type extensions are allocated, from among those in [3].
7.3. Message TLV Types 6.3. Message TLV Types
A new registry for message TLV types must be created with no initial A new registry for message TLV types must be created with no initial
assignments. assignments.
Future values in the range 0-127 can be allocated using standards Future values in the range 0-127 can be allocated using standards
action [3], respecting the following guidelines: action [3], respecting the following guidelines:
values 0-7 - MUST NOT be assigned except when a documented need values 0-7 - MUST NOT be assigned except when a documented need
exists that TLVs of a given type are required to appear before all exists that TLVs of a given type are required to appear before all
other TLVs in the TLV block as encoded for transmission. Note other TLVs in the TLV block as encoded for transmission. Note
skipping to change at page 23, line 30 skipping to change at page 22, line 30
protocols using this specification. protocols using this specification.
values 8-127 - no constraints. values 8-127 - no constraints.
Additionally, values in the range 128-255 are reserved for private/ Additionally, values in the range 128-255 are reserved for private/
local use. If a message TLV type is allocated then a new registry local use. If a message TLV type is allocated then a new registry
for type extensions of that type must be created. A document which for type extensions of that type must be created. A document which
defines a message TLV type MUST also specify the mechanism by which defines a message TLV type MUST also specify the mechanism by which
its type extensions are allocated, from among those in [3]. its type extensions are allocated, from among those in [3].
7.4. Address Block TLV Types 6.4. Address Block TLV Types
A new registry for address block TLV types must be created with
initial assignments as specified in Table 7.
+---------------+------+-----------+--------------------------------+
| Mnemonic | Type | Type | Description |
| | | extension | |
+---------------+------+-----------+--------------------------------+
| PREFIX_LENGTH | 0 | 0 | Indicates that associated |
| | | | addresses are network |
| | | | addresses, with given prefix |
| | | | length, in bits. |
| | | | |
| | 0 | 1-255 | RESERVED |
+---------------+------+-----------+--------------------------------+
Table 7 A new registry for address block TLV types must be created, with no
initial assignments.
Future values in the range 1-127 can be allocated using standards Future values in the range 0-127 can be allocated using standards
action [3], respecting the following guidelines: action [3], respecting the following guidelines:
values 1-7 - MUST NOT be assigned except when a documented need values 0-7 - MUST NOT be assigned except when a documented need
exists that TLVs of a given type are required to appear before all exists that TLVs of a given type are required to appear before all
other TLVs in the TLV block as encoded for transmission. Note other TLVs in the TLV block as encoded for transmission. Note
that the need for a TLV to be processed before other TLVs does not that the need for a TLV to be processed before other TLVs does not
however automatically translate into a need for the TLV appearing however automatically translate into a need for the TLV appearing
before all other TLVs in the TLV block - the order in which TLVs before all other TLVs in the TLV block - the order in which TLVs
are to be processed MUST be defined, if applicable, in the are to be processed MUST be defined, if applicable, in the
protocols using this specification. protocols using this specification.
values 8-127 - no constraints. values 8-127 - no constraints.
Additionally, values in the range 128-255 are reserved for private/ Additionally, values in the range 128-255 are reserved for private/
local use. If an address block TLV type is allocated then a new local use. If an address block TLV type is allocated then a new
registry for type extensions of that type must be created. A registry for type extensions of that type must be created. A
document which defines an address block TLV type MUST also specify document which defines an address block TLV type MUST also specify
the mechanism by which its type extensions are allocated, from among the mechanism by which its type extensions are allocated, from among
those in [3]. those in [3].
8. Security Considerations 7. Security Considerations
This specification does not describe a protocol; it describes a This specification does not describe a protocol; it describes a
packet format. As such it does not specify any security packet format. As such it does not specify any security
considerations, these are matters for a protocol using this considerations, these are matters for a protocol using this
specification. However two mechanisms which are enabled by this specification. However two mechanisms which are enabled by this
specification, and may form part of a security approach in a protocol specification, and may form part of a security approach in a protocol
using this specification, are described in Section 8.1. There is using this specification, are described in Section 8.1. There is
however no requirement that a protocol using this specification however no requirement that a protocol using this specification
should use either. should use either.
8.1. Security Suggestions 7.1. Security Suggestions
The security suggestions made here, are based on that: The security suggestions made here, are based on that:
o Messages are designed to be carriers of protocol information and o Messages are designed to be carriers of protocol information and
MAY, at each hop, be forwarded and/or processed according to the MAY, at each hop, be forwarded and/or processed by the protocol
information in the message header by the protocol using this using this specification.
specification.
o Packets are designed to carry a number of messages between o Packets are designed to carry a number of messages between
neighboring nodes in a single transmission and over a single neighboring nodes in a single transmission and over a single
logical hop. logical hop.
Consequently: Consequently:
o For forwarded messages where the message is unchanged by o For forwarded messages where the message is unchanged by
forwarding nodes, then end-to-end security MAY be implemented, forwarding nodes, then end-to-end security MAY be implemented,
between nodes with an existing security association, by including between nodes with an existing security association, by including
skipping to change at page 26, line 5 skipping to change at page 25, line 5
message, including the message header, with the <hop-count> and message, including the message header, with the <hop-count> and
<hop-limit> fields set to zero ('0') if present. <hop-limit> fields set to zero ('0') if present.
o Hop-by-hop packet level security MAY be implemented, between nodes o Hop-by-hop packet level security MAY be implemented, between nodes
with an existing security association, by including a suitable with an existing security association, by including a suitable
packet TLV containing a cryptographic signature to the packet. packet TLV containing a cryptographic signature to the packet.
Since packets are received as transmitted, this signature can be Since packets are received as transmitted, this signature can be
calculated based on the entire packet, or on parts thereof as calculated based on the entire packet, or on parts thereof as
appropriate. appropriate.
9. References 8. References
9.1. Normative References 8.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, BCP 14, March 1997. Levels", RFC 2119, BCP 14, March 1997.
[2] Hinden, R. and S. Deering, "IP Version 6 Addressing [2] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006. Architecture", RFC 4291, February 2006.
[3] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA [3] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
Considerations Section in RFCs", RFC 2434, BCP 26, October 1998. Considerations Section in RFCs", RFC 2434, BCP 26, October 1998.
9.2. Informative References 8.2. Informative References
[4] Clausen, T. and P. Jacquet, "The Optimized Link State Routing [4] Clausen, T. and P. Jacquet, "The Optimized Link State Routing
Protocol", RFC 3626, October 2003. Protocol", RFC 3626, October 2003.
Appendix A. Examples Appendix A. Examples
This appendix contains some examples of parts of this specification. This appendix contains some examples of parts of this specification.
A.1. Address Block Examples A.1. Address Block Examples
skipping to change at page 28, line 47 skipping to change at page 27, line 47
* tail-length = 2; * tail-length = 2;
* mid-length = 2; * mid-length = 2;
* <addr-semantics> has anohead and ahaszerotail set (value 5); * <addr-semantics> has anohead and ahaszerotail set (value 5);
* <head> and <tail> are omitted. * <head> and <tail> are omitted.
The address block is then 2 5 2 a b c d (7 octets). The address block is then 2 5 2 a b c d (7 octets).
o To include a.b.0.0/n and c.d.0.0/n:
* head-length = 0;
* tail-length = 2;
* mid-length = 2;
* <addr-semantics> has anohead, ahaszerotail and ahassingleprelen
set (value 13);
* <head> and <tail> are omitted.
The address block is then 2 13 2 a b c d n (8 octets).
o To include a.b.0.0/n and c.d.0.0/m:
* head-length = 0;
* tail-length = 2;
* mid-length = 2;
* <addr-semantics> has anohead, ahaszerotail and ahasmultiprelen
set (value 21);
* <head> and <tail> are omitted.
The address block is then 2 21 2 a b c d n m (9 octets).
A.2. TLV Examples A.2. TLV Examples
If network addresses a.b.0.0/16, c.d.0.0/16, c.d.e.0/24 and Assuming the definition of an address block TLV with type EXAMPLE1
c.d.e.f/32 are to be represented using a single address block (and no type extension) which has single octet single values, then if
containing a.b.0.0, c.d.0.0, c.d.e.0 and c.d.e.f, with the prefix values a, a, b and c are to be associated with the four addresses in
lengths added using one or more address block TLVs of type the preceding address block, where c is a default value that can be
PREFIX_LENGTH (0, with no type extension), then this can be done in a omitted, then this can be done in a number of ways. Possible
number of ways. Possible examples are: examples are:
o Using one multivalue TLV covering all of the addresses: o Using one multivalue TLV covering all of the addresses:
* <tlv-semantics> has tnoindex and tismultivalue set (value 40); * <tlv-semantics> has tnoindex and tismultivalue set (value 40);
* <index-start> and <index-stop> are omitted; * <index-start> and <index-stop> are omitted;
* <length> = 4 (single-length = 1). * <length> = 4 (single-length = 1).
* The TLV is then 0 40 4 16 16 24 32 (7 octets). * The TLV is then EXAMPLE1 40 4 a a b c (7 octets).
o Using one multivalue TLV omitting the last address (a prefix o Using one multivalue TLV omitting the last address:
length of 32 is the default):
* <tlv-semantics> has tismultivalue set (value 32); * <tlv-semantics> has tismultivalue set (value 32);
* <index-start> = 0; * <index-start> = 0;
* <index-stop> = 2 * <index-stop> = 2
* <length> = 3 (single-length = 1). * <length> = 3 (single-length = 1).
* The TLV is then 0 32 0 2 3 16 16 24 (8 octets). * The TLV is then EXAMPLE1 32 0 2 3 a a b (8 octets).
o Using two single value TLVs, omitting the last address. First: o Using two single value TLVs, omitting the last address. First:
* <tlv-semantics> = 0; * <tlv-semantics> = 0;
* <index-start> = 0; * <index-start> = 0;
* <index-stop> = 1; * <index-stop> = 1;
* <length> = 1; * <length> = 1;
* <value> = 16. * <value> = a.
* The TLV is then 0 0 0 1 1 16 (6 octets). * The TLV is then EXAMPLE1 0 0 0 1 1 a (6 octets).
Second: Second:
* <tlv-semantics> has thassingleindex set (value 16); * <tlv-semantics> has thassingleindex set (value 16);
* <index-start> = 2; * <index-start> = 2;
* <index-stop> is omitted; * <index-stop> is omitted;
* <length> = 1; * <length> = 1;
* <value> = 24. * <value> = b.
* The TLV is then 0 16 2 1 24 (5 octets). * The TLV is then EXAMPLE1 16 2 1 b (5 octets).
Total length of TLVs is 11 octets. Total length of TLVs is 11 octets.
In this case the first of these is the most efficient. In other In this case the first of these is the most efficient. In other
cases patterns such as the others may be preferred. Regardless of cases patterns such as the others may be preferred. Regardless of
efficiency, any of these may be used. efficiency, any of these may be used.
Assuming the definition of an address block TLV with type EXAMPLE Assuming the definition of an address block TLV with type EXAMPLE2
(and no type extension) which has no value (it is sufficient to (and no type extension) which has no value, which is to be associated
simply indicate which addresses are examples), for the same address with the second and third addresses in an address block, then this
block, with the second and third addresses being examples, this can can be indicated with a single TLV:
be indicated with a single TLV:
o <tlv-semantics> has tnovalue set (value 4); o <tlv-semantics> has tnovalue set (value 4);
o <index-start> = 1; o <index-start> = 1;
o <index-stop> = 2; o <index-stop> = 2;
o <length> and <value> are omitted. o <length> and <value> are omitted.
o The TLV is then EXAMPLE 4 1 2 (4 octets). o The TLV is then EXAMPLE2 4 1 2 (4 octets).
Assuming the definition of a message TLV with type DATA (and no type Assuming the definition of a message TLV with type EXAMPLE3 (and no
extension) which can take a value field of any length, for such a type extension) which can take a value field of any length, for such
message TLV with 8 octets of data (a to h): a TLV with 8 octets of data (a to h):
o <tlv-semantics> has tnoindex set (value 8); o <tlv-semantics> has tnoindex set (value 8);
o <index-start> and <index-stop> are omitted; o <index-start> and <index-stop> are omitted;
o <length> = 8. o <length> = 8.
o The TLV is then DATA 8 8 a b c d e f g h (11 octets). o The TLV is then EXAMPLE3 8 8 a b c d e f g h (11 octets).
If, in this example, the number of data octets were 256 or greater If, in this example, the number of data octets were 256 or greater
then <tlv-semantics> would also have tisextended set and have value then <tlv-semantics> would also have thasextlen set and have value
10. The length would require two octets (most significant first). 10. The length would require two octets (most significant first).
The TLV length would be 4 + N octets, where N is the number of data The TLV length would be 4 + N octets, where N is the number of data
octets (it can be 3 + N octets if N is 255 or less). octets (it can be 3 + N octets if N is 255 or less).
Appendix B. Illustrations Appendix B. Illustrations
This informative appendix illustrates the elements, which are This informative appendix illustrates the elements, which are
normatively specified in Section 5 using regular expressions. normatively specified in Section 5 using regular expressions.
Examples with version fields are omitted, as not needed when using Examples with version fields are omitted, as not needed when using
this version of this specification (although permitted). this version of this specification (although permitted).
Bits labeled Resv, or Rsv are cleared ('0'). Bits labeled N or M may Bits labeled Rsv or R must be cleared ('0'). Bits labeled C, N, or M
be cleared ('0') or set ('1'). Octets labeled Padding must be zero may be cleared ('0') or set ('1'). Octets labeled Padding must be
('0'), and are optional. (They have been omitted where not needed zero ('0'), and are optional. (They have been omitted where not
for alignment.) needed for alignment.)
Appendix B.1. Packet Appendix B.1. Packet
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |0|0|0|0| Packet Sequence Number | |0 0 0 0 0 0 0 0| Rsv |C|0|0|0|0| Packet Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |0|0|1|0| Packet Size | |0 0 0 0 0 0 0 0| Rsv |C|0|0|1|0| Packet Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Packet Sequence Number | Padding | | Packet Sequence Number | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |0|1|0|0| Padding | |0 0 0 0 0 0 0 0| Rsv |C|0|1|0|0| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |0|1|1|0| Packet Size | |0 0 0 0 0 0 0 0| Rsv |C|0|1|1|0| Packet Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |1|0|0|0| Packet Sequence Number | |0 0 0 0 0 0 0 0| Rsv |C|1|0|0|0| Packet Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Packet TLV Block | | Packet TLV Block |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
skipping to change at page 34, line 7 skipping to change at page 34, line 7
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |1|0|1|0| Packet Size | |0 0 0 0 0 0 0 0| Rsv |C|1|0|1|0| Packet Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Packet Sequence Number | | | Packet Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Packet TLV Block | | Packet TLV Block |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
skipping to change at page 35, line 7 skipping to change at page 35, line 7
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |1|1|0|0| | |0 0 0 0 0 0 0 0| Rsv |C|1|1|0|0| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Packet TLV Block | | Packet TLV Block |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
skipping to change at page 35, line 31 skipping to change at page 35, line 31
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0| Resv |1|1|1|0| Packet Size | |0 0 0 0 0 0 0 0| Rsv |C|1|1|1|0| Packet Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Packet TLV Block | | Packet TLV Block |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message + Padding | | Message + Padding |
| | | |
skipping to change at page 36, line 25 skipping to change at page 36, line 25
| | | |
| Message + Padding | | Message + Padding |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix B.2. Message and Padding Appendix B.2. Message and Padding
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|0|0|0|0| Message Size | | Message Type |R|C|N|0|0|0|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Hop Count | Message Sequence Number | | Hop Limit | Hop Count | Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|0|0|0|0|1|0| Message Size | | Message Type |R|C|0|0|0|0|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Hop Count | Message Sequence Number | | Hop Limit | Hop Count | Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|0|1|0|0| Message Size | | Message Type |R|C|N|0|0|1|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Count | Message Sequence Number | | | Hop Count | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|0|0|0|1|1|0| Message Size | | Message Type |R|C|0|0|0|1|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Count | Message Sequence Number | | | Hop Count | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|1|0|0|0| Message Size | | Message Type |R|C|N|0|1|0|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Message Sequence Number | | | Hop Limit | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|1|0|1|0| Message Size | | Message Type |R|C|N|0|1|0|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Message Sequence Number | | | Hop Limit | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|1|1|0|0| Message Size | | Message Type |R|C|N|0|1|1|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Sequence Number | | | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|0|1|1|1|0| Message Size | | Message Type |R|C|N|0|1|1|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Sequence Number | | | Message Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|0|0|0|0| Message Size | | Message Type |R|C|N|1|0|0|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Hop Count | | | Hop Limit | Hop Count | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|0|0|1|0| Message Size | | Message Type |R|C|N|1|0|0|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Hop Count | | | Hop Limit | Hop Count | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|0|1|0|0| Message Size | | Message Type |R|C|N|1|0|1|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Count | | | Hop Count | |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|0|1|1|0| Message Size | | Message Type |R|C|N|1|0|1|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Count | | | Hop Count | |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|1|0|0|0| Message Size | | Message Type |R|C|N|1|1|0|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | | | Hop Limit | |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|1|0|1|0| Message Size | | Message Type |R|C|N|1|1|0|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | | | Hop Limit | |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|1|1|0|0| Message Size | | Message Type |R|C|N|1|1|1|0|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type |Rsv|N|1|1|1|1|0| Message Size | | Message Type |R|C|N|1|1|1|1|0| Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Message Body | | Message Body |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding | | | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix B.3. Message Body Appendix B.3. Message Body
skipping to change at page 43, line 10 skipping to change at page 43, line 10
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix B.4. Address Block Appendix B.4. Address Block
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |0|0|0| Head Length | Head | | Number Addrs | Rsv |0|0|0|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Tail | | Head (cont) | Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | | | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
: ... : : ... :
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |0|0|1| Tail Length | Tail | | Number Addrs | Rsv |0|0|0|0|1| Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tail (cont) | Mid | | | Tail (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
: ... : : ... :
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |0|1|0| Head Length | Head | | Number Addrs | Rsv |0|0|0|1|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Mid | | | Head (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
: ... : : ... :
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |0|1|1| Mid | | Number Addrs | Rsv |0|0|0|1|1| Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | | | Mid (cont) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
: ... : : ... :
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | | Mid (cont) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |1|0|0| Head Length | Head | | Number Addrs | Rsv |0|0|1|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Mid | | Head (cont) | Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
: ... : : ... :
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Resv |1|0|1| Tail Length | Mid | | Number Addrs | Rsv |0|0|1|0|1| Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | |
+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|0|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |
+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|0|0|1| Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tail (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|0|1|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|0|1|1| Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|1|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: ... :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |0|1|1|0|1| Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | | | Mid (cont) | |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ |
| | | |
: ... : : ... :
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|0|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | | | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length | |
+-+-+-+-+-+-+-+-+ |
: ... :
| +-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|0|0|1| Tail Length | Tail |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tail (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|0|1|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Mid | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|0|1|1| Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | Prefix Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|1|0|0| Head Length | Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Head (cont) | Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: ... :
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | Prefix Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number Addrs | Rsv |1|0|1|0|1| Tail Length | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid (cont) | |
+-+-+-+-+-+-+-+-+ |
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Mid | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
: ... :
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix B.5. TLV Block Appendix B.5. TLV Block
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | | | Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
skipping to change at page 51, line 17 skipping to change at page 56, line 17
An example packet, using IPv4 addresses (length four octets) is An example packet, using IPv4 addresses (length four octets) is
shown. This packet has a header, indicated by the initial octet 0. shown. This packet has a header, indicated by the initial octet 0.
The packet header has semantics octet 0, and hence has version zero, The packet header has semantics octet 0, and hence has version zero,
a packet sequence number, but no packet TLV block. a packet sequence number, but no packet TLV block.
The packet contains a single message. This message has semantics The packet contains a single message. This message has semantics
octet 0, and hence has a complete message header, other than version octet 0, and hence has a complete message header, other than version
(which is zero), including originator address, hop limit, hop count (which is zero), including originator address, hop limit, hop count
and message sequence number (which is type independent). The message and message sequence number (which is type independent). The message
has a message TLV block with content length 9 octets, containing a has a message TLV block with content length 9 octets, containing a
single TLV. This TLV has the tnoindex bit of its semantics octet 8 single message TLV. This TLV has the tnoindex bit of its semantics
set, and has value length 6 octets. The message then has two address octet 8 set, and has value length 6 octets. The message then has two
blocks each with a following TLV block. address blocks each with a following address TLV block.
The first address block contains 3 addresses. It has the anotail bit The first address block contains 2 network addresses. It has the
of its semantics octet 2 set, and has head length 2 octets, hence mid anohead, ahaszerotail and ahassingleprelen bits of its semantics
length two octets. It is followed by a TLV block, with content octet 13 set, and has tail length 2 octets, hence mid length two
length 9 octets, containing two TLVs. The first of these TLVs has octets. The two tail octets of each address are zero. The address
the tnoindex bit of its semantics octet 8 set, and has a single value block has a single prefix length. The following address TLV block is
of length 2 octets, which applies to all of the addresses in the empty (content length 0 octets).
address block. The second of these TLVs has the tnovalue bit of its
The second address block contains 3 addresses, without prefix
lengths. It has the anotail bit of its semantics octet 2 set, and
has head length 2 octets, hence mid length two octets. It is
followed by an address TLV block, with content length 9 octets,
containing two address block TLVs. The first of these TLVs has the
tnoindex bit of its semantics octet 8 set, and has a single value of
length 2 octets, which applies to all of the addresses in the address
block. The second of these TLVs has the tnovalue bit of its
semantics octet 4 set, and hence has no length or value fields. It semantics octet 4 set, and hence has no length or value fields. It
does have index fields, which indicate those addresses this TLV does have index fields, which indicate those addresses this TLV
applies to. applies to.
The second address block contains 2 addresses. It has the anohead There is one final padding octet value 0 that is not included in the
and ahaszerotail bits of its semantics octet 5 set, and has tail message length of 55 octets.
length 2 octets, hence mid length two octets. The two tail octets of
each address are zero. It is followed by a TLV block with content
length 5 octets. This TLV block contains a single TLV of type
PREFIX_LENGTH that has the tismultivalue and tnoindex bits of its
semantics octet 40 set, and a value field length of 2 octets,
indicating two values each of one octet length. There is one final
padding octet 0 that is not included in the message length of 59
octets.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0| Packet Sequence Number | |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0| Packet Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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| | Message Type |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originator Address | | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hop Limit | Hop Count | Message Sequence Number | | Hop Limit | Hop Count | Message Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|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| |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|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 1 1 0| Value | |0 0 0 0 0 1 1 0| Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (cont) |0 0 0 0 0 0 1 1| | Value (cont) |0 0 0 0 0 0 1 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 1 0|0 0 0 0 0 0 1 0| Head |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid |0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1| |0 0 0 0 1 1 0 1|0 0 0 0 0 0 1 0| Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV Type |0 0 0 0 1 0 0 0|0 0 0 0 0 0 1 0| Value | | Mid | Prefix Length |0 0 0 0 0 0 0 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value (cont) | TLV Type |0 0 0 0 0 1 0 0| Index Start | |0 0 0 0 0 0 0 0|0 0 0 0 0 0 1 1|0 0 0 0 0 0 1 0|0 0 0 0 0 0 1 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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| | Head | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Mid | Mid | | Mid | Mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|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| |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|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 1 0| Value0 | Value1 |0 0 0 0 0 0 0 0| |0 0 0 0 0 0 1 0| Value | TLV Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0 0 1 0 0| Index Start | Index Stop |0 0 0 0 0 0 0 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix D. Contributors Appendix D. Contributors
This specification is the result of the joint efforts of the This specification is the result of the joint efforts of the
following contributors from the OLSRv2 Design Team -- listed following contributors from the OLSRv2 Design Team -- listed
alphabetically. alphabetically.
o Cedric Adjih, INRIA, France, <Cedric.Adjih@inria.fr> o Cedric Adjih, INRIA, France, <Cedric.Adjih@inria.fr>
skipping to change at page 54, line 17 skipping to change at page 59, line 17
The authors would like to acknowledge the team behind OLSRv1, as The authors would like to acknowledge the team behind OLSRv1, as
specified in RFC 3626, including Anis Laouiti, Pascale Minet, Laurent specified in RFC 3626, including Anis Laouiti, Pascale Minet, Laurent
Viennot (all at INRIA, France), and Amir Qayyum (Center for Advanced Viennot (all at INRIA, France), and Amir Qayyum (Center for Advanced
Research in Engineering, Pakistan) for their contributions. Research in Engineering, Pakistan) for their contributions.
The authors would like to gratefully acknowledge the following people The authors would like to gratefully acknowledge the following people
for intense technical discussions, early reviews and comments on the for intense technical discussions, early reviews and comments on the
specification and its components: Joe Macker (NRL), Alan Cullen (BAE specification and its components: Joe Macker (NRL), Alan Cullen (BAE
Systems), Ian Chakeres (Motorola), Charlie E. Perkins (Nokia), Systems), Ian Chakeres (Motorola), Charlie E. Perkins (Nokia),
Andreas Schjonhaug (LIX), Florent Brunneau (LIX), Yasunori Owada Andreas Schjonhaug (LIX), Florent Brunneau (LIX), Yasunori Owada
(Niigata University) and the entire IETF MANET working group. (Niigata University), Teco Boot (Infinity Networks) and the entire
IETF MANET working group.
Authors' Addresses Authors' Addresses
Thomas Heide Clausen Thomas Heide Clausen
LIX, Ecole Polytechnique, France LIX, Ecole Polytechnique, France
Phone: +33 6 6058 9349 Phone: +33 6 6058 9349
Email: T.Clausen@computer.org Email: T.Clausen@computer.org
URI: http://www.thomasclausen.org/ URI: http://www.thomasclausen.org/
 End of changes. 130 change blocks. 
264 lines changed or deleted 512 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/