draft-ietf-manet-dymo-19.txt   draft-ietf-manet-dymo-20.txt 
Mobile Ad hoc Networks Working I. Chakeres Mobile Ad hoc Networks Working I. Chakeres
Group CenGen Group CenGen
Internet-Draft C. Perkins Internet-Draft C. Perkins
Intended status: Standards Track WiChorus Intended status: Standards Track WiChorus
Expires: September 23, 2010 March 22, 2010 Expires: January 11, 2011 July 10, 2010
Dynamic MANET On-demand (DYMO) Routing Dynamic MANET On-demand (DYMO) Routing
draft-ietf-manet-dymo-19 draft-ietf-manet-dymo-20
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 routers in wireless, multihop networks. DYMO use by mobile routers in wireless, multihop networks. DYMO
determines unicast routes among DYMO routers within the network in an determines unicast routes among DYMO routers within the network in an
on-demand fashion, offering improved convergence in dynamic on-demand fashion, offering improved convergence in dynamic
topologies. topologies.
Status of this Memo Status of this Memo
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 September 23, 2010. This Internet-Draft will expire on January 11, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 22 skipping to change at page 2, line 22
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 Packet and Message Structure . . . . . . . 9 4.2.1. Generalized Packet and Message Structure . . . . . . . 9
4.2.2. Routing Messages (RM) - RREQ & RREP . . . . . . . . . 10 4.2.2. Routing Messages (RM) - RREQ & RREP . . . . . . . . . 10
4.2.3. Route Error (RERR) . . . . . . . . . . . . . . . . . . 12 4.2.3. Route Error (RERR) . . . . . . . . . . . . . . . . . . 13
5. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 14 5. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 14
5.1. DYMO Sequence Numbers . . . . . . . . . . . . . . . . . . 14 5.1. DYMO Sequence Numbers . . . . . . . . . . . . . . . . . . 14
5.1.1. Maintaining A Node's Own Sequence Number . . . . . . . 15 5.1.1. Maintaining A Node's Own Sequence Number . . . . . . . 15
5.1.2. Numerical Operations on OwnSeqNum . . . . . . . . . . 15 5.1.2. Numerical Operations on OwnSeqNum . . . . . . . . . . 15
5.1.3. OwnSeqNum Rollover . . . . . . . . . . . . . . . . . . 15 5.1.3. OwnSeqNum Rollover . . . . . . . . . . . . . . . . . . 15
5.1.4. Actions After OwnSeqNum Loss . . . . . . . . . . . . . 15 5.1.4. Actions After OwnSeqNum Loss . . . . . . . . . . . . . 15
5.2. DYMO Routing Table Operations . . . . . . . . . . . . . . 15 5.2. DYMO Routing Table Operations . . . . . . . . . . . . . . 15
5.2.1. Judging Routing Information's Usefulness . . . . . . . 15 5.2.1. Judging Routing Information's Usefulness . . . . . . . 15
5.2.2. Creating or Updating a Route Table Entry with 5.2.2. Creating or Updating a Route Table Entry with
Received Superior Routing Information . . . . . . . . 17 Received Superior Routing Information . . . . . . . . 17
5.2.3. Route Table Entry Timeouts . . . . . . . . . . . . . . 18 5.2.3. Route Table Entry Timeouts . . . . . . . . . . . . . . 18
5.3. Routing Messages . . . . . . . . . . . . . . . . . . . . . 18 5.3. Routing Messages . . . . . . . . . . . . . . . . . . . . . 18
5.3.1. RREQ Creation . . . . . . . . . . . . . . . . . . . . 18 5.3.1. RREQ Creation . . . . . . . . . . . . . . . . . . . . 18
5.3.2. RREP Creation . . . . . . . . . . . . . . . . . . . . 19 5.3.2. RREP Creation . . . . . . . . . . . . . . . . . . . . 20
5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 21 5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 21
5.3.4. RM Handling . . . . . . . . . . . . . . . . . . . . . 21 5.3.4. RM Handling . . . . . . . . . . . . . . . . . . . . . 21
5.3.5. Adding Additional Routing Information to a RM . . . . 24 5.3.5. Adding Additional Routing Information to a RM . . . . 24
5.4. Route Discovery . . . . . . . . . . . . . . . . . . . . . 25 5.4. Route Discovery . . . . . . . . . . . . . . . . . . . . . 25
5.5. Route Maintenance . . . . . . . . . . . . . . . . . . . . 26 5.5. Route Maintenance . . . . . . . . . . . . . . . . . . . . 26
5.5.1. Active Next-hop Router Adjacency Monitoring . . . . . 26 5.5.1. Active Next-hop Router Adjacency Monitoring . . . . . 27
5.5.2. Updating Route Lifetimes During Packet Forwarding . . 27 5.5.2. Updating Route Lifetimes During Packet Forwarding . . 27
5.5.3. RERR Generation . . . . . . . . . . . . . . . . . . . 27 5.5.3. RERR Generation . . . . . . . . . . . . . . . . . . . 27
5.5.4. RERR Handling . . . . . . . . . . . . . . . . . . . . 28 5.5.4. RERR Handling . . . . . . . . . . . . . . . . . . . . 28
5.6. DYMO Identifier (DID) . . . . . . . . . . . . . . . . . . 29 5.6. DYMO Identifier (DID) . . . . . . . . . . . . . . . . . . 30
5.7. Unknown Message & TLV Types . . . . . . . . . . . . . . . 30 5.7. Unknown Message & TLV Types . . . . . . . . . . . . . . . 30
5.8. Advertising Network Addresses . . . . . . . . . . . . . . 30 5.8. Advertising Network Addresses . . . . . . . . . . . . . . 31
5.9. Simple Internet Attachment . . . . . . . . . . . . . . . . 30 5.9. Simple Internet Attachment . . . . . . . . . . . . . . . . 31
5.10. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 32 5.10. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 32
5.11. DYMO Control Packet/Message Generation Limits . . . . . . 32 5.11. DYMO Control Packet/Message Generation Limits . . . . . . 33
6. Administratively Configured Parameters and Timer Values . . . 32 6. Administratively Configured Parameters and Timer Values . . . 33
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
7.1. DYMO Message Types Specification . . . . . . . . . . . . . 35 7.1. DYMO Message Types Specification . . . . . . . . . . . . . 36
7.2. Message and Address Block TLV Type Specification . . . . . 35 7.2. Message and Address Block TLV Type Specification . . . . . 36
7.3. Address Block TLV Specification . . . . . . . . . . . . . 36 7.3. Address Block TLV Specification . . . . . . . . . . . . . 37
8. Security Considerations . . . . . . . . . . . . . . . . . . . 36 8. Security Considerations . . . . . . . . . . . . . . . . . . . 37
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 37 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38
10.1. Normative References . . . . . . . . . . . . . . . . . . . 37 10.1. Normative References . . . . . . . . . . . . . . . . . . . 38
10.2. Informative References . . . . . . . . . . . . . . . . . . 38 10.2. Informative References . . . . . . . . . . . . . . . . . . 39
Appendix A. Shifting Responsibility for an Address Between Appendix A. Shifting Responsibility for an Address Between
DYMO Routers . . . . . . . . . . . . . . . . . . . . 39 DYMO Routers . . . . . . . . . . . . . . . . . . . . 40
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 40
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 among participating DYMO routers. The basic multihop unicast routing among participating DYMO routers. The basic
operations of the DYMO protocol are route discovery and route operations of the DYMO protocol are route discovery and route
maintenance. maintenance.
During route discovery, the originator's DYMO router initiates During route discovery, the originator's DYMO router initiates
dissemination of a Route Request (RREQ) throughout the network to dissemination of a Route Request (RREQ) throughout the network to
skipping to change at page 4, line 31 skipping to change at page 4, line 31
receives the RREP, routes have then been established between the receives the RREP, routes have then been established between the
originating DYMO router and the target DYMO router in both originating DYMO router and the target DYMO router in both
directions. directions.
Route maintenance consists of two operations. In order to preserve Route maintenance consists of two operations. In order to preserve
routes in use, DYMO routers extend route lifetimes upon successfully routes in use, DYMO routers extend route lifetimes upon successfully
forwarding a packet. In order to react to changes in the network forwarding a packet. In order to react to changes in the network
topology, DYMO routers monitor routes over which traffic is flowing. topology, DYMO routers monitor routes over which traffic is flowing.
When a data packet is received for forwarding and a route for the When a data packet is received for forwarding and a route for the
destination is not known or the route is broken, then the DYMO router destination is not known or the route is broken, then the DYMO router
of source of the packet is notified. A Route Error (RERR) is sent of the source of the packet is notified. A Route Error (RERR) is
toward the packet source to indicate the route to that particular sent toward the packet source to indicate the route to that
destination is invalid or missing. When the source's DYMO router particular destination is invalid or missing. When the source's DYMO
receives the RERR, it deletes the route. If this source's DYMO router receives the RERR, it deletes the route. If this source's
router later receives a packet for forwarding to the same DYMO router later receives a packet for forwarding to the same
destination, it will need to perform route discovery again for that destination, it will need to perform route discovery again for that
destination. destination.
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 temporal order Sequence numbers enable DYMO routers to determine the temporal order
of DYMO route discovery messages, thereby avoiding use of stale of DYMO route discovery messages, thereby avoiding use of stale
routing information. routing information.
2. Applicability Statement 2. Applicability Statement
skipping to change at page 5, line 39 skipping to change at page 5, line 39
and can be reached via multiple DYMO routers) is not described in and can be reached via multiple DYMO routers) is not described in
this document. The router behavior for shifting responsibility for this document. The router behavior for shifting responsibility for
an address from one DYMO router to another are described in an address from one DYMO router to another are described in
Appendix A. Appendix A.
DYMO MUST only utilizes bidirectional links. In the case of possible DYMO MUST only utilizes bidirectional links. In the case of possible
unidirectional links, either blacklists ( see Section 7.2) or other unidirectional links, either blacklists ( see Section 7.2) or other
means (e.g. adjacency establishment with only neighboring routers means (e.g. adjacency establishment with only neighboring routers
that have bidirectional communication as indicated by NHDP that have bidirectional communication as indicated by NHDP
[I-D.ietf-manet-nhdp]) of ensuring and monitoring bi-directionality [I-D.ietf-manet-nhdp]) of ensuring and monitoring bi-directionality
should be used. Otherwise, persistent packet loss may occur. SHOULD be used. Otherwise, persistent packet loss may occur.
The routing algorithm in DYMO may be operated at layers other than The routing algorithm in DYMO may be operated at layers other than
the network layer, using layer-appropriate addresses. For operation the network layer, using layer-appropriate addresses. For operation
at other layers DYMO's routing algorithm likely will not need to at other layers DYMO's routing algorithm likely will not need to
change. Although, modification of the packet/message format may be change. Although, modification of the packet/message format may be
required. required.
3. Terminology 3. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
skipping to change at page 6, line 47 skipping to change at page 6, line 47
temporal order of routing information generated and ensure loop- temporal order of routing information generated and ensure loop-
free routes. free 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
the kernel forwarding/routing table. the kernel forwarding/routing table.
Multihop-capable Unicast IP Address Multihop-capable Unicast IP Address
A multihop-capable unicast IP address is a unicast IP address that A multihop-capable unicast IP address is a unicast IP address that
when put into the IP.SoureAddress or IP.DestinationAddress field when put into the IP.SourceAddress or IP.DestinationAddress field
is scoped sufficiently to be forwarded by a router. For example, is scoped sufficiently to be forwarded by a router. For example,
site-scoped or globally-scoped unicast IP addresses. site-scoped or globally-scoped unicast IP addresses.
Originating Node (OrigNode) Originating Node (OrigNode)
The originating node is the source, its DYMO router creates a DYMO The originating node is the source, its DYMO router creates a DYMO
control message on its behalf in an effort to disseminate some control message on its behalf in an effort to disseminate some
routing information. The originating node is also referred to as routing information. The originating node is also referred to as
a particular message's originator. a particular message's originator.
Route Error (RERR) Route Error (RERR)
A RERR message is used to indicate that a DYMO router does not A RERR message is used to indicate that a DYMO router does not
have forwarding route to one or more particular addresses. have a forwarding route to one or more particular addresses.
Route Reply (RREP) Route Reply (RREP)
A RREP message is used to disseminate routing information about A RREP message is used to disseminate routing information about
the RREP OrigNode, to the RREP TargetNode and the DYMO routers the RREP OrigNode to the RREP TargetNode and the DYMO routers
between them. between them.
Route Request (RREQ) Route Request (RREQ)
A RREQ message is issued to discover a valid route to a particular A RREQ message is issued to discover a valid route to a particular
destination address, called the RREQ TargetNode. When a DYMO destination address, called the RREQ TargetNode. When a DYMO
router attends a RREQ, it learns routing information on how to router processes a RREQ, it learns routing information on how to
reach the RREQ OrigNode. reach the RREQ OrigNode.
Target Node (TargetNode) Target Node (TargetNode)
The TargetNode is the ultimate destination of a message. The TargetNode is the ultimate destination of a message.
This Node (ThisNode) This Node (ThisNode)
ThisNode corresponds to the DYMO router process currently ThisNode corresponds to the DYMO router process currently
performing a calculation or attending to a message. performing a calculation or attending to a message.
Type-Length-Value structure (TLV) Type-Length-Value structure (TLV)
skipping to change at page 8, line 31 skipping to change at page 8, line 31
Route.NextHopInterface Route.NextHopInterface
The interface used to send packets toward the Route.Address. The interface used to send packets toward the Route.Address.
Route.Forwarding Route.Forwarding
A flag indicating whether this Route can be used for forwarding A flag indicating whether this Route can be used for forwarding
data packets. This flag MAY be provided for management and data packets. This flag MAY be provided for management and
monitoring. monitoring.
Route.Broken Route.Broken
A flag indicating whether this Route is broken. This flag is set A flag indicating whether this Route is broken. This flag is set
if the next-hop becomes unreachable or in response to attending to to true if the next-hop becomes unreachable or in response to
a RERR (see Section 5.5.4). attending to a RERR (see Section 5.5.4).
The following field is optional: The following field is optional:
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.
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.
skipping to change at page 9, line 28 skipping to change at page 9, line 28
Table 1 Table 1
4.2.1. Generalized Packet and Message Structure 4.2.1. Generalized Packet and Message Structure
DYMO messages conform to the generalized packet and message format as DYMO messages conform to the generalized packet and message format as
described in [RFC5444]. Here is a brief description of the format. described in [RFC5444]. Here is a brief description of the format.
A packet is made up of messages. A message is made up of a message A packet is made up of messages. A message is made up of a message
header, message TLV block, and zero or more address blocks. Each of header, message TLV block, and zero or more address blocks. Each of
the address blocks may also have an associated address TLV block. the address blocks may also have an associated address TLV block.
All DYMO messages specified in this document are sent using UDP to For interoperability with other DYMO routers, all DYMO messages
the destination port MANET [RFC5498]. specified in this document SHOULD sent using the IP protocol number
(138) reserved for manet protocols [RFC5498]; or the UDP destination
port (269) reserved for manet protocols [RFC5498] and IP protocol
number for UDP.
Most DYMO messages are sent with the IP destination address set to Most DYMO messages are sent with the IP destination address set to
the link-local multicast address LL-MANET-ROUTERS [RFC5498] unless the link-local multicast address LL-MANET-Routers [RFC5498] unless
otherwise stated. Therefore, all DYMO routers SHOULD subscribe to otherwise stated. Therefore, all DYMO routers SHOULD subscribe to
LL-MANET-ROUTERS [RFC5498] for receiving control packets. Note that LL-MANET-Routers [RFC5498] for receiving control packets. Note that
multicast packets MAY be sent via unicast. For example, this may multicast packets MAY be sent via unicast. For example, this may
occur for certain link-types (non broadcast mediums), improved occur for certain link-types (non broadcast mediums), improved
robustness, or manually configured router adjacencies. robustness, or manually configured router adjacencies.
Unicast DYMO messages (e.g. RREP) unless otherwise specified in this Unicast DYMO messages (e.g. RREP) unless otherwise specified in this
document are sent with the IP destination set to the document are sent with the IP destination set to the
Route.NextHopAddress of the route to the TargetNode. Route.NextHopAddress of the route to the TargetNode.
The IPv4 TTL (IPv6 Hop Limit) field for all packets containing DYMO The IPv4 TTL (IPv6 Hop Limit) field for all packets containing DYMO
messages is set to 255. If a packet is received with a value other messages is set to 255. If a packet is received with a value other
than 255, it is discarded. This mechanism helps to ensures that than 255, it is discarded. This mechanism helps to ensures that
packets have not passed through any intermediate routers, and it is packets have not passed through any intermediate routers, and it is
known as GTSM [RFC5082]. known as GTSM [RFC5082].
The length of an address (32 bits for IPv4 and 128 bits for IPv6) The length of an address (32 bits for IPv4 and 128 bits for IPv6)
inside a DYMO message depends on the msg-addr-length (MAL) in the inside a DYMO message depends on the msg-addr-length (MAL) in the
msg-header, as specified in [RFC5444]. msg-header, as specified in [RFC5444].
If a packet contains only a single DYMO message and no packet TLVs,
it need not include a packet-header [RFC5444].
The aggregation of multiple messages into a packet is not specified The aggregation of multiple messages into a packet is not specified
in this document, but if aggregation does occur the IP.SourceAddress in this document, but if aggregation does occur the IP.SourceAddress
and IP.DestinationAddress of all contained messages MUST be the same. and IP.DestinationAddress of all contained messages MUST be the same.
Implementations MAY choose to temporarily delay transmission of Implementations MAY choose to temporarily delay transmission of
messages for the purpose of aggregation (into a single packet) or to messages for the purpose of aggregation (into a single packet) or to
improve performance by using jitter [RFC5148]. improve performance by using jitter [RFC5148].
DYMO control packets SHOULD be given priority queuing and channel DYMO control packets SHOULD be given priority queuing and channel
access. access.
skipping to change at page 10, line 39 skipping to change at page 10, line 38
A RM requires the following information: A RM requires the following information:
IP.SourceAddress IP.SourceAddress
The IP address of the node currently sending this packet. This The IP address of the node currently sending this packet. This
field is generally filled automatically by the operating system field is generally filled automatically by the operating system
and should not require special handling. and should not require special handling.
IP.DestinationAddress IP.DestinationAddress
The IP address of the packet destination. For multicast RREQ the The IP address of the packet destination. For multicast RREQ the
IP.DestinationAddress is set to LL-MANET ROUTERS [RFC5498]. For IP.DestinationAddress is set to LL-MANET-Routers [RFC5498]. For
unicast RREP the IP.DestinationAddress is set to the unicast RREP the IP.DestinationAddress is set to the
NextHopAddress toward the RREP TargetNode. NextHopAddress toward the RREP TargetNode.
UDP.DestinationPort IP.ProtocolNumber and UDP.DestinationPort
By default, the UDP destination port is set to MANET [RFC5498]. The IP Protocol Number 138 (manet) has been reserved for MANET
protocols [RFC5498]. In addition to using this IP protocol
number, DYMO may use the UDP port 269 (manet) [RFC5498] in
conjunction with the IP Protocol Number 17 (UDP).
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.TargetNode.Address AddBlk.TargetNode.Address
The IP address of the message TargetNode. In a RREQ the The IP address of the message TargetNode. In a RREQ the
TargetNode is the destination address for which route discovery is TargetNode is the destination address for which route discovery is
being performed. In a RREP the TargetNode is the RREQ OrigNode being performed. In a RREP the TargetNode is the RREQ OrigNode
address. The TargetNode address is the first address in a routing address. The TargetNode address is the first address in a routing
message. message.
skipping to change at page 12, line 10 skipping to change at page 12, line 10
AdditionalNode.AddTLV.Dist AdditionalNode.AddTLV.Dist
A metric of the distance to reach the associated A metric of the distance to reach the associated
AdditionalNode.Address. This field is incremented by at least one AdditionalNode.Address. This field is incremented by at least one
at each intermediate DYMO router. at each intermediate DYMO router.
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.Proto = UDP|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.SourceAddress | | IP.SourceAddress |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.DestinationAddress = LL-MANET-ROUTERS | | IP.DestinationAddress = LL-MANET-Routers |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP TTL/HopLimit = 255 | | IP TTL/HopLimit = 255 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UDP Header UDP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Port = MANET | | Destination Port = manet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Header Message Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RREQ-type |0|1|0|0| MAL=3 | msg-size=23 | | RREQ-type |0|1|0|0| MAL=3 | msg-size=23 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg-hoplimit | | msg-hoplimit |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Message TLV Block Message TLV Block
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg-tlv-block-size=0 | | msg-tlv-block-size=0 |
skipping to change at page 13, line 14 skipping to change at page 13, line 21
A RERR requires the following information: A RERR requires the following information:
IP.SourceAddress IP.SourceAddress
The IP address of the DYMO router that sent this packet. This The IP address of the DYMO router that sent this packet. This
field is generally filled automatically by the operating system field is generally filled automatically by the operating system
and should not require special handling. and should not require special handling.
IP.DestinationAddress IP.DestinationAddress
For multicast RERR messages, The IP address is set to LL-MANET- For multicast RERR messages, The IP address is set to LL-MANET-
ROUTERS [RFC5498]. For unicast RERR messages, the IP address is Routers [RFC5498]. For unicast RERR messages, the IP address is
set to the NextHopAddress. set to the NextHopAddress.
UDP.DestinationPort IP.ProtocolNumber and UDP.DestinationPort
By default, the UDP destination port is set to MANET [RFC5498]. The IP Protocol Number 138 (manet) has been reserved for MANET
protocols [RFC5498]. In addition to using this IP protocol
number, DYMO may use the UDP port 269 (manet) [RFC5498] in
conjunction with the IP Protocol Number 17 (UDP).
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
The address of an UnreachableNode and its associated prefix The address of an UnreachableNode and its associated prefix
length. Multiple unreachable addresses may be included in a RERR. length. Multiple unreachable addresses may be included in a RERR.
A Route Error may optionally include the following information: A Route Error may optionally include the following information:
UnreachableNode.AddTLV.SeqNum UnreachableNode.AddTLV.SeqNum
The last known DYMO sequence number of the unreachable node. If a The last known DYMO sequence number of the unreachable node. If a
SeqNum for an address is not included, it is assumed to be SeqNum for an address is zero (0) or not included, it is assumed
unknown. This case occurs when a node receives a message to to be unknown. This case occurs when a node receives a message to
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.Proto = UDP|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.SourceAddress | | IP.SourceAddress |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.DestinationAddress = LL-MANET-ROUTERS | | IP.DestinationAddress = LL-MANET-Routers |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP.TTL/HopLimit = 255 | | IP.TTL/HopLimit = 255 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UDP Header UDP Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Port = MANET | | Destination Port = manet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Header Message Header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RERR-type |0|1|0|0| MAL=3 | msg-size=15 | | RERR-type |0|1|0|0| MAL=3 | msg-size=15 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg-hoplimit | | msg-hoplimit |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Message TLV Block Message TLV Block
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg-tlv-block-size=0 | | msg-tlv-block-size=0 |
skipping to change at page 15, line 10 skipping to change at page 15, line 10
5.1. DYMO Sequence Numbers 5.1. DYMO Sequence Numbers
DYMO sequence numbers allow DYMO routers to judge the freshness of DYMO sequence numbers allow DYMO routers to judge the freshness of
routing information and ensure loop freedom. routing information and ensure loop freedom.
5.1.1. Maintaining A Node's Own Sequence Number 5.1.1. Maintaining A Node's Own Sequence Number
DYMO requires that each DYMO router in the network maintain its own DYMO requires that each DYMO router in the network maintain its own
DYMO sequence number (OwnSeqNum) on behalf of the addresses for which DYMO sequence number (OwnSeqNum) on behalf of the addresses for which
it is responsible. OwnSeqNum a 16-bit unsigned integer. The it is responsible. OwnSeqNum a 16-bit unsigned integer. The
circumstances for ThisNode to incrementing its OwnSeqNum are circumstances for ThisNode to increment its OwnSeqNum are described
described in Section 5.3. in Section 5.3.
5.1.2. Numerical Operations on OwnSeqNum 5.1.2. Numerical Operations on OwnSeqNum
When ThisNode increments its OwnSeqNum (as described in Section 5.3) When ThisNode increments its OwnSeqNum it MUST do so by treating the
it MUST do so by treating the sequence number value as an unsigned sequence number value as an unsigned number.
number.
5.1.3. OwnSeqNum Rollover 5.1.3. OwnSeqNum Rollover
If the sequence number has been assigned to be the largest possible Incrementing an OwnSeqNum whose value is the largest largest possible
number representable as a 16-bit unsigned integer (i.e., 65,535), number representable as a 16-bit unsigned integer (i.e., 65,535),
then the sequence number SHOULD be set to one (1) incremented. SHOULD be set to one (1). In other words, the sequence number after
65,535 is 1.
5.1.4. Actions After OwnSeqNum Loss 5.1.4. Actions After OwnSeqNum Loss
A DYMO router SHOULD maintain its sequence number in persistent A DYMO router SHOULD maintain its sequence number in persistent
storage. storage.
If a DYMO router's OwnSeqNum is lost, it MUST take certain actions to If a DYMO router's OwnSeqNum is lost, it MUST take certain actions to
avoid creating routing loops. To prevent this possibility after avoid creating routing loops. To prevent this possibility after
OwnSeqNum loss a DYMO router MUST wait for at least OwnSeqNum loss a DYMO router MUST wait for at least
ROUTE_DELETE_TIMEOUT before fully participating in the DYMO routing ROUTE_DELETE_TIMEOUT before fully participating in the DYMO routing
skipping to change at page 16, line 32 skipping to change at page 16, line 32
the routing information is loop-possible. If Node.Dist > the routing information is loop-possible. If Node.Dist >
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 or equivalent
In case of known equal SeqNum, the information is inferior in In case of known equal SeqNum, the information is inferior in
multiple cases: (case i) if Node.Dist == Route.Dist + 1 (it is a multiple cases: (case i) if Node.Dist == Route.Dist + 1 (it is a
greater distance route) AND Route.Broken == false; (case ii) if greater distance route) AND Route.Broken == false; (case ii) if
Node.Dist == Route.Dist (equal distance route) AND Route.Broken == Node.Dist == Route.Dist (equal distance route) AND Route.Broken ==
false AND this RM is a RREQ. The inferior condition stops false AND this RM is a RREQ. This condition reduces the number of
forwarding of RREQ with equivalent distance. RREQ flooded by stopping forwarding of RREQ with equivalent
distance.
((Node.SeqNum == Route.SeqNum) AND ((Node.SeqNum == Route.SeqNum) AND
(((Node.Dist == Route.Dist + 1) AND (Route.Broken == false)) 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
skipping to change at page 17, line 35 skipping to change at page 17, line 36
2. the Route.Prefix is set to the Node.Prefix. 2. the Route.Prefix is set to the Node.Prefix.
3. the Route.SeqNum is set to the Node.SeqNum, 3. the Route.SeqNum is set to the Node.SeqNum,
4. the Route.NextHopAddress is set to the node that transmitted this 4. the Route.NextHopAddress is set to the node that transmitted this
DYMO RM packet (i.e., the IP.SourceAddress), DYMO RM packet (i.e., the IP.SourceAddress),
5. the Route.NextHopInterface is set to the interface that this DYMO 5. the Route.NextHopInterface is set to the interface that this DYMO
packet was received on, packet was received on,
6. if known, the Route.Dist is set to the Node.Dist, 6. the Route.Broken flag is set to false,
7. if known, the Route.Dist is set to the Node.Dist,
Fields without known values are not populated with any value. Fields without known values are not populated with any value.
Previous timers for this route table entry are removed. A timer for The timer for the minimum delete timeout (ROUTE_AGE_MIN) is set to
the minimum delete timeout (ROUTE_AGE_MIN) is set to ROUTE_AGE_MIN_TIMEOUT. The timer for the maximum delete timeout
ROUTE_AGE_MIN_TIMEOUT. A timer for the maximum delete timeout (ROUTE_SEQNUM_AGE_MAX) is set to Node.AddTLV.VALIDITY_TIME [RFC5497]
(ROUTE_SEQNUM_AGE_MAX). ROUTE_SEQNUM_AGE_MAX is set to if included; otherwise, ROUTE_SEQNUM_AGE_MAX is set to
Node.AddTLV.VALIDITY_TIME [RFC5497] if included; otherwise, ROUTE_SEQNUM_AGE_MAX_TIMEOUT. The usage of these timers and others
ROUTE_SEQNUM_AGE_MAX is set to ROUTE_SEQNUM_AGE_MAX_TIMEOUT. The are described in Section 5.2.3.
usage of these timers and others are described in Section 5.2.3.
At this point, a forwarding route should be created and the At this point, a forwarding route has been created and the
Route.Forwarding flag set. Afterward, the route can be used to send Route.Forwarding flag set. Afterward, the route can be used to send
any queued data packets and forward any incoming data packets for any queued data packets and forward any incoming data packets for
Route.Address. This route also fulfills any outstanding route Route.Address. This route also fulfills any outstanding route
discovery attempts for Node.Address. discovery attempts for Node.Address.
5.2.3. Route Table Entry Timeouts 5.2.3. Route Table Entry Timeouts
5.2.3.1. Minimum Delete Timeout (ROUTE_AGE_MIN) 5.2.3.1. Minimum Delete Timeout (ROUTE_AGE_MIN)
When a DYMO router transmits a RM, other DYMO routers expect the When a DYMO router transmits a RM, other DYMO routers expect the
transmitting DYMO router to have a forwarding route to the RM transmitting DYMO router to have a forwarding route to the RM
originator. After updating a route table entry, it should be originator. After updating a route table entry, it SHOULD be
maintained for at least ROUTE_AGE_MIN. Failure to maintain the maintained for at least ROUTE_AGE_MIN. Failure to maintain the
information might result in lost messages/packets, or in the worst information might result in lost messages/packets, or in the worst
case scenario several duplicate messages. case scenario several duplicate messages.
After the ROUTE_AGE_MIN timeout a route can safely be deleted. After the ROUTE_AGE_MIN timeout a route can safely be deleted.
5.2.3.2. Maximum Sequence Number Delete Timeout (ROUTE_SEQNUM_AGE_MAX) 5.2.3.2. Maximum Sequence Number Delete Timeout (ROUTE_SEQNUM_AGE_MAX)
Sequence number information is time sensitive, and MUST be deleted Sequence number information is time sensitive, and MUST be deleted
after a time in order to ensure loop-free routing. after a time in order to ensure loop-free routing.
After the ROUTE_AGE_MAX timeout a route's sequence number information After the ROUTE_SEQNUM_AGE_MAX timeout a route's sequence number
MUST be discarded. information MUST be discarded.
5.2.3.3. Recently Used Timeout (ROUTE_USED) 5.2.3.3. Recently Used Timeout (ROUTE_USED)
When a route is used to forward data packets, this timer is set to When a route is used to forward data packets, this timer is set to
expire after ROUTE_USED_TIMEOUT. This operation is also discussed in expire after ROUTE_USED_TIMEOUT. This operation is also discussed in
Section 5.5.2. Section 5.5.2.
If a route has not been used recently, then a timer for ROUTE_DELETE If a route has not been used recently, then a timer for ROUTE_DELETE
is set to ROUTE_DELETE_TIMEOUT. is set to ROUTE_DELETE_TIMEOUT.
5.2.3.4. Delete Information Timeout (ROUTE_DELETE) 5.2.3.4. Delete Information Timeout (ROUTE_DELETE)
As time progresses the likelihood that old routing information is As time progresses the likelihood that old routing information is
useful decreases, especially if the network nodes are mobile. useful decreases, especially if the network nodes are mobile.
Therefore, old information should be deleted. Therefore, old information SHOULD be deleted.
After the ROUTE_DELETE timeout, the routing table entry should be After the ROUTE_DELETE timeout if a forwarding route exists it SHOULD
deleted. If a forwarding route exists, it should also be removed and be removed, and the routing table entry SHOULD also be deleted.
the Route.Forwarding flag unset.
5.3. Routing Messages 5.3. Routing Messages
5.3.1. RREQ Creation 5.3.1. RREQ Creation
Before a DYMO router creates a RREQ it SHOULD increment its OwnSeqNum Before a DYMO router creates a RREQ it SHOULD increment its OwnSeqNum
by one (1) according to the rules specified in Section 5.1.2. by one (1) according to the rules specified in Section 5.1.
Incrementing OwnSeqNum will ensure that all nodes with existing Incrementing OwnSeqNum will ensure that all nodes with existing
routing information will consider this new information superior to routing information will consider this new information superior to
existing routing table information. If the sequence number is not existing routing table information. If the sequence number is not
incremented, certain DYMO routers might not consider this information incremented, certain DYMO routers might not consider this information
superior, if they have existing better routing information. superior, if they have existing better routing information.
First, ThisNode adds the AddBlk.TargetNode.Address to the RREQ; the First, ThisNode adds the AddBlk.TargetNode.Address to the RREQ; the
unicast IP Destination Address for which a forwarding route does not unicast IP Destination Address for which a forwarding route does not
exist. exist.
skipping to change at page 19, line 32 skipping to change at page 19, line 35
The OrigNode.Address is the address of the source for which this DYMO The OrigNode.Address is the address of the source for which this DYMO
router is initiating this route discovery. The OrigNode.Address MUST router is initiating this route discovery. The OrigNode.Address MUST
be a unicast address. This information will be used by nodes to be a unicast address. This information will be used by nodes to
create a route toward the OrigNode, enabling delivery of a RREP, and create a route toward the OrigNode, enabling delivery of a RREP, and
eventually used for proper forwarding of data packets. eventually used for proper forwarding of data packets.
If OrigNode.Dist is included it is set to a number greater than zero If OrigNode.Dist is included it is set to a number greater than zero
(0). (0).
Additional routing information can be added to this RM using the
procedure described in Section 5.3.5.
The MsgHdr.HopLimit SHOULD be set to MSG_HOPLIMIT. The MsgHdr.HopLimit SHOULD be set to MSG_HOPLIMIT.
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 local network and possibly reduce propagation to a subset of the local network and possibly reduce
route discovery overhead. route discovery overhead.
The IP.DestinationAddress for multicast RREQ is set to LL-MANET- The IP.DestinationAddress for multicast RREQ is set to LL-MANET-
ROUTERS. For links that do not support multicast or situations in Routers. For links that do not support multicast or situations in
which unicast messaging is preferred, the IP.DestinationAddress for which unicast messaging is preferred, the IP.DestinationAddress for
unicast RREQ is set to the NextHopAddress. unicast RREQ is set to the NextHopAddress.
Each DYMO routing protocol message SHOULD contain ThisNode.DID's Each DYMO routing protocol message SHOULD contain ThisNode.DID's
value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero
(0) it MAY be omitted. (0) it MAY be omitted.
5.3.2. RREP Creation 5.3.2. RREP Creation
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 and prefix are added to the RREP. The Next, AddBlk.OrigNode.Address and prefix are added to the RREP. The
AddBlk.OrigNode.Address is the RREQ TargetNode.Address. The AddBlk.OrigNode.Address is the RREQ TargetNode.Address. The
AddBlk.OrigNode.Address MUST be a unicast IP address. ThisNode AddBlk.OrigNode.Address MUST be a unicast IP address. ThisNode
SHOULD advertise the largest known prefix containing SHOULD advertise the largest known prefix containing
AddBlk.OrigNode.Address. AddBlk.OrigNode.Address.
When the TargetNode's DYMO router creates a RREP, if the When the RM TargetNode's DYMO router creates a RREP, if the
TargetNode.SeqNum was not included in the RREQ, ThisNode MUST TargetNode.SeqNum was not included in the RREQ, ThisNode MUST
increment its OwnSeqNum by one (1) according to the rules specified increment its OwnSeqNum by one (1) according to the rules specified
in Section 5.1.2. in Section 5.1.
If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum - If TargetNode.SeqNum was included in the RM and TargetNode.SeqNum -
OwnSeqNum < 0 (using signed 16-bit arithmetic), OwnSeqNum SHOULD be OwnSeqNum < 0 (using signed 16-bit arithmetic), OwnSeqNum SHOULD be
incremented by one (1) according to the rules specified in incremented by one (1) according to the rules specified in
Section 5.1.2. Section 5.1.
If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum == If TargetNode.SeqNum is included in the RM and TargetNode.SeqNum ==
OwnSeqNum (using signed 16-bit arithmetic) and Dist will not be OwnSeqNum (using signed 16-bit arithmetic) and OrigNode.Dist will not
included in the RREP being generated, OwnSeqNum SHOULD be incremented be included in the RREP being generated, OwnSeqNum SHOULD be
by one (1) according to the rules specified in Section 5.1.2. incremented by one (1) according to the rules specified in
Section 5.1.
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 might not reach the RREP considered stale. In this case, the RREP might not reach the RREP
Target. Target.
After any of the sequence number operations above, the RREP After any of the sequence number operations above, the RREP
OrigNode.AddTLV.SeqNum (OwnSeqNum) MUST also be added to the RREP. OrigNode.AddTLV.SeqNum (OwnSeqNum) MUST also be 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 a number greater than zero (0) and less than 65,535. The Distance to a number greater than zero (0) and less than or equal to 65,535.
value will influence judgment of the routing information The Distance value will influence judgment of the routing information
(Section 5.2.1) against known information at other DYMO routers that (Section 5.2.1) against known information at other DYMO routers that
handle this RM. handle this RM.
Additional routing information can be added to this RM using the
procedure described in Section 5.3.5.
The MsgHdr.HopLimit is set to MSG_HOPLIMIT. The MsgHdr.HopLimit is set to MSG_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.
Each DYMO routing protocol message SHOULD contain ThisNode.DID's Each DYMO routing protocol message SHOULD contain ThisNode.DID's
value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero
(0) it MAY be omitted. (0) it MAY be omitted.
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. An intermediate DYMO router can issue a satisfy an incoming RREQ. An intermediate DYMO router can issue a
intermediate DYMO router RREP on behalf of the TargetNode's DYMO intermediate DYMO router RREP on behalf of the TargetNode's DYMO
router. router.
Before creating a intermediate DYMO router RREP, OwnSeqNum SHOULD be Before creating a intermediate DYMO router RREP, OwnSeqNum SHOULD be
incremented by one (1) according to the rules specified in incremented by one (1) according to the rules specified in
Section 5.1.2. Section 5.1.
If OwnSeqNum is not incremented the routing information about If OwnSeqNum is not incremented the routing information about
ThisNode might be considered stale by a handling DYMO router. In ThisNode might be considered stale by a handling DYMO router. In
this case, the RREP would not reach the RREP TargetNode. this case, the RREP would not reach the RREP TargetNode.
When an intermediate DYMO router originates a RREP in response to a 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 RREQ on behalf of the TargetNode's DYMO router, it sends the RREP to
the RREQ OrigNode with additional routing information (Address, the RREQ OrigNode with additional routing information (Address,
Prefix, SeqNum, Dist, etc.) about the RREQ TargetNode. Appending Prefix, SeqNum, Dist, etc.) about the RREQ TargetNode. Appending
additional routing information is described in Section 5.3.5. additional routing information is described in Section 5.3.5.
skipping to change at page 21, line 37 skipping to change at page 21, line 42
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,
Prefix, SeqNum, Dist, etc.) about the RREQ OrigNode. Prefix, SeqNum, Dist, etc.) about the RREQ OrigNode.
5.3.4. RM Handling 5.3.4. RM Handling
First, ThisNode decides whether to attend to this message. If the First, ThisNode examines the RM to ensure that it contains the
required information: MsgHdr.HopLimit, AddBlk.TargetNode.Address,
AddBlk.OrigNode.Address, and OrigNode.AddTLV.SeqNum. If the required
information do not exist, the message is discarded and further
processing stopped.
Next, ThisNode decides whether to attend to this message. If the
message contains a MsgTLV.DID it SHOULD match ThisNode.DID's value. message contains a MsgTLV.DID it SHOULD match ThisNode.DID's value.
If the message does not contain a MsgTLV.DID it is assumed to be zero If the message does not contain a MsgTLV.DID it is assumed to be zero
(0) and SHOULD be discarded if ThisNode.DID's value is not zero (0). (0) and SHOULD be discarded if ThisNode.DID's value is not zero (0).
Next, ThisNode MAY selectively attend to messages based upon Next, ThisNode MAY selectively attend to messages based upon
information in the message. ThisNode SHOULD only handle messages information in the message. ThisNode SHOULD only handle messages
from adjacent DYMO routers. If ThisNode chooses not to handle this from adjacent DYMO routers. If ThisNode chooses not to handle this
message, the message is discarded and further processing stopped. message, the message is discarded and further processing stopped.
ThisNode checks if the AddBlk.OrigNode.Address is a valid multihop- ThisNode checks if the AddBlk.OrigNode.Address is a valid multihop-
capable (e.g. site or global scope) unicast address. If the address capable (e.g. site or global scope) unicast address. If the address
is not a valid unicast address, the messages is discarded and further is not a valid unicast address, the message is discarded and further
processing stopped. processing stopped.
ThisNode also checks whether AddBlk.OrigNode.Address is an address ThisNode also 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.
ThisNode checks if the AddBlk.TargetNode.Address is a valid multihop- ThisNode checks if the AddBlk.TargetNode.Address is a valid multihop-
capable unicast address. If the address is not a valid unicast capable unicast address. If the address is not a valid unicast
address, the messages is discarded and further processing stopped. address, the message is discarded and further processing stopped.
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 with a valid Route.SeqNum does not exist, then the new a route with a valid Route.SeqNum does not exist, then the new
routing information is considered fresh and a new route table entry routing information is considered superior and a new route table
is created and updated as described in Section 5.2.2. If a route entry is created and updated as described in Section 5.2.2. If a
table entry does exists and it has a valid Route.SeqNum, the incoming route table entry does exists and it has a known Route.SeqNum, the
routing information is compared with the route table entry following incoming routing information is compared with the route table entry
the procedure described in Section 5.2.1. If the incoming routing following the procedure described in Section 5.2.1. If the incoming
information is considered superior, the route table entry is updated routing information is considered superior, the route table entry is
as described in Section 5.2.2. updated as described in Section 5.2.2.
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 MAY be AddTLV.Dist information, the AddTLV.Dist information MAY be
incremented. The updated Distance value will influence judgment of incremented. If the resulting Distance value for the OrigNode is
the routing information (Section 5.2.1). greater than 65,535, the message is discarded. If the resulting
Distance value for another node is greater than 65,535, the
If the resulting Distance value for the OrigNode is greater than associated address and its information are removed from the RM. The
65,535, the message is discarded. If the resulting Distance value updated Distance value will influence judgment of the routing
for another node is greater than 65,535, the associated address and information (Section 5.2.1).
its information are removed from the RM.
After handling the OrigNode's routing information, then each address After handling the OrigNode's routing information, then each address
that is not the TargetNode MAY be considered for creating and that is not the TargetNode MAY be considered for creating and
updating routes. Creating and updating routes to other nodes can updating routes. Creating and updating routes to other nodes can
eliminate RREQ for those IP destinations, in the event that data eliminate RREQ for those IP destinations, in the event that data
needs to be forwarded to the IP destination(s) now or in the near needs to be forwarded to the IP destination(s) now or in the near
future. future.
For each of the additional addresses considered, ThisNode first For each of the additional addresses considered, ThisNode first
checks the that the address is a multihop-capable unicast address. checks the that the address is a multihop-capable unicast address.
If the address is not a unicast address, the address and all related If the address is not a unicast address, the address and all related
information MUST be removed. information MUST be removed.
If the routing table does not have a matching route with a valid If the routing table does not have a matching route with a known
Route.SeqNum for this additional address using longest-prefix Route.SeqNum for this additional address using longest-prefix
matching, then a route is created and updated as described in matching, then a route is created and updated as described in
Section 5.2.2. If a route table entry exists with a valid Section 5.2.2. If a route table entry exists with a known
Route.SeqNum, the incoming routing information is compared with the Route.SeqNum, the incoming routing information is compared with the
route table entry following the procedure described in Section 5.2.1. route table entry following the procedure described in Section 5.2.1.
If the incoming routing information is considered superior, the route If the incoming routing information is considered superior, the route
table entry is updated as described in Section 5.2.2. table entry is updated as described in Section 5.2.2.
If the routing information for an AdditionalNode.Address is not If the routing information for an AdditionalNode.Address is not
considered superior, then it is removed from the RM. Removing this considered superior, then it is removed from the RM. Removing this
information ensures that the information is not propagated. information ensures that the information is not 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
skipping to change at page 24, line 9 skipping to change at page 24, line 20
If the resulting Distance value for the OrigNode is greater than If the resulting Distance value for the OrigNode is greater than
65,535, the message is discarded. If the resulting Distance value 65,535, the message is discarded. If the resulting Distance value
for another node is greater than 65,535, the associated address and for another node is greater than 65,535, the associated address and
its information are removed from the RM. its information are removed from the RM.
Next, the MsgHdr.HopLimit is decremented by one (1). If this RM's Next, the MsgHdr.HopLimit is decremented by one (1). If this RM's
MsgHdr.HopLimit is greater than or equal to one (1), ThisNode is not MsgHdr.HopLimit is greater than or equal to one (1), ThisNode is not
the TargetNode, AND this RM is a RREQ, then the current RM (altered the TargetNode, AND this RM is a RREQ, then the current RM (altered
by the procedure defined above) SHOULD be sent to the by the procedure defined above) SHOULD be sent to the
IP.DestinationAddress LL-MANET-ROUTERS [RFC5498]. If the RREQ is IP.DestinationAddress LL-MANET-Routers [RFC5498]. If the RREQ is
unicast, the IP.DestinationAddress is set to the NextHopAddress. unicast, the IP.DestinationAddress is set to the NextHopAddress.
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 RREP, then the ThisNode is not the TargetNode, AND this RM is a RREP, then the
current RM is sent to the Route.NextHopAddress for the RREP's current RM is sent to the Route.NextHopAddress for the RREP's
TargetNode.Address. If no forwarding route exists to Target.Address, TargetNode.Address. If no forwarding route exists to
then a RERR SHOULD be issued to the OrigNode of the RREP. TargetNode.Address, then a RERR SHOULD be issued to the OrigNode of
the RREP.
By sending the updated RM ThisNode is advertising that it will By sending the updated RM ThisNode is advertising that it will
provide routing for addresses contained in the outgoing RM based on provide routing for addresses contained in the outgoing RM based on
the information enclosed. ThisNode MAY choose not to send the RM, the information enclosed. ThisNode MAY choose not to send the RM,
though not resending this RM could decrease connectivity in the though not resending this RM could decrease connectivity in the
network or result in a non-shortest distance path. network or result in a non-shortest distance path.
Some examples of why ThisNode might choose to not re-issue a RM are: Some examples of why ThisNode might choose to not re-issue a RM are:
if ThisNode does not want to advertise routing for the contained if ThisNode does not want to advertise routing for the contained
addresses because it is already heavily loaded; if ThisNode has addresses because it is already heavily loaded; if ThisNode has
skipping to change at page 24, line 40 skipping to change at page 24, line 52
control message sending or packet forwarding. These types of control message sending or packet forwarding. These types of
advanced behavior are not defined in this specification. advanced behavior are not defined in this specification.
5.3.5. Adding Additional Routing Information to a RM 5.3.5. Adding Additional Routing Information to a RM
Appending routing information can alleviate route discovery attempts Appending routing information can alleviate route discovery attempts
to the nodes whose information is included, if other DYMO routers use to the nodes whose information is included, if other DYMO routers use
this information to update their routing tables. this information to update their routing tables.
DYMO routers can append routing information to a RM. This option DYMO routers can append routing information to a RM. This option
(APPEND_INFORMATION) should be administratively configurable or (APPEND_INFORMATION) SHOULD be administratively configurable or
intelligently controlled. intelligently controlled.
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. If
OwnSeqNum is not incremented the appended routing information might OwnSeqNum is not incremented the appended routing information might
not be considered superior, when received by nodes with existing not be considered superior, when received by nodes with existing
routing information. Incrementation of the sequence number when routing information. Incrementation of the sequence number when
appending information to an RM in transit (APPEND_INFORMATION_SEQNUM) appending information to a RM in transit (APPEND_INFORMATION_SEQNUM)
should be administratively configurable or intelligently controlled. SHOULD be administratively configurable or intelligently controlled.
Note that, during handling of this RM OwnSeqNum may have already been
incremented; and in this case OwnSeqNum need not be incremented
again.
If an address controlled by this DYMO router includes ThisNode.Dist, If an address controlled by this DYMO router includes ThisNode.Dist,
it is set to a number greater than zero (0). it is set to a number greater than zero (0).
For added addresses (and their prefixes) not controlled by this DYMO For added addresses (and their prefixes) not controlled by this DYMO
router, Route.Dist can be included if known. If Route.Dist is not router, Route.Dist can be included if known. If Route.Dist is not
known, it MUST NOT be included. known, it MUST NOT be included.
MaxAge information about the appended address(es) MUST be included. The VALIDITY_TIME of routing information for appended address(es)
MUST be included, to inform routers about when to delete this
information. The VALIDITY_TIME TLV is defined in Section 7.3.
Additional information (e.g. SeqNum and Dist) about any appended Additional information (e.g. SeqNum and Dist) about any appended
address(es) SHOULD be included. address(es) SHOULD be included.
Note that, the routing information about the TargetNode MUST NOT be Note that the routing information about the TargetNode MUST NOT be
added. Also, duplicate address entries SHOULD NOT be added. added. Also, duplicate address entries SHOULD NOT be added.
Instead, only the best routing information (Section 5.2.1) for a Instead, only the best routing information (Section 5.2.1) for a
particular address SHOULD be included. particular address SHOULD be included.
5.4. Route Discovery 5.4. Route Discovery
When a source's DYMO router needs to forward a data packet on behalf When a source's DYMO router needs to forward a data packet on behalf
of an attached node and it does not have a forwarding route to the of an attached node and it does not have a forwarding route to the
data packet's unicast IP destination address, ThisNode sends a RREQ data packet's unicast IP destination address, ThisNode sends a RREQ
(described in Section 5.3.1) to discover a route to the particular (described in Section 5.3.1) to discover a route to the particular
skipping to change at page 26, line 11 skipping to change at page 26, line 30
router. This buffer SHOULD have a fixed limited size router. This buffer SHOULD have a fixed limited size
(BUFFER_SIZE_PACKETS or BUFFER_SIZE_BYTES) and older data packets (BUFFER_SIZE_PACKETS or BUFFER_SIZE_BYTES) and older data packets
SHOULD be discarded first. SHOULD be discarded first.
Buffering of data packets can have both positive and negative Buffering of data packets can have both positive and negative
effects, and therefore buffer settings (BUFFER_DURING_DISCOVERY) effects, and therefore buffer settings (BUFFER_DURING_DISCOVERY)
SHOULD be administratively configurable or intelligently controlled. SHOULD be administratively configurable or intelligently controlled.
If a route discovery attempt has failed (i.e. an attempt or multiple If a route discovery attempt has failed (i.e. an attempt or multiple
attempts have been made without receiving a RREP) to find a route to attempts have been made without receiving a RREP) to find a route to
the TargetNode, any data packets buffered for for the corresponding the TargetNode, any data packets buffered for the corresponding
TargetNode are dropped and a Destination Unreachable ICMP message TargetNode are dropped and a Destination Unreachable ICMP message
SHOULD be delivered to the source. SHOULD be delivered to the source.
5.5. Route Maintenance 5.5. Route Maintenance
A RERR SHOULD be issued if a data packet is to be forwarded and it A RERR SHOULD be issued if a data packet is to be forwarded and it
cannot be delivered to the next-hop because no forwarding route for cannot be delivered to the next-hop because no forwarding route for
the IP.DestinationAddress exists; RERR generation is described in the IP.DestinationAddress exists; RERR generation is described in
Section 5.5.3. Section 5.5.3.
Upon this condition, an ICMP Destination Unreachable message SHOULD Upon this condition, an ICMP Destination Unreachable message SHOULD
NOT be generated unless this router is responsible for the NOT be generated unless this router is responsible for the
IP.DestinationAddress and that IP.DestinationAddress is known to be IP.DestinationAddress and that IP.DestinationAddress is known to be
unreachable. unreachable.
In addition to inability to forward a data packet, a RERR SHOULD be In addition to inability to forward a data packet, a RERR SHOULD be
issued immediately after detecting a broken link (see Section 5.5.1) issued immediately after detecting a broken link (see Section 5.5.1)
of a forwarding route to quickly notify DYMO routers that a that of a forwarding route to quickly notify DYMO routers that certain
certain routes are no longer available. If a newly unavailable route routes are no longer available. If a newly unavailable route has not
has not been used recently (indicated by ROUTE_USED), the RERR SHOULD been used recently (indicated by ROUTE_USED), the RERR SHOULD NOT be
NOT be generated. generated.
5.5.1. Active Next-hop Router Adjacency Monitoring 5.5.1. Active Next-hop Router Adjacency Monitoring
Nodes MUST monitor connectivity to adjacent next-hop DYMO routers on Nodes MUST monitor connectivity to adjacent next-hop DYMO routers on
forwarding routes. This monitoring can be accomplished by one or forwarding routes. This monitoring can be accomplished by one or
several mechanisms, including: several mechanisms, including:
o Neighborhood discovery [I-D.ietf-manet-nhdp] o Neighborhood discovery [I-D.ietf-manet-nhdp]
o Route timeout o Route timeout
o Lower layer feedback that a particular adjacent router is no o Lower layer feedback that a particular adjacent router is no
longer reachable longer reachable
o Other monitoring mechanisms or heuristics o Other monitoring mechanisms or heuristics
Upon determining that a next-hop DYMO router is unreachable, ThisNode Upon determining that a next-hop DYMO router is unreachable, ThisNode
MUST remove the affected forwarding routes (those with an unreachable MUST remove the affected forwarding routes (those with an unreachable
next-hop) and unset the Route.Forwarding flag. ThisNode also flags next-hop) and unset the Route.Forwarding flag. ThisNode also flags
the associated routes in DYMO's routing table as Broken. For each the associated routes in DYMO's routing table as Broken. For each
broken route a timer for ROUTE_DELETE is set to ROUTE_DELETE_TIMEOUT. broken route the timer for ROUTE_DELETE is set to
ROUTE_DELETE_TIMEOUT.
5.5.2. Updating Route Lifetimes During Packet Forwarding 5.5.2. Updating Route Lifetimes During Packet Forwarding
To avoid removing the forwarding route to reach the IP.SourceAddress, To avoid removing the forwarding route to reach the IP.SourceAddress,
ThisNode SHOULD set a timeout (ROUTE_USED) to ROUTE_USED_TIMEOUT for ThisNode SHOULD set a timeout (ROUTE_USED) to ROUTE_USED_TIMEOUT for
the route to the IP.SourceAddress upon receiving a data packet. If a the route to the IP.SourceAddress upon receiving a data packet. If
timer for ROUTE_DELETE is set, it is removed. the timer for ROUTE_DELETE is set, it is removed.
To avoid removing the forwarding route to the IP.DestinationAddress To avoid removing the forwarding route to the IP.DestinationAddress
that is being used, ThisNode SHOULD set a timeout (ROUTE_USED) to that is being used, ThisNode SHOULD set a timeout (ROUTE_USED) to
ROUTE_USED_TIMEOUT for the route to the IP.DestinationAddress upon ROUTE_USED_TIMEOUT for the route to the IP.DestinationAddress upon
sending a data packet. If a timer for ROUTE_DELETE is set, it is sending a data packet. If the timer for ROUTE_DELETE is set, it is
removed. removed.
5.5.3. RERR Generation 5.5.3. RERR Generation
A RERR informs DYMO routers that a route to certain destinations is A RERR informs DYMO routers that a route to certain destinations is
not available through ThisNode. not available through ThisNode.
When creating a new RERR, the address of first UnreachableNode When creating a new RERR, the address of the first UnreachableNode
(IP.DestinationAddress from a data packet or RREP.TargetNode.Address) (IP.DestinationAddress from a data packet or RREP.TargetNode.Address)
is inserted into an Address Block AddBlk.UnreachableNode.Address. If is inserted into an Address Block AddBlk.UnreachableNode.Address. If
a prefix is known for the UnreachableNode.Address, it SHOULD be a prefix is known for the UnreachableNode.Address, it SHOULD be
included. Otherwise, the UnreachableNode.Address assumed to be a included. Otherwise, the UnreachableNode.Address is assumed to be a
host address with a full length prefix. If a value for the host address with a full length prefix. If a value for the
UnreachableNode's SeqNum (UnreachableNode.AddTLV.SeqNum) is known, it UnreachableNode's SeqNum (UnreachableNode.AddTLV.SeqNum) is known, it
SHOULD be placed in the RERR. The MsgHdr.HopLimit is set to SHOULD be placed in the RERR. The MsgHdr.HopLimit is set to
MSG_HOPLIMIT. MSG_HOPLIMIT.
Additional UnreachableNodes that require the same unavailable link Additional UnreachableNodes that require the same unavailable link
(routes with the same Route.NextHopAddress and (routes with the same Route.NextHopAddress and
Route.NextHopInterface) SHOULD be added to the RERR, as additional Route.NextHopInterface) SHOULD be added to the RERR, as additional
AddBlk.UnreachableNode.Address entries with their associated prefix. AddBlk.UnreachableNode.Address entries with their associated prefix.
The SeqNum if known SHOULD also be included. Appending The SeqNum if known SHOULD also be included. Appending
skipping to change at page 28, line 6 skipping to change at page 28, line 26
If SeqNum information is not known or not included in the RERR, all If SeqNum information is not known or not included in the RERR, all
nodes handling the RERR will assume their routing information nodes handling the RERR will assume their routing information
associated with the UnreachableNode is no longer valid and flag those associated with the UnreachableNode is no longer valid and flag those
routes as broken. routes as broken.
Each DYMO routing protocol message SHOULD contain ThisNode.DID's Each DYMO routing protocol message SHOULD contain ThisNode.DID's
value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero value in a message TLV (MsgTLV.DID). If ThisNode.DID value is zero
(0) it MAY be omitted. (0) it MAY be omitted.
A multicast RERR is sent to the IP.DestinationAddress LL-MANET- A multicast RERR is sent to the IP.DestinationAddress LL-MANET-
ROUTERS [RFC5498]. Sending the RERR to the LL-MANET-ROUTERS address Routers [RFC5498]. Sending the RERR to the LL-MANET-Routers address
notifies all nearby DYMO routers that might depend on the now broken notifies all nearby DYMO routers that might depend on the now broken
link. If the RERR is unicast, the IP.DestinationAddress is set to link. If the RERR is unicast, the IP.DestinationAddress is set to
the NextHopAddress. the NextHopAddress.
At this point, the packet or message that forced generation of this At this point, the packet or message that forced generation of this
RERR SHOULD be discarded. RERR SHOULD be discarded.
5.5.4. RERR Handling 5.5.4. RERR Handling
First, ThisNode decides whether to handle this message. If the First, ThisNode examines the RM to ensure that it contains the
required information: MsgHdr.HopLimit and
AddBlk.UnreachableNode.Address. If the required information do not
exist, the message is discarded and further processing stopped.
Next, ThisNode decides whether to handle this message. If the
message contains a MsgTLV.DID it SHOULD match ThisNode.DID's value. message contains a MsgTLV.DID it SHOULD match ThisNode.DID's value.
If the message does not contain a MsgTLV.DID it is assumed to be zero If the message does not contain a MsgTLV.DID it is assumed to be zero
(0) and SHOULD be discarded if ThisNode.DID's value is not zero (0). (0) and SHOULD be discarded if ThisNode.DID's value is not zero (0).
Next, ThisNode MAY selectively handle messages based upon information Next, ThisNode MAY selectively handle messages based upon information
in the message. ThisNode MAY choose to only handle messages from in the message. ThisNode MAY choose to only handle messages from
adjacent DYMO routers. If ThisNode chooses not to handle this adjacent DYMO routers. If ThisNode chooses not to handle this
message, the message is discarded and further processing stopped. message, the message is discarded and further processing stopped.
When a DYMO router handles a RERR, it examines each UnreachableNode's When a DYMO router handles a RERR, it examines each UnreachableNode's
information. The attending DYMO router removes the forwarding route, information. The attending DYMO router removes the forwarding route,
unsets the Route.Forwarding flag, sets the Route.Broken flag, and a unsets the Route.Forwarding flag, sets the Route.Broken flag, and the
timer for ROUTE_DELETE is set to ROUTE_DELETE_TIMEOUT for each 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 multihop-capable unicast 1. The UnreachableNode.Address is a multihop-capable unicast
address. 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 handling if Route.SeqNum is zero (0) or unknown and During handling if Route.SeqNum is zero (0) or unknown and
UnreachableNode.SeqNum exists in the RERR, then Route.SeqNum MAY be UnreachableNode.SeqNum exists in the RERR and is not zero (0), then
set to UnreachableNode.SeqNum. Setting Route.SeqNum can reduce Route.SeqNum MAY be set to UnreachableNode.SeqNum. Setting
future RRER handling and forwarding. Route.SeqNum can reduce future RERR handling 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. in any benefit.
Each UnreachableNode that did result in a broken route SHOULD remain Each UnreachableNode that did result in a broken route SHOULD remain
in the RERR. in the RERR.
If any UnreachableNode was removed, all other information (AddTLVs) If any UnreachableNode was removed, all other information (AddTLVs)
associated with the removed address(es) MUST also removed. associated with the removed address(es) MUST also be removed.
After handling if Route.SeqNum is known and an UnreachableNode.SeqNum After handling if Route.SeqNum is known and an UnreachableNode.SeqNum
is not included in the RERR, then Route.SeqNum (i.e. is not included in the RERR, then Route.SeqNum (i.e.
UnreachableNode.SeqNum) MAY be added to the RERR. Including UnreachableNode.SeqNum) MAY be added to the RERR. Including
UnreachableNode.SeqNum can reduce future RRER handling and UnreachableNode.SeqNum can reduce future RERR handling and
forwarding. forwarding.
If no UnreachableNode addresses remain in the RERR, no other handling If no UnreachableNode addresses remain in the RERR, no other handling
is required and the RERR is discarded. is required and the RERR is discarded.
If handling continues, the MsgHdr.HopLimit is decremented by one (1). If handling continues, the MsgHdr.HopLimit is decremented by one (1).
Further, if this RERR's new MsgHdr.HopLimit is greater than one (1) Further, if this RERR's new MsgHdr.HopLimit is greater than one (1)
and at least one unreachable node address remains in the RERR, then and at least one unreachable node address remains in the RERR, then
the updated RERR SHOULD be sent. the updated RERR SHOULD be sent.
A multicast RERR is sent to the IP.DestinationAddress LL-MANET- A multicast RERR is sent to the IP.DestinationAddress LL-MANET-
ROUTERS [RFC5498]. If the RERR is unicast, the IP.DestinationAddress Routers [RFC5498]. If the RERR is unicast, the IP.DestinationAddress
is set to the NextHopAddress. is set to the NextHopAddress.
5.6. DYMO Identifier (DID) 5.6. DYMO Identifier (DID)
Each DYMO routing protocol process MUST have an associated DYMO Each DYMO routing protocol process MUST have an associated DYMO
Identifier (DID). The DID allows multiple DYMO routing protocol Identifier (DID). The DID allows multiple DYMO routing protocol
processes to operate over the same links and on the same device processes to operate over the same links and on the same device
independently. This function may also be used to administratively independently. This function may also be used to administratively
separate DYMO processes with incompatible options, timers, or separate DYMO processes with incompatible options, timers, or
extensions. extensions.
skipping to change at page 29, line 50 skipping to change at page 30, line 29
[I-D.ietf-ospf-multi-instance], OSPF Area ID [RFC2328] [RFC5340], [I-D.ietf-ospf-multi-instance], OSPF Area ID [RFC2328] [RFC5340],
and/or the MANET_ID TLV [I-D.chakeres-manet-manetid]. and/or the MANET_ID TLV [I-D.chakeres-manet-manetid].
All DYMO routers with the same DID that come in contact with each All DYMO routers with the same DID that come in contact with each
other MUST operate with a compatible set of configuration options, other MUST operate with a compatible set of configuration options,
timing parameters (see Section 6), and protocol extensions. In cases timing parameters (see Section 6), and protocol extensions. In cases
with non-default options, the DID value SHOULD be administratively with non-default options, the DID value SHOULD be administratively
chosen. chosen.
The default DID value is zero (0), and using this value requires that The default DID value is zero (0), and using this value requires that
the implementation utilize options and timing parameters compatibly the implementation utilize options and timing parameters compatible
with those defined in Section 6. with those defined in Section 6.
Each DYMO routing protocol message sent MUST contain its associated Each DYMO routing protocol message sent MUST contain its associated
DID in a message TLV; unless the DID value is zero (0), in which case DID in a message TLV; unless the DID value is zero (0), in which case
it MAY be omitted. it MAY be omitted.
Upon receipt of DYMO protocol message a DYMO routing protocol process Upon receipt of DYMO protocol message a DYMO routing protocol process
SHOULD only process messages with a DID (MsgTLV.DID) value matching SHOULD only process messages with a DID (MsgTLV.DID) value matching
its own DID (ThisNode.DID). its own DID (ThisNode.DID).
5.7. Unknown Message & TLV Types 5.7. 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
discarded. discarded.
For handling of messages that contain unknown TLV types, the default For handling of messages that contain unknown TLV types, the default
behavior is to leave the information in control messages unmodified. behavior is to leave the information in control messages unmodified.
Although, this behavior (UNKNOWN_TYPES) MAY be be administratively Although, this behavior (UNKNOWN_TYPES) MAY be administratively
controlled. controlled.
5.8. Advertising Network Addresses 5.8. Advertising Network Addresses
DYMO routers specify the prefix length for each advertised address. DYMO routers specify the prefix length for each advertised address.
Any nodes (other than the advertising DYMO router) within the Any nodes (other than the advertising DYMO router) within the
advertised prefix MUST NOT participate in the DYMO protocol directly. advertised prefix MUST NOT participate in the DYMO protocol directly.
For example, advertising 192.0.2.1 with a prefix length of 24 For example, advertising 192.0.2.1 with a prefix length of 24
indicates that all nodes with the matching 192.0.2.X are reachable indicates that all nodes with the matching 192.0.2.X are reachable
through this DYMO router. through this DYMO router.
5.9. Simple Internet Attachment 5.9. Simple Internet Attachment
Simple Internet attachment consists of a stub network of DYMO routers Simple Internet attachment consists of a stub network of DYMO routers
connected to the Internet via a single Internet DYMO router (IDR). connected to the Internet via a single Internet DYMO router (IDR).
The Internet may be connected via multiple DYMO routers, but such
behavior is not specified in this document.
The IDR is responsible for responding to RREQs for DYMO routers on DYMO routers, and hosts behind these routers, wishing to be reachable
behalf of addresses on the Internet, as well as discovering routes to from hosts on the Internet MUST have IP addresses within the IDR's
addresses within the DYMO Region on behalf of nodes on the Internet. routable and topologically correct prefix (e.g. 192.0.2.0/24).
The IDR is responsible for generating RREQ to find nodes within the
DYMO Region on behalf of nodes on the Internet, as well as responding
to route requests from the DYMO region on behalf of the nodes on the
Internet.
/--------------------------\ /--------------------------\
/ Internet \ / Internet \
\ / \ /
\------------+-------------/ \------------+-------------/
| |
Routable & | Routable & |
Topologically | 192.0.2.0/24 Topologically |
Correct | Correct |
Prefix | Prefix |
+-----+------+ +-----+------+
| Internet | | Internet |
/------| DYMO |-------\ /------| DYMO |-------\
/ | Router | \ / | Router | \
/ |192.0.2.1/32| \ / |192.0.2.1/32| \
| |Responsible | |
| | for | |
| |DYMO Region | |
| |192.0.2.0/24| |
| +------------+ | | +------------+ |
| DYMO Region |
| |
| +--------------+ | | +--------------+ |
| | DYMO Router | | | | DYMO Router | |
| | 192.0.2.2/32| | | | 192.0.2.2/32 | |
| +--------------+ | | +--------------+ |
| +--------------+ | | +--------------+ |
| | DYMO Router | | | | DYMO Router | |
| | 192.0.2.3/32| | | | 192.0.2.3/32 | |
\ +--------------+ / \ +--------------+ /
\ / \ /
\---------------------------/ \---------------------------/
Figure 3: Simple Internet Attachment Example Figure 3: Simple Internet Attachment Example
DYMO routers, and hosts behind these routers, wishing to be reachable When a DYMO router within the DYMO Region wants to discover a route
from hosts on the Internet MUST have IP addresses within the IDR's to a node on the Internet, it uses the normal DYMO route discovery
routable and topologically correct prefix (e.g. 192.0.2.0/24). Given for that IP Destination Address. The IDR is responsible for properly
a node in the DYMO Region with a routeable address handled by the responding to RREQ on behalf of the Internet destination.
IDR, the IDR is responsible for discovering routes and forwarding
packets received from the Internet destined for these nodes inside
the DYMO Region prefix(es). The IDR SHOULD advertize the largest
known prefix for any addresses on the Internet, when advertising
routing information in RMs.
When a DYMO router within the DYMO Region wants to forward packets to When a packet from a node on the Internet destine for a node in the
a node on the Internet, they simply issue RREQ for those IP DYMO region reaches the IDR, if the IDR does not have a route to that
Destination Addresses; using normal DYMO route discovery. The IDR is destination it will perform normal DYMO route discovery for that
responsible for properly responding to RREQ on behalf of the Internet destination.
destinations.
5.10. Multiple Interfaces 5.10. Multiple Interfaces
DYMO may be used with multiple interfaces; therefore, the particular DYMO may be used with multiple interfaces; therefore, the particular
interface over which packets arrive MUST be known whenever a packet interface over which packets arrive MUST be known whenever a packet
is received. Whenever a new route is created, the interface through is received. Whenever a new route is created, the interface through
which the Route.Address can be reached is also recorded in the route which the Route.Address can be reached is also recorded in the route
table entry. table entry.
When multiple interfaces are available, a node transmitting a When multiple interfaces are available, a node transmitting a
multicast packet with IP.DestinationAddress set to LL-MANET-ROUTERS multicast packet with IP.DestinationAddress set to LL-MANET-Routers
SHOULD send the packet on all interfaces that have been configured SHOULD send the packet on all interfaces that have been configured
for DYMO operation. for DYMO operation.
Similarly, DYMO routers should subscribe to LL-MANET-ROUTERS on all Similarly, DYMO routers should subscribe to LL-MANET-Routers on all
their DYMO interfaces. their DYMO interfaces.
5.11. DYMO Control Packet/Message Generation Limits 5.11. DYMO Control Packet/Message Generation Limits
To ensure predictable control overhead, DYMO router's rate of packet/ To ensure predictable control overhead, DYMO router's rate of packet/
message generation SHOULD be limited. The rate and algorithm for message generation SHOULD be limited. The rate and algorithm for
limiting messages (CONTROL_TRAFFIC_LIMITS) is left to the implementor limiting messages (CONTROL_TRAFFIC_LIMITS) is left to the implementor
and should be administratively configurable or intelligently and should be administratively configurable or intelligently
controlled. DYMO control messages SHOULD be discarded in the controlled. DYMO control messages SHOULD be discarded in the
following order of preferences RREQ, RREP, and finally RERR. following order of preferences RREQ, RREP, and finally RERR.
skipping to change at page 33, line 44 skipping to change at page 34, line 39
topology changes the DYMO parameters should be adjusted using either topology changes the 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_USED_TIMEOUT may in networks with infrequent topology changes ROUTE_USED_TIMEOUT may
be set to a much larger value. be set to a much larger value.
Default Parameter Values Default Parameter Values
+------------------------+-------+----------------------------------+ +------------------------+-------+----------------------------------+
| Name | Value | Description | | Name | Value | Description |
+------------------------+-------+----------------------------------+ +------------------------+-------+----------------------------------+
| MSG_HOPLIMIT | 10 | This value should be larger than | | MSG_HOPLIMIT | 10 | This value MUST be larger than |
| | hops | the DYMO network diameter. If | | | hops | the DYMO network diameter. |
| | | this value is not large enough, | | | | Otherwise, routing messages may |
| | | routing messages may not reach | | | | not reach their intended |
| | | their intended destinations. | | | | destinations. |
| DISCOVERY_ATTEMPTS_MAX | 3 | The number of route discovery | | DISCOVERY_ATTEMPTS_MAX | 3 | The number of route discovery |
| | | attempts to make before | | | | attempts to make before |
| | | indicating that a particular | | | | indicating that a particular |
| | | address is not reachable. | | | | address is not reachable. |
+------------------------+-------+----------------------------------+ +------------------------+-------+----------------------------------+
Table 4 Table 4
In addition to the above parameters and timing values, several In addition to the above parameters and timing values, several
administrative options exist. These options have no influence on administrative options exist. These options have no influence on
skipping to change at page 34, line 40 skipping to change at page 35, line 31
| | routing information to a RM. | | | routing information to a RM. |
| BUFFER_DURING_DISCOVERY | Whether and how much data to buffer | | BUFFER_DURING_DISCOVERY | Whether and how much data to buffer |
| | during route discovery. | | | during route discovery. |
| APPEND_EXTRA_UNREACHABLE | Whether to append additional | | APPEND_EXTRA_UNREACHABLE | Whether to append additional |
| | Unreachable information to RERR. | | | Unreachable information to RERR. |
| UNKNOWN_TYPES | What action to take when an unknown | | UNKNOWN_TYPES | What action to take when an unknown |
| | TLV type is received. The default | | | TLV type is received. The default |
| | action is to forward this information | | | action is to forward this information |
| | unmodified. Another action would be | | | unmodified. Another action would be |
| | to remove this information. | | | to remove this information. |
| CONTROL_TRAFFIC_LIMITS | DYMO control messaging should be | | CONTROL_TRAFFIC_LIMITS | DYMO control messaging SHOULD be |
| | limited to avoid consuming all the | | | limited to avoid consuming all the |
| | network bandwidth. | | | network bandwidth. |
+---------------------------+---------------------------------------+ +---------------------------+---------------------------------------+
Table 5 Table 5
Note: several fields have limited size (bits or bytes) these sizes Note: several fields have limited size (bits or bytes) these sizes
and their encoding may place specific limitations on the values that and their encoding may place specific limitations on the values that
can be set. For example, MsgHdr.HopLimit is a 8-bit field and can be set. For example, MsgHdr.HopLimit is a 8-bit field and
therefore MSG_HOPLIMIT cannot be larger than 255. therefore MSG_HOPLIMIT cannot be larger than 255.
7. IANA Considerations 7. IANA Considerations
In its default mode of operation, DYMO uses the UDP port MANET In its default mode of operation, DYMO uses the UDP port MANET
[RFC5498] to carry protocol packets. DYMO also uses the link-local [RFC5498] to carry protocol packets. DYMO also uses the link-local
multicast address LL-MANET-ROUTERS [RFC5498]. multicast address LL-MANET-Routers [RFC5498].
This section specifies several messages types, message tlv-types, and This section specifies several message types, message tlv-types, and
address tlv-types. address tlv-types.
7.1. DYMO Message Types Specification 7.1. DYMO Message Types Specification
DYMO Message Types DYMO Message Types
+------------------------+----------+ +------------------------+----------+
| Name | Type | | Name | Type |
+------------------------+----------+ +------------------------+----------+
| Route Request (RREQ) | 10 - TBD | | Route Request (RREQ) | 10 - TBD |
skipping to change at page 36, line 25 skipping to change at page 37, line 25
| DYMO Sequence | 10 - TBD | up to 2 | The DYMO sequence num | | DYMO Sequence | 10 - TBD | up to 2 | The DYMO sequence num |
| Number | | octets | associated with this | | Number | | octets | associated with this |
| (DYMOSeqNum) | | | address. The sequence | | (DYMOSeqNum) | | | address. The sequence |
| | | | number may be the last | | | | | number may be the last |
| | | | known sequence number. | | | | | known sequence number. |
| Distance | 11 - TBD | up to 2 | A metric of the distance | | Distance | 11 - TBD | up to 2 | A metric of the distance |
| | | octets | traversed by the | | | | octets | traversed by the |
| | | | information associated | | | | | information associated |
| | | | with this address. | | | | | with this address. |
| VALIDITY_TIME | TBD | | The maximum amount of | | VALIDITY_TIME | TBD | | The maximum amount of |
| - AKA MaxAge | [RFC5497] | | time that information can | | | [RFC5497] | | time that information can |
| | | | be maintained before | | | | | be maintained before |
| | | | being deleted. The | | | | | being deleted. The |
| | | | VALIDITY_TIME TLV is | | | | | VALIDITY_TIME TLV is |
| | | | defined in [RFC5497]. | | | | | defined in [RFC5497]. |
+---------------+-----------+-----------+---------------------------+ +---------------+-----------+-----------+---------------------------+
Table 8 Table 8
8. Security Considerations 8. Security Considerations
This document does not mandate any specific security measures. The objective of the DYMO protocol is for each router to communicate
reachability information to addresses for which it is responsible.
Positive routing information (i.e. a route exists) is distributed via
RMs and negative routing information (i.e. a route does not exist)
via RERRs. DYMO routers that handle these messages store the
contained information to properly forward data packets, and they
generally provide this information to other DYMO routers.
This section does not mandate any specific security measures.
Instead, this section describes various security considerations and Instead, this section describes various security considerations and
potential avenues to secure DYMO routing. potential avenues to secure DYMO routing.
The most important security mechanisms for DYMO routing are The most important security mechanisms for DYMO routing are
integrity/authentication and confidentiality. integrity/authentication and confidentiality.
In situations where routing information or router identity are In situations where routing information or router identity are
suspect, integrity and authentication techniques SHOULD be applied to suspect, integrity and authentication techniques SHOULD be applied to
DYMO messages. In these situations, routing information that is DYMO messages. In these situations, routing information that is
distributed over multiple hops SHOULD also verify the integrity and distributed over multiple hops SHOULD also verify the integrity and
identity of information based on originator of the routing identity of information based on originator of the routing
information. information.
A digital signature could be used to identify the source of DYMO A digital signature could be used to identify the source of DYMO
messages and information, along with its authenticity. A nonce or messages and information, along with its authenticity. A nonce or
timestamp SHOULD also be used to protect against replay attacks. timestamp SHOULD also be used to protect against replay attacks.
S/MIME and OpenPGP are two authentication/integrity protocols that S/MIME and OpenPGP are two authentication/integrity protocols that
could be adapted for this purpose. could be adapted for this purpose.
In situations where confidentiality of DYMO messages is important, In situations where confidentiality of DYMO messages is important,
cryptographic techniques SHOULD be applied. cryptographic techniques can be applied.
In certain situations, like sending a RREP or RERR, a DYMO router In certain situations, like sending a RREP or RERR, a DYMO router
could include proof that it has previously received valid routing could include proof that it has previously received valid routing
information to reach the destination, at one point of time in the information to reach the destination, at one point of time in the
past. In situations where routers are suspected of transmitting past. In situations where routers are suspected of transmitting
maliciously erroneous information, the original routing information maliciously erroneous information, the original routing information
along with its security credentials SHOULD be included. along with its security credentials SHOULD be included.
Note that if multicast is used, any confidentiality and integrity Note that if multicast is used, any confidentiality and integrity
algorithms used must permit multiple receivers to handle the message. algorithms used must permit multiple receivers to handle the message.
skipping to change at page 38, line 23 skipping to change at page 39, line 31
10.2. Informative References 10.2. Informative References
[I-D.chakeres-manet-manetid] [I-D.chakeres-manet-manetid]
Chakeres, I., "MANET_ID TLV", Chakeres, I., "MANET_ID TLV",
draft-chakeres-manet-manetid-03 (work in progress), draft-chakeres-manet-manetid-03 (work in progress),
February 2008. February 2008.
[I-D.ietf-manet-nhdp] [I-D.ietf-manet-nhdp]
Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc
Network (MANET) Neighborhood Discovery Protocol (NHDP)", Network (MANET) Neighborhood Discovery Protocol (NHDP)",
draft-ietf-manet-nhdp-11 (work in progress), October 2009. draft-ietf-manet-nhdp-12 (work in progress), March 2010.
[I-D.ietf-ospf-multi-instance] [I-D.ietf-ospf-multi-instance]
Lindem, A., Roy, A., and S. Mirtorabi, "OSPF Multi- Lindem, A., Roy, A., and S. Mirtorabi, "OSPF Multi-
Instance Extensions", draft-ietf-ospf-multi-instance-01 Instance Extensions", draft-ietf-ospf-multi-instance-02
(work in progress), October 2009. (work in progress), April 2010.
[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, February 1999. Applications, New Orleans, LA, pp. 90-100, February 1999.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.
[RFC3561] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On- [RFC3561] Perkins, C., Belding-Royer, E., and S. Das, "Ad hoc On-
skipping to change at page 39, line 17 skipping to change at page 40, line 25
for IPv6", RFC 5340, July 2008. for IPv6", RFC 5340, July 2008.
Appendix A. Shifting Responsibility for an Address Between DYMO Routers Appendix A. Shifting Responsibility for an Address Between DYMO Routers
Only one DYMO router within a routing region SHOULD be responsible Only one DYMO router within a routing region SHOULD be responsible
for a particular address at any time. If two DYMO routers for a particular address at any time. If two DYMO routers
dynamically pass responsibility of an address correct DYMO routing dynamically pass responsibility of an address correct DYMO routing
behavior must be observed. The DYMO router adding the new address behavior must be observed. The DYMO router adding the new address
must wait for any exiting routing information about this address to must wait for any exiting routing information about this address to
be purged from the network. Therefore, it must wait at least be purged from the network. Therefore, it must wait at least
ROUTER_SEQNUM_AGE_MAX after the previous DYMO router for this address ROUTER_SEQNUM_AGE_MAX_TIMEOUT after the previous DYMO router for this
stopped participating and advertising routing information on its address stopped participating and advertising routing information on
behalf. its behalf.
Authors' Addresses Authors' Addresses
Ian D Chakeres Ian D Chakeres
CenGen CenGen
9250 Bendix Road North 9250 Bendix Road North
Columbia, Maryland 21045 Columbia, Maryland 21045
USA USA
Email: ian.chakeres@gmail.com Email: ian.chakeres@gmail.com
 End of changes. 108 change blocks. 
185 lines changed or deleted 228 lines changed or added

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