draft-ietf-manet-dymo-17.txt   draft-ietf-manet-dymo-18.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 9, 2009 March 8, 2009 Expires: August 27, 2010 February 23, 2010
Dynamic MANET On-demand (DYMO) Routing Dynamic MANET On-demand (DYMO) Routing
draft-ietf-manet-dymo-17 draft-ietf-manet-dymo-18
Abstract
The Dynamic MANET On-demand (DYMO) routing protocol is intended for
use by mobile routers in wireless, multihop networks. DYMO
determines unicast routes among DYMO routers within the network in an
on-demand fashion, offering improved convergence in dynamic
topologies.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 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 9, 2009. This Internet-Draft will expire on August 27, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 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 in effect on the date of Provisions Relating to IETF Documents
publication of this document (http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Abstract include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
The Dynamic MANET On-demand (DYMO) routing protocol is intended for described in the BSD License.
use by mobile routers in wireless, multihop networks. DYMO
determines unicast routes among DYMO routers within the network in an
on-demand fashion, offering improved convergence in dynamic
topologies.
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
skipping to change at page 2, line 34 skipping to change at page 2, line 38
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 . . . . . . . . . . . . . . . . . . . . 19
5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 20 5.3.3. Intermediate DYMO Router RREP Creation . . . . . . . . 20
5.3.4. RM Processing . . . . . . . . . . . . . . . . . . . . 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 Link Monitoring . . . . . . . . . . . . . . . . 26 5.5.1. Active Link Monitoring . . . . . . . . . . . . . . . . 26
5.5.2. Updating Route Lifetimes During Packet Forwarding . . 26 5.5.2. Updating Route Lifetimes During Packet Forwarding . . 26
5.5.3. RERR Generation . . . . . . . . . . . . . . . . . . . 27 5.5.3. RERR Generation . . . . . . . . . . . . . . . . . . . 27
5.5.4. RERR Processing . . . . . . . . . . . . . . . . . . . 28 5.5.4. RERR Handling . . . . . . . . . . . . . . . . . . . . 28
5.6. DYMO Identifier (DID) . . . . . . . . . . . . . . . . . . 29 5.6. DYMO Identifier (DID) . . . . . . . . . . . . . . . . . . 29
5.7. Unknown Message & TLV Types . . . . . . . . . . . . . . . 29 5.7. Unknown Message & TLV Types . . . . . . . . . . . . . . . 29
5.8. Advertising Network Addresses . . . . . . . . . . . . . . 30 5.8. Advertising Network Addresses . . . . . . . . . . . . . . 30
5.9. Simple Internet Attachment . . . . . . . . . . . . . . . . 30 5.9. Simple Internet Attachment . . . . . . . . . . . . . . . . 30
5.10. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 31 5.10. Multiple Interfaces . . . . . . . . . . . . . . . . . . . 32
5.11. DYMO Control Packet/Message Generation Limits . . . . . . 31 5.11. DYMO Control Packet/Message Generation Limits . . . . . . 32
6. Configuration Parameters and Other Administrative Options . . 32 6. Configuration Parameters and Other Administrative Options . . 32
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33
7.1. DYMO Message Type Specification . . . . . . . . . . . . . 33 7.1. DYMO Message Type Specification . . . . . . . . . . . . . 34
7.2. Packet and Message TLV Type Specification . . . . . . . . 33 7.2. Packet and Message TLV Type Specification . . . . . . . . 34
7.3. Address Block TLV Specification . . . . . . . . . . . . . 34 7.3. Address Block TLV Specification . . . . . . . . . . . . . 35
8. Security Considerations . . . . . . . . . . . . . . . . . . . 35 8. Security Considerations . . . . . . . . . . . . . . . . . . . 35
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 36
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10.1. Normative References . . . . . . . . . . . . . . . . . . . 36 10.1. Normative References . . . . . . . . . . . . . . . . . . . 36
10.2. Informative References . . . . . . . . . . . . . . . . . . 36 10.2. Informative References . . . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 37 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 38
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 28 skipping to change at page 4, line 28
originator. Each intermediate DYMO router that receives the RREP originator. Each intermediate DYMO router that receives the RREP
creates a route to the target, and then the RREP is unicast hop-by- creates a route to the target, and then the RREP is unicast hop-by-
hop toward the originator. When the originator's DYMO router hop toward the originator. When the originator's DYMO router
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 routers 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 source of the packet is notified. A Route Error (RERR) is sent
toward the packet source to indicate the route to that particular toward the packet source to indicate the route to that particular
destination is invalid or missing. When the source's DYMO router destination is invalid or missing. When the source's DYMO router
receives the RERR, it deletes the route. If the source's DYMO router receives the RERR, it deletes the route. If this source's DYMO
later receives a packet for forwarding to the same destination, it router later receives a packet for forwarding to the same
will need to perform route discovery again for that destination. destination, it will need to perform route discovery again for that
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
The DYMO routing protocol is designed for stub or disconnected mobile The DYMO routing protocol is designed for stub or disconnected mobile
ad hoc networks (MANETs). DYMO handles a wide variety of mobility ad hoc networks (MANETs). DYMO handles a wide variety of mobility
patterns by dynamically determining routes on-demand. DYMO also patterns by dynamically determining routes on-demand. DYMO also
handles a wide variety of traffic patterns. In networks with a large handles a wide variety of traffic patterns. In networks with a large
number of routers, DYMO is best suited for sparse traffic scenarios number of routers, DYMO is best suited for sparse traffic scenarios
where routers forward packets to with only a small portion of the where routers forward packets to with only a small portion of the
other DYMO routers, due to the reactive nature of route discovery and other DYMO routers, due to the reactive nature of route discovery and
route maintenance. route maintenance.
DYMO is applicable to memory constrained devices, since very little DYMO is applicable to memory constrained devices, since little
routing state is maintained in each DYMO router. Only routing routing state is maintained in each DYMO router. Only routing
information related to active sources and destinations is maintained, information related to active sources and destinations is maintained,
in contrast to most other more proactive routing protocols that in contrast to most other more proactive routing protocols that
require routing information to all routers within the routing region require routing information to all routers within the routing region
be maintained. be maintained.
DYMO supports routers with multiple interfaces participating in the DYMO supports routers with multiple interfaces participating in the
MANET. DYMO routers can also perform routing on behalf of other MANET. DYMO routers can also perform routing on behalf of other
nodes, attached via participating or non-participating interfaces. nodes, attached via participating or non-participating interfaces.
skipping to change at page 5, line 28 skipping to change at page 5, line 29
destination. Therefore, DYMO routers MUST be configured to initiate destination. Therefore, DYMO routers MUST be configured to initiate
route discovery on behalf of certain sources and find routes to route discovery on behalf of certain sources and find routes to
certain destinations. When DYMO is the only protocol interacting certain destinations. When DYMO is the only protocol interacting
with the forwarding table, DYMO MAY be configured to perform route with the forwarding table, DYMO MAY be configured to perform route
discovery for all unknown unicast destinations. discovery for all unknown unicast destinations.
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 bi-directionality should be used. [I-D.ietf-manet-nhdp]) of ensuring and monitoring bi-directionality
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",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
Additionally, this document uses some terminology from Additionally, this document uses some terminology from [RFC5444].
[I-D.ietf-manet-packetbb].
This document defines the following terminology: This document defines the following terminology:
Adjacency Adjacency
A relationship formed between selected bi-directional neighboring A relationship formed between selected bi-directional neighboring
routers for the purpose of exchanging routing information. Not routers for the purpose of exchanging routing information. Not
every pair of neighboring routers become adjacent. Neighboring every pair of neighboring routers become adjacent. Neighboring
routers may form an adjacency based several different pieces of routers may form an adjacency based several different pieces of
information or protocols; for example, exchange of DYMO routing information or protocols; for example, exchange of DYMO routing
messages, other protocols (e.g. NDP [RFC4861] or NHDP messages, other protocols (e.g. NDP [RFC4861] or NHDP
[I-D.ietf-manet-nhdp]), or manual configuration. [I-D.ietf-manet-nhdp]), or manual configuration. Similarly, loss
of a routing adjacency may also be based upon several pieces of
information.
Distance (Dist) Distance (Dist)
A metric of the distance a message or piece of information has A metric of the distance a message or piece of information has
traversed. The minimum value of distance is the number of IP hops traversed. The minimum value of distance is the number of IP hops
traversed. The maximum value is 65,535. traversed. The maximum value is 65,535.
DYMO Identifier (DID) DYMO Identifier (DID)
A DID is maintained by each DYMO routing protocol instance A DID is maintained for each DYMO routing process (ThisNode.DID),
(ThisNode.DID), and the default value is zero (0). Each routing and the default value is zero (0). Each routing message is tagged
message is tagged with its associated DID (MsgTLV.DID), unless with its associated DID (MsgTLV.DID), unless zero (0). Upon
zero (0). Upon receipt of DYMO protocol message a DYMO routing receipt of DYMO protocol message a DYMO routing protocol process
protocol instance SHOULD only process messages with a matching DID SHOULD only attend to messages with a matching DID value.
value.
DYMO Sequence Number (SeqNum) DYMO Sequence Number (SeqNum)
A DYMO Sequence Number is maintained by each DYMO router. This A DYMO Sequence Number is maintained by each DYMO router process.
sequence number is used by other DYMO routers to identify the This sequence number is used by other DYMO routers to identify the
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
skipping to change at page 7, line 6 skipping to change at page 7, line 6
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 indicate that a DYMO router does not have A RERR message is used to indicate that a DYMO router does not
forwarding route to one or more particular addresses. have 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 processes a RREQ, it learns routing information on how to router attends 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 currently performing a ThisNode corresponds to the DYMO router process currently
calculation or processing a message. performing a calculation or attending to a message.
Type-Length-Value structure (TLV) Type-Length-Value structure (TLV)
A generic way to represent information, please see A generic way to represent information, please see [RFC5444] for
[I-D.ietf-manet-packetbb] for additional information. additional information.
Unreachable Node (UnreachableNode) Unreachable Node (UnreachableNode)
An UnreachableNode is a node for which a forwarding route does not An UnreachableNode is a node for which a forwarding route does not
exist. exist.
4. Data Structures 4. Data Structures
4.1. Route Table Entry 4.1. Route Table Entry
The route table entry is a conceptual data structure. The route table entry is a conceptual data structure.
skipping to change at page 8, line 27 skipping to change at page 8, line 27
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 processing a if the next-hop becomes unreachable or in response to attending to
RERR (see Section 5.5.4). 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.
In addition to a route table data structure, each route table entry In addition to a route table data structure, each route table entry
may have several timers associated with the information. These may have several timers associated with the information. These
timers/timeouts are discussed in Section 5.2.3. timers/timeouts are discussed in Section 5.2.3.
4.2. DYMO Messages 4.2. DYMO Messages
When describing DYMO protocol messages, it is necessary to refer to When describing DYMO protocol messages, it is necessary to refer to
fields in several distinct parts of the overall packet. These fields in several distinct parts of the overall packet. These
locations include the IP or IPv6 header, the UDP header, and fields locations include the IP header, the UDP header, and fields from
from [I-D.ietf-manet-packetbb]. This document uses the following [RFC5444]. This document uses the following notation conventions.
notation conventions. Information found in the table. Information found in the table.
+----------------------------+-------------------+ +---------------------------+-------------------+
| Information Location | Notational Prefix | | Information Location | Notational Prefix |
+----------------------------+-------------------+ +---------------------------+-------------------+
| IP header | IP. | | IP header | IP. |
| UDP header | UDP. | | UDP header | UDP. |
| packetbb message header | MsgHdr. | | RFC5444 message header | MsgHdr. |
| packetbb message TLV | MsgTLV. | | RFC5444 message TLV | MsgTLV. |
| packetbb address blocks | AddBlk. | | RFC5444 address blocks | AddBlk. |
| packetbb address block TLV | AddTLV. | | RFC5444 address block TLV | AddTLV. |
+----------------------------+-------------------+ +---------------------------+-------------------+
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 [I-D.ietf-manet-packetbb]. Here is a brief description described in [RFC5444]. Here is a brief description of the format.
of the format. A packet is made up of messages. A message is made A packet is made up of messages. A message is made up of a message
up of a message header, message TLV block, and zero or more address header, message TLV block, and zero or more address blocks. Each of
blocks. Each of the address blocks may also have an associated the address blocks may also have an associated address TLV block.
address TLV block.
All DYMO messages specified in this document are sent using UDP to All DYMO messages specified in this document are sent using UDP to
the destination port MANET [I-D.ietf-manet-iana]. the destination port MANET [RFC5498].
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 the link-local multicast address LL-MANET-ROUTERS [RFC5498] unless
[I-D.ietf-manet-iana] unless otherwise stated. Therefore, all DYMO otherwise stated. Therefore, all DYMO routers SHOULD subscribe to
routers SHOULD subscribe to LL-MANET-ROUTERS [I-D.ietf-manet-iana] LL-MANET-ROUTERS [RFC5498] for receiving control packets. Note that
for receiving control packets. Note that multicast packets may be multicast packets MAY be sent via unicast. For example, this may
sent via unicast. For example, this may occur for certain link-types occur for certain link-types (non broadcast mediums), improved
(non broadcast mediums), improved robustness, or manually configured robustness, or manually configured router adjacencies.
router adjacency.
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 packets than 255, it is discarded. This mechanism helps to ensures that
have not passed through any intermediate routers, and it is known as packets have not passed through any intermediate routers, and it is
GTSM [RFC5082]. known as GTSM [RFC5082].
The length of an IP address (32 bits for IPv4 and 128 bits for IPv6) The length of an IP address (32 bits for IPv4 and 128 bits for IPv6)
inside a DYMO message depends on the IP packet header containing the inside a DYMO message depends on the msg-addr-length (MAL) in the
DYMO message/packet. For example, if the IP header uses IPv6 msg-header, as specified in [RFC5444].
addresses then all addresses contained in the payload use IPv6
addresses of the same length. In the case of mixed IPv6 and IPv4
addresses, please use the methods specified in
[I-D.ietf-manet-packetbb].
If a packet contains only a single DYMO message and no packet TLVs, If a packet contains only a single DYMO message and no packet TLVs,
it need not include a packet-header [I-D.ietf-manet-packetbb]. 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 queue and channel DYMO control packets SHOULD be given priority queuing and channel
access. access.
4.2.2. Routing Messages (RM) - RREQ & RREP 4.2.2. Routing Messages (RM) - RREQ & RREP
Routing Messages (RMs) are used to disseminate routing information. Routing Messages (RMs) are used to disseminate routing information.
There are two DYMO message types that are considered to be routing There are two DYMO message types that are considered to be routing
messages (RMs): RREQ and RREP. They contain very similar information messages (RMs): RREQ and RREP. They contain very similar information
and function, but have slightly different processing rules. The main and function, but have slightly different handling rules. The main
difference between the two messages is that RREQ messages generally difference between the two messages is that RREQ messages generally
solicit a RREP, whereas a RREP is the response to RREQ. solicit a RREP, whereas a RREP is the response to RREQ.
RM creation and processing are described in Section 5.3. RM creation and handling are described in Section 5.3.
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 IP.DestinationAddress is set to LL-MANET ROUTERS [RFC5498]. For
[I-D.ietf-manet-iana]. For unicast RREQ and RREP the unicast RREP the IP.DestinationAddress is set to the
IP.DestinationAddress is set to the NextHopAddress toward the RREP NextHopAddress toward the RREP TargetNode.
TargetNode.
UDP.DestinationPort UDP.DestinationPort
By default, the UDP destination port is set to MANET By default, the UDP destination port is set to MANET [RFC5498].
[I-D.ietf-manet-iana].
MsgHdr.HopLimit MsgHdr.HopLimit
The remaining number of hops this message is allowed to traverse. The remaining number of hops this message is allowed to traverse.
AddBlk.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 24 skipping to change at page 12, line 24
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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|0|0|0|0| 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Body - Address Block Message Body - Address Block
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Number Addrs=2 |1|0|0|0|0| Rsv | HeadLength=3 | Head : |Number Addrs=2 |1|0|0|0|0| Rsv | HeadLength=3 | Head :
skipping to change at page 12, line 52 skipping to change at page 12, line 52
| Index-start=1 | tlv-length=2 | Orig.SeqNum | | Index-start=1 | tlv-length=2 | Orig.SeqNum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 Figure 1
4.2.3. Route Error (RERR) 4.2.3. Route Error (RERR)
A RERR message is used to disseminate the information that a route is A RERR message is used to disseminate the information that a route is
not available for one or more particular IP addresses. not available for one or more particular IP addresses.
RERR creation and processing are described in Section 5.5. RERR creation and handling are described in Section 5.5.
A RERR requires the following information: A RERR requires the following information:
IP.SourceAddress IP.SourceAddress
The IP address of the node currently sending 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 [I-D.ietf-manet-iana]. For unicast RERR messages, The IP ROUTERS [RFC5498]. For unicast RERR messages, the IP address is
address is set to the NextHopAddress. set to the NextHopAddress.
UDP.DestinationPort UDP.DestinationPort
By default, the UDP destination port is set to MANET By default, the UDP destination port is set to MANET [RFC5498].
[I-D.ietf-manet-iana].
MsgHdr.HopLimit MsgHdr.HopLimit
The remaining number of hops this message is allowed to traverse. The remaining number of hops this message is allowed to traverse.
AddBlk.UnreachableNode.Address AddBlk.UnreachableNode.Address
The IP address of an UnreachableNode and its associated prefix The IP 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 IP address is not included, it is assumed to be
unknown. This case occurs when a node receives a message to 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 14, line 23 skipping to change at page 14, line 23
| 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|0|0|0|0| 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Body - Address Block Message Body - Address Block
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Number Addrs=1 |0|0|0|0|0| Rsv | |Number Addrs=1 |0|0|0|0|0| Rsv |
skipping to change at page 14, line 48 skipping to change at page 14, line 48
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TLV-blk-size=0 | | TLV-blk-size=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2 Figure 2
5. Detailed Operation 5. Detailed Operation
5.1. DYMO Sequence Numbers 5.1. DYMO Sequence Numbers
DYMO sequence numbers allow nodes to judge the freshness of routing DYMO sequence numbers allow DYMO routers to judge the freshness of
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 to maintain its DYMO requires that each DYMO router in the network to maintain its
own DYMO sequence number (OwnSeqNum), a 16-bit unsigned integer. The own DYMO sequence number (OwnSeqNum), a 16-bit unsigned integer. The
circumstances for ThisNode to incrementing its OwnSeqNum are circumstances for ThisNode to incrementing its OwnSeqNum are
described in Section 5.3. described in Section 5.3.
5.1.2. Numerical Operations on OwnSeqNum 5.1.2. Numerical Operations on OwnSeqNum
skipping to change at page 15, line 34 skipping to change at page 15, line 34
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
protocol. If a DYMO control message is received during this waiting protocol. If a DYMO control message is received during this waiting
period, the DYMO router SHOULD process it normally but MUST NOT period, the DYMO router SHOULD handle it normally but MUST NOT
transmit or retransmit any DYMO messages. If a data packet is transmit or retransmit any DYMO messages. If a data packet is
received for forwarding to another destination during this waiting received for forwarding to another destination during this waiting
period, the DYMO router MUST generate a RERR message indicating that period, the DYMO router MUST generate a RERR message indicating that
this route is not available and reset its waiting timeout. At the this route is not available and reset its waiting timeout. At the
end of the waiting period the DYMO router sets its OwnSeqNum to one end of the waiting period the DYMO router sets its OwnSeqNum to one
(1) and begins participating. (1) and begins participating.
The longest a node need wait is ROUTE_SEQNUM_AGE_MAX_TIMEOUT. At the The longest a node need wait is ROUTE_SEQNUM_AGE_MAX_TIMEOUT. At the
end of the maximum waiting period a node SHOULD set its OwnSeqNum to end of the maximum waiting period a node SHOULD set its OwnSeqNum to
one (1) and begins participating. one (1) and begins participating.
skipping to change at page 17, line 42 skipping to change at page 17, line 42
packet was received on, packet was received on,
6. if known, the Route.Dist is set to the Node.Dist, 6. 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 Previous timers for this route table entry are removed. A 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. A timer for the maximum delete timeout ROUTE_AGE_MIN_TIMEOUT. A timer for the maximum delete timeout
(ROUTE_SEQNUM_AGE_MAX). ROUTE_SEQNUM_AGE_MAX is set to (ROUTE_SEQNUM_AGE_MAX). ROUTE_SEQNUM_AGE_MAX is set to
Node.AddTLV.VALIDITY_TIME [I-D.ietf-manet-timetlv] if included; Node.AddTLV.VALIDITY_TIME [RFC5497] if included; otherwise,
otherwise, ROUTE_SEQNUM_AGE_MAX is set to ROUTE_SEQNUM_AGE_MAX is set to ROUTE_SEQNUM_AGE_MAX_TIMEOUT. The
ROUTE_SEQNUM_AGE_MAX_TIMEOUT. The usage of these timers and others usage of these timers and others are described in Section 5.2.3.
are described in Section 5.2.3.
At this point, a forwarding route should be created and the At this point, a forwarding route should be 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)
skipping to change at page 18, line 42 skipping to change at page 18, line 42
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, the routing table entry should be
deleted. If a forwarding route exists, it should be removed and the deleted. If a forwarding route exists, it should also be removed and
Route.Forwarding flag unset. 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.2.
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
skipping to change at page 19, line 16 skipping to change at page 19, line 16
superior, if they have existing better routing information already. superior, if they have existing better routing information already.
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.
If a previous value of the TargetNode.SeqNum is known (from a routing If a previous value of the TargetNode.SeqNum is known (from a routing
table entry using longest-prefix matching), it SHOULD be placed in table entry using longest-prefix matching), it SHOULD be placed in
TargetNode.AddTLV.SeqNum in all but the last RREQ attempt. If a TargetNode.AddTLV.SeqNum in all but the last RREQ attempt. If a
TargetNode.SeqNum is not included, it is assumed to be unknown by TargetNode.SeqNum is not included, it is assumed to be unknown by
processing nodes. This operation ensures that no intermediate DYMO handling nodes. This operation ensures that no intermediate DYMO
routers reply, and ensures that the TargetNode's DYMO router routers reply, and ensures that the TargetNode's DYMO router
increments its sequence number. increments its sequence number.
Next, the node adds AddBlk.OrigNode.Address, its prefix, and the Next, the node adds AddBlk.OrigNode.Address, its prefix, and the
OrigNode.AddTLV.SeqNum (OwnSeqNum) to the RM. OrigNode.AddTLV.SeqNum (OwnSeqNum) to the RM.
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 IP address. This information will be used by nodes to be a unicast IP 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
skipping to change at page 20, line 38 skipping to change at page 20, line 38
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 added to the RREP. OrigNode.AddTLV.SeqNum (OwnSeqNum) MUST also added to the RREP.
Other AddTLVs in the RREP for the OrigNode and TargetNode SHOULD be Other AddTLVs in the RREP for the OrigNode and TargetNode SHOULD be
included and set accordingly. If OrigNode.Dist is included it is set included and set accordingly. If OrigNode.Dist is included it is set
to a number greater than zero (0) and less than 65,535. The Distance to a number greater than zero (0) and less than 65,535. The Distance
value will influence judgment of the routing information 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
process this RM. handle this RM.
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.
skipping to change at page 21, line 13 skipping to change at page 21, line 13
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.2.
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 processing 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.
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 Processing 5.3.4. RM Handling
First, ThisNode decides whether to process this message. If the First, 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 process messages based upon Next, ThisNode MAY selectively attend to messages based upon
information in the message. ThisNode SHOULD only process messages information in the message. ThisNode SHOULD only handle messages
from adjacent DYMO routers. If ThisNode chooses not to process 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 IP address. If the capable (e.g. site or global scope) unicast IP address. If the
address is not a valid unicast IP address, the messages is discarded address is not a valid unicast IP address, the messages is discarded
and further processing stopped. and further 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.
skipping to change at page 22, line 28 skipping to change at page 22, line 28
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. The updated Distance value will influence judgment of
the routing information (Section 5.2.1). the routing information (Section 5.2.1).
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.
After processing the OrigNode's routing information, then each After handling the OrigNode's routing information, then each address
address that is not the TargetNode should be considered for creating that is not the TargetNode should be considered for creating and
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 IP address. checks the that the address is a multihop-capable unicast IP address.
If the address is not a unicast IP address, the address and all If the address is not a unicast IP address, the address and all
related information MUST be removed. related 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 valid
skipping to change at page 23, line 32 skipping to change at page 23, line 32
If ThisNode is not the TargetNode, this RM is a RREQ, the RREQ If ThisNode is not the TargetNode, this RM is a RREQ, the RREQ
contains the TargetNode.AddTLV.SeqNum, and ThisNode has a forwarding contains the TargetNode.AddTLV.SeqNum, and ThisNode has a forwarding
route to the TargetNode with a SeqNum where Route.TargetNode.SeqNum - route to the TargetNode with a SeqNum where Route.TargetNode.SeqNum -
RREQ.TargetNode.AddTLV.SeqNum >= 0 (using signed 16-bit arithmetic); RREQ.TargetNode.AddTLV.SeqNum >= 0 (using signed 16-bit arithmetic);
then this node MAY respond with an intermediate DYMO router RREP. then this node MAY respond with an intermediate DYMO router RREP.
The procedure for performing intermediate DYMO router RREP is The procedure for performing intermediate DYMO router RREP is
described in Section 5.3.3. If an intermediate DYMO router RREP is described in Section 5.3.3. If an intermediate DYMO router RREP is
sent, ThisNode need not perform any more operations for the original sent, ThisNode need not perform any more operations for the original
RM. RM.
After processing a RM or creating a new RM, a node can append After handling a RM or creating a new RM, a node can append
additional routing information to the RM, according to the procedure additional routing information to the RM, according to the procedure
described in Section 5.3.5. The additional routing information can described in Section 5.3.5. The additional routing information can
help reduce route discoveries at the expense of increased message help reduce route discoveries at the expense of increased message
size. size.
For each address (except the TargetNode) in the RM that includes For each address (except the TargetNode) in the RM that includes
AddTLV.Dist information, the AddTLV.Dist information is incremented AddTLV.Dist information, the AddTLV.Dist information is incremented
by at least one (1). The updated Distance value will influence by at least one (1). The updated Distance value will influence
judgment of the routing information (Section 5.2.1) against known judgment of the routing information (Section 5.2.1) against known
information at other DYMO routers that process this RM. information at other DYMO routers that handle this RM.
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 [I-D.ietf-manet-iana]. If the IP.DestinationAddress LL-MANET-ROUTERS [RFC5498]. If the RREQ is
RREQ is unicast, the IP.DestinationAddress is set to the unicast, the IP.DestinationAddress is set to the NextHopAddress.
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 Target.Address,
then a RERR SHOULD be issued to the OrigNode of the RREP. 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 IP addresses contained in the outgoing RM based provide routing for IP addresses contained in the outgoing RM based
on the information enclosed. ThisNode MAY choose not to send the RM, on the information enclosed. ThisNode MAY choose not to send the RM,
skipping to change at page 24, line 36 skipping to change at page 24, line 35
control message sending or packet forwarding. This type of advanced control message sending or packet forwarding. This type of advanced
behavior is not defined in this specification. behavior is 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
should be administratively configurable or intelligently controlled.o should be administratively configurable or 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.2. 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 should be administratively appending information to an RM in transit should be administratively
configurable or intelligently controlled. configurable or intelligently controlled.
If an address controlled by this DYMO router includes ThisNode.Dist, If an address controlled by this DYMO router includes ThisNode.Dist,
skipping to change at page 27, line 32 skipping to change at page 27, line 32
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
UnreachableNode information notifies each processing node of UnreachableNode information notifies each node that handles this
additional routes that are no longer available. This option SHOULD message of additional routes that are no longer available. This
be administratively configurable or intelligently controlled. option SHOULD be administratively configurable or intelligently
controlled.
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 processing 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 [I-D.ietf-manet-iana]. Sending the RERR to the LL-MANET- ROUTERS [RFC5498]. Sending the RERR to the LL-MANET-ROUTERS address
ROUTERS address notifies all nearby DYMO routers that might depend on notifies all nearby DYMO routers that might depend on the now broken
the now broken link. If the RERR is unicast, the link. If the RERR is unicast, the IP.DestinationAddress is set to
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 Processing 5.5.4. RERR Handling
First, ThisNode decides whether to process this message. If the First, 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 process messages based upon Next, ThisNode MAY selectively handle messages based upon information
information in the message. ThisNode MAY choose to only process in the message. ThisNode MAY choose to only handle messages from
messages from adjacent DYMO routers. If ThisNode chooses not to adjacent DYMO routers. If ThisNode chooses not to handle this
process this message, the message is discarded and further processing message, the message is discarded and further processing stopped.
stopped.
When a DYMO router processes a RERR, it processes each When a DYMO router handles a RERR, it examines each UnreachableNode's
UnreachableNode's information. The processing DYMO router removes information. The attending DYMO router removes the forwarding route,
the forwarding route, unsets the Route.Forwarding flag, sets the unsets the Route.Forwarding flag, sets the Route.Broken flag, and a
Route.Broken flag, and a timer for ROUTE_DELETE is set to timer for ROUTE_DELETE is set to ROUTE_DELETE_TIMEOUT for each
ROUTE_DELETE_TIMEOUT for each UnreachableNode.Address found using UnreachableNode.Address found using longest prefix matching that meet
longest prefix matching that meet all of the following conditions: all of the following conditions:
1. The UnreachableNode.Address is a multihop-capable unicast IP 1. The UnreachableNode.Address is a multihop-capable unicast IP
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 processing 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, then Route.SeqNum MAY be
set to UnreachableNode.SeqNum. Setting Route.SeqNum can reduce set to UnreachableNode.SeqNum. Setting Route.SeqNum can reduce
future RRER processing and forwarding. future RRER 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 removed.
After processing if Route.SeqNum is known and an After handling if Route.SeqNum is known and an UnreachableNode.SeqNum
UnreachableNode.SeqNum is not included in the RERR, then Route.SeqNum is not included in the RERR, then Route.SeqNum (i.e.
(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 processing and UnreachableNode.SeqNum can reduce future RRER handling and
forwarding. forwarding.
If no UnreachableNode addresses remain in the RERR, no other If no UnreachableNode addresses remain in the RERR, no other handling
processing is required and the RERR is discarded. is required and the RERR is discarded.
If processing continues, the MsgHdr.HopLimit is decremented by one If handling continues, the MsgHdr.HopLimit is decremented by one (1).
(1). Further, if this RERR's new MsgHdr.HopLimit is greater than one Further, if this RERR's new MsgHdr.HopLimit is greater than one (1)
(1) and at least one unreachable node address remains in the RERR, and at least one unreachable node address remains in the RERR, then
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 [I-D.ietf-manet-iana]. If the RERR is unicast, the ROUTERS [RFC5498]. If the RERR is unicast, the IP.DestinationAddress
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 instance MUST have an associated DYMO Each DYMO routing protocol process MUST have an associated DYMO
Identifier (DID). The default value is zero (0). The DID value Identifier (DID). The default value is zero (0). The DID value
should be administratively configured. should be administratively configured.
Each DYMO routing protocol message sent SHOULD contain its associated Each DYMO routing protocol message sent SHOULD contain its associated
DID in a message TLV. If the DID value is zero (0) it MAY be DID in a message TLV. If the DID value is zero (0) it MAY be
omitted. omitted.
Upon receipt of DYMO protocol message a DYMO routing protocol Upon receipt of DYMO protocol message a DYMO routing protocol process
instance SHOULD only process messages with a DID (MsgTLV.DID) value SHOULD only process messages with a DID (MsgTLV.DID) value matching
matching its own DID (ThisNode.DID). its own DID (ThisNode.DID).
The DID allows multiple DYMO routing protocol instances to operate The DID allows multiple DYMO routing protocol processes to operate
over the same links and same node independently. over the same links and on the same device independently.
The DID fulfills a function similar to OSPF Instance ID [RFC2740] The DID fulfills a function similar to OSPF Instance ID [RFC2740]
[I-D.ietf-ospf-multi-instance], OSPF Area ID [RFC2328] [RFC2740], [I-D.ietf-ospf-multi-instance], OSPF Area ID [RFC2328] [RFC2740],
and/or the MANET_ID TLV [I-D.chakeres-manet-manetid]. and/or the MANET_ID TLV [I-D.chakeres-manet-manetid].
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 processing of messages that contain unknown TLV types, operation For handling of messages that contain unknown TLV types, the
should be administratively controlled. operation (e.g. forward or remove) should be administratively
controlled.
5.8. Advertising Network Addresses 5.8. Advertising Network Addresses
DYMO routers advertise specify the prefix length for each advertised DYMO routers specify the prefix length for each advertised address.
address. Any nodes (other than the advertising DYMO router) within Any nodes (other than the advertising DYMO router) within the
the advertised prefix MUST NOT participate in the DYMO protocol advertised prefix MUST NOT participate in the DYMO protocol directly.
directly. For example, A.B.C.1 with a prefix length of 24 indicates For example, 192.0.2.1 with a prefix length of 24 indicates all nodes
all nodes with the matching A.B.C.X are reachable through the DYMO with the matching 192.0.2.X are reachable through the DYMO router
router with address A.B.C.1. with address 192.0.2.1.
5.9. Simple Internet Attachment 5.9. Simple Internet Attachment
Simple Internet attachment consists of a stub network of MANET Simple Internet attachment consists of a stub network of MANET
routers connected to the Internet via a single Internet DYMO router routers connected to the Internet via a single Internet DYMO router
(IDR). The Internet may be connected via multiple DYMO routers, but (IDR). The Internet may be connected via multiple DYMO routers, but
such behavior is not specified in this document. such behavior is not specified in this document.
The IDR is responsible for responding to RREQs for DYMO routers on The IDR is responsible for responding to RREQs for DYMO routers on
behalf of TargetNodes on the Internet, as well as delivering packets behalf of TargetNodes on the Internet, as well as delivering packets
to destinations on the Internet. to destinations on the Internet.
/--------------------------\ /--------------------------\
/ Internet \ / Internet \
\ / \ /
\------------+-------------/ \------------+-------------/
| |
Routable & | Routable & |
Topologically | A.B.C.X/24 Topologically | 192.0.2.0/24
Correct | Correct |
Prefix | Prefix |
+-----+-----+ +-----+-----+
| Internet | | Internet |
/------| DYMO |--------\ /------| DYMO |--------\
/ | Router | \ / | Router | \
/ | A.B.C.1 | \ / | 192.0.2.1 | \
| +-----------+ | | +-----------+ |
| DYMO Region | | DYMO Region |
| | | |
| +--------------+ | | +--------------+ |
| | DYMO Router | | | | DYMO Router | |
| | A.B.C.2 | | | | 192.0.2.2 | |
| +--------------+ | | +--------------+ |
| +--------------+ | | +--------------+ |
| | DYMO Router | | | | DYMO Router | |
| | A.B.C.3 | | | | 192.0.2.3 | |
\ +--------------+ / \ +--------------+ /
\ / \ /
\---------------------------/ \---------------------------/
Figure 3: Simple Internet Attachment Example Figure 3: Simple Internet Attachment Example
DYMO routers wishing to be reachable from nodes in the Internet MUST DYMO routers wishing to be reachable from nodes in the Internet MUST
have IP addresses within the IDR's routable and topologically correct have IP addresses within the IDR's routable and topologically correct
prefix. Given a node with a routeable address or care-of address prefix. Given a node with a routeable address or care-of address
handled by the IDR, the IDR is responsible for routing and forwarding handled by the IDR, the IDR is responsible for routing and forwarding
packets received from the Internet destined for nodes inside its packets received from the Internet destined for nodes inside its
MANET. MANET.
When DYMO router within the MANET want to send packets to a node on When DYMO router within the MANET want to send packets to a node on
skipping to change at page 33, line 13 skipping to change at page 33, line 41
Table 3 Table 3
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
[I-D.ietf-manet-iana] to carry protocol packets. DYMO also uses the [RFC5498] to carry protocol packets. DYMO also uses the link-local
link-local multicast address LL-MANET-ROUTERS [I-D.ietf-manet-iana]. multicast address LL-MANET-ROUTERS [RFC5498].
This section specifies several messages types, message tlv-types, and This section specifies several messages types, message tlv-types, and
address tlv-types. address tlv-types.
7.1. DYMO Message Type Specification 7.1. DYMO Message Type Specification
DYMO Message Types DYMO Message Types
+------------------------+----------+ +------------------------+----------+
| Name | Type | | Name | Type |
skipping to change at page 34, line 29 skipping to change at page 35, line 9
| | | | and MAY blacklist the link to | | | | | and MAY blacklist the link to |
| | | | this node. | | | | | this node. |
+-------------------+------+--------+-------------------------------+ +-------------------+------+--------+-------------------------------+
Table 5 Table 5
7.3. Address Block TLV Specification 7.3. Address Block TLV Specification
Address Block TLV Types Address Block TLV Types
+---------------+--------------+--------+---------------------------+ +---------------+-----------+-----------+---------------------------+
| Name | Type | Length | Value | | Name | Type | Length | Value |
+---------------+--------------+--------+---------------------------+ +---------------+-----------+-----------+---------------------------+
| DYMO | 9 - TBD | DID | ThisNode.DID's value. | | DYMO | 9 - TBD | DID | ThisNode.DID's value. |
| Identifier | | length | More information can be | | Identifier | | length | More information can be |
| (DID) | | | found in Section 5.6 | | (DID) | | | found in Section 5.6 |
| DYMO Sequence | 10 - TBD | up to | The DYMO sequence num | | DYMO Sequence | 10 - TBD | up to 2 | The DYMO sequence num |
| Number | | 2 | associated with this | | Number | | octets | associated with this |
| (DYMOSeqNum) | | octets | 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 | A metric of the distance | | Distance | 11 - TBD | up to 2 | A metric of the distance |
| | | 2 | traversed by the | | | | octets | traversed by the |
| | | octets | 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 | [I-D.ietf-ma | | time that information can | | - AKA MaxAge | [RFC5497] | | time that information can |
| | n et-timetlv | | be maintained before | | | | | be maintained before |
| | ] | | being deleted. The | | | | | being deleted. The |
| | | | VALIDITY_TIME TLV is | | | | | VALIDITY_TIME TLV is |
| | | | defined in | | | | | defined in [RFC5497]. |
| | | | [I-D.ietf-manet-timetlv]. | +---------------+-----------+-----------+---------------------------+
+---------------+--------------+--------+---------------------------+
Table 6 Table 6
8. Security Considerations 8. Security Considerations
This document does not mandate any specific security measures. This document 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.
skipping to change at page 35, line 39 skipping to change at page 36, line 19
cryptographic techniques SHOULD be applied. cryptographic techniques SHOULD 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 process the algorithms used must permit multiple receivers to handle the message.
message.
9. Acknowledgments 9. Acknowledgments
DYMO is a descendant of the design of previous MANET reactive DYMO is a descendant of the design of previous MANET reactive
protocols, especially AODV [RFC3561] and DSR [RFC4728]. Changes to protocols, especially AODV [RFC3561] and DSR [RFC4728]. Changes to
previous MANET reactive protocols stem from research and previous MANET reactive protocols stem from research and
implementation experiences. Thanks to Elizabeth Belding-Royer for implementation experiences. Thanks to Elizabeth Belding-Royer for
her long time authorship of DYMO. Additional thanks to Luke Klein- her long time authorship of DYMO. Additional thanks to Luke Klein-
Berndt, Pedro Ruiz, Fransisco Ros, Koojana Kuladinithi, Ramon Berndt, Pedro Ruiz, Fransisco Ros, Koojana Kuladinithi, Ramon
Caceres, Thomas Clausen, Christopher Dearlove, Seung Yi, Romain Caceres, Thomas Clausen, Christopher Dearlove, Seung Yi, Romain
Thouvenin, Tronje Krop, Henner Jakob, Alexandru Petrescu, Christoph Thouvenin, Tronje Krop, Henner Jakob, Alexandru Petrescu, Christoph
Sommer, Cong Yuan, Lars Kristensen, and Derek Atkins for reviewing of Sommer, Cong Yuan, Lars Kristensen, and Derek Atkins for reviewing of
DYMO, as well as several specification suggestions. DYMO, as well as several specification suggestions.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-manet-iana]
Chakeres, I., "IANA Allocations for MANET Protocols",
draft-ietf-manet-iana-07 (work in progress),
November 2007.
[I-D.ietf-manet-packetbb]
Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
"Generalized MANET Packet/Message Format",
draft-ietf-manet-packetbb-17 (work in progress),
November 2008.
[I-D.ietf-manet-timetlv]
Clausen, T. and C. Dearlove, "Representing multi-value
time in MANETs", draft-ietf-manet-timetlv-08 (work in
progress), September 2008.
[RFC1812] Baker, F., "Requirements for IP Version 4 Routers", [RFC1812] Baker, F., "Requirements for IP Version 4 Routers",
RFC 1812, June 1995. RFC 1812, June 1995.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., and C. [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., and C.
Pignataro, "The Generalized TTL Security Mechanism Pignataro, "The Generalized TTL Security Mechanism
(GTSM)", RFC 5082, October 2007. (GTSM)", RFC 5082, October 2007.
[RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
"Generalized Mobile Ad Hoc Network (MANET) Packet/Message
Format", RFC 5444, February 2009.
[RFC5497] Clausen, T. and C. Dearlove, "Representing Multi-Value
Time in Mobile Ad Hoc Networks (MANETs)", RFC 5497,
March 2009.
[RFC5498] Chakeres, I., "IANA Allocations for Mobile Ad Hoc Network
(MANET) Protocols", RFC 5498, March 2009.
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, "MANET Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc
Neighborhood Discovery Protocol (NHDP)", Network (MANET) Neighborhood Discovery Protocol (NHDP)",
draft-ietf-manet-nhdp-07 (work in progress), July 2008. draft-ietf-manet-nhdp-11 (work in progress), October 2009.
[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-00 Instance Extensions", draft-ietf-ospf-multi-instance-01
(work in progress), February 2009. (work in progress), October 2009.
[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.
[RFC2740] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6", [RFC2740] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6",
 End of changes. 89 change blocks. 
234 lines changed or deleted 224 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/