draft-ietf-manet-dymo-10.txt   draft-ietf-manet-dymo-11.txt 
Mobile Ad hoc Networks Working I. Chakeres Mobile Ad hoc Networks Working I. Chakeres
Group Motorola Group Motorola
Internet-Draft C. Perkins Internet-Draft C. Perkins
Intended status: Standards Track Nokia Intended status: Standards Track Nokia
Expires: January 6, 2008 July 5, 2007 Expires: May 21, 2008 November 18, 2007
Dynamic MANET On-demand (DYMO) Routing Dynamic MANET On-demand (DYMO) Routing
draft-ietf-manet-dymo-10 draft-ietf-manet-dymo-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 35 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 January 6, 2008. This Internet-Draft will expire on May 21, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
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 modes in wireless, multihop networks. It offers use by mobile modes in wireless, multihop networks. It offers
adaptation to changing network topology and determines unicast routes adaptation to changing network topology and determines unicast routes
skipping to change at page 2, line 15 skipping to change at page 2, line 15
Table of Contents Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Applicability Statement . . . . . . . . . . . . . . . . . . . 4 2. Applicability Statement . . . . . . . . . . . . . . . . . . . 4
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Data Structures . . . . . . . . . . . . . . . . . . . . . . . 7 4. Data Structures . . . . . . . . . . . . . . . . . . . . . . . 7
4.1. Route Table Entry . . . . . . . . . . . . . . . . . . . . 7 4.1. Route Table Entry . . . . . . . . . . . . . . . . . . . . 7
4.2. DYMO Messages . . . . . . . . . . . . . . . . . . . . . . 8 4.2. DYMO Messages . . . . . . . . . . . . . . . . . . . . . . 8
4.2.1. Generalized MANET Packet and Message Structure . . . . 8 4.2.1. Generalized MANET Packet and Message Structure . . . . 8
4.2.2. Routing Messages (RM) - RREQ & RREP . . . . . . . . . 9 4.2.2. Routing Messages (RM) - RREQ & RREP . . . . . . . . . 9
4.2.3. Route Error (RERR) . . . . . . . . . . . . . . . . . . 11 4.2.3. Route Error (RERR) . . . . . . . . . . . . . . . . . . 13
5. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 13 5. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 14
5.1. DYMO Sequence Numbers . . . . . . . . . . . . . . . . . . 13 5.1. DYMO Sequence Numbers . . . . . . . . . . . . . . . . . . 14
5.1.1. Maintaining A Node's Own Sequence Number . . . . . . . 13 5.1.1. Maintaining A Node's Own Sequence Number . . . . . . . 15
5.1.2. Numerical Operations on OwnSeqNum . . . . . . . . . . 14 5.1.2. Numerical Operations on OwnSeqNum . . . . . . . . . . 15
5.1.3. OwnSeqNum Rollover . . . . . . . . . . . . . . . . . . 14 5.1.3. OwnSeqNum Rollover . . . . . . . . . . . . . . . . . . 15
5.1.4. Actions After OwnSeqNum Loss . . . . . . . . . . . . . 14 5.1.4. Actions After OwnSeqNum Loss . . . . . . . . . . . . . 15
5.2. DYMO Routing Table Operations . . . . . . . . . . . . . . 14 5.2. DYMO Routing Table Operations . . . . . . . . . . . . . . 15
5.2.1. Judging Routing Information's Usefulness . . . . . . . 14 5.2.1. Judging Routing Information's Usefulness . . . . . . . 16
5.2.2. Creating or Updating a Route Table Entry with New 5.2.2. Creating or Updating a Route Table Entry with New
Routing Information . . . . . . . . . . . . . . . . . 16 Routing Information . . . . . . . . . . . . . . . . . 17
5.2.3. Route Table Entry Timeouts . . . . . . . . . . . . . . 16 5.2.3. Route Table Entry Timeouts . . . . . . . . . . . . . . 18
5.3. Routing Messages . . . . . . . . . . . . . . . . . . . . . 18 5.3. Routing Messages . . . . . . . . . . . . . . . . . . . . . 19
5.3.1. RREQ Creation . . . . . . . . . . . . . . . . . . . . 18 5.3.1. RREQ Creation . . . . . . . . . . . . . . . . . . . . 19
5.3.2. RREP Creation . . . . . . . . . . . . . . . . . . . . 19 5.3.2. RREP Creation . . . . . . . . . . . . . . . . . . . . 20
5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 19 5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 21
5.3.4. RM Processing . . . . . . . . . . . . . . . . . . . . 20 5.3.4. RM Processing . . . . . . . . . . . . . . . . . . . . 21
5.3.5. Adding Additional Routing Information to a RM . . . . 22 5.3.5. Adding Additional Routing Information to a RM . . . . 24
5.4. Route Discovery . . . . . . . . . . . . . . . . . . . . . 23 5.4. Route Discovery . . . . . . . . . . . . . . . . . . . . . 24
5.5. Route Maintenance . . . . . . . . . . . . . . . . . . . . 23 5.5. Route Maintenance . . . . . . . . . . . . . . . . . . . . 25
5.5.1. Active Link Monitoring . . . . . . . . . . . . . . . . 24 5.5.1. Active Link Monitoring . . . . . . . . . . . . . . . . 26
5.5.2. Updating Route Lifetimes During Packet Forwarding . . 24 5.5.2. Updating Route Lifetimes During Packet Forwarding . . 26
5.5.3. Route Error Generation . . . . . . . . . . . . . . . . 24 5.5.3. Route Error Generation . . . . . . . . . . . . . . . . 26
5.5.4. RERR Processing . . . . . . . . . . . . . . . . . . . 25 5.5.4. RERR Processing . . . . . . . . . . . . . . . . . . . 27
5.6. Unknown Message & TLV Types . . . . . . . . . . . . . . . 26 5.6. Unknown Message & TLV Types . . . . . . . . . . . . . . . 28
5.7. Advertising Network Addresses . . . . . . . . . . . . . . 26 5.7. Advertising Network Addresses . . . . . . . . . . . . . . 28
5.8. Simple Internet Attachment and Gatewaying . . . . . . . . 26 5.8. Simple Internet Attachment and Gatewaying . . . . . . . . 28
5.9. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 28 5.9. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 30
5.10. Packet/Message Generation Limits . . . . . . . . . . . . . 28 5.10. Packet/Message Generation Limits . . . . . . . . . . . . . 30
6. Configuration Parameters and Other Administrative Options . . 28 6. Configuration Parameters and Other Administrative Options . . 30
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
7.1. DYMO Message Type Specification . . . . . . . . . . . . . 30 7.1. DYMO Message Type Specification . . . . . . . . . . . . . 32
7.2. Packet and Message TLV Type Specification . . . . . . . . 30 7.2. Packet and Message TLV Type Specification . . . . . . . . 32
7.3. Address Block TLV Specification . . . . . . . . . . . . . 31 7.3. Address Block TLV Specification . . . . . . . . . . . . . 33
8. Security Considerations . . . . . . . . . . . . . . . . . . . 31 8. Security Considerations . . . . . . . . . . . . . . . . . . . 33
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 31 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.1. Normative References . . . . . . . . . . . . . . . . . . . 32 10.1. Normative References . . . . . . . . . . . . . . . . . . . 34
10.2. Informative References . . . . . . . . . . . . . . . . . . 32 10.2. Informative References . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35
Intellectual Property and Copyright Statements . . . . . . . . . . 34 Intellectual Property and Copyright Statements . . . . . . . . . . 36
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 unicast routing between participating DYMO routers. The multihop unicast routing between participating DYMO routers. The
basic operations of the DYMO protocol are route discovery and route basic operations of the DYMO protocol are route discovery and route
management. During route discovery, the originator's DYMO router management. During route discovery, the originator's DYMO router
initiates dissemination of a Route Request (RREQ) throughout the initiates dissemination of a Route Request (RREQ) throughout the
network to find a route to the target's DYMO router. During this network to find a route to the target's DYMO router. During this
hop-by-hop dissemination process, each intermediate DYMO router hop-by-hop dissemination process, each intermediate DYMO router
skipping to change at page 4, line 25 skipping to change at page 4, line 25
receives the RREQ, it responds with a Route Reply (RREP) sent hop-by- receives the RREQ, it responds with a Route Reply (RREP) sent hop-by-
hop toward the originator. Each intermediate DYMO router that hop toward the originator. Each intermediate DYMO router that
receives the RREP records a route to the target, and then the RREP is receives the RREP records a route to the target, and then the RREP is
unicast hop-by-hop toward the originator. When the originator's DYMO unicast hop-by-hop toward the originator. When the originator's DYMO
router receives the RREP, routes have then been established between router receives the RREP, routes have then been established between
the originating DYMO router and the target DYMO router in both the originating DYMO router and the target DYMO router in both
directions. directions.
In order to preserve routes in use, DYMO routers extend route In order to preserve routes in use, DYMO routers extend route
lifetimes upon successfully forwarding a packet. In order to react lifetimes upon successfully forwarding a packet. In order to react
to react to changes in the network topology, DYMO routers monitor to changes in the network topology, DYMO routers monitor links over
links over which traffic is moving. When a data packet is received which traffic is moving. When a data packet is received for
for forwarding if a route for the destination is not known or the forwarding if a route for the destination is not known or the route
route is broken, then the DYMO router of source of the packet is is broken, then the DYMO router of source of the packet is notified.
notified. A Route Error (RERR) is sent toward the packet source to A Route Error (RERR) is sent toward the packet source to indicate the
indicate the current route to a particular destination is broken. current route to a particular destination is broken. When the
When the source's DYMO router receives the RERR, it deletes the source's DYMO router receives the RERR, it deletes the route. If the
route. If the DYMO router later receives a packet for forwarding to DYMO router later receives a packet for forwarding to the same
the same destination, it must perform route discovery again. destination, it must perform route discovery again.
DYMO uses sequence numbers to ensure loop freedom [Perkins99]. DYMO uses sequence numbers to ensure loop freedom [Perkins99].
Sequence numbers enable DYMO routers to determine the order of DYMO Sequence numbers enable DYMO routers to determine the order of DYMO
route discovery messages, thereby avoiding use of stale routing route discovery messages, thereby avoiding use of stale routing
information. information.
2. Applicability Statement 2. Applicability Statement
The DYMO routing protocol is designed for stub or disconnected mobile The DYMO routing protocol is designed for stub or disconnected mobile
ad hoc networks. DYMO handles a wide variety of mobility patterns by ad hoc networks. DYMO handles a wide variety of mobility patterns by
dynamically determining routes on-demand. DYMO also handles a wide dynamically determining routes on-demand. DYMO also handles a wide
variety of traffic patterns. In large networks DYMO is best suited variety of traffic patterns. In large networks DYMO is best suited
for traffic scenarios where nodes communicate with only a portion of for traffic scenarios where nodes communicate with only a portion of
other the nodes. the other nodes.
DYMO is applicable to memory constrained devices, since little DYMO is applicable to memory constrained devices, since little
routing state must be maintained in each DYMO router. Only routing routing state must be maintained in each DYMO router. Only routing
information related to active sources and destinations must be information related to active sources and destinations must be
maintained, in contrast to other routing protocols that require maintained, in contrast to other routing protocols that require
routing information to all routers within the routing region be routing information to all routers within the routing region be
maintained. maintained.
DYMO supports routers which have multiple interfaces participating in DYMO supports routers which have multiple interfaces participating in
the MANET. DYMO also supports nodes which have non-MANET interfaces the MANET. DYMO also supports nodes which have non-MANET interfaces
skipping to change at page 5, line 47 skipping to change at page 5, line 47
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Additionally, this document uses some terminology from Additionally, this document uses some terminology from
[I-D.ietf-manet-packetbb]. [I-D.ietf-manet-packetbb].
This document defines the following terminology: This document defines the following terminology:
Distance (Dist) Distance (Dist)
A metric of the distance a message or piece of information has A metric of the distance a message or piece of information has
traversed. The minimum value of distance is the number of IP hops traversed. The minimum value of distance is the number of IP hops
traversed. traversed. The maximum value is 65,535.
DYMO Sequence Number (SeqNum) DYMO Sequence Number (SeqNum)
A DYMO Sequence Number is maintained by each DYMO router. This A DYMO Sequence Number is maintained by each DYMO router. This
sequence number is used by other DYMO routers to identify the sequence number is used by other DYMO routers to identify the
order of routing information generated and ensure loop-free order of routing information generated and ensure loop-free
routes. routes.
Forwarding Route Forwarding Route
A route that is used to forward data packets. Forwarding routes A route that is used to forward data packets. Forwarding routes
are generally maintained in a forwarding information base (FIB) or are generally maintained in a forwarding information base (FIB) or
skipping to change at page 7, line 16 skipping to change at page 7, line 16
4.1. Route Table Entry 4.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.
Conceptually, a route table entry has the following fields: Conceptually, a route table entry has the following fields:
Route.Address Route.Address
The IP destination address of the node(s) associated with the The IP (host or network) destination address of the node(s)
routing table entry. associated with the routing table entry.
Route.SeqNum Route.SeqNum
The DYMO SeqNum associated with this routing information. The DYMO SeqNum associated with this routing information.
Route.NextHopAddress Route.NextHopAddress
The IP address of the next DYMO router on the path toward the The IP address of the next DYMO router on the path toward the
Route.Address. Route.Address.
Route.NextHopInterface Route.NextHopInterface
The interface used to send packets toward the Route.Address. The interface used to send packets toward the Route.Address.
skipping to change at page 7, line 45 skipping to change at page 7, line 45
Route.Dist Route.Dist
A metric indicating the distance traversed before reaching the A metric indicating the distance traversed before reaching the
Route.Address node. Route.Address node.
Route.Prefix Route.Prefix
Indicates that the associated address is a network address, rather Indicates that the associated address is a network address, rather
than a host address. The value is the length of the netmask/ than a host address. The value is the length of the netmask/
prefix. If an address block does not have an associated prefix. If an address block does not have an associated
PREFIX_LENGTH TLV [I-D.ietf-manet-packetbb], the prefix may be PREFIX_LENGTH TLV [I-D.ietf-manet-packetbb], the prefix may be
considered to have a prefix length equal to the address length (in considered to have a prefix length equal to the address length in
bits). bits.
Not including optional information may cause performance degradation, Not including optional information may cause performance degradation,
but it will not cause the protocol to operate incorrectly. but it will not cause the protocol to operate incorrectly.
In addition to a route table data structure, each route table entry In addition to a route table data structure, each route table entry
may have several timers associated with the information. These may have several timers associated with the information. These
timers/timeouts are discussed in Section 5.2.3. timers/timeouts are discussed in Section 5.2.3.
4.2. DYMO Messages 4.2. DYMO Messages
skipping to change at page 9, line 34 skipping to change at page 9, line 34
There are two DYMO message types that are considered to be routing There are two DYMO message types that are considered to be routing
messages (RMs): RREQ and RREP. They contain very similar information messages (RMs): RREQ and RREP. They contain very similar information
and function, but have slightly different processing rules. The main and function, but have slightly different processing rules. The main
difference between the two messages is that RREQ messages generally difference between the two messages is that RREQ messages generally
solicit a RREP, whereas a RREP is the response to RREQ. solicit a RREP, whereas a RREP is the response to RREQ.
RM creation and processing are described in Section 5.3. RM creation and processing are described in Section 5.3.
A RM requires the following information: A RM requires the following information:
IP.SourceAddress
The IP address of the node currently sending this packet. This
field is generally filled automatically by the operating system
and should not require special handling.
IP.DestinationAddress IP.DestinationAddress
The IP address of the packet destination. For RREQ the The IP address of the packet destination. For RREQ the
IP.DestinationAddress is set to LL MANET ROUTERS. For RREP the IP.DestinationAddress is set to LL MANET ROUTERS. For RREP the
IP.DestinationAddress is set to the NextHopAddress toward the RREP IP.DestinationAddress is set to the NextHopAddress toward the RREP
TargetNode. TargetNode.
UDP.DestinationPort UDP.DestinationPort
The UDP destination port is set to MANET [I-D.ietf-manet-iana]. The UDP destination port is set to MANET [I-D.ietf-manet-iana].
MsgHdr.HopLimit MsgHdr.HopLimit
skipping to change at page 10, line 31 skipping to change at page 10, line 38
The last known distance to the TargetNode. The last known distance to the TargetNode.
AddBlk.AdditionalNode.Address AddBlk.AdditionalNode.Address
The IP address of an additional node that can be reached via the The IP address of an additional node that can be reached via the
DYMO router adding this information. Each AdditionalNode.Address DYMO router adding this information. Each AdditionalNode.Address
must have an associated Node.SeqNum in the address TLV block. must have an associated Node.SeqNum in the address TLV block.
AdditionalNode.AddTLV.SeqNum AdditionalNode.AddTLV.SeqNum
The DYMO sequence number associated with this routing information. The DYMO sequence number associated with this routing information.
Node.AddTLV.Dist OrigNode.AddTLV.Dist
A metric of the distance to reach the associated Node.Address. A metric of the distance to reach the associated OrigNode.Address.
This field is incremented by at least one at each intermediate This field is incremented by at least one at each intermediate
DYMO router, except the TargetNode.AddTLV.Dist. The TargetNode's DYMO router.
distance information is not modified.
Node.AddTLV.Prefix AdditionalNode.AddTLV.Dist
The Node.Address is a network address with a particular prefix A metric of the distance to reach the associated
AdditionalNode.Address. This field is incremented by at least one
at each intermediate DYMO router.
OrigNode.AddTLV.Prefix
The OrigNode.Address is a network address with a particular prefix
length. length.
AdditionalNode.AddTLV.Prefix
The AdditionalNode.Address is a network address with a particular
prefix length.
Example IPv4 RREQ Example IPv4 RREQ
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
IP Header IP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.SourceAddress |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.DestinationAddress = LL MANET ROUTERS | | IP.DestinationAddress = LL MANET ROUTERS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... ...
UDP Header UDP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Port = MANET | | Destination Port = MANET |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... ...
Message Header Message Header
skipping to change at page 12, line 9 skipping to change at page 13, line 14
4.2.3. Route Error (RERR) 4.2.3. Route Error (RERR)
A RERR message is used to disseminate the information that a route is A RERR message is used to disseminate the information that a route is
not available for one or more particular IP addresses. not available for one or more particular IP addresses.
RERR creation and processing are described in Section 5.5. RERR creation and processing are described in Section 5.5.
A RERR requires the following information: A RERR requires the following information:
IP.SourceAddress
The IP address of the node currently sending this packet. This
field is generally filled automatically by the operating system
and should not require special handling.
IP.DestinationAddress IP.DestinationAddress
The IP address is set to LL MANET ROUTERS. The IP address is set to LL MANET ROUTERS.
UDP.DestinationPort UDP.DestinationPort
The UDP destination port is set to MANET [I-D.ietf-manet-iana]. The UDP destination port is set to MANET [I-D.ietf-manet-iana].
MsgHdr.HopLimit MsgHdr.HopLimit
The remaining number of hops this message is allowed to traverse. The remaining number of hops this message is allowed to traverse.
AddBlk.UnreachableNode.Address AddBlk.UnreachableNode.Address
skipping to change at page 13, line 12 skipping to change at page 14, line 12
forward to a destination for which it does not have any forward to a destination for which it does not have any
information in its routing table. information in its routing table.
Example IPv4 RERR Example IPv4 RERR
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
IP Header IP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.SourceAddress |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.DestinationAddress = LL MANET ROUTERS | | IP.DestinationAddress = LL MANET ROUTERS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... ...
UDP Header UDP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Port = MANET | | Destination Port = MANET |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... ...
Message Header Message Header
skipping to change at page 14, line 17 skipping to change at page 15, line 23
When ThisNode increments its OwnSeqNum (as described in Section 5.3) When ThisNode increments its OwnSeqNum (as described in Section 5.3)
it MUST do so by treating the sequence number value as an unsigned it MUST do so by treating the sequence number value as an unsigned
number. number.
Note: The sequence number zero (0) is reserved. Note: The sequence number zero (0) is reserved.
5.1.3. OwnSeqNum Rollover 5.1.3. OwnSeqNum 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 16-bit unsigned integer (i.e., 65535), then number representable as a 16-bit unsigned integer (i.e., 65,535),
the sequence number is set to 256 when incremented. Setting the then the sequence number is set to 256 when incremented. Setting the
sequence number to 256 allows other nodes to detect that the number sequence number to 256 allows other nodes to detect that the number
has rolled over and the node has not lost its sequence number. has rolled over and the node has not lost its sequence number.
5.1.4. Actions After OwnSeqNum Loss 5.1.4. Actions After OwnSeqNum Loss
A node should maintain its sequence number in persistent storage, A node should maintain its sequence number in persistent storage,
between reboots. between reboots.
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 OwnSeqNum creating routing loops. To prevent this possibility after OwnSeqNum
loss a node MUST wait for at least ROUTE_DELETE_TIMEOUT before fully loss a node MUST wait for at least ROUTE_DELETE_TIMEOUT before fully
participating in the DYMO routing protocol. If a DYMO control participating in the DYMO routing protocol. If a DYMO control
message is received during this waiting period, the node SHOULD message is received during this waiting period, the node SHOULD
process it normally but MUST not transmit or retransmit any DYMO process it normally but MUST NOT transmit or retransmit any DYMO
messages. If a data packet is received for forwarding to another messages. If a data packet is received for forwarding to another
destination during this waiting period, the node MUST generate a RERR destination during this waiting period, the node MUST generate a RERR
message indicating that this route is not available and reset its message indicating that this route is not available and reset its
waiting timeout. At the end of the waiting period a node sets its waiting timeout. At the end of the waiting period a node sets its
OwnSeqNum to one (1). OwnSeqNum to one (1).
The longest a node must wait is ROUTE_AGE_MAX_TIMEOUT. At the end of The longest a node must wait is ROUTE_AGE_MAX_TIMEOUT. At the end of
the maximum waiting period a node sets its OwnSeqNum to one (1) and the maximum waiting period a node sets its OwnSeqNum to one (1) and
begins participating. begins participating.
skipping to change at page 15, line 29 skipping to change at page 16, line 37
Route.Dist + 1, then the routing information is loop-possible. Route.Dist + 1, then the routing information is loop-possible.
Using loop-possible routing information is not allowed, otherwise Using loop-possible routing information is not allowed, otherwise
routing loops may be formed. routing loops may be formed.
(Node.SeqNum == Route.SeqNum) AND (Node.SeqNum == Route.SeqNum) AND
((Node.Dist is unknown) OR ((Node.Dist is unknown) OR
(Route.Dist is unknown) OR (Route.Dist is unknown) OR
(Node.Dist > Route.Dist + 1)) (Node.Dist > Route.Dist + 1))
3. Inferior 3. Inferior
In case of known equal SeqNum, the information is inferior, if In case of known equal SeqNum, the information is inferior in
Node.Dist > Route.Dist (it is a greater distance route). In case multiple cases: (case i) if Node.Dist == Route.Dist + 1 (it is a
of equal SeqNum, the information is inferior, if Node.Dist == greater distance route) AND Route.Broken == false; (case ii) if
Route.Dist (equal distance route) AND Route.Broken == false AND Node.Dist == Route.Dist (equal distance route) AND Route.Broken ==
this RM is a RREQ. This condition stops forwarding of RREQ with false AND this RM is a RREQ. The inferior condition stops
equivalent distance. forwarding of RREQ with equivalent distance.
((Node.SeqNum == Route.SeqNum) AND ((Node.SeqNum == Route.SeqNum) AND
((Node.Dist > Route.Dist) OR (((Node.Dist == Route.Dist + 1) AND (Route.Broken == false)) OR
((Node.Dist == Route.Dist) AND ((Node.Dist == Route.Dist) AND
(RM is RREQ) AND (Route.Broken == false)))) (RM is RREQ) AND (Route.Broken == false))))
4. Superior 4. Superior
Incoming routing information that does not match any of the above Incoming routing information that does not match any of the above
criteria is loop-free and better than the information existing in criteria is loop-free and better than the information existing in
the routing table. Information is always superior if Node.SeqNum the routing table. Information is always superior if Node.SeqNum
- Route.SeqNum > 0 (using 16-bit signed arithmetic). In the case - Route.SeqNum > 0 (using 16-bit signed arithmetic). In the case
of equal sequence numbers, the information is superior, if of equal sequence numbers, the information is superior in multiple
Node.Dist < Route.Dist. In the case of equal sequence numbers, cases: (case i) if Node.Dist < Route.Dist; (case ii) if Node.Dist
the information is superior, if Node.Dist == Route.Dist AND it is == Route.Dist + 1 AND Route.Broken == true (a broken route is
a RREP (RREP with equal distance are forwarded) OR Route.Broken == being repaired); (case iii) if Node.Dist == Route.Dist AND it is a
RREP (RREP with equal distance are forwarded) OR Route.Broken ==
true (a broken route is being repaired). For completeness, we true (a broken route is being repaired). For completeness, we
provide the following (optimized) pseudo-code. provide the following (optimized) pseudo-code.
(Node.SeqNum - Route.SeqNum > 0) OR (Node.SeqNum - Route.SeqNum > 0) OR
((Node.SeqNum == Route.SeqNum) AND ((Node.SeqNum == Route.SeqNum) AND
((Node.Dist < Route.Dist) OR ((Node.Dist < Route.Dist) OR
((Node.Dist == Route.Dist + 1) AND (Route.Broken == true)) OR
((Node.Dist == Route.Dist) AND ((Node.Dist == Route.Dist) AND
((RM is RREP) OR (Route.Broken == true))))) ((RM is RREP) OR (Route.Broken == true)))))
5.2.2. Creating or Updating a Route Table Entry with New Routing 5.2.2. Creating or Updating a Route Table Entry with New Routing
Information Information
The route table entry is populated with the following information: The route table entry is populated with the following information:
1. the Route.Address is set to Node.Address, 1. the Route.Address is set to Node.Address,
skipping to change at page 18, line 39 skipping to change at page 20, line 4
SHOULD be placed in TargetNode.AddTLV.Dist. Otherwise, the SHOULD be placed in TargetNode.AddTLV.Dist. Otherwise, the
TargetNode.AddTLV.Dist is not included and assumed unknown by TargetNode.AddTLV.Dist is not included and assumed unknown by
processing nodes. processing nodes.
Next, the node adds AddBlk.OrigNode.Address to the RM and the Next, the node adds AddBlk.OrigNode.Address to the RM and the
OrigNode.AddTLV.SeqNum (OwnSeqNum) in an address block TLV. OrigNode.AddTLV.SeqNum (OwnSeqNum) in an address block TLV.
The OrigNode.Address is the address of the DYMO router that is The OrigNode.Address is the address of the DYMO router that is
initiating this route discovery. The OrigNode.Address must be a initiating this route discovery. The OrigNode.Address must be a
routable IP address. If this DYMO router is performing route routable IP address. If this DYMO router is performing route
discovery on behalf of an attached node (the source of the data discovery on behalf of an attached node (i.e. the source of the data
packet forcing this route discovery), it MUST advertise it's address packet causing this route discovery), the DYMO router MUST advertise
and prefix that contain the source address. This information will be it's address and prefix that contain the source's address. This
used by nodes to create a route toward the OrigNode, enable delivery information will be used by nodes to create a route toward the
of a RREP, and eventually for data packets. OrigNode, enable delivery of a RREP, and eventually for data packets.
If OrigNode.Dist is included it is set to zero (0). If OrigNode.Dist is included it is set to a number greater than zero
(0).
The MsgHdr.HopLimit should be set to MAX_HOPLIMIT, but may be set The MsgHdr.HopLimit should be set to MAX_HOPLIMIT, but may be set
smaller. smaller.
For RREQ, the MsgHdr.HopLimit may be set in accordance with an For RREQ, the MsgHdr.HopLimit may be set in accordance with an
expanding ring search as described in [RFC3561] to limit the RREQ expanding ring search as described in [RFC3561] to limit the RREQ
propagation to a subset of the network and possibly reduce route propagation to a subset of the network and possibly reduce route
discovery overhead. discovery overhead.
The IP.DestinationAddress for RREQ is set to LL MANET ROUTERS. The IP.DestinationAddress for RREQ is set to LL MANET ROUTERS.
5.3.2. RREP Creation 5.3.2. RREP Creation
When the TargetNode's DYMO router creates a RREP, if the When the TargetNode's DYMO router creates a RREP, if the
TargetNode.SeqNum was not included in the RREQ it MUST increment its TargetNode.SeqNum was not included in the RREQ it MUST increment its
OwnSeqNum by one (1) according to the rules specified in OwnSeqNum by one (1) according to the rules specified in
Section 5.1.2. Section 5.1.2.
If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum from If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum -
the RM is less than OwnSeqNum, OwnSeqNum SHOULD be incremented by one OwnSeqNum < 0 (using signed 16-bit arithmetic), OwnSeqNum SHOULD be
(1) according to the rules specified in Section 5.1.2. incremented by one (1) according to the rules specified in
Section 5.1.2.
If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum ==
OwnSeqNum (using signed 16-bit arithmetic) and Dist will not be
included in the RREP being generated, OwnSeqNum SHOULD be incremented
by one (1) according to the rules specified in Section 5.1.2.
If OwnSeqNum is not incremented the routing information might be If OwnSeqNum is not incremented the routing information might be
considered stale. In this case, the RREP would not reach the RREP considered stale. In this case, the RREP would not reach the RREP
Target. Target.
First, the AddBlk.TargetNode.Address is added to the RREP. The First, the AddBlk.TargetNode.Address is added to the RREP. The
TargetNode is the ultimate destination of this RREP; the RREQ TargetNode is the ultimate destination of this RREP; the RREQ
OrigNode.Address. OrigNode.Address.
Next, AddBlk.OrigNode.Address is added to the RREP. The Next, AddBlk.OrigNode.Address is added to the RREP. The
AddBlk.OrigNode.Address must be a routable IP address. If the RREQ AddBlk.OrigNode.Address must be a routable IP address. If the RREQ
TargetNode is this DYMO router, its address added to the RREP as the TargetNode is this DYMO router, its address added to the RREP as the
OrigNode.Address. If the RREQ TargetNode is attached to this DYMO OrigNode.Address. If the RREQ TargetNode is attached to this DYMO
router, it MUST advertise its address and prefix that contain the router, it MUST advertise its address and prefix that contain the
RREQ TargetNode.Address. The RREP OrigNode.AddTLV.SeqNum (OwnSeqNum) RREQ TargetNode.Address. The RREP OrigNode.AddTLV.SeqNum (OwnSeqNum)
must also added to the RREP. must also added to the RREP.
Other AddTLVs in the RREP for the OrigNode and TargetNode SHOULD be Other AddTLVs in the RREP for the OrigNode and TargetNode SHOULD be
included and set accordingly. If OrigNode.Dist is included it is set included and set accordingly. If OrigNode.Dist is included it is set
to zero (0). to a number greater than zero (0).
The MsgHdr.HopLimit is set to MAX_HOPLIMIT. The MsgHdr.HopLimit is set to MAX_HOPLIMIT.
The IP.DestinationAddress for RREP is set to the IP address of the The IP.DestinationAddress for RREP is set to the IP address of the
Route.NextHopAddress for the route to the RREP TargetNode. Route.NextHopAddress for the route to the RREP TargetNode.
5.3.3. Intermediate DYMO Router RREP Creation 5.3.3. Intermediate DYMO Router RREP Creation
Sometimes a DYMO router other than the TargetNode's DYMO router (call Sometimes a DYMO router other than the TargetNode's DYMO router (call
it an "intermediate DYMO router") has routing information that can it an "intermediate DYMO router") has routing information that can
satisfy an incoming RREQ. When an intermediate DYMO router satisfy an incoming RREQ. An intermediate DYMO router can issue a
originates a RREP in response to a RREQ on behalf of the TargetNode, intermediate DYMO router RREP on behalf of the TargetNode's DYMO
it sends the RREP to the RREQ OrigNode with additional routing router.
information (Address, SeqNum, etc.) about the RREQ TargetNode.
Appending additional routing information is described in Before creating a intermediate DYMO router RREP, OwnSeqNum SHOULD be
Section 5.3.5. incremented by one (1) according to the rules specified in
Section 5.1.2.
If OwnSeqNum is not incremented the routing information might be
considered stale by a processing DYMO router. In this case, the RREP
would not reach the RREP Target.
When an intermediate DYMO router originates a RREP in response to a
RREQ on behalf of the TargetNode's DYMO router, it sends the RREP to
the RREQ OrigNode with additional routing information (Address,
SeqNum, Prefix, Dist, etc.) about the RREQ TargetNode. Appending
additional routing information is described in Section 5.3.5.
The Intermediate DYMO router SHOULD also issue a RREP to the RREQ The Intermediate DYMO router SHOULD also issue a RREP to the RREQ
TargetNode, so that the RREQ TargetNode receives routing information TargetNode, so that the RREQ TargetNode receives routing information
on how to reach the RREQ OrigNode. on how to reach the RREQ OrigNode.
When an intermediate DYMO router creates this RREP, it sends a RREP When an intermediate DYMO router creates this RREP, it sends a RREP
to the RREQ TargetNode with additional routing information (Address, to the RREQ TargetNode with additional routing information (Address,
SeqNum, etc.) about the RREQ OrigNode. SeqNum, Dist, Prefix, etc.) about the RREQ OrigNode.
5.3.4. RM Processing 5.3.4. RM Processing
Before processing a RM, the DYMO router checks the IP.Destination to Before processing a RM, the DYMO router checks the IP.Destination to
ensure that it was sent to LL MANET ROUTERS. ensure that it was sent to LL MANET ROUTERS.
When a RM is received the MsgHdr.HopLimit is decremented by one (1) When a RM is received the MsgHdr.HopLimit is decremented by one (1).
For each address (except the TargetNode) in the RM that includes For each address (except the TargetNode) in the RM that includes
AddTLV.Dist information, the AddTLV.Dist information is incremented AddTLV.Dist information, the AddTLV.Dist information is incremented
by one (1). by at lease one (1).
Next, ThisNode checks whether AddBlk.OrigNode.Address is an address Next, ThisNode checks whether AddBlk.OrigNode.Address is an address
handled by this DYMO router. If this node is the originating DYMO handled by this DYMO router. If this node is the originating DYMO
router, the RM is dropped. router, the RM is dropped.
Next, ThisNode checks whether its routing table has an entry to the Next, ThisNode checks whether its routing table has an entry to the
AddBlk.OrigNode.Address using longest-prefix matching [RFC1812]. If AddBlk.OrigNode.Address using longest-prefix matching [RFC1812]. If
a route does not exist and the address is a unicast address, then the a route does not exist and the address is a unicast address, then the
new routing information is considered fresh and a new route table new routing information is considered fresh and a new route table
entry is created and updated as described in Section 5.2.2. If a entry is created and updated as described in Section 5.2.2. If a
skipping to change at page 21, line 18 skipping to change at page 22, line 51
If the routing information for an AdditionalNode.Address is not a If the routing information for an AdditionalNode.Address is not a
unicast address and considered superior, then it is removed from the unicast address and considered superior, then it is removed from the
RM. Removing this information ensures that the information is not RM. Removing this information ensures that the information is not
propagated. propagated.
At this point, if the routing information for the OrigNode was not At this point, if the routing information for the OrigNode was not
superior then this RM should be discarded and no further processing superior then this RM should be discarded and no further processing
of this message is performed. of this message is performed.
If the ThisNode is the DYMO router for the TargetNode and this RM is If the ThisNode is the DYMO router for the TargetNode and this RM is
a RREQ, then ThisNode responds with a RREQ flood (a RREQ addressed to a RREQ, then ThisNode responds with a RREP to the RREQ OrigNode (the
oneself) or a RREP to the RREQ OrigNode (the new RREP's TargetNode). new RREP's TargetNode). Alternatively, to distribute routing
The procedure for issuing a new RREP is described in Section 5.3.2. information about ThisNode (the RREQ TargetNode) more widely,
Note: it is important that when creating the RREP, the RREP ThisNode may optionally perform a RREQ; by issuing a RREQ with
OrigNode.Address be the same as the RREQ TargetNode.Address, if ThisNode listed as the TargetNode, using the procedure in
ThisNode is responsible for several addresses. At this point, Section 5.3.1. The procedure for issuing a new RREP is described in
Section 5.3.2. Note: it is important that when creating the RREP,
the RREP OrigNode.Address be the same as the RREQ TargetNode.Address,
if ThisNode is responsible for several addresses. At this point,
ThisNode need not perform any more operations for this RM. ThisNode need not perform any more operations for this RM.
If ThisNode is not the TargetNode, this RM is a RREQ, the RREQ If ThisNode is not the TargetNode, this RM is a RREQ, the RREQ
contains the TargetNode.AddTLV.SeqNum, and ThisNode has a forwarding contains the TargetNode.AddTLV.SeqNum, and ThisNode has a forwarding
route to the TargetNode with a SeqNum (Route.TargetNode.SeqNum) route to the TargetNode with a SeqNum where Route.TargetNode.SeqNum -
greater than or equal to the RREQ TargetNode.AddTLV.SeqNum; then this RREQ.TargetNode.AddTLV.SeqNum >= 0 (using signed 16-bit arithmetic);
node MAY respond with an intermediate DYMO router RREP. The then this node MAY respond with an intermediate DYMO router RREP.
procedure for performing intermediate DYMO router RREP is described The procedure for performing intermediate DYMO router RREP is
in Section 5.3.3. At this point, ThisNode need not perform any more described in Section 5.3.3. At this point, ThisNode need not perform
operations for this RM. any more operations for this RM.
After processing a RM or creating a new RM, a node can append After processing a RM or creating a new RM, a node can append
additional routing information to the RM, according to the procedure additional routing information to the RM, according to the procedure
described in Section 5.3.5. The additional routing information can described in Section 5.3.5. The additional routing information can
help reduce route discoveries at the expense of increased message help reduce route discoveries at the expense of increased message
size. size.
For each address (except the TargetNode) in the RM that includes For each address (except the TargetNode) in the RM that includes
AddTLV.Dist information, the AddTLV.Dist information is incremented AddTLV.Dist information, the AddTLV.Dist information is incremented
by a cost value. Advice regarding the cost value is not included in by a cost value. Advice regarding the cost value is not included in
this specification, it is left up to the implementation. this specification, it is left up to the implementation.
The updated distance value will be an measure in determining whether The updated distance value will be an measure in determining whether
the routing information is inferior or superior to known information the routing information is inferior or superior to known information
at other DYMO routers that process this RM. at other DYMO routers that process this RM.
If the resulting distance value for the OrigNode is greater than 254, If the resulting distance value for the OrigNode is greater than
the message is discarded. If the resulting distance value for 65,535, the message is discarded. If the resulting distance value
another node is greater than 254, the associated address and its for another node is greater than 65,535, the associated address and
information are removed from the RM. its information are removed from the RM.
If this RM's MsgHdr.HopLimit is greater than or equal to one (1), If this RM's MsgHdr.HopLimit is greater than or equal to one (1),
ThisNode is not the TargetNode, AND this RM is a RREQ, then the ThisNode is not the TargetNode, AND this RM is a RREQ, then the
current RM (altered by the procedure defined above) SHOULD be sent to current RM (altered by the procedure defined above) SHOULD be sent to
the LL MANET ROUTERS IP.DestinationAddress. the LL MANET ROUTERS IP.DestinationAddress.
By sending the RM ThisNode is advertising that it will provide By sending the RM ThisNode is advertising that it will provide
routing for IP addresses contained in the outgoing RM based on the routing for IP addresses contained in the outgoing RM based on the
information enclosed. ThisNode MAY choose not to send the RM, though information enclosed. ThisNode MAY choose not to send the RM, though
not resending this RM could decrease connectivity in the network or not resending this RM could decrease connectivity in the network or
skipping to change at page 22, line 50 skipping to change at page 24, line 37
should be administratively configurable. should be administratively configurable.
Prior to appending an address controlled by this DYMO router to a RM, Prior to appending an address controlled by this DYMO router to a RM,
ThisNode MAY increment its OwnSeqNum as defined in Section 5.1.2. If ThisNode MAY increment its OwnSeqNum as defined in Section 5.1.2. If
OwnSeqNum is not incremented the appended routing information might OwnSeqNum is not incremented the appended routing information might
not be considered fresh, when received by nodes with existing routing not be considered fresh, when received by nodes with existing routing
information. Incrementation of the sequence number when appending information. Incrementation of the sequence number when appending
information to an RM in transit should be administratively information to an RM in transit should be administratively
configurable. configurable.
If an address controlled by this DYMO router is included If an address controlled by this DYMO router includes ThisNode.Dist,
ThisNode.Dist, it is set to zero (0). Additional information about it is set to a number greater than zero (0).
the address(es) can also be appended, such as a PREFIX_LENGTH AddTLV.
For added addresses not controlled by this DYMO router, Route.Dist
can be included if known. If Route.Dist is not known, it cannot be
included.
Additional information about the appended address(es) can also be
included (e.g. Prefix).
5.4. Route Discovery 5.4. Route Discovery
When a source's DYMO router needs to forward a data packet and it When a source's DYMO router needs to forward a data packet and it
does not have a forwarding route to the IP.DestinationAddress, it does not have a forwarding route to the IP.DestinationAddress, it
sends a RREQ (described in Section 5.3.1) to discover a route to the sends a RREQ (described in Section 5.3.1) to discover a route to the
particular destination (TargetNode). particular destination (TargetNode).
After issuing a RREQ, the OrigNode DYMO router waits for a route to After issuing a RREQ, the OrigNode DYMO router waits for a route to
be created to the TargetNode. If a route is not created within be created to the TargetNode. If a route is not created within
RREQ_WAIT_TIME, ThisNode may again try to discover a route by issuing RREQ_WAIT_TIME, ThisNode may again try to discover a route by issuing
another RREQ. another RREQ using the procedure defined in Section 5.3.1.
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 an exponential discovery for a particular TargetNode should utilize an exponential
backoff. backoff.
For example, the first time a DYMO router issues a RREQ, it waits For example, the first time a DYMO router issues a RREQ, it waits
RREQ_WAIT_TIME for a route to the TargetNode. If a route is not RREQ_WAIT_TIME for a route to the TargetNode. If a route is not
found within that time, the DYMO router MAY send another RREQ. If a found within that time, the DYMO router MAY send another RREQ. If a
route is not found within two (2) times the current waiting time, route is not found within two (2) times the current waiting time,
another RREQ may be sent, up to a total of RREQ_TRIES. For each another RREQ may be sent, up to a total of RREQ_TRIES. For each
skipping to change at page 25, line 37 skipping to change at page 27, line 27
nodes that might depend on the now broken link. nodes that might depend on the now broken link.
The packet or message that forced generation of this RERR is The packet or message that forced generation of this RERR is
discarded. discarded.
5.5.4. RERR Processing 5.5.4. RERR Processing
Before processing a RERR, the DYMO router checks the IP.Destination Before processing a RERR, the DYMO router checks the IP.Destination
to ensure that it is addressed to LL MANET ROUTERS. to ensure that it is addressed to LL MANET ROUTERS.
Upon reception of a RERR the MsgHdr.HopLimit is decremented by one
(1).
When a DYMO router processes a RERR, it processes each When a DYMO router processes a RERR, it processes each
UnreachableNode's information. The processing DYMO router removes UnreachableNode's information. The processing DYMO router removes
the forwarding route and sets the broken flag for each the forwarding route, sets the broken flag, and a timer for
ROUTE_DELETE is set to ROUTE_DELETE_TIMEOUT for each
UnreachableNode.Address found using longest prefix matching that meet UnreachableNode.Address found using longest prefix matching that meet
all of the following conditions: all of the following conditions:
1. The UnreachableNode.Address is a unicast address. 1. The UnreachableNode.Address is a unicast address.
2. The Route.NextHopAddress is the same as the RERR 2. The Route.NextHopAddress is the same as the RERR
IP.SourceAddress. IP.SourceAddress.
3. The Route.NextHopInterface is the same as the interface on which 3. The Route.NextHopInterface is the same as the interface on which
the RERR was received. the RERR was received.
4. The Route.SeqNum is zero (0), unknown, OR the 4. The Route.SeqNum is zero (0), unknown, OR the
UnreachableNode.SeqNum is zero (0), unknown, OR Route.SeqNum - UnreachableNode.SeqNum is zero (0), unknown, OR Route.SeqNum -
UnreachableNode.SeqNum <= 0 (using signed 16-bit arithmetic). UnreachableNode.SeqNum <= 0 (using signed 16-bit arithmetic).
During processing if Route.SeqNum is zero (0) or unknown and
Unreachable.SeqNum exists in the RERR, then Route.SeqNum can be set
to Unreachable.SeqNum. Setting Route.SeqNum can reduce future RRER
processing and forwarding.
Each UnreachableNode that did not result in a broken route is removed Each UnreachableNode that did not result in a broken route is removed
from the RERR, since propagation of this information will not result from the RERR, since propagation of this information will not result
in any benefit. Any other information (AddTLVs) associated with the in any benefit. Any other information (AddTLVs) associated with the
removed address(es) is also removed. removed address(es) is also removed.
After processing if Route.SeqNum is known and an Unreachable.SeqNum
is not included in the RERR, then Route.SeqNum (i.e.
Unreachable.SeqNum) can be added to the RERR. Including
Unreachable.SeqNum can reduce future RRER processing and forwarding.
If no UnreachableNode addresses remain in the RERR, no other If no UnreachableNode addresses remain in the RERR, no other
processing is required and the RERR is discarded. processing is required and the RERR is discarded.
If this RERR's MsgHdr.HopLimit is greater than one (1) and at least If this RERR's MsgHdr.HopLimit is greater than one (1) and at least
one unreachable node address remains in the RERR, then the updated one unreachable node address remains in the RERR, then the updated
RERR is sent to the IP.DestinationAddress LL MANET ROUTERS. RERR is sent to the IP.DestinationAddress LL MANET ROUTERS.
5.6. Unknown Message & TLV Types 5.6. Unknown Message & TLV Types
If a message with an unknown type is received, the message is If a message with an unknown type is received, the message is
skipping to change at page 26, line 43 skipping to change at page 28, line 48
the DYMO protocol directly and these nodes MUST be reachable by the DYMO protocol directly and these nodes MUST be reachable by
forwarding packets to the DYMO router advertising connectivity. forwarding packets to the DYMO router advertising connectivity.
Nodes other than the advertising DYMO router that do participate in Nodes other than the advertising DYMO router that do participate in
DYMO must forward the DYMO control packets to the advertising DYMO DYMO must forward the DYMO control packets to the advertising DYMO
router. For example, A.B.C.1 with a prefix length of 24 indicates router. For example, A.B.C.1 with a prefix length of 24 indicates
all nodes with the matching A.B.C.X are reachable through the DYMO all nodes with the matching A.B.C.X are reachable through the DYMO
router with address A.B.C.1. router with address A.B.C.1.
5.8. Simple Internet Attachment and Gatewaying 5.8. Simple Internet Attachment and Gatewaying
Simple Internet attachment consists of a stub network of MANET router Simple Internet attachment consists of a stub network of MANET
connected to the Internet via a single Internet gateway node. The routers connected to the Internet via a single Internet gateway node.
gateway is responsible for responding to RREQs for TargetNodes DYMO can operate with multiple gateways, but such behavior is not
specified in this document.
The gateway is responsible for responding to RREQs for TargetNodes
outside its configured DYMO prefix, as well as delivering packets to outside its configured DYMO prefix, as well as delivering packets to
destinations outside the MANET. destinations outside the MANET.
/--------------------------\ /--------------------------\
/ Internet \ / Internet \
\ / \ /
\------------+-------------/ \------------+-------------/
Gateway's | Gateway's |
Advertised | A.B.C.X/24 Advertised | A.B.C.X/24
Prefix | Prefix |
skipping to change at page 27, line 31 skipping to change at page 29, line 35
| | DYMO Router | | | | DYMO Router | |
| | A.B.C.2 | | | | A.B.C.2 | |
| +--------------+ | | +--------------+ |
| +--------------+ | | +--------------+ |
| | DYMO Router | | | | DYMO Router | |
| | A.B.C.3 | | | | A.B.C.3 | |
\ +--------------+ / \ +--------------+ /
\ / \ /
\---------------------------/ \---------------------------/
Figure 7: Simple Internet Attachament Example Figure 7: Simple Internet Attachment Example
DYMO routers wishing to be reachable from nodes in the Internet MUST DYMO routers wishing to be reachable from nodes in the Internet MUST
have IP addresses within the gateway's configured and advertised have IP addresses within the gateway's configured and advertised
prefix. Given a node with a globally routeable address or care-of prefix. Given a node with a globally routeable address or care-of
address handled by the gateway, the gateway is responsible for address handled by the gateway, the gateway is responsible for
routing and forwarding packets received from the Internet destined routing and forwarding packets received from the Internet destined
for nodes inside its MANET. for nodes inside its MANET.
When DYMO router within the MANET want to send messages to nodes in When DYMO router within the MANET want to send messages to nodes in
the Internet, they simply issue RREQ for those the Internet, they simply issue RREQ for those
skipping to change at page 31, line 9 skipping to change at page 33, line 9
| | | | and may blacklist the link to | | | | | and may blacklist the link to |
| | | | this node. | | | | | this node. |
+-------------------+------+--------+-------------------------------+ +-------------------+------+--------+-------------------------------+
Table 5 Table 5
7.3. Address Block TLV Specification 7.3. Address Block TLV Specification
Address Block TLV Types Address Block TLV Types
+----------------+-------+--------+---------------------------------+ +----------------+------+---------+---------------------------------+
| Name | Type | Length | Value | | Name | Type | Length | Value |
+----------------+-------+--------+---------------------------------+ +----------------+------+---------+---------------------------------+
| DYMOSeqNum | 10 - | 16 | The DYMO sequence num | | DYMOSeqNum | 10 - | 16 bits | The DYMO sequence num |
| | TBD | bits | associated with this address. | | | TBD | (2 | associated with this address. |
| | | | The sequence number may be the | | | | bytes) | The sequence number may be the |
| | | | last known sequence number. | | | | | last known sequence number. |
| Distance | 11 - | 8 bits | A metric of the distance | | Distance | 11 - | up to | A metric of the distance |
| | TBD | | traversed by the information | | | TBD | 16 bits | traversed by the information |
| | | | associated with this address. | | | | (2 | associated with this address. |
| | | bytes) | |
| MaxAge | 12 - | | The maximum amount of time that | | MaxAge | 12 - | | The maximum amount of time that |
| | TBD | | information can be maintained | | | TBD | | information can be maintained |
| | | | before being deleted. This TLV | | | | | before being deleted. This TLV |
| | | | conforms to | | | | | conforms to |
| | | | [I-D.ietf-manet-timetlv] | | | | | [I-D.ietf-manet-timetlv] |
| | | | VALIDITY_TIME TLV, except that | | | | | VALIDITY_TIME TLV, except that |
| | | | the TLV is attached to | | | | | the TLV is attached to |
| | | | addresses. | | | | | addresses. |
+----------------+-------+--------+---------------------------------+ +----------------+------+---------+---------------------------------+
Table 6 Table 6
8. Security Considerations 8. Security Considerations
Currently, DYMO does not specify any special security measures. Currently, DYMO does not specify any special security measures.
In situations where confidentiality o DYMO messages is important, In situations where confidentiality o DYMO messages is important,
traditional cryptographic techniques can be applied. traditional cryptographic techniques can be applied.
skipping to change at page 32, line 10 skipping to change at page 34, line 14
9. Acknowledgments 9. 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 [RFC3561] and DSR [RFC4728]. Changes to protocols, especially AODV [RFC3561] and DSR [RFC4728]. Changes to
previous MANET reactive protocols stem from research and previous MANET reactive protocols stem from research and
implementation experiences. Thanks to Elizabeth Belding-Royer for implementation experiences. Thanks to Elizabeth Belding-Royer for
her long time authorship of DYMO. Additional thanks to Luke Klein- her long time authorship of DYMO. Additional thanks to Luke Klein-
Berndt, Pedro Ruiz, Fransisco Ros, Koojana Kuladinithi, Ramon Berndt, Pedro Ruiz, Fransisco Ros, Koojana Kuladinithi, Ramon
Caceres, Thomas Clausen, Christopher Dearlove, Seung Yi, Romain Caceres, Thomas Clausen, Christopher Dearlove, Seung Yi, Romain
Thouvenin, Tronje Krop, Henner Jakob and Alexandru Petrescu for Thouvenin, Tronje Krop, Henner Jakob, Alexandru Petrescu, Christoph
reviewing of DYMO, as well as several specification suggestions. Sommer, Cong Yuan, and Lars Kristensen for reviewing of DYMO, as well
as several specification suggestions.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-manet-iana] [I-D.ietf-manet-iana]
Chakeres, I., "Internet Assigned Numbers Authority (IANA) Chakeres, I., "IANA Allocations for Mobile Ad hoc Network
Allocations for the Mobile Ad hoc Networks (MANET) (MANET) Protocols", draft-ietf-manet-iana-06 (work in
Working Group", draft-ietf-manet-iana-05 (work in progress), October 2007.
progress), June 2007.
[I-D.ietf-manet-packetbb] [I-D.ietf-manet-packetbb]
Clausen, T., "Generalized MANET Packet/Message Format", Clausen, T., "Generalized MANET Packet/Message Format",
draft-ietf-manet-packetbb-07 (work in progress), draft-ietf-manet-packetbb-10 (work in progress),
July 2007. October 2007.
[I-D.ietf-manet-timetlv] [I-D.ietf-manet-timetlv]
Clausen, T. and C. Dearlove, "Representing multi-value Clausen, T. and C. Dearlove, "Representing multi-value
time in MANETs", draft-ietf-manet-timetlv-01 (work in time in MANETs", draft-ietf-manet-timetlv-02 (work in
progress), July 2007. progress), August 2007.
[RFC1812] Baker, F., "Requirements for IP Version 4 Routers", [RFC1812] Baker, F., "Requirements for IP Version 4 Routers",
RFC 1812, June 1995. RFC 1812, June 1995.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434, IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998. October 1998.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
10.2. Informative References 10.2. Informative References
[I-D.ietf-manet-jitter] [I-D.ietf-manet-jitter]
Clausen, T., "Jitter considerations in MANETs", Clausen, T., "Jitter considerations in MANETs",
draft-ietf-manet-jitter-01 (work in progress), July 2007. draft-ietf-manet-jitter-02 (work in progress),
August 2007.
[I-D.ietf-manet-nhdp] [I-D.ietf-manet-nhdp]
Clausen, T., "MANET Neighborhood Discovery Protocol Clausen, T., "MANET Neighborhood Discovery Protocol
(NHDP)", draft-ietf-manet-nhdp-04 (work in progress), (NHDP)", draft-ietf-manet-nhdp-04 (work in progress),
July 2007. July 2007.
[Johnson96]
Johnson, D. and D. Maltz, "Dynamic Source Routing (DSR) in
Ad hoc Networks", In Mobile Computing, Chapter 5, pp. 153-
181, 1996.
[Perkins99] [Perkins99]
Perkins, C. and E. Belding-Royer, "Ad hoc On-Demand Perkins, C. and E. Belding-Royer, "Ad hoc On-Demand
Distance Vector (AODV) Routing", Proceedings of the 2nd Distance Vector (AODV) Routing", Proceedings of the 2nd
IEEE Workshop on Mobile Computing Systems and IEEE Workshop on Mobile Computing Systems and
Applications, New Orleans, LA, pp. 90-100, Applications, New Orleans, LA, pp. 90-100,
February 1999. February 1999.
[RFC3561] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On- [RFC3561] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On-
Demand Distance Vector (AODV) Routing", RFC 3561, Demand Distance Vector (AODV) Routing", RFC 3561,
July 2003. July 2003.
 End of changes. 56 change blocks. 
151 lines changed or deleted 211 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/