draft-ietf-manet-dymo-03.txt   draft-ietf-manet-dymo-04.txt 
Mobile Ad hoc Networks Working I. Chakeres Mobile Ad hoc Networks Working I. Chakeres
Group Boeing Group Boeing
Internet-Draft E. Belding-Royer Internet-Draft C. Perkins
Expires: April 26, 2006 UC Santa Barbara Expires: September 6, 2006 Nokia
C. Perkins March 5, 2006
Nokia
October 23, 2005
Dynamic MANET On-demand (DYMO) Routing Dynamic MANET On-demand (DYMO) Routing
draft-ietf-manet-dymo-03 draft-ietf-manet-dymo-04
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 37 skipping to change at page 1, line 35
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 April 26, 2006. This Internet-Draft will expire on September 6, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2006).
Abstract Abstract
The Dynamic MANET On-demand (DYMO) routing protocol is intended for The Dynamic MANET On-demand (DYMO) routing protocol is intended for
use by mobile nodes in wireless multihop networks. It offers use by mobile nodes in wireless multihop networks. It offers
adaptation to changing network topology and determines unicast routes adaptation to changing network topology and determines unicast routes
between nodes within the network. between nodes within the network on-demand.
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Data Structures . . . . . . . . . . . . . . . . . . . . . . . 7 3. Data Structures . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Route Table Entry . . . . . . . . . . . . . . . . . . . . 7 3.1. Route Table Entry . . . . . . . . . . . . . . . . . . . . 8
3.2 DYMO Message Elements . . . . . . . . . . . . . . . . . . 8 3.2. DYMO Messages . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Generic DYMO Element Structure . . . . . . . . . . . . 9 3.2.1. Generalized MANET Packet and Message Structure . . . . 10
3.2.2 Routing Element (RE) . . . . . . . . . . . . . . . . . 11 3.2.2. Routing Message (RM) . . . . . . . . . . . . . . . . . 10
3.2.3 Route Error (RERR) . . . . . . . . . . . . . . . . . . 14 3.2.3. Route Error (RERR) . . . . . . . . . . . . . . . . . . 12
3.2.4 Unsupported-element Error (UERR) . . . . . . . . . . . 15
4. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 16
4.1 Sequence Numbers . . . . . . . . . . . . . . . . . . . . . 16
4.1.1 Maintaining a Sequence Number . . . . . . . . . . . . 16
4.1.2 Incrementing a Sequence Number . . . . . . . . . . . . 16
4.1.3 Sequence Number Rollover . . . . . . . . . . . . . . . 16
4.1.4 Actions After Sequence Number Loss . . . . . . . . . . 16
4.2 DYMO Routing Table Operations . . . . . . . . . . . . . . 16
4.2.1 Creating or Updating a Route Table Entry from a
Routing Block . . . . . . . . . . . . . . . . . . . . 16
4.2.2 Route Table Entry Timeouts . . . . . . . . . . . . . . 18
4.3 Routing Element . . . . . . . . . . . . . . . . . . . . . 18
4.3.1 Routing Element Creation . . . . . . . . . . . . . . . 18
4.3.2 Routing Element Processing . . . . . . . . . . . . . . 18
4.3.3 Appending Additional Routing Information to an
Existing Routing Element . . . . . . . . . . . . . . . 19
4.4 Route Discovery . . . . . . . . . . . . . . . . . . . . . 19
4.5 Route Maintenance . . . . . . . . . . . . . . . . . . . . 20
4.5.1 Active Link Monitoring . . . . . . . . . . . . . . . . 20
4.5.2 Updating Route Lifetimes . . . . . . . . . . . . . . . 21
4.5.3 Route Error Generation . . . . . . . . . . . . . . . . 21
4.5.4 Route Error Processing . . . . . . . . . . . . . . . . 22
4.6 General DYMO Processing . . . . . . . . . . . . . . . . . 22
4.6.1 DYMO Control Packet Processing . . . . . . . . . . . . 22
4.6.2 Generic Element Pre-processing . . . . . . . . . . . . 23
4.6.3 Processing Unsupported DYMO Element Types . . . . . . 23
4.6.3.1 Generating an Unsupported-element Error . . . . . 24
4.6.4 Generic Element Post-processing . . . . . . . . . . . 24
4.6.5 DYMO Control Packet Transmission . . . . . . . . . . . 24
4.7 Routing Prefix . . . . . . . . . . . . . . . . . . . . . . 24
4.8 Internet Attachment . . . . . . . . . . . . . . . . . . . 25
4.9 Multiple Interfaces . . . . . . . . . . . . . . . . . . . 25
4.10 Packet Generation Limits . . . . . . . . . . . . . . . . . 25
5. Configuration Parameters . . . . . . . . . . . . . . . . . . . 26 4. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 4.1. Sequence Numbers . . . . . . . . . . . . . . . . . . . . . 14
4.1.1. Maintaining a Sequence Number . . . . . . . . . . . . 14
4.1.2. Incrementing a Sequence Number . . . . . . . . . . . . 14
4.1.3. Sequence Number Rollover . . . . . . . . . . . . . . . 14
4.1.4. Actions After Sequence Number Loss . . . . . . . . . . 14
4.2. DYMO Routing Table Operations . . . . . . . . . . . . . . 14
4.2.1. Creating or Updating a Route Table Entry from
Routing Message Information . . . . . . . . . . . . . 14
4.2.2. Route Table Entry Timeouts . . . . . . . . . . . . . . 16
4.3. Routing Message . . . . . . . . . . . . . . . . . . . . . 16
4.3.1. Routing Message Creation . . . . . . . . . . . . . . . 16
4.3.2. Routing Message Processing . . . . . . . . . . . . . . 16
4.3.3. Appending Additional Routing Information to an
Existing Routing Message . . . . . . . . . . . . . . . 17
4.4. Route Discovery . . . . . . . . . . . . . . . . . . . . . 18
4.5. Route Maintenance . . . . . . . . . . . . . . . . . . . . 18
4.5.1. Active Link Monitoring . . . . . . . . . . . . . . . . 18
4.5.2. Updating Route Lifetimes . . . . . . . . . . . . . . . 19
4.5.3. Route Error Generation . . . . . . . . . . . . . . . . 19
4.5.4. Route Error Processing . . . . . . . . . . . . . . . . 20
4.6. General DYMO Packet and Message Processing . . . . . . . . 21
4.6.1. Packet Processing . . . . . . . . . . . . . . . . . . 21
4.6.2. Generic Message Pre-processing . . . . . . . . . . . . 21
4.6.3. Processing Unknown Message and TLV Types . . . . . . . 21
4.6.4. Generic Message Post-processing . . . . . . . . . . . 21
4.6.5. DYMO Control Packet Transmission . . . . . . . . . . . 21
4.7. Routing Prefix . . . . . . . . . . . . . . . . . . . . . . 21
4.8. Simple Internet Attachment and Gatewaying . . . . . . . . 22
4.9. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 22
4.10. Packet Generation Limits . . . . . . . . . . . . . . . . . 23
7. Security Considerations . . . . . . . . . . . . . . . . . . . 28 5. Configuration Parameters . . . . . . . . . . . . . . . . . . . 24
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
7. Security Considerations . . . . . . . . . . . . . . . . . . . 26
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27
9.1 Normative References . . . . . . . . . . . . . . . . . . . 30
9.2 Informative References . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 30 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28
9.1. Normative References . . . . . . . . . . . . . . . . . . . 28
9.2. Informative References . . . . . . . . . . . . . . . . . . 28
Intellectual Property and Copyright Statements . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29
Intellectual Property and Copyright Statements . . . . . . . . . . 30
1. Overview 1. Overview
The Dynamic MANET On-demand (DYMO) routing protocol enables reactive, The Dynamic MANET On-demand (DYMO) routing protocol enables reactive,
multihop routing between participating nodes that wish to multihop routing between participating nodes that wish to
communicate. The basic operations of the DYMO protocol are route communicate. The basic operations of the DYMO protocol are route
discovery and management. During route discovery the originating discovery and route management. During route discovery the
node initiates dissemination of a Route Request (RREQ) throughout the originating node initiates dissemination of a Route Request (RREQ)
network to find the target node. During this dissemination process, throughout the network to find the target node. During this
each intermediate node records a route to the originating node. When dissemination process, each intermediate node records a route to the
the target node receives the RREQ, it responds with a Route Reply originating node. When the target node receives the RREQ, it
(RREP) unicast toward the originating node. Each node that receives responds with a Route Reply (RREP) unicast toward the originating
the RREP records a route to the target node, and then the RREP is node. Each node that receives the RREP records a route to the target
unicast toward the originating node. When the originating node node, and then the RREP is unicast toward the originating node. When
receives the RREP, routes have then been established between the the originating node receives the RREP, routes have then been
originating node and the target node in both directions. established between the originating node and the target node in both
directions.
In order to react to changes in the network topology nodes maintain In order to react to changes in the network topology nodes maintain
their routes and monitor their links. When a packet is received for their routes and monitor their links. When a data packet is received
a route that is no longer available the source of the packet is for a route or link that is no longer available the source of the
notified. A Route Error (RERR) is sent to the packet source to packet is notified. A Route Error (RERR) is sent to the packet
indicate the current route is broken. Once the source receives the source to indicate the current route is broken. Once the source
RERR, it re-initiates route discovery if it still has packets to receives the RERR, it can perform route discovery if it still has
deliver. packets to deliver.
In order to enable extension of the base specification, DYMO defines In order to enable extension of the base specification, DYMO uses the
a generic element structure and handling of future extensions. By generalized MANET packet and message format [5]. Additionally, by
defining a fixed structure and default handling, future extensions following the defined default behavior for nodes not understanding a
are handled in a predetermined fashion. particular type of information, future enhancements are handled in an
understood and predetermined fashion.
DYMO uses sequence numbers as they have been proven to ensure loop DYMO uses sequence numbers as they have been proven to ensure loop
freedom [3]. Sequence numbers enable nodes to determine the order of freedom [3]. Sequence numbers enable nodes to determine the order of
DYMO route discovery packets, thereby avoiding use of stale routing DYMO route discovery messages, thereby avoiding use of stale routing
information. information.
All DYMO packets are transmitted via UDP on port TBD. All DYMO messages conform to the generalized MANET message and packet
format [5] and are transmitted via UDP on port TBD.
2. Terminology 2. Terminology
DYMO Sequence Number (SeqNum)
A DYMO Sequence Number is 16-bit number maintained by each
node, and it is used to ensure loop-free routes.
Hop Count (HopCnt)
The number of hops a particular message or piece of information
has traversed.
IP Destination Address (IPDestinationAddress) IP Destination Address (IPDestinationAddress)
The destination of a packet, indicated by examining the IP The destination of a packet, determined by examining the IP
header. header.
IP Source Address (IPSourceAddress) IP Source Address (IPSourceAddress)
The source of a packet, indicated by examining the IP header. The source of a packet, determined by examining the IP header.
DYMOcast MANETcast
Packet transmission to all DYMO routers. DYMOcast packets Packet transmission to all neighboring MANET routers.
should be sent with an IPDestinationAddress of IPv4 TBD (IPv6 MANETcast packets should be sent with an IPDestinationAddress
TBD), the DYMOcastAddress. of IPv4 TBD (IPv6 TBD), the MANETcastAddress.
Routing Element (RE) Originator (Orig)
A DYMO message element that is used to distribute routing The Originator is the node that created a Routing Message in an
effort to disseminate and possibly learn new routing
information. information.
Prefix
A Prefix indicates that an address is a network address, rather
than a host address. If a Prefix is omitted, the address is
assumed to be a host address.
Routing Message (RM)
A DYMO message that is used to distribute routing information.
Route Invalidation Route Invalidation
Disabling the use of a route, causing it to be unavailable for Disabling the use of a route; causing it to be unavailable for
forwarding data. forwarding data.
Route Reply (RREP) Route Reply (RREP)
Upon receiving a RREQ, the target node generates a Route Reply Upon receiving a RREQ during route discovery, the target node
(RREP). A RREP is a RE with a unicast IPDestinationAddress, generates a Route Reply (RREP). A RREP is used to disseeminate
indicating that this RE is to be unicast hop-by-hop toward the routing information on how to reach the Target. A RREP is a RM
TargetAddress. with a unicast IPDestinationAddress, indicating that this RM is
to be unicast hop-by-hop toward the Target.
Route Error (RERR)
A node generates a Route Error (RERR) to disseminate that it
does not have correct routing information about a particular
destination, or set of destinations. A RERR is most often
generated in response to a request to forward a data packet for
which the current node does not have a valid route.
Route Request (RREQ) Route Request (RREQ)
A node generates a Route Request (RREQ) to discover a valid A node generates a Route Request (RREQ) to discover a valid
route to a particular destination (TargetAddress). A RREQ is route to a particular destination (Target). A RREQ is used to
simply a RE with the DYMOcastAddress in the disseminate routing information on how to reach the Originator
IPDestinationAddress field of the IP packet. Also, the A-bit of the RREQ. A RREQ is simply a RM with the MANETcastAddress
is set to one (A=1) to indicate that the TargetNode must in the IPDestinationAddress field of the IP packet, causing
respond with a RREP. distribution to all neighboring DYMO routers.
Target
The Target is the ultimate destination of a message. For RREQ
this will be the desired destination. For RREP this will be
the Originator of the RREQ.
Valid Route Valid Route
A known route where the Route.ValidTimeout is greater than the A known route where the Route.ValidTimeout is greater than the
current time. current time.
3. Data Structures 3. Data Structures
3.1 Route Table Entry 3.1. Route Table Entry
The route table entry is a conceptual data structure. The route table entry is a conceptual data structure.
Implementations may use any internal representation that conforms to Implementations may use any internal representation that conforms to
the semantics of a route as specified in this document. the semantics of a route as specified in this document.
o Route.DestAddress o Route.DestAddress
o Route.DeleteTimeout o Route.DeleteTimeout
o Route.HopCnt o Route.HopCnt
skipping to change at page 8, line 8 skipping to change at page 9, line 8
corresponding routing table entry MUST be deleted. corresponding routing table entry MUST be deleted.
Route Hop Count (Route.HopCnt) Route Hop Count (Route.HopCnt)
The number of intermediate node hops before reaching the The number of intermediate node hops before reaching the
Route.DestAddress. Route.DestAddress.
Route Is Gateway (Route.IsGateway) Route Is Gateway (Route.IsGateway)
1-bit selector indicating whether the Route.DestAddress is a 1-bit selector indicating whether the Route.DestAddress is a
gateway. gateway, see Section 4.8.
Route Next Hop Address (Route.NextHopAddress) Route Next Hop Address (Route.NextHopAddress)
The IP address of the next node on the path toward the The IP address of the next node on the path toward the
Route.DestAddress. Route.DestAddress.
Route Next Hop Interface (Route.NextHopInterface) Route Next Hop Interface (Route.NextHopInterface)
The interface used to send packets toward the The interface used to send packets toward the
Route.DestAddress. Route.DestAddress.
Route Prefix (Route.Prefix) Route Prefix (Route.Prefix)
6-bit field that specifies the size of the subnet reachable 8-bit field that specifies the size of the subnet reachable
through the Route.DestAddress, see Section 4.7. The definition through the Route.DestAddress, see Section 4.7. The definition
of the Prefix field is different for gateways; entries with of the Prefix field is different for gateways; entries with
Route.IsGateway set to one (1). Route.IsGateway set to one (1), see Section 4.8.
Route Sequence Number (Route.SeqNum) Route Sequence Number (Route.SeqNum)
The sequence number of the Route.DestAddress. The sequence number of the Route.DestAddress, zero (0) if
unknown.
Route.ValidTimeout Route.ValidTimeout
The time at which a route table entry is scheduled to be The time at which a route table entry is scheduled to be
invalidated. The routing table entry is no longer considered invalidated. The routing table entry is no longer considered
valid if the current time is after Route.ValidTimeout. valid if the current time is after Route.ValidTimeout.
3.2 DYMO Message Elements 3.2. DYMO Messages
3.2.1 Generic DYMO Element Structure
All DYMO message elements MUST conform to the fixed data structure
below.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Len | TTL |I|Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. NotifyAddress (Only Types with M-bit set) .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. TargetAddress (for non-DYMOcastAddress IPDestinationAddresses).
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. Data .
. Type-Specific Payload .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1
Element Type (Type)
0 0
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Type | = |M| H | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 2
The Type field identifies the element as well as the handling
by nodes that do not implement or understand the element. The
most significant bit, the M-bit, denotes whether the element
requires notification via an Unsupported-element Error (UERR)
when the element is not understood or handled by a particular
node. The next two bits, H-bits, identify how the Type is to
be handled by nodes not implementing the Type, regardless of
UERR delivery. Section 4.6.3 describes the handling behavior
based on the Type.
I-bit (I)
1-bit selector indicating whether the element has been ignored
by some node that has relayed this element. If I=1 the element
has been ignored.
Reserved (Reserved, Reservd, Res, R)
Reserved bits. These bits are set to zero (0) during element
creation and ignored during processing.
Element Time to Live (TTL)
6-bit field that identifies the maximum number of times the
element is to be retransmitted. The TTL field operates similar
to IPTTL (MaxCount) and is decremented at each hop. When TTL
reaches zero (0) the element is dropped.
Element Length (Len)
12-bit field that indicates the size of the element in bytes,
including the fixed portion.
Element Notify Address (NotifyAddress)
The node to send a UERR if the Element Type is unsupported or 3.2.1. Generalized MANET Packet and Message Structure
not handled by the processing node. The NotifyAddress field is
only present if the Type field has the M-bit is set to one (1).
Element Target Address (TargetAddress) All DYMO messages conform to the generalized packet and message
format as described in [5].
The node that is the ultimate destination of the element. This 3.2.2. Routing Message (RM)
field is only required if the IPDestinationAddress is not the
DYMOcastAddress. During hop-by-hop transmission of a DYMO
packet the IPDestinationAddress is filled with the
Route.NextHopAddress of the route table entry associated with
the TargetAddress.
Element Data (Data) Routing messages are used to disseminate routing information. The
two message types are RREQ and RREP and they have the same general
format. RREQ messages require a response, while RREP are responses
to RREQ.
Type-specific payload. Routing message creation and processing are described in Section 4.3.
3.2.2 Routing Element (RE) Example Simple RREQ/RREP Routing Message
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Len | TTL |I|A|S| Res | | msg-type | RSRV |U|N|0|1| msg-size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. TargetAddress . | msg-ttl | msg-hopcnt | msg-tlv-block-size=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TargetSeqNum | | Head Length | Head |Number Tails=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| THopCnt |Res| . | TailOrig | TailTarget | tlv-block-size |
+-+-+-+-+-+-+-+-+ .
. .
. Routing Block 1 (RBlock1) .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . |DYMOSEQNUM-type| TLV Length | Orig.SeqNum.:
. Additional Routing Blocks .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:.Orig.SeqNum | Target.SeqNum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3 Figure 1
A-bit (A)
1-bit selector indicating whether this RE requires a RREP by
the TargetAddress. If A=1 a RREP is required. The
instructions for generating a RREP are described in
Section 4.3.2.
S-bit (S)
1-bit selector indicating whether this RE requires a unicast
message be sent to the previous hop address. This message MAY
used by the previous hop to ensure that the link traversed is
not unidirectional. The handling instructions for the S-bit is
explained in Section 4.3.2.
Element Target Address (TargetAddress)
The node that is the ultimate destination of the Routing
Element.
Target Sequence Number (TargetSeqNum)
The sequence number of the ultimate destination of this Routing
Element. If the Sequence Number is unknown for this particular
Route.DestAddress then TargetSeqNum is set to zero (0).
Target Hop Count (THopCnt) o RM conform to the generalized message format.
6-bit field that identifies the number of intermediate nodes o msg-type = DYMO-RREQ or DYMO-RREP
through which a packet traversed on the route to this
particular TargetAddress the last time a route was available.
The THopCnt is the Route.HopCnt of the TargetAddress, stored in
the routing table of the RREQ originator. If the hop count
information is not available at the originating node then the
THopCnt is set to zero (0).
Routing Block (RBlock) o msg-semantics
Data structure that describes routing information related to a * RM indicate inclusion of msg-ttl and msg-hop-count in msg-
particular IP address, RBNodeAddress. header-info, by setting bit 1
Routing Block (RBlock) o msg-header-info
* RM contains msg-ttl
0 1 2 3 * RM contains msg-hop-count
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|G| RBPrefix |Res| RBHopCnt |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. RBNodeAddress .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RBNodeSeqNum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4 o add-block entries
G-bit (G) * RM contain 1 and only 1 address marked as Originator - If no
address is marked as the originator the first address is
assumed to be the Originator
1-bit selector to indicate whether the RBNodeAddress is a * if the RM is unicast (the IPDestinationAddress is a unicast
gateway. If G=1 RBNodeAddress is a gateway. For more address), RM contain 1 and only 1 address marked as Target
information on gateway operation see Section 4.8. (Target) - if no address is marked the second address is
assumed to be the Target
Prefix Size (Prefix) o add-tlv
7-bit field that specifies the size of the subnet reachable * RM contain the DYMO Sequence Number of the Originator
through the associated node, see Section 4.7. The (Orig.SeqNum) in a DYMO Sequence Number tlv
definition of Prefix is different for gateways.
Routing Block Hop Count (RBHopCnt) * RM should contain the SeqNum for each address. If the SeqNum
is not included a value of Zero (0) is assumed. For the Target
the SeqNum will be the Last Known SeqNum (Target.SeqNum) or
Zero (0) to indicate that only the Target can reply
6-bit field that identifies the number of intermediate nodes * RM should contain the HopCnt for each address. If HopCnt is
through which the associated RBlock has passed. not included, it is assumed to be zero (unknown). For the
Target the HopCnt should be the Last Known HopCnt
(Target.HopCnt)
Routing Block Node Address (RBNodeAddress) * RM should contain a Prefix for each address that is not a host
address. If a prefix is not included in conjunction with an
address, it is assumed zero (host address only). For more
information on advertising a Prefix see Section 4.7.
The IP address of the node associated with this RBlock. * RM should contain a Gateway tlv for an address that is a
gateway. If gateway indicator is not included in association
with an address, the address is assumed to not be a gateway.
For more information on gateway operation see Section 4.8.
Routing Block Node Sequence Number (RBNodeSeqNum) 3.2.3. Route Error (RERR)
The sequence number of the node associated with this RBlock.
3.2.3 Route Error (RERR) Example Simple RERR Message
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Len | TTL |I|Reserved | | rerr-msg-type | RSRV |U|N|0|1| msg-size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. UNodeAddress1 . | msg-ttl | msg-hopcnt | msg-tlv-block-size=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UNodeSeqNum1 | | Head Length | Head |Number Tails=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. Additional UNodeAddressN (if needed) . | Tail1 | tlv-block-size |dymo-seqnum-typ|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Additional UNodeSeqNumN (if needed) | | TLV Length | Tail1.SeqNum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5 Figure 2
Unreachable Node Address (UNodeAddress)
The IP address of the unreachable node.
Unreachable Node Sequence Number (UNodeSeqNum)
The sequence number of the unreachable node, if known; o RERR conform to the generalized message format.
otherwise, zero (0). RERR generation is described in
Section 4.5.3.
3.2.4 Unsupported-element Error (UERR) o msg-type = DYMO-RERR
0 1 2 3 o msg-semantics
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Len | TTL |I|Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. TargetAddress .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. UElemTargetAddress .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. UERRNodeAddress .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UElemType |
+-+-+-+-+-+-+-+-+
Figure 6 * RERR indicates inclusion of msg-ttl and msg-hop-count in msg-
header-info, using bit 1
Element Target Address (TargetAddress) o msg-header-info
The node that is the ultimate destination of the element, * RERR contain msg-ttl
NotifyAddress.
Unsupported-element Target Address (UElemTargetAddress) * RERR contain msg-hop-count
Address of the destination of the element that caused o add-block entries
generation of this UERR; TargetAddress from the offending fixed
DYMO element.
Unsupported-element Node Address (UERRNodeAddress) * All addresses are considered unreachable unless marked
otherwise
The IP address of the node that created the UERR. o add-tlvs
Unsupported-element Type (UElemType) * RERR should contain SeqNum for each unreachable node. If the
SeqNum is not included in the message it is assumed to be zero
(unknown)
The Type that required generation of the UERR. * RERR should contain the Last Known HopCnt for each unreachable
node. If the HopCnt is not included in the message it is
assumed to be zero (unknown)
4. Detailed Operation 4. Detailed Operation
4.1 Sequence Numbers 4.1. Sequence Numbers
4.1.1 Maintaining a Sequence Number 4.1.1. Maintaining a Sequence Number
DYMO requires each node in the network to maintain its own sequence DYMO requires each node in the network to maintain its own DYMO
number (OwnSeqNum). The circumstances for a node to change its sequence number (OwnSeqNum), a 16-bit unsigned integer. The
OwnSeqNum are described in Section 4.3.1. circumstances for a node to change its OwnSeqNum are described in
Section 4.3.1.
4.1.2 Incrementing a Sequence Number 4.1.2. Incrementing a Sequence Number
When a node increments its OwnSeqNum (as described in Section 4.3.1 When a node increments its OwnSeqNum (as described in Section 4.3.1
and Section 4.3.2) it MUST do so by treating the sequence number and Section 4.3.2) it MUST do so by treating the sequence number
value as if it was an unsigned number. The sequence number zero (0) value as if it was an unsigned number. The sequence number zero (0)
is reserved and is used in several DYMO data structures to represent is reserved and is used in several DYMO data structures to represent
an unknown sequence number. an unknown sequence number.
4.1.3 Sequence Number Rollover 4.1.3. Sequence Number Rollover
If the sequence number has been assigned to be the largest possible If the sequence number has been assigned to be the largest possible
number representable as a 32-bit unsigned integer (i.e., 4294967295), number representable as a 16-bit unsigned integer (i.e., 65535), then
then the sequence number MUST be set to one (1) when incremented. the sequence number MUST be set to 256 when incremented. Setting the
sequence number to 256 allows other nodes to detect that the number
has rolled over and the node has not lost its sequence number.
4.1.4 Actions After Sequence Number Loss 4.1.4. Actions After Sequence Number Loss
A node SHOULD maintain its sequence number in persistent storage.
If a node's OwnSeqNum is lost, it must take certain actions to avoid If a node's OwnSeqNum is lost, it must take certain actions to avoid
creating routing loops. To prevent this possibility after sequence creating routing loops. To prevent this possibility after sequence
number loss a node MUST wait for at least ROUTE_DELETE_PERIOD before number loss a node MUST wait for at least ROUTE_DELETE_PERIOD before
transmitting any DYMO packet other than RERR generated by this node. fully participating in the DYMO routing protocol. If a DYMO control
If a DYMO control packet is received during this period, the node message is received during this waiting period, the node SHOULD
SHOULD process it normally but MUST not retransmit any DYMO control process it normally but MUST not transmit or retransmit any RM. If a
packets. If a data packet is received during this waiting period the data packet is received for forwarding to another destination during
node MUST send a RERR message to the IPSourceAddress with the this waiting period the node MUST generate a RERR message indicating
UNodeSeqNum set to zero (0) and restart its waiting period before that this route is not available and reset its waiting period. RERR
transmitting any DYMO control packets except RERR generated by this generation is described in Section 4.5.3. At the end of the waiting
node. period a node sets its sequence number to one (1).
4.2 DYMO Routing Table Operations
4.2.1 Creating or Updating a Route Table Entry from a Routing Block
While processing a RE, as described in Section 4.3.2, a node checks 4.2. DYMO Routing Table Operations
its routing table for an entry to the RBNodeAddress using longest-
prefix matching. In the event that no matching entry is found, an
entry is created.
If a matching entry is found, the routing information about 4.2.1. Creating or Updating a Route Table Entry from Routing Message
RBNodeAddress contained in this RBlock is NOT stale if the result of Information
subtracting the Route.SeqNum from RBNodeSeqNum is greater than zero While processing a RM, as described in Section 4.3.2, a node checks
(0) using signed 32-bit arithmetic. its routing table for an entry to the Node.Address using longest-
prefix matching [6]. In the event that no matching entry is found,
an entry is created.
If a matching entry is found, the routing information about If a matching entry is found, the routing information about
RBNodeAddress contained in this RBlock is NOT stale if the result of Node.Address contained in this RM is NOT stale if the result of
subtracting the Route.SeqNum from RBNodeSeqNum is equal to zero (0) subtracting the Route.SeqNum from Node.SeqNum is equal to zero (0)
using signed 32-bit arithmetic but it SHOULD be disregarded if: using signed 16-bit arithmetic but it SHOULD be disregarded if:
o the Route.ValidTimeout has not passed and RBHopCnt is greater than o the Route.ValidTimeout has not passed and Node.HopCnt is greater
or equal to Route.HopCnt, OR than or equal to Route.HopCnt, OR
o the Route.ValidTimeout has passed and RBHopCnt is greater than o the Route.ValidTimeout has passed and Node.HopCnt is greater than
Route.HopCnt plus one (1). Route.HopCnt plus one (1).
If the information in this RBlock is stale or disregarded and this If the information associated with this Node.Address is stale or
RBlock is the first RBlock in a RREQ this DYMO packet MUST be disregarded and this Node.Address is the Originator then this DYMO
dropped. For other RBlocks containing stale or disregarded routing message MUST be dropped. For other Node.Addresses that are stale or
information, the RBlock is simply removed from this RE and the RELen disregarded, the information is simply removed from the RM. Removing
adjusted. Removing stale and disregarded RBlocks ensures that unused stale and disregarded routing informations ensures that unused
information is not propagated further. information is not propagated further.
If the route information for RBNodeAddress is not stale, disregarded If the route information for Node.Address is not stale or
or a disregarded RREP, then the following actions occur to the route disregarded, then the following actions occur to the route table
table entry for RBNodeAddress: entry for Node.Address:
1. the Route.HopCnt is set to the RBHopCnt, 1. the Route.HopCnt is set to the Node.HopCnt,
2. the Route.IsGateway is set to the G-bit, 2. the Route.IsGateway is set to the G-bit,
3. the Route.NextHopAddress is set to the node that transmitted this 3. the Route.NextHopAddress is set to the node that transmitted this
DYMO packet (IPSourceAddress), DYMO packet (IPSourceAddress),
4. the Route.NextHopInterface is set to the interface that this DYMO 4. the Route.NextHopInterface is set to the interface that this DYMO
packet was received on, packet was received on,
5. the Route.Prefix is set to RBPrefix, 5. the Route.Prefix is set to Node.Prefix,,
6. the Route.SeqNum is set to the RBNodeSeqNum, 6. the Route.SeqNum is set to the Node.SeqNum,
7. and the Route.ValidTimeout is set to the current time + 7. and the Route.ValidTimeout is set to the current time +
ROUTE_TIMEOUT. ROUTE_TIMEOUT.
If a valid route exists to RBNodeAddress, the route can be used to If a valid route exists to Node.Address at this point, the route can
send any queued data packets and to fulfill any outstanding route be used to send any queued data packets and to fulfill any
requests. outstanding route requests.
4.2.2 Route Table Entry Timeouts
If the current time is later than a routing entry's 4.2.2. Route Table Entry Timeouts
Route.ValidTimeout, the route is stale and it is not be used to route
packets. The information in invalid entries is still used for
generating RREQ messages.
If the current time is after Route.DeleteTimeout the corresponding If the current time is after Route.DeleteTimeout the corresponding
routing table entry MUST be deleted. routing table entry MUST be deleted.
4.3 Routing Element If the current time is later than a routing entry's
Route.ValidTimeout, the route is stale and it is not be used to route
packets. The information in invalid entries can still be used for
filling fields in outgoing RM with last known values.
4.3.1 Routing Element Creation 4.3. Routing Message
4.3.1. Routing Message Creation
When a node creates a RREQ it SHOULD increment its OwnSeqNum by one When a node creates a RREQ it SHOULD increment its OwnSeqNum by one
according to the rules specified in Section 4.1.2. When a node according to the rules specified in Section 4.1.2. When a node
creates a RREP, then it increments its OwnSeqNum under the following creates a RREP in response to a RREQ, it MUST increment its OwnSeqNum
conditions: under the following conditions:
o TargetSeqNum is greater than OwnSeqNum OR o Target.SeqNum is greater than OwnSeqNum OR
o TargetSeqNum is equal to OwnSeqNum AND THopCnt is less than to o Target.SeqNum is equal to OwnSeqNum AND Target.HopCnt is unknown
RBHopCnt. OR
In either case (for RREQ or RREP), the node MUST create the first o Target.SeqNum is equal to OwnSeqNum AND Orig.HopCnt is unknown OR
RBlock. It sets the RBNodeAddress to its own address. The
RBNodeSeqNum is the node's OwnSeqNum. The node may advertise a
prefix using the Prefix field, as described in Section 4.7.
Otherwise, the Prefix field is set to zero (0). The node may
advertise it is a gateway by setting the G-bit if it is a gateway, as
described in Section 4.8. Otherwise, the G-bit is set to zero (0).
The TTL SHOULD be set to NET_DIAMETER, but MAY be set smaller. For
the case of RREQ, the TTL MAY be set in accordance with an expanding
ring search as described in [2].
4.3.2 Routing Element Processing o Target.SeqNum is equal to OwnSeqNum AND Target.HopCnt (the last
know hop count value) is less than to Orig.HopCnt (the number of
hops traversed by this RREQ to reach the target).
After general DYMO element pre-processing (Section 4.6.2), the In either case (both RREQ and RREP), the node MUST add the
RBHopCnt for the first RBlock is incremented by one (1). A route to Orig.Address to the add-block and the Orig.SeqNum to the add-tlv-
the first RBlock is then created or updated, as described in block. It sets the Orig.Address to its own address. The Orig.SeqNum
Section 4.2.1. If this RBlock does not result in a valid route the is the node's OwnSeqNum. The node MAY advertise a prefix using the
packet MUST be dropped. Prefix add-tlv, as described in Section 4.7. Otherwise, the Prefix
add-tlv is not included. The node MAY advertise it is a gateway by
using a gateway add-tlv, as described in Section 4.8. Otherwise, the
gateway add-tlv is not included. The msg-ttl SHOULD be set to
NET_DIAMETER, but MAY be set smaller. The msg-hopcnt is set to zero
(0). the case of RREQ, the msg-ttl MAY be set in accordance with an
expanding ring search as described in [2] to limit the RREQ
propagation to a subset of the network and possibly reduce route
discovery overhead.
Each additional RBlock SHOULD be processed. For each RBlock the 4.3.2. Routing Message Processing
RBHopCnt is incremented by one (1), then a route is created or
updated as defined in Section 4.2.1. Each RBlock resulting in a
valid route entry may alleviate a future route discovery. Any
RBlocks that do not result in a valid route update or that are not
processed MUST be removed from the RE.
If this node is the TargetAddress AND the A-bit is set (A=1), this After general message pre-processing (Section 4.6.2), a route to the
node MUST respond with a RREP. The target node creates a new RE as Originator is then created or updated, as described in Section 4.2.1.
described in Section 4.3.1. The TargetAddress in the new RE is set
to the RBNodeAddress1 from the RE currently being processed. The
THopCnt is the hop count for the TargetAddress. The A-bit is set to
(A=0). The IPDestinationAddress is set to the Route.NextHopAddress
for the TargetAddress. The TargetSeqNum is set to Route.SeqNum for
the TargetAddress. Then the new RE undergoes post-processing,
according to Section 4.6.4.
After processing a RE, a node MAY append its routing information to If a valid route to the Originator is not created or updated then the
the RE, according to the process described in Section 4.3.3. The message MUST be dropped.
additional routing information will reduce route discoveries to this
node.
If this node is not the TargetAddress, the current RE SHOULD be Each additional address in the address block(s) SHOULD be processed
handled according to Section 4.6.4. except the Target. For each of these addresses the Node.HopCnt
associated with the address is incremented by one (1) if it exists
and is not zero, then a route is created or updated as defined in
Section 4.2.1. The updating of the HopCnt occurs after processing.
Each address resulting in a valid route entry may alleviate a future
route discovery. Any addresses that do not yield a valid route or
that are not processed MUST be removed from the RM. Only valid
routing information is propagated within RM messages.
If this node is the TargetAddress, the current packet and any If this node is the Target AND this is a RREQ, this node responds
additional elements are processed, but this packet is not with a RREP. The Target creates a new RREP as described in
retransmitted. Section 4.3.1. The Target.Address in the new RM is set to the
Orig.Address from the RM currently being processed. The
Target.HopCnt is the hop count for the Orig.Address. The
IPDestinationAddress is set to the Route.NextHopAddress for the
Orig.Address of the current RM being processed. The Target.SeqNum is
set to Route.SeqNum for Orig.Address from the current RM being
processed. Then the new RM undergoes post-processing, according to
Section 4.6.4.
If the S-bit is set to one (1) in the RE, then a unicast message After processing a RM, a node MAY append its routing information to
SHOULD be sent or have been sent to the previous hop within the RM, according to the process described in Section 4.3.3. The
UNICAST_MESSAGE_SENT_TIMEOUT. Any unicast packet will serve this additional routing information will reduce route discoveries to this
purpose, but it MAY be an ICMP REPLY message. If a message is not node. If all nodes along the path append their information path
sent, then the previous hop may assume that the link is information will also be available.
unidirectional and may blacklist this node.
4.3.3 Appending Additional Routing Information to an Existing Routing If this node is not the Target.Address and this is a RREQ the current
Element RM SHOULD be MANETcast. If this node is not the Target Address and
this is a RREP the current RM SHOULD be unicast to the next hop
address on the route to the Target.
If this node is the Target.Address, the current message is processed,
but this message is not forwarded or retransmitted.
4.3.3. Appending Additional Routing Information to an Existing Routing
Message
Appending routing information will alleviate route discovery attempts Appending routing information will alleviate route discovery attempts
to this node from other nodes that process the resultant RE. Nodes to this node from other nodes that process the resultant RM
MAY append a RBlock to RE processed if the believes that this information. Nodes MAY append a their routing information to a RM
additional routing information will alleviate future RREQ. processed if they believe that this additional routing information
will alleviate future RREQ.
Prior to appending a RBlock to a RE, a node MUST increment its Prior to appending their address to a RM, a node MUST increment its
OwnSeqNum as defined in Section 4.1.2. Then it appends its IP OwnSeqNum as defined in Section 4.1.2. Then it appends its IP
address, OwnSeqNum, Prefix and G-bit to the RE in a RBlock. The address and OwnSeqNum. It MAY also append its Prefix and G-bit to
RBHopCnt is set to zero (0). The RE Len is also adjusted according the RM. This Node.HopCnt is set to one (1) if included. Several
to the number of RBlocks in the RE. length fields MUST also be adjusted to include the newly inserted
information.
4.4 Route Discovery 4.4. Route Discovery
A node generates a Route Request (RREQ) to discover a valid route to A node generates a Route Request (RREQ) to discover a route to a
a particular destination (TargetAddress). A RREQ is a RE with the particular destination (Target). If a sequence number is known for
A-bit is set to one (A=1) to indicate that the TargetNode must the Target it is placed in the RREQ. Otherwise, Target.SeqNum
respond with a RREP. If a sequence number is known for the assumed to be unknown by processing nodes. A Target.SeqNum of zero
TargetAddress it is placed in the TargetSeqNum field. Otherwise, (0) MAY be set to indicate that only the destination may respond to
TargetSeqNum is set to zero (0). A TargetSeqNum of zero MAY be set this RREQ. If a previous value of the HopCnt is known for the Target
to indicate that only the destination may respond to this RREQ. If a it is placed in a corresponding add-tlv HopCnt. Otherwise, the
hop count is known for the TargetAddress it is placed in the THopCnt HopCnt is not included. The IPDestinationAddress is set to the
field. Otherwise, the THopCnt is set to zero (0). The MANETcastAddress. Then the RM is transmitted according to the
IPDestinationAddress is set to the DYMOcastAddress. Then the RE is procedure defined in Section 4.6.5.
then transmitted according to the procedure defined in Section 4.6.5.
After issuing a RREQ, the originating node waits for a route to be After issuing a RREQ, the originating node waits for a route to be
created to the TargetNode. If a route is not received within created to the Target. If a route is not found within RREQ_WAIT_TIME
RREQ_WAIT_TIME milliseconds, this node MAY again try to discover a milliseconds, this node MAY again try to discover a route by issuing
route by issuing another RREQ. another RREQ.
To reduce congestion in a network, repeated attempts at route To reduce congestion in a network, repeated attempts at route
discovery for a particular TargetNode SHOULD utilize a binary discovery for a particular Target SHOULD utilize a binary exponential
exponential backoff. The first time a node issues a RREQ, it waits backoff. The first time a node issues a RREQ, it waits
RREQ_WAIT_TIME milliseconds for a route to the TargetNode. If a RREQ_WAIT_TIME milliseconds for a route to the Target. If a route is
route is not found within that time, the node MAY send another RREQ. not found within that time, the node MAY send another RREQ. If a
If a route is not found within two (2) times the current waiting route is not found within two (2) times the current waiting time,
time, another RREQ may be sent, up to a total of RREQ_TRIES. For another RREQ may be sent, up to a total of RREQ_TRIES. For each
each additional attempt, the waiting time for the previous RREQ is additional attempt, the waiting time for the previous RREQ is
multiplied by two (2) so that the waiting time conforms to a binary multiplied by two (2) so that the waiting time conforms to a binary
exponential backoff. exponential backoff.
Data packets awaiting for a route SHOULD be buffered. Data packets awaiting a route SHOULD be buffered.
If a route discovery has been attempted RREQ_TRIES times without If a route discovery has been attempted RREQ_TRIES times without
receiving a route to the TargetNode, all data packets destined for receiving a route to the Target, all data packets destined for the
the corresponding TargetNode SHOULD be dropped from the buffer and a corresponding Target SHOULD be dropped from the buffer and a
Destination Unreachable ICMP message SHOULD be delivered to the Destination Unreachable ICMP message SHOULD be delivered to the
application. application.
4.5 Route Maintenance 4.5. Route Maintenance
4.5.1 Active Link Monitoring 4.5.1. Active Link Monitoring
Before a route can be used for forwarding a packet, it MUST be Before a route can be used for forwarding a packet, it MUST be
checked to make sure that the route is still valid. If the checked to make sure that the route is still valid. If the
Route.ValidTimeout is earlier than the current time, the packet Route.ValidTimeout is earlier than the current time, the packet
cannot be forwarded, and a RERR message MUST be generated (see cannot be forwarded, and a RERR message MUST be generated (see
section Section 4.5.3). In this case, the Route.DeleteTimeout is set section Section 4.5.3). In this case, the Route.DeleteTimeout is set
to Route.ValidTimeout + ROUTE_DELETE_TIMEOUT. to Route.ValidTimeout + ROUTE_DELETE_TIMEOUT.
If the current time is after Route.DeleteTimeout, then the route If the current time is after Route.DeleteTimeout, then the route MUST
SHOULD be deleted, though a route MAY be deleted at any time. be deleted, though a route MAY be deleted at any time.
Nodes MUST monitor links on active routes. This may be accomplished Nodes MUST monitor links on active routes. This may be accomplished
by one or several mechanisms. Including: by one or several mechanisms. Including:
o Link layer feedback o Link layer feedback
o Hello messages o Hello messages
o Neighbor discovery o Neighbor discovery
o Route timeout o Route timeout
o Other monitoring mechanisms or heuristics
Upon detecting a link break the detecting node MUST set the Upon detecting a link break the detecting node MUST set the
Route.ValidTimeout to the current time for all routes active routes Route.ValidTimeout to the current time for all active routes
utilizing the broken link. utilizing the broken link.
A RERR MUST be issued if a data packet is received and it cannot be A RERR MUST be issued if a data packet is received and it cannot be
delivered to the next hop. RERR generation is described in delivered to the next hop. RERR generation is described in
Section 4.5.3. A RERR SHOULD be issued after detecting a broken link Section 4.5.3. A RERR MAY be issued after detecting a broken link of
of an active route to quickly notify nodes that a link break occurred an active route to quickly notify nodes that a link break occurred
and a route or routes are no longer available. If a route has not and a route or routes are no longer available. If a route has not
been used, a RERR SHOULD NOT be generated. been used, a RERR SHOULD NOT be generated unless generation is
expected to reduce future control traffic.
4.5.2 Updating Route Lifetimes 4.5.2. Updating Route Lifetimes
To avoid route timeouts for active routes, a node MUST update the To avoid route timeouts for active routes, a node MUST update the
Route.ValidTimeout to the IPSourceAddress to be the current time + Route.ValidTimeout to the IPSourceAddress to be the current time +
ROUTE_TIMEOUT upon receiving a data packet. ROUTE_TIMEOUT upon receiving a data packet.
To avoid route timeouts for active routes, a node SHOULD update the To avoid route timeouts for active routes, a node SHOULD update the
Route.ValidTimeout to the IPDestinationAddress to be the current time Route.ValidTimeout to the IPDestinationAddress to be the current time
+ ROUTE_TIMEOUT upon successfully transmitting a packet to the next + ROUTE_TIMEOUT upon successfully transmitting a packet to the next
hop. hop.
4.5.3 Route Error Generation 4.5.3. Route Error Generation
When a data packet is received for a destination without a valid When a data packet is received for a destination without a valid
routing table entry, a Route Error (RERR) MUST be generated by this routing table entry, a Route Error (RERR) MUST be generated by this
node. A RERR informs the source that the current route is no longer node. A RERR informs the source that the route does not exist, is no
available. longer available, or is now invalid.
In the RERR, the UNodeAddress1 field is the address of the In a new RERR, the address of unreachable node (IPDestinationAddress)
unreachable node (IPDestinationAddress) from the data packet. If the from the data packet is inserted. If a value for the unreachable
UNodeSeqNum is known, it is placed in the RERR; otherwise, zero (0) node's SeqNum is known, it is placed in the RERR; otherwise, if
is placed in the UNodeSeqNum field of the RERR. The TTL SHOULD be unknown it will be assumed to be zero (0). The msg-ttl SHOULD be set
set to NET_DIAMETER, but may be set smaller. The to NET_DIAMETER, but may be set smaller to limit the scope of the
IPDestinationAddress is set to the DYMOcastAddress. RERR. The msg-hopcnt is set to zero (0). The IPDestinationAddress
is set to the MANETcastAddress. This option will notify the maximum
number of nodes of the broken link.
Additional unreachable nodes that required the same unavailable link Additional unreachable nodes that required the same unavailable link
(routes with the same Route.NextHopAddress and (routes with the same Route.NextHopAddress and
Route.NextHopInterface) as the UNodeAddress1 SHOULD be appended to Route.NextHopInterface) MAY be added to the RERR. For each
the RERR. For each unreachable node the UNodeAddress and UNodeSeqNum unreachable node the Address is appended. The SeqNum if know should
are appended. The Len is set accordingly. also be included. Appending additional routing information notifies
each processing node of additional routes that are no longer
available.
The RERR is then processed as described in Section 4.6.5. The RERR is then processed as described in Section 4.6.5.
4.5.4 Route Error Processing 4.5.4. Route Error Processing
When a node processes a RERR after generic element pre-processing When a node processes a RERR, it SHOULD set the Route.ValidTimeout to
(Section 4.6.2), it SHOULD set the Route.ValidTimeout to the current the current time for each Address that meets all of the following
time for each route to a UNodeAddress that meets all of the following
conditions: conditions:
1. The Route.NextHopAddress is the same as the RERR IPSourceAddress. 1. The Route.NextHopAddress is the same as the RERR IPSourceAddress.
2. The Route.NextHopInterface is the same as the interface on which 2. The Route.NextHopInterface is the same as the interface on which
the RERR was received. the RERR was received.
3. The UNodeSeqNum is zero (0) OR the result of subtracting 3. The Node.SeqNum is zero (0), unknown, OR the result of
Route.SeqNum from UNodeSeqNum is less than or equal to zero using subtracting Route.SeqNum from Node.SeqNum is less than or equal
signed 32-bit arithmetic. to zero using signed 16-bit arithmetic.
Each UNodeAddress that did not result in a change to Each Node.Address that did not result in a change to
Route.ValidTimeout SHOULD be removed from the RERR. Route.ValidTimeout SHOULD be removed from the RERR, since propagation
of this information should not result in any benefit.
Prior to generic post processing a node MAY remove any UNodeAddressN, Prior to post processing a node MAY remove any unreachable node
UNodeSeqNumN pairs except UNodeAddress1 to decrease the element size. address and its associated information to decrease the message size.
If at least one UNodeAddress remains and at least one route remains If this node is the Target and the IPDestinationAddress is its own
in the RERR it SHOULD be handled as described in Section 4.6.4 to Address then it may stop processing.
continue notification of nodes effected by the broken link.
Otherwise, the RERR is dropped.
4.6 General DYMO Processing If at least one unreachable node address remains in the RERR it
SHOULD be handled as described in Section 4.6.4 to continue
notification of nodes effected by the broken link. Otherwise, the
RERR is dropped.
4.6.1 DYMO Control Packet Processing 4.6. General DYMO Packet and Message Processing
A DYMO packet may consist of multiple DYMO elements. Each element is 4.6.1. Packet Processing
processed individually and in sequence, from first to last. An
incoming DYMO packet MUST be completely processed prior to any DYMO
packet transmissions.
The length of IP addresses (32-bits for IPv4 and 128-bits for IPv6) The length of IP addresses (32-bits for IPv4 and 128-bits for IPv6)
inside DYMO elements is dependent on the IP packet header. For inside DYMO messages are dependent on the IP packet header. For
example, if the IP header is IPv6 then all DYMO elements contained in example, if the IP header uses IPv6 addresses then all messages and
the payload use IPv6 addresses. addresses contained in the payload use IPv6 addresses.
Unless specific element processing requires dropping the DYMO packet,
it is retransmitted after processing, according to the method
described in Section 4.6.5.
4.6.2 Generic Element Pre-processing
Each element in a DYMO packet undergoes pre-processing before the
element specific processing occurs. During pre-processing, the TTL
is decremented by one (1).
4.6.3 Processing Unsupported DYMO Element Types
This section describes the processing for unsupported DYMO element
Types. The Type field identifies the handling by nodes that do not
implement, support or understand a particular Element Type. The most
significant bit (M-bit) indicates whether an Unsupported-element
Error (UERR) SHOULD be sent to the NotifyAddress. The next two bits
(H-bits) identify how the element should be handled.
0 0
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Type | = |M| H | |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
If the M-bit is set in a DYMO element being processed by a node that
does not support this Element Type a UERR SHOULD be sent to the
NotifyAddress. This is accomplished by following the instructions in
Section 4.6.3.1.
Regardless of whether or not a UERR is sent in response to this
unsupported Element Type, the processing node MUST also examine the
H-bits to determine how this unsupported element is handled. The
unsupported element Type MUST be handled as follows:
o If H == 00 skip the element and continue as if the packet did not
contain this element.
o If H == 01 remove the unsupported element (using the Len field)
from the packet and continue as if the packet did not include this
element.
o If H == 10 set the ignored bit (I-bit) skip this element and 4.6.2. Generic Message Pre-processing
continue, as if the packet did not contain this element.
o If H == 11 drop the packet without processing any other DYMO Each message undergoes pre-processing before the message specific
elements. processing occurs. During pre-processing, the msg-ttl is decremented
by one (1) and the msg-hopcnt is incremented by one (1).
4.6.3.1 Generating an Unsupported-element Error 4.6.3. Processing Unknown Message and TLV Types
When an unsupported element type is received with the M-bit set, the We expect the next version of the generalized MANET packet and
processing node SHOULD generate an Unsupported-element Error (UERR). message format [5] to include message semantic bits and tlv semantic
The TargetAddress is set to the NotifyAddress. The bits to control the behavior of unknown types.
IPDestinationAddress is set to the Route.NextHopAddress toward the
NotifyAddress. The UElemTargetAddress is set to the TargetAddress
from the unsupported element. The UERRNodeAddress is set to the node
address generating this UERR. The UElemType is the Type from the
unsupported element. The TTL SHOULD be set to NET_DIAMETER, but MAY
be set smaller. The Len is set to the total number of bytes in this
UERR. The element is then processed as described in Section 4.6.4.
4.6.4 Generic Element Post-processing 4.6.4. Generic Message Post-processing
If the first element TTL is zero (0) the DYMO packet is dropped after If the msg-ttl of any message is zero (0) after processing it MUST be
processing of all elements. If the TTL of the first element is dropped.
greater than zero the DYMO packet is re-transmitted after processing
of all elements. If the TTL of any element is zero (0) after
processing it MUST be removed from the DYMO packet prior to
transmission.
4.6.5 DYMO Control Packet Transmission 4.6.5. DYMO Control Packet Transmission
DYMO packet transmission and re-transmission is controlled by the Packet transmission and re-transmission are controlled by the
IPDestinationAddress. If the IPDestinationAddress is a unicast IPDestinationAddress. If the IPDestinationAddress is a unicast
address, the packet IPDestinationAddress is replaced by the address, the packet IPDestinationAddress is replaced by the
Route.NextHopAddress from a route table lookup for the TargetAddress. Route.NextHopAddress from a route table lookup for the Target. If a
If a route for the TargetAddress is unknown or invalid the packet is route for the Target is unknown or invalid the packet is dropped and
dropped and a RERR SHOULD be generated. a RERR SHOULD be generated.
For all currently defined DYMO packets the IPTTL (IPMaxCount) SHOULD For all currently defined DYMO packets the IPTTL (IPMaxCount) SHOULD
be set to 1 (IPTTL=1), since all DYMO packet communications are be set to 1 (IPTTL=1), since all DYMO packet communications are
between direct neighbors. exchanged between direct neighbors only.
4.7 Routing Prefix 4.7. Routing Prefix
Any node can advertise connectivity to a subset of other nodes within Any node MAY advertise connectivity to a subset of node addresses
its address space by using the prefix field in RE. The nodes within within its address space by using a Prefix tlv [5]. The nodes (other
the advertised prefix SHOULD NOT participate in the MANET and MUST be than the advertising node) within the advertised Prefix SHOULD NOT
reachable by forwarding packets to the node advertising connectivity. participate in the MANET and MUST be reachable by forwarding packets
For example, 192.168.1.1 with a prefix of 16 indicates all nodes with to the node advertising connectivity. For example, 192.168.1.1 with
the prefix 192.168.X.X are reachable through 192.168.1.1. a prefix of 16 indicates all nodes with the prefix 192.168.X.X are
reachable through 192.168.1.1.
The meaning of the prefix field is altered for routes to the gateway; The meaning of the Prefix field is altered for routes to the gateway;
Route.IsGateway is one (1). If the G-bit is set the prefix in Route.IsGateway is one (1). If the G-bit is set the Prefix in
association with the IP address indicates that all nodes outside the association with the IP address indicates that all nodes outside the
subnet are reachable via the gateway node. For example, a route to a subnet are reachable via the gateway node. For example, a route to a
gateway with IP address 192.168.1.1 and a prefix of 16 indicates that gateway with IP address 192.168.1.1 and a prefix of 16 indicates that
all nodes with an IP address NOT matching 192.168.X.X are reachable all nodes with an IP address NOT matching 192.168.X.X are reachable
via this route. via this node.
4.8 Internet Attachment 4.8. Simple Internet Attachment and Gatewaying
Internet attachment consists of a network of MANET nodes connected to Simple Internet attachment consists of a network of MANET nodes
the Internet via a gateway node. The gateway is responsible for connected to the Internet via a single gateway node. The gateway is
responding to RREQs for TargetNodes outside its configured MANET responsible for responding to RREQs for Targets outside its
subnet, as well as delivering packets to destinations outside the configured MANET subnet, as well as delivering packets to
MANET subnet. destinations outside the MANET.
MANET nodes wishing to be reachable from nodes in the Internet MUST MANET nodes wishing to be reachable from nodes in the Internet MUST
have IP addresses within the gateway's configured MANET subnet. have IP addresses within the gateway's configured and advertised
Given a node with a globally routeable address or care-of address MANET subnet. Given a node with a globally routeable address or
handled by the gateway, the gateway is responsible for routing and care-of address handled by the gateway, the gateway is responsible
forwarding packets received from the Internet destined for nodes for routing and forwarding packets received from the Internet
inside its MANET subnet. destined for nodes inside its MANET subnet.
Since many nodes may commonly wish to communicate with the gateway, Since many nodes may commonly wish to communicate with the gateway,
the gateway SHOULD indicate to nodes that it is a gateway by setting the gateway SHOULD indicate to nodes that it is a gateway by using
the gateway bit (G-bit) in any RE created or processed. The G-bit the gateway tlv in any RM created or processed. The gateway tlv
flag indicates to nodes in the MANET that the RBNodeAddress is indicates to nodes in the MANET that the Node.Address is attached to
attached to the Internet and is capable of routing data packets to the Internet and is capable of routing data packets to all nodes
all nodes outside of the configured MANET subnet, described by the outside of the configured MANET subnet, defined by the Node.Address
RBNodeAddress and RBPrefix fields. and Node.Prefix fields.
4.9 Multiple Interfaces 4.9. Multiple Interfaces
It is likely that DYMO will be used with multiple wireless It is likely that DYMO will be used with multiple wireless
interfaces; therefore, the particular interface over which packets interfaces; therefore, the particular interface over which packets
arrive must be known whenever a packet is received. Whenever a new arrive must be known whenever a packet is received. Whenever a new
route is created, the interface through which the Route.DestAddress route is created, the interface through which the Route.Address can
can be reached is also recorded into the route table entry. be reached is also recorded in the route table entry.
When multiple interfaces are available, a node transmitting a When multiple interfaces are available, a node transmitting a
DYMOcast packet SHOULD send the packet on all interfaces that have MANETcast packet SHOULD send the packet on all interfaces that have
been configured for operation in the MANET. been configured for DYMO operation.
4.10 Packet Generation Limits 4.10. Packet Generation Limits
To avoid congestion, a node SHOULD NOT transmit more than RATE_LIMIT To avoid congestion, a node SHOULD NOT transmit more than RATE_LIMIT
control messages per second. RREQ packets SHOULD be discarded before control messages per second. RREQ packets SHOULD be discarded before
RREP or RERR packets. RREP or RERR packets.
5. Configuration Parameters 5. Configuration Parameters
Here are some default parameter values for DYMO: Here are some default parameter values for DYMO:
Parameter Name Suggested Value Parameter Name Suggested Value
--------------------------- --------------- --------------------------- ---------------
NET_DIAMETER 10 NET_DIAMETER 10
RATE_LIMIT 10 RATE_LIMIT 10
ROUTE_TIMEOUT 3000 milliseconds ROUTE_TIMEOUT 5000 milliseconds
ROUTE_DELETE_TIMEOUT 5*ROUTE_TIMEOUT ROUTE_DELETE_TIMEOUT 5*ROUTE_TIMEOUT
RREQ_WAIT_TIME 1000 milliseconds RREQ_WAIT_TIME 1000 milliseconds
RREQ_TRIES 3 RREQ_TRIES 3
For large networks or networks with frequent topology changes the For large networks or networks with frequent topology changes the
default DYMO parameters should be adjusted using either default DYMO parameters should be adjusted using either
experimentally determined values or dynamic adaptation. For example, experimentally determined values or dynamic adaptation. For example,
in networks with infrequent topology changes ROUTE_TIMEOUT may be set in networks with infrequent topology changes ROUTE_TIMEOUT may be set
to a much larger value. to a much larger value.
It is assumed that all nodes in the network share the same parameter It is assumed that all nodes in the network share the same parameter
settings. Different parameter values for ROUTE_TIMEOUT or settings. Different parameter values for ROUTE_TIMEOUT or
ROUTE_DELETE_TIMEOUT in addition to arbitrary packet delays may ROUTE_DELETE_TIMEOUT in addition to arbitrary packet delays may
result in frequent route breaks or routing loops. result in frequent route breaks or routing loops.
6. IANA Considerations 6. IANA Considerations
DYMO defines a Type field for each element within a packet sent to DYMO defines several message-types and tlv-types. A new registry
port TBD. A new registry will be created for the values for this will be created for the values for the various type fields, and the
Type field, and the following values will be assigned: following values will be assigned:
Type Value msg-type Value
-------------------------------- -------
Route Request (DYMO-RREQ) 8 - TBD
Route Reply (DYMO-RREP) 9 - TBD
Route Error (DYMO-RERR) 10 - TBD
address-tlv Value
-------------------------------- ----- -------------------------------- -----
Routing Element (RE) 1 DYMO SeqNum (multivalue) 20 - TBD
Route Error (RERR) 2 HopCnt (multivalue) 21 - TBD
Unsupported-element Error (UERR) 3 Prefix (multivalue) 0 [5]
Gateway (zero length) 22 - TBD
Originator 23 - TBD
Target 24 - TBD
Future values of the Type will be allocated using standard actions as Future values of the Type will be allocated using standard actions as
described in [1]. For future Types with the M-bit set NotifyAddress described in [1]. For future Types that are unicast hop-by-hop
MUST be included. Similarly for future Types that are unicast hop- (packets not sent to the MANETcastAddress), these Types MUST include
by-hop (packets not sent to the DYMOcastAddress), these Types MUST the Target.Address field.
include the TargetAddress field.
7. Security Considerations 7. Security Considerations
Currently, DYMO does not specify any special security measures. Currently, DYMO does not specify any special security measures.
Routing protocols, however, are prime targets for impersonation Routing protocols, however, are prime targets for impersonation
attacks. In networks where the node membership is not known, it is attacks. In networks where the node membership is not known, it is
difficult to determine the occurrence of impersonation attacks, and difficult to determine the occurrence of impersonation attacks, and
security prevention techniques are difficult at best. However, when security prevention techniques are difficult at best. However, when
the network membership is known and there is a danger of such the network membership is known and there is a danger of such
attacks, DYMO elements must be protected by the use of authentication attacks, DYMO messages must be protected by the use of authentication
techniques, such as those involving generation of unforgeable and techniques, such as those involving generation of unforgeable and
cryptographically strong message digests or digital signatures. cryptographically strong message digests or digital signatures.
While DYMO does not place restrictions on the authentication While DYMO does not place restrictions on the authentication
mechanism used for this purpose, IPsec Authentication Element (AH) is mechanism used for this purpose, IPsec Authentication Message (AH) is
an appropriate choice for cases where the nodes share an appropriate an appropriate choice for cases where the nodes share an appropriate
security association that enables the use of AH. security association that enables the use of AH.
In particular, RE messages SHOULD be authenticated to avoid creation In particular, RM messages SHOULD be authenticated to avoid creation
of spurious routes to a destination. Otherwise, an attacker could of spurious routes to a destination. Otherwise, an attacker could
masquerade as that destination and maliciously deny service to the masquerade as that destination and maliciously deny service to the
destination and/or maliciously inspect and consume traffic intended destination and/or maliciously inspect and consume traffic intended
for delivery to the destination. RERR messages, while slightly less for delivery to the destination. RERR messages, while slightly less
dangerous, SHOULD be authenticated in order to prevent malicious dangerous, SHOULD be authenticated in order to prevent malicious
nodes from disrupting active routes between communicating nodes. nodes from disrupting active routes between communicating nodes.
If the mobile nodes in the ad hoc network have pre-established If the mobile nodes in the ad hoc network have pre-established
security associations, the purposes for which the security security associations, the purposes for which the security
associations are created should include that of authorizing the associations are created should include that of authorizing the
processing of DYMO control packets. Given this understanding, the processing of DYMO control packets. Given this understanding, the
mobile nodes should be able to use the same authentication mechanisms mobile nodes should be able to use the same authentication mechanisms
based on their IP addresses as they would have used otherwise. based on their IP addresses as they would have used otherwise.
8. Acknowledgments 8. Acknowledgments
DYMO is a descendant of the design of previous MANET reactive DYMO is a descendant of the design of previous MANET reactive
protocols, especially AODV [2] and DSR [4]. Changes to previous protocols, especially AODV [2] and DSR [4]. Changes to previous
MANET reactive protocols stem from research and implementation MANET reactive protocols stem from research and implementation
experiences. Thanks to Luke Klein-Berndt, Pedro Ruiz, Fransisco Ros experiences. Thanks to Elizabeth Belding-Royer for her long time
and Koojana Kuladinithi for reviewing of DYMO, as well as several authorship of DYMO. Additional thanks to Luke Klein-Berndt, Pedro
specification suggestions. Ruiz, Fransisco Ros and Koojana Kuladinithi for reviewing of DYMO, as
well as several specification suggestions.
9. References 9. References
9.1 Normative References 9.1. Normative References
[1] T. Narten and H. Alvestrand, "Guidelines for Writing an IANA [1] 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.
[2] C. Perkins, E. Belding-Royer, and S. Das, "Ad hoc On-demand [2] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On-demand
Distance Vector (AODV) Routing", RFC 3561, July 2003. Distance Vector (AODV) Routing", RFC 3561, July 2003.
9.2 Informative References [6] Baker, R., "Requirements for IP Version 4 Routers", RFC 1812,
June 1995.
[3] C. Perkins and E. Belding-Royer, "Ad hoc On-Demand Distance 9.2. Informative References
[3] Perkins, C. and E. Belding-Royer, "Ad hoc On-Demand Distance
Vector (AODV) Routing", Proceedings of the 2nd IEEE Workshop on Vector (AODV) Routing", Proceedings of the 2nd IEEE Workshop on
Mobile Computing Systems and Applications, New Orleans, LA, pp. Mobile Computing Systems and Applications, New Orleans, LA, pp.
90-100, February 1999. 90-100, February 1999.
[4] D. Johnson and D. Maltz, "Dynamic Source Routing (DSR) in Ad hoc [4] Johnson, D. and D. Maltz, "Dynamic Source Routing (DSR) in Ad
Networks", In Mobile Computing, Chapter 5, pp. 153-181, 1996. hoc Networks", In Mobile Computing, Chapter 5, pp. 153-181,
1996.
[5] Clausen, T., Dearlove, C., and J. Dean, "Generalized MANET
Packet/Message Format", February 2006.
Authors' Addresses Authors' Addresses
Ian Chakeres Ian Chakeres
Boeing Phantom Works Boeing Phantom Works
The Boeing Company The Boeing Company
P.O. Box 3707 Mailcode 7L-49 P.O. Box 3707 Mailcode 7L-49
Seattle, WA 98124-2207 Seattle, WA 98124-2207
USA USA
Email: ian.chakeres@gmail.com Email: ian.chakeres@gmail.com
Elizabeth Belding-Royer
University of California Santa Barbara
Dept. of Computer Science
Santa Barbara, CA 93106-5110
USA
Phone: +1-805-893-3411
Fax: +1-805-893-8553
Email: ebelding@cs.ucsb.edu
Charlie Perkins Charlie Perkins
Nokia Research Center Nokia Research Center
313 Fairchild Drive 313 Fairchild Drive
Mountain View, CA 94043 Mountain View, CA 94043
USA USA
Phone: +1-650-625-2986 Phone: +1-650-625-2986
Fax: +1-650-625-2502 Fax: +1-650-625-2502
Email: charlie.perkins@nokia.com Email: charlie.perkins@nokia.com
skipping to change at page 32, line 41 skipping to change at page 30, line 41
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement Copyright Statement
Copyright (C) The Internet Society (2005). This document is subject Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights. except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is currently provided by the
Internet Society. Internet Society.
 End of changes. 189 change blocks. 
626 lines changed or deleted 520 lines changed or added

This html diff was produced by rfcdiff 1.29, available from http://www.levkowetz.com/ietf/tools/rfcdiff/