Mobile Ad hoc Networks Working I. Chakeres Group E. Belding-Royer Internet-Draft UC Santa Barbara Expires:
July 5,November 9, 2005 C. Perkins Nokia JanuaryMay 8, 2005 Dynamic MANET On-demand Routing Protocol(DYMO) draft-ietf-manet-dymo-00Routing draft-ietf-manet-dymo-01 Status of this Memo This document is an Internet-Draft and is subject to all provisions of Section 3 of RFC 3667. By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she become aware will be disclosed, in accordance with RFC 3668. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 5,November 9, 2005. Copyright Notice Copyright (C) The Internet Society (2005). Abstract The Dynamic MANET On-demand (DYMO) routing protocol is intended for use by mobile nodes in wireless multihop networks. It offers quickadaptation to dynamic conditions, low processing and memory overhead, lowchanging network utilization,topology and determines unicast routes between nodes within the network. Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Data Structures . . . . . . . . . . . . . . . . . . . . . . . 6 3.1 Conceptual Data Structures . . . . . . . . . . . . . . . . 6 3.1.1Route Table Entry . . . . . . . . . . . . . . . . . . . . 6 3.2 DYMO Message Elements . . . . . . . . . . . . . . . . . . 67 3.2.1 Fixed Portion ofGeneric DYMO ElementsElement Structure . . . . . . . . . . . . 67 3.2.2 Routing Element (RE) . . . . . . . . . . . . . . . . . 79 3.2.3 Route Error (RERR) . . . . . . . . . . . . . . . . . . 811 3.2.4 Unsupported-element Error (UERR) . . . . . . . . . . . 8 3.3 Field Descriptions . . . . . . . . . . . . . . . . . . . . 812 4. Detailed Operation . . . . . . . . . . . . . . . . . . . . . . 1213 4.1 Sequence Numbers . . . . . . . . . . . . . . . . . . . . . 1213 4.1.1 Maintaining a Sequence Number . . . . . . . . . . . . 1213 4.1.2 Incrementing a Sequence Number . . . . . . . . . . . . 1213 4.1.3 Sequence Number Rollover . . . . . . . . . . . . . . . 1213 4.1.4 Actions After Sequence Number Loss . . . . . . . . . . 1213 4.2 DYMO Routing Table Operations . . . . . . . . . . . . . . 1213 4.2.1 Creating or Updating a Route Table Entry from a Routing Element InformationBlock . . . . . . . . . . . . . 12. . . 13 4.2.2 Route Table Entry Timeouts . . . . . . . . . . . . . . 1314 4.3 DYMOGeneral DYMO Processing . . . . . . . . . . . . . . . . . 1315 4.3.1 DYMO Control Packet Processing . . . . . . . . . . . . 1315 4.3.2 Generic Element Pre-processing . . . . . . . . . . . . 1415 4.3.3 Processing Unsupported DYMO Elements . . .Element Types . . . . . . 1415 184.108.40.206 Generating an Unsupported-element Error . . . . . 1416 4.3.4 Generic Element Post-processing . . . . . . . . . . . 1516 4.3.5 DYMO Control Packet Transmission . . . . . . . . . . . 1516 4.4 Routing Element . . . . . . . . . . . . . . . . . . . . . 1517 4.4.1 Routing Element Creation . . . . . . . . . . . . . . . 1517 4.4.2 Appending Additional Routing Information to an ExistingRouting Element Processing . . . . . . . . . . . . . . . 1517 4.4.3 Appending Additional Routing Information to an Existing Routing Element Processing. . . . . . . . . . . . . . 16. 18 4.5 Route Discovery . . . . . . . . . . . . . . . . . . . . . 1618 4.6 Route Maintenance . . . . . . . . . . . . . . . . . . . . 1719 4.6.1 Active Link Breaks . . . .Monitoring . . . . . . . . . . . . . . . . . 1719 4.6.2 Updating Route Lifetimes . . . . . . . . . . . . . . . 1719 4.6.3 Extending Route Lifetimes . . . . . . . . . . . . . . 17 4.6.4Route Error Generation . . . . . . . . . . . . . . . . 18 4.6.519 4.6.4 Route Error Processing . . . . . . . . . . . . . . . . 1820 4.7 Routing Prefix . . . . . . . . . . . . . . . . . . . . . . 1920 4.8 Internet Attachment . . . . . . . . . . . . . . . . . . . 1921 4.9 Multiple Interfaces . . . . . . . . . . . . . . . . . . . 1921 4.10 Packet Generation Limits . . . . . . . . . . . . . . . . . 2022 5. Configuration Parameters . . . . . . . . . . . . . . . . . . . 2123 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 2224 7. Security Considerations . . . . . . . . . . . . . . . . . . . 2325 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 2426 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 2527 9.1 Normative References . . . . . . . . . . . . . . . . . . . 2527 9.2 Informative References . . . . . . . . . . . . . . . . . . 2527 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 2527 Intellectual Property and Copyright Statements . . . . . . . . 2729 1. Overview The Dynamic MANET On-demand (DYMO) routing protocol enables dynamic,reactive, multihop routing between participating nodes wishingthat wish to communicate. The basic operations of the DYMO protocol are route discovery and management. During route discovery the originating node causesinitiates dissemination of a Routing Element (RE)Route Request (RREQ) throughout the network to find the target node. During this dissemination process, each intermediate node createsrecords a route to the originating node. When the target node receives the RERREQ, it responds with REa Route Reply (RREP), unicast toward the originating node. During propagation eachEach node createsthat receives the RREP records a route to the target node, and then the RREP is unicast toward the originating node. When the originating node is reachedreceives the RREP, routes have then been established between the originating node and the target node in both directions. In order to react quicklyto changes in the network topology nodes shouldmaintain their routes and monitor their links. When a packet is received for a route that is no longer available the source of the packet should beis notified. A Route Error (RERR) is sent to the packet source to indicate the current route is broken. Once the source receives the RERR, it will re-initiatere-initiates route discovery if it still has packets to deliver. In order to enable extension of the base specification, DYMO defines thea generic element structure and handling of unsupportedfuture extensions. By defining a fixed structure and default handling, future extensions are handled in a predetermined understoodfashion. DYMO uses sequence numbers as they have been proven to ensure loop freedom . Sequence numbers enable nodes to determine the order of DYMO route discovery packets, thereby avoiding use of stale routing information. All DYMO packets are transmitted via UDP on port TBD. 2. Terminology IPBroadcastAddress Transmit the packet to theIP Limited Broadcast address, 255.255.255.255 (IPv4) or FF:FF:FF:FF:FF:FF (IPv6). IPDestinationAddressDestination Address (IPDestinationAddress) The destination of a packet, indicated by examining the IP header. IPSourceAddressIP Source Address (IPSourceAddress) The source of a packet, indicated by examining the IP header. MANETcast Transmit the packetDYMOcast Packet transmission to all MANET nodesrouters within reception range. In a simple implementation MANETcastDYMOcast packets areshould be sent with an IPDestinationAddress of IPv4 TBD (IPv6 TBD), the DYMOcastAddress. Routing Element (RE) A DYMO message element that is used to distribute routing information. Route Invalidation Disabling the use of a route, causing it to be unavailable for forwarding data. Route Reply (RREP) Upon receiving a RREQ, the IPBroadcastAddress. MANETcast SHOULD preform duplicate suppression.target node generates a Route Reply (RREP). A RREP is a RE with a unicast IPDestinationAddress, indicating that this RE is to be unicast hop-by-hop toward the TargetAddress. Route Request (RREQ) A node generates a Route Request (RREQ) to discover a valid route to a particular destination (TargetAddress). A RREQ is simply a RE with the DYMOcastAddress in the IPDestinationAddress field of the IP packet. Also, the A-bit is set to one (A=1) to indicate that the TargetNode must respond with a RREP. Valid Route A known route where the RouteValidTimeoutRoute.ValidTimeout is largergreater than the current time. 3. Data Structures 3.1 Conceptual Data Structures 3.1.1Route Table Entry The route table entry is a conceptual data structure. Implementations may use any internal representation that conforms to the semantics of a route as specified in this document. o RouteAddressRoute.DestAddress o RouteDeleteTimeoutRoute.DeleteTimeout o RouteHopCntRoute.HopCnt o RouteIsGatewayRoute.IsGateway o RouteNextHopAddressRoute.NextHopAddress o RouteNextHopInterfaceRoute.NextHopInterface o RoutePrefixRoute.Prefix o RouteSeqNumRoute.SeqNum o RouteValidTimeout 3.2 DYMO Message Elements 3.2.1 Fixed PortionRoute.ValidTimeout These fields are defined as follows: Route Node Address (Route.DestAddress) The IP address of DYMO Elements All DYMO message elements must conform tothe fixed data structure below. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ElemType |T|I| Res | ElemTTL | ElemLen | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . ElemTargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . ElemNotifyAddress (Only ElemTypes with M-bit set) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . ElemData . . ElemType-Specific Payload . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.2.2 Routingnode associated with the routing table entry. Route Delete Timeout (Route.DeleteTimeout) If the time current is after Route.DeleteTimeout the corresponding routing table entry MUST be deleted. Route Hop Count (Route.HopCnt) The number of intermediate node hops before reaching the Route.DestAddress. Route Is Gateway (Route.IsGateway) 1-bit selector indicating whether the Route.DestAddress is a gateway. Route Next Hop Address (Route.NextHopAddress) The IP address of the next node on the path toward the Route.DestAddress. Route Next Hop Interface (Route.NextHopInterface) The interface used to send packets toward the Route.DestAddress. Route Prefix (Route.Prefix) 6-bit field that specifies the size of the subnet reachable through the Route.DestAddress, see Section 4.7. The definition of the Prefix field is different for gateways; entries with Route.IsGateway set to one (1). Route Sequence Number (Route.SeqNum) The sequence number of the Route.DestAddress. Route.ValidTimeout The time at which a route table entry is scheduled to be invalidated. The routing table entry is no longer considered valid if the current time is after Route.ValidTimeout. 3.2 DYMO Message Elements 3.2.1 Generic DYMO Element (RE)Structure All DYMO message elements MUST conform to the fixed data structure below. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ElemType |T|I| ResType | ElemTTLLen | ElemLenTTL |I|Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . ElemTargetAddressNotifyAddress (Only Types with M-bit set) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ElemTargetSeqNum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A|G| Prefix1 | Res | REHopCnt1 |. TargetAddress (for non-DYMOcastAddress IPDestinationAddresses). +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . RENodeAddress1. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RENodeSeqNum1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|G| PrefixN | Res | REHopCntN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+. Additional RENodeAddressN (if needed)Data . . Type-Specific Payload . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Additional RENodeSeqNumN (if needed) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ElemType: 1. Nodes MUST implement the Routing Element. 3.2.3 Route Error (RERR) 0Figure 1 2 3Element Type (Type) 0 0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | ElemType |T|I| ResType | ElemTTL= |M| H | ElemLen| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . ElemTargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UNodeAddress1 . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UNodeSeqNum1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . Additional UNodeAddress (if needed) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Additional UNodeSeqNum (if needed) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ElemType: 2. Nodes+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ Figure 2 The Type field identifies the element as well as the handling by nodes that do not implementing RERR will ignoreimplement or understand the element. The most significant bit, the M-bit, denotes whether the element and continue. 3.2.4requires notification via an Unsupported-element Error (UERR) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ElemType |T|I| Res | ElemTTL | ElemLen | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . ElemTargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UElemTargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UERRNodeAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UElemType | +-+-+-+-+-+-+-+-+ ElemType: 3. Nodeswhen the element is not understood or handled by a particular node. The next two bits, H-bits, identify how the Type is to be handled by nodes not implementing the Type, regardless of UERR will ignoredelivery. Section 4.3.3 describes the element and continue. 3.3 Field Descriptions A-bit (A)handling behavior based on the Type. I-bit (I) 1-bit selector indicating whether this RE requires an answer RE bythe ElemTargetAddress.element has been ignored by some node that has relayed this element. If A=1 an answer is required. The instructions for generating an answer REI=1 the element has been ignored. Reserved (Reserved, Reservd, Res, R) Reserved bits. These bits are described in Section 4.4.3.set to zero (0) during element creation and ignored during processing. Element Data (ElemData) ElemType-specific payload.Time to Live (TTL) 6-bit field that identifies the maximum number of times the element is to be retransmitted. The TTL field operates similar to IPTTL (MaxCount) and is decremented at each hop. When TTL reaches zero (0) the element is dropped. Element Length (ElemLen)(Len) 12-bit field that indicates the size of the element in bytes, including the fixed portion. Element Notify Address (ElemNotifyAddress)(NotifyAddress) The node to send a UERR if the ElemTypeElement Type is unsupported.unsupported or not handled by the processing node. The ElemNotifyAddressNotifyAddress field is only present if the ElemTypeType field has the M-bit is set to one (1). Element Target Address (ElemTargetAddress)(TargetAddress) The node that is the ultimate destination of the element. Element Time to Live (ElemTTL) 6-bitThis field that identifies the maximum number of times the elementis to be retransmitted. The ElemTTL field operates similar to IPTTL (MaxCount) andonly required if the IPDestinationAddress is decremented at each hop. When ElemTTL reaches zero (0)not the elementDYMOcastAddress. During hop-by-hop transmission of a DYMO packet the IPDestinationAddress is dropped.filled with the Route.NextHopAddress of the route table entry associated with the TargetAddress. Element Type (ElemType)Data (Data) Type-specific payload. 3.2.2 Routing Element (RE) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ElemTypeType | = |M| HLen | TTL |I|A| Res | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . TargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TargetSeqNum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | THopCnt |Res| . +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ The ElemType field identifies the element as well as the handling by nodes that do not implement or understand the element. The MSB bit, M-bit, denotes whether the element requires notification via an Unsupported-element Error (UERR) when the element is not understood. . . . Routing Element Blocks (1 or handled by a particular node. The next two bits, H-bits, identify how the ElemType MUST be handled by nodes not implementing the ElemType, regardless of UERR delivery. Section 4.3.3 describes the handling behavior based on the ElemType. G-bit (G) 1-bit selector to indicate whether the RENodeAddress1 is a gateway. If G=1 RENodeAddress1 is a gateway. For more information on gateway operation see Section 4.8. I-bit (I)more) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3 A-bit (A) 1-bit selector indicating whether this RE requires a RREP by the element has been ignored.TargetAddress. If I=1 the element has been ignored. ForA=1 a description of processingRREP is required. The instructions for unsupported elements by ElemType seegenerating a RREP are described in Section 4.3.3. Prefix Size (Prefix) 6-bit field4.4.2. Element Target Address (TargetAddress) The node that specifiesis the sizeultimate destination of the subnet reachable through the associated node, see Section 4.7.Routing Element. Target Sequence Number (TargetSeqNum) The definitionsequence number of Prefixthe ultimate destination of this Routing Element. If the Sequence Number is differentunknown for gateways. Routing Element Blockthis particular Route.DestAddress then TargetSeqNum is set to zero (0). Target Hop Count (REHopCnt)(THopCnt) 6-bit field that identifies the number of intermediate nodes through which a packet traversed on the associated RE block has passed through. Routing Element Node Address (RENodeAddress) The IP address ofroute to this particular TargetAddress the node that appending its RENodeAddress. Routing Element Node Sequence Number (RENodeSeqNum)last time a route was available. The sequence number ofTHopCnt is the node appending its RENodeSeqNum. Reserved (Res, R) Reserved bits. These bits are set to zero (0) during element creation and ignored during processing. Route Node Address (RouteNodeAddress) The IP addressRoute.HopCnt of the node associated withTargetAddress, stored in the routing table entry. Route Delete Timeout (RouteDeleteTimeout) The corresponding routing table entry MUST be deleted ifof the current timeRREQ originator. If the hop count information is after RouteDeleteTimeout. Route Hop Count (RouteHopCnt) The number of intermediatenot available at the originating node hops before reachingthen the RouteNodeAddress. Route Is Gateway (RouteIsGateway)THopCnt is set to zero (0). Routing Element Block (REBlock) Data structure that describes routing information related to a particular IP address, RENodeAddress. Routing Element Block (REBlock) 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |G| Prefix |Reservd| REHopCnt | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . RENodeAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RENodeSeqNum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4 G-bit (G) 1-bit selector indicatingto indicate whether the RouteNodeAddressRENodeAddress is a gateway. Route Next Hop Address (RouteNextHopAddress) The IP address of the next nodeIf G=1 RENodeAddress is a gateway. For more information on the path toward the RouteNodeAddress. Route Next Hop Interface (RouteNextHopInterface) The interface to send packets toward the RouteNodeAddress. Routegateway operation see Section 4.8. Prefix (RoutePrefix)Size (Prefix) 6-bit field that specifies the size of the subnet reachable through the RouteNodeAddress,associated node, see Section 4.7. The definition of thePrefix fieldis different for gateways. RouteRouting Element Block Hop Count (REHopCnt) 6-bit field that identifies the number of intermediate nodes through which the associated REBlock has passed. Routing Element Node Address (RENodeAddress) The IP address of the node associated with this REBlock. Routing Element Node Sequence Number (RouteSeqNum)(RENodeSeqNum) The sequence number of the RouteNodeAddress. RouteValidTimeout The routing table entry is no longer considered valid if the current time is after RouteValidTimeout. T-bit (T) 1-bit selector indicating how the element must be transmitted. If T=0 the element is unicast toward the ElemTargetAddress. Otherwise, if T=1 the element is MANETcast.node associated with this REBlock. 3.2.3 Route Error (RERR) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Len | TTL |I|Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UNodeAddress1 . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UNodeSeqNum1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . Additional UNodeAddressN (if needed) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Additional UNodeSeqNumN (if needed) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5 Unreachable Node Address (UNodeAddress) The IP address of the unreachable node. Unreachable Node Sequence Number (UNodeSeqNum) The sequence number of the unreachable node, if known; otherwise, zero (0). RERR generation is described in Section 4.6.3. 3.2.4 Unsupported-element NodeError (UERR) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Len | TTL |I|Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . TargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UElemTargetAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . UERRNodeAddress . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UElemType | +-+-+-+-+-+-+-+-+ Figure 6 Element Target Address (UERRNodeAddress)(TargetAddress) The IP address of thenode that generatedis the UERR.ultimate destination of the element, NotifyAddress. Unsupported-element Target Address (UElemTargetAddress) Address of the destination of the elementelement that caused generation of this UERR; TargetAddress from the offending fixed DYMO element. Unsupported-element Node Address (UERRNodeAddress) The IP address of the node that caused delivery ofcreated the UERR. Unsupported-element Type (UElemType) The ElemTypeType that required generation of the UERR. 4. Detailed Operation 4.1 Sequence Numbers 4.1.1 Maintaining a Sequence Number DYMO requires each node in the network to maintain its own sequence number (OwnSeqNum). The circumstances for a node to change its OwnSeqNum are described in Section 4.4.1. 4.1.2 Incrementing a Sequence Number When a node increments its OwnSeqNum (as proscribeddescribed in Section 4.4.1 and Section 4.4.3)4.4.2) it MUST do so by treating the sequence number value as if it werewas an unsigned number. The sequence number zero (0) is reserved and is used in several DYMO data structures to represent an unknown sequence number. 4.1.3 Sequence Number Rollover To accomplish sequence number rollover, ifIf the sequence number has been assigned to be the largest possible number representable as a 32-bit unsigned integer (i.e., 4294967295), then the sequence number when incrementedMUST be set to one (1).(1) when incremented. 4.1.4 Actions After Sequence Number Loss If a node's OwnSeqNum is lostlost, it must take certain actions to avoid creating routing loops. To prevent this possibility after sequence number loss a node MUST NOT participate in the MANET network (forward any data or issuewait for at least ROUTE_DELETE_PERIOD before transmitting any DYMO packet other than RERR generated by this node. If a DYMO control packets) until itpacket is sure that all other nodes have deletedreceived during this period, the node SHOULD process it normally but MUST not retransmit any sequence number information about it.DYMO control packets. If RouteDeleteTimeouta data packet is setreceived during this waiting period the node MUST send a RERR message to ROUTE_DELETE_TIMEOUT +the current time (as described in Section 4.2.1), nodes should avoid participation for at least ROUTE_DELETE_TIMEOUT after sequence number loss.IPSourceAddress with the UNodeSeqNum set to zero (0) and restart its waiting period before transmitting any DYMO control packets except RERR generated by this node. 4.2 DYMO Routing Table Operations 4.2.1 Creating or Updating a Route Table Entry from a Routing Element InformationBlock While processing a RE, as described in Section 4.4.3,4.4.2, a node checks its routing table for an entry to the RENodeAddress using longest-prefix matching. In the event that there isno correspondingmatching entry for the node,is found, an entry is created. TheIf a matching entry is found, the routing information about RENodeAddress contained in the RE blockthis REBlock is considered stale if: o the result of subtracting the RouteSeqNumRoute.SeqNum from RENodeSeqNum is less than zero (0) using signed 32-bit arithmetic, OR o the result of subtracting the RouteSeqNumRoute.SeqNum from RENodeSeqNum is equal to zero (0) using signed 32-bit arithmetic AND the REHopCnt is greater than RouteHopCnt.Route.HopCnt. If there exists a valid route AND the result of subtracting the Route.SeqNum from RENodeSeqNum is equal to zero (0) using signed 32-bit arithmetic AND the REHopCnt is equal to the Route.HopCnt in this REBLock the information is not stale, but the routing information SHOULD be disregarded and no routing update should occur. If the information in this REBLock is stale or disregarded and this RE blockREBlock is the first node in the RE (RENodeAddress1)this DYMO packet MUST be dropped. Otherwise,For other REBlocks containing stale or disregarded routing information, the RENodeAddress and RENodeSeqNum areREBlock is simply removed from this RE.RE and the RELen adjusted. Removing stale and disregarded REBlocks ensures that unused information is not propagated further. If the route information for RENodeAddress is not stale,stale or disregarded, then the following actions occur to the route table entry for RENodeAddress: o1. the Route.HopCnt is set to the REHopCnt, 2. the RouteDeleteTimeoutRoute.IsGateway is set to the G-bit, 3. the Route.DeleteTimeout is set to the current time + ROUTE_DELETE_TIMEOUT, o4. the RouteNextHopAddressRoute.NextHopAddress is set to the node that transmitted this DYMO packet (IPSourceAddress), o5. the RouteNextHopInterfaceRoute.NextHopInterface is set to the interface that this DYMO packet was received on, o6. the RoutePrefixRoute.Prefix is set to Prefix, o and7. the RouteSeqNumRoute.SeqNum is set to the RENodeSeqNum. oRENodeSeqNum, 8. and the RouteValidTimeoutRoute.ValidTimeout is set to the current time + ROUTE_TIMEOUT,ROUTE_TIMEOUT. If a valid route exists to RENodeAddress, the route can be used to send any queued data packets and to fulfill any outstanding route requests. 4.2.2 Route Table Entry Timeouts If the current time is later than a routing entry's RouteValidTimeout,Route.ValidTimeout, the route is stale and it is not be used to route packets. The information in invalid entries may still be useful for generating RREQ messages. If the current time is later than a routing entry's RouteDeleteTimeout,after Route.DeleteTimeout the routecorresponding routing table entry MUST be deleted. 4.3 DYMOGeneral DYMO Processing 4.3.1 DYMO Control Packet Processing A DYMO packet may consist of multiple DYMO elements. Each element is processed individually and in sequence, from first to last. An incoming DYMO packet MUST be completely processed prior to any DYMO packet transmissions, resulting from the contained DYMO elements.transmissions. The length of IP addresses (32-bits for IPv4 and 128-bits for IPv6) inside DYMO elements is dependent on the IP packet header. For example, if the IP header is IPv6 then all DYMO elements contained in the payload use IPv6 addresses. Unless specific element processing requires dropping the DYMO packet, it is retransmitted after processing.processing, according to the method described in Section 4.3.5. 4.3.2 Generic Element Pre-processing Each element in a DYMO packet undergoes pre-processing before the element specific processing occurs. The ElemTTLDuring pre-processing, the TTL is decremented by one (1). 4.3.3 Processing Unsupported DYMO ElementsElement Types This section describedescribes the processing for unsupported DYMO ElemTypes. For unsupported DYMO elements, the ElemTypeelement Types. The Type field identifies the handling by nodes that do not implementimplement, support or understand the element.a particular Element Type. The most significant bit (M-bit) indicates whether an Unsupported-element Error (UERR) SHOULD be sent to the ElemNotifyAddress.NotifyAddress. The next two bits (H-bits) identify how the element should be handled. 0 0 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ | ElemTypeType | = |M| H | | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ If the M-bit is set is thisin a DYMO element,element being processed by a node that does not support this Element Type a UERR isSHOULD be sent to the ElemNotifyAddress.NotifyAddress. This is accomplished by following the instructions in Section 220.127.116.11. Regardless of whether or not a UERR is sent in response to this unsupported ElemType,Element Type, the processing node MUST also examine the H-bits to determine how this unsupported element is handled. If :The unsupported element Type MUST be handled as follows: o If H == 00: Processing for this ElemType MUST00 skip the element and continue,continue as if the packet did not contain this element. o If H == 01: Processing for this ElemType MUST01 remove the unsupported element (using the ElemLen)Len field) from the packet and continue,continue as if the packet did not include this element. o If H == 10: Processing for this ElemType MUST10 set the ignored bit (I-bit),(I-bit) skip this element and continue, as if the packet did not contain this element. o If H == 11: Processing for this ElemType dictates that11 drop the packet MUST be dropped.without processing any other DYMO elements. 18.104.22.168 Generating an Unsupported-element Error When an unsupported element type is received with the M-bit set, the processing node SHOULD generate an Unsupported-element Error (UERR). The ElemTargetAddress inTargetAddress is set to the UERRNotifyAddress. The IPDestinationAddress is set to the ElemNotifyAddress fromRoute.NextHopAddress toward the unsupported element.NotifyAddress. The UElemTargetAddress is set to the ElemTargetAddressTargetAddress from the unsupported element. The UERRNodeAddress is set to the node address generating nodes IP address.this UERR. The UElemType is the ElemTypeType from the unsupported element. The ElemTTL isTTL SHOULD be set to NET_DIAMETER. The UERRNodeAddress isNET_DIAMETER, but MAY be set to the address of the node generating this UERR.smaller. The ElemLenLen is set to the total number of bytes in this UERR. The T-bit is set to zero (T=0). Theelement is then processed as described in Section 4.3.4. 4.3.4 Generic Element Post-processing If the ElemTTLfirst element TTL is zero (0) AND this element isthe first element thisDYMO packet is dropped after processing of all elements in the DYMO packet.elements. If the ElemTTL is zero (0) AND this is NOTTTL of the first element, thiselement is removed from the packet. If the ElemTTL is largergreater than zero (0), this element is re-transmitted in athe DYMO packet is re-transmitted after processing of all elements have been processed.elements. If the TTL of any element is zero (0) after processing it MUST be removed from the DYMO packet prior to transmission. 4.3.5 DYMO Control Packet Transmission DYMO packet transmission and re-transmission is controlled by the T-bit in the first element.IPDestinationAddress. If T=0the elementIPDestinationAddress is a unicast towardaddress, the ElemTargetAddress viapacket IPDestinationAddress is replaced by the Route.NextHopAddress from a routingroute table lookup. Iflookup for the RouteNextHopAddressTargetAddress. If a route for the ElemTargetAddressTargetAddress is not knownunknown or invalid the packet is dropped. If T=1 the element is MANETcast.dropped and a RERR SHOULD be generated. For all currently defined DYMO packets the IPTTL (IPMaxCount) SHOULD be set to 1 (IPTTL=1).(IPTTL=1), since all DYMO packet communications are between direct neighbors. 4.4 Routing Element 4.4.1 Routing Element Creation When a node creates a RE,RE it first incrementsMUST increment its OwnSeqNum by one according to the rules specified in Section 22.214.171.124.1.2, except under the following conditions: The RE being created is a RREP AND either the o TargetSeqNum is less than OwnSeqNum OR o TargetSeqNum is equal to OwnSeqNum AND the and THopCnt is less than or equal to HopCnt. Then itthe node sets the RENodeAddress1 to its own address. The RENodeSeqNum1 is the node's OwnSeqNum. The node may advertise a prefix using the Prefix field, as described in Section 4.7. Otherwise, the Prefix field is set to zero (0). ThisThe node may advertise it is a gateway by setting the G-bit,G-bit if it is a gateway, as described in Section 4.8. Otherwise, the G-bit is set to zero (0). The ElemTTL isTTL SHOULD be set to NET_DIAMETER. 4.4.2 Appending Additional Routing Information to an Existing Routing Element After processing a RE, a nodeNET_DIAMETER, but MAY append its IP address and OwnSeqNum tobe set smaller. For the RE. Appending its own routing information may alleviate some route discovery procedures to this node from other nodes that process this RE. If this node plans to append its IP address tocase of RREQ, the RE, it first increments its OwnSeqNumTTL MAY be set in accordance with an expanding ring search as defineddescribed in Section 4.1.2. Then this node appends its IP address and OwnSeqNum to the RE. The ElemLen is also adjusted accordingly. 4.4.3. 4.4.2 Routing Element Processing After general DYMO element pre-processing,pre-processing (Section 4.3.2), the REHopCnt for the ElemHopCntfirst REBlock is incremented by one.one (1). A route to RENodeAddress1the first REBlock is then created or updated using the associated RENodeSeqNum, G-bit, Prefix, and REHopCnt,updated, as defineddescribed in Section 4.2.1. If this REBlock does not result in a valid route the packet MUST be dropped. Each RENodeAddress, RENodeSeqNum, G-bit, Prefix, and REHopCnt block MAYadditional REBlock SHOULD be processed. FirstFor each REBlock the REHopCnt is incremented,incremented by one (1), then a route is created or updated as defined in Section 4.2.1. Each RENodeAddress blockREBlock resulting in a valid route entry may alleviate a future route discovery. Any unprocessed RENodeAddress blocksREBlocks that do not result in a valid route update or that are not processed MUST be removed from the RE. If this node is the ElemTargetAddressTargetAddress AND the A-bit is set (A=1), this node MUST reciprocaterespond with a RE. ThisRREP. The target node creates a new RE as described in Section 4.4.1. The ElemTargetAddressTargetAddress in the new RE is set to the RENodeAddress1 from the RE currently being processed. The T-bitTHopCnt is set to zero (T=0) andthe hop count for the TargetAddress. The A-bit is set to (A=0). The IPDestinationAddress is set to the Route.NextHopAddress for the TargetAddress. The TargetSeqNum is set to Route.SeqNum for the TargetAddress. Then the new RE undergoes post-processing, according to Section 126.96.36.199.3.4. After processing a RE, a node MAY append its routing information to the RE, according to the process described in Section 4.4.3. The additional routing information will reduce route discoveries to this node. If this node is not the ElemTargetAddressTargetAddress, the current RE SHOULD be handled according to Section 4.3.4. If this node is the ElemTargetAddressTargetAddress, the current packet and any additional elements are processed, but this packet is not retransmitted. 4.4.3 Appending Additional Routing Information to an Existing Routing Element Appending routing information will alleviate route discovery attempts to this node from other nodes that process the resultant RE. Nodes SHOULD append a REBlock to RE processed. Prior to appending a REBlock to a RE, a node MUST increment its OwnSeqNum as defined in Section 4.1.2. Then it appends its IP address, OwnSeqNum, Prefix and G-bit to the RE in a REBlock. The REHopCnt is set to zero (0). The RE Len is also adjusted according to the number of REBlocks in the RE. 4.5 Route Discovery A node generates a Route Request (RREQ) to discover a valid route to a particular destination (ElemTargetAddress), other than itself.(TargetAddress). A RREQ is simplya RE with the T-bit set (T=1) to indicate that this RE is to be MANETcast. Also, theA-bit is set to one (A=1) to indicate that the TargetNode must respond with a RE.RREP. If a sequence number is known for the ElemTargetAddressTargetAddress it is placed in the ElemTargetSeqNumTargetSeqNum field. Otherwise, ElemTargetSeqNumTargetSeqNum is set to zero (0). Before sending the RREQ,Similarly, if a hop count is known for the generating node buffers its RENodeAddress and RENodeSeqNumTargetAddress it is placed in its RE Table.the THopCnt field. Otherwise, the THopCnt is set to zero (o). The IPDestinationAddress is set to the DYMOcastAddress. Then the RE is then transmitted according to the procedure defined in Section 4.3.5. After issuing thea RREQ, the originating node waits for a route to be created to the TargetNode. If a route is not received within RREQ_WAIT_TIME milliseconds, this node MAY again try to discover a route by issuing another RREQ. To reduce congestion in a network, repeated attempts at route discovery for a particular TargetNode SHOULD utilize a binary exponential backoff. The first time ana node issues a RREQ, it waits RREQ_WAIT_TIME milliseconds for a route to the TargetNode. If a route is not found within that time, the node mayMAY send another RREQ. If a route is not found within 2*RREQ_WAIT_TIME,two (2) times the current waiting time, another RREQ may be sent, up to a total of RREQ_TRIES. For each additional attempt, the waiting time for the previous RREPRREQ is multiplied by 2two (2) so that the waiting time conforms to a binary exponential backoff. Data packets waitingawaiting for a route SHOULD be buffered. If a route discovery has been attempted RREQ_TRIES times without receiving a route to the TargetNode, all data packets destined for the corresponding TargetNode SHOULD be dropped from the buffer and a Destination Unreachable ICMP message SHOULD be delivered to the application. 4.6 Route Maintenance 4.6.1 Active Link BreaksMonitoring Nodes SHOULDMUST monitor links toon active neighbors.routes. This may be accomplished by one or several mechanisms. Such as:Including: o Link layer feedback o Hello messages o Neighbor discovery o Route timeout Upon detecting a link break the validdetecting node MUST set the Route.ValidTimeout to the current time for all routes active routes utilizing the broken linklink. A RERR MUST set their RouteValidTimeoutbe issued if a data packet is received and it cannot be delivered to the current time.next hop. RERR generation is described in Section 4.6.3. A RERR MAYSHOULD be issued after detecting a broken link of an active route. RERR Generation is described in Section 4.6.4.route to quickly notify nodes that a link break occurred and a route or routes are no longer available. 4.6.2 Updating Route Lifetimes To avoid route timeouts for active sources, after receiving a packetroutes, a node MAYMUST update the RouteValidTimeoutRoute.ValidTimeout to the IPSourceAddress to be the current time + ROUTE_TIMEOUT. 4.6.3 Extending Route LifetimesROUTE_TIMEOUT upon receiving a data packet. The Route.DeleteTimeout MUST also be updated to the current time + ROUTE_DELETE_TIMEOUT. To avoid route timeouts for active routes, an originating node MAY periodically senda RE withnode SHOULD update the T-bit setRoute.ValidTimeout to zero (0),the A-bit setIPDestinationAddress to one (A=1) andbe the ElemTargetAddress setcurrent time + ROUTE_TIMEOUT upon successfully transmitting a packet to the target node's address (RouteAddress).next hop. The resultant DYMO packet transmissions and RE processing (Section 4.2.1) will update the lifetime of routesRoute.DeleteTimeout SHOULD also be updated to the originating node and target node (RouteAddress) at all intermediate nodes, if a valid route still exists. 4.6.4current time + ROUTE_DELETE_TIMEOUT. 4.6.3 Route Error Generation When a non-DYMOdata packet is received for a destination without a valid routing table entry, a Route Error (RERR) SHOULDMUST be generated by this node. A RERR informs the source that the current route is no longer available in a more timely manner than RouteValidTimeout.available. In the RERR, the ElemTargetAddress is the node that sent the non-DYMO packet, the IPSourceAddress. TheUNodeAddress1 field is the address of the unreachable node (IPDestinationAddress) from the non-DYMOdata packet. If the UNodeSeqNum is known, it is placed in the RERR; otherwiseotherwise, zero (0) is placed in the thisUNodeSeqNum field of the RERR. The ElemTTL isTTL SHOULD be set to NET_DIAMETER.NET_DIAMETER, but may be set smaller. The T-bitIPDestinationAddress is set to one (T=1).the DYMOcastAddress. Additional unreachable nodes utilizingthat required the same invalidunavailable link (routes with the same RouteNextHopAddressRoute.NextHopAddress and RouteNextHopInterface)Route.NextHopInterface) as the UNodeAddress1 MAYSHOULD be appended to the RERR. For each unreachable node theirthe UNodeAddress and UNodeSeqNum are appended. The ElemLenLen is set accordingly. The RERR is then processed as described in Section 4.3.5. 188.8.131.52.4 Route Error Processing When a node processes a RERR after generic element pre-processing,pre-processing (Section 4.3.2), it SHOULD set the RouteValidTimeoutRoute.ValidTimeout to the current time for each route to a UNodeAddress that meetmeets all of the following conditions: 1. The RouteNextHopAddressRoute.NextHopAddress is the same as the RERR IPSourceAddress. 2. The RouteNextHopInterfaceRoute.NextHopInterface is the same as the interface thison which the RERR was received. 3. The UNodeSeqNum is zero (0) OR ifthe result of subtracting RouteSeqNumRoute.SeqNum from UNodeSeqNum is less than or equal to zero using signed 32-bit arithmetic If any route's RouteValidTimeout is setarithmetic. Each UNodeAddress that did not result in a change to the current time, this RERR MAYRoute.ValidTimeout SHOULD be handled as described in Section 4.3.4. Otherwise,removed from the RERR is dropped.RERR. Prior to RERR elementgeneric post processing a node MAY remove UNodeAddress, UNodeSeqNumany UNodeAddressN, UNodeSeqNumN pairs except UNodeAddress1 to decrease the element size. If at least one UNodeAddress remains and at least one route remains in the RERR it SHOULD be handled as described in Section 4.3.4 to decreasecontinue notification of nodes effected by the element size.broken link. Otherwise, the RERR is dropped. 4.7 Routing Prefix Any node can advertise connectivity to a subset of other nodes within its address space by using the prefix field in RE. The nodes within the advertised prefix SHOULD NOT participate in the MANET,MANET and MUST be reachable by forwarding packets to the node advertising connectivity. For example, 192.168.1.1 with a prefix of 16 indicates all nodes with the prefix 192.168.X.X are reachable through 192.168.1.1. If the G-bit is set theThe meaning of the prefix field is altered. For a gatewayaltered for routes to the gateway; Route.IsGateway is one (1). If the G-bit is set the prefix in association with the IP address indicates that all nodes outside the subnet are reachable via the gateway node. For example, a route to a gateway with IP address 192.168.1.1 and a prefix of 16 indicates that all nodes with thean IP address NOT matching 192.168.X.X are reachable through 192.168.1.1.via this route. 4.8 Internet Attachment BasicInternet attachment consists of a stubnetwork of MANET nodes connected to the Internet via a singlegateway node. The gateway is responsible for responding to RREQs for TargetNodes outside its configured MANET subnet, as well as delivering packets to destinations outside the MANET subnet. MANET nodes wishing to be reachable from nodes in the Internet MUST have IP addresses within the gateway's configured MANET subnet. Given a node with a globally route-ablerouteable address or care-of address handled by the gateway, the gateway is responsible for performing route discovery forrouting and forwarding packets received from the Internet destined for nodes inside its MANET subnet. Since many nodes may commonly wish to communicate with the gateway, the gateway SHOULD indicate to nodes that it is a gateway by setting the gateway bit (G-bit) in the RE.any RE created or processed. The G-bit flag indicates to nodes in the MANET that the RENodeAddress is attached to the Internet and is capable of routing data packets to all nodes outside of the configured MANET subnet, described by the RENodeAddress and Prefix fields. 4.9 Multiple Interfaces It is likely that DYMO will be used with multiple wireless interfaces; therefore, the particular interface over which packets arrive must be known whenever a packet is received. Whenever a new route is created, the interface through which the RouteAddressRoute.DestAddress can be reached is also recorded into the route table entry. When multiple interfaces are available, a node transmitting a MANETcastDYMOcast packet SHOULD send the packet on all interfaces that have been configured for operation in the MANET. 4.10 Packet Generation Limits To avoid congestion, a node SHOULD NOT transmit more than RATE_LIMIT control messages per second. RREQ packets SHOULD be discarded before RREP or RERR packets. 5. Configuration Parameters Here are some suggesteddefault parameter values for DYMO: Parameter Name Suggested Value --------------------------- --------------- NET_DIAMETER 10 RATE_LIMIT 10 ROUTE_TIMEOUT 3000 milliseconds ROUTE_DELETE_TIMEOUT 5*ROUTE_TIMEOUT RREQ_WAIT_TIME 1000 milliseconds RREQ_TRIES 3 These parameters work well for small well-connectedFor large networks or networks with moderate networkfrequent topology changes. For other networks thesechanges the default DYMO parameters SHOULDshould be adjusted using either dynamic adaptation orexperimentally determined values.values or dynamic adaptation. For exampleexample, in static networks,networks with infrequent topology changes ROUTE_TIMEOUT may be set to a much larger value. It is assumed that all nodes in the network share the same parameter settings. Different parameter values for ROUTE_TIMEOUT or ROUTE_DELETE_TIMEOUT in addition to arbitrary packet delays may result in frequent route breaks or routing loops. 6. IANA Considerations DYMO defines a ElemTypeType field for each element within a packet sent to port TBD. A new registry will be created for the values for this ElemTypeType field, and the following values will be assigned: ElemTypeType Value -------------------------------- ----- Routing Element (RE) 1 Route Error (RERR) 2 Unsupported-element Error (UERR) 3 Future values of the ElemType and ErrTypeType will be allocated using standard actions as described in . For future Types with the M-bit set NotifyAddress MUST be included. Similarly for future Types that are unicast hop-by-hop (packets not sent to the DYMOcastAddress), these Types MUST include the TargetAddress field. 7. Security Considerations Currently, DYMO does not specify any special security measures. Routing protocols, however, are prime targets for impersonation attacks. In networks where the node membership is not known, it is difficult to determine the occurrence of impersonation attacks, and security prevention techniques are difficult at best. However, when the network membership is known and there is a danger of such attacks, DYMO elements must be protected by the use of authentication techniques, such as those involving generation of unforgeable and cryptographically strong message digests or digital signatures. While DYMO does not place restrictions on the authentication mechanism used for this purpose, IPsec Authentication Element (AH) is an appropriate choice for cases where the nodes share an appropriate security association that enables the use of AH. In particular, RE messages SHOULD be authenticated to avoid creation of spurious routes to a destination. Otherwise, an attacker could masquerade as that destination and maliciously deny service to the destination and/or maliciously inspect and consume traffic intended for delivery to the destination. RERR messages, while slightly less dangerous, SHOULD be authenticated in order to prevent malicious nodes from disrupting active routes between communicating nodes. DYMO does not make any assumption about the method by which addresses are assigned to the mobile nodes except that they are presumed to have unique IP addresses. Therefore, no special consideration, other than what is natural because of the general protocol specifications, can be made about the applicability of IPsec authentication elements or key exchange mechanisms. However, ifIf the mobile nodes in the ad hoc network have pre-established security associations, it is presumed thatthe purposes for which the security associations are created should include that of authorizing the processing of DYMO control packets. Given this understanding, the mobile nodes should be able to use the same authentication mechanisms based on their IP addresses as they would have used otherwise. 8. Acknowledgments DYMO is an decedenta descendant of the design of previous MANET reactive protocols. Special thanks to the authors ofprotocols, especially AODV  and DSR . The authors of AODV and DSR include Charlie Perkins, Elizabeth Belding-Royer, Samir Das, David Johnson, David Maltz, Yih-Chun Hu and Jorjeta Jetcheva. Much of the DYMO protocol also stemsChanges to previous MANET reactive protocols stem from research and implementation of MANET reactive-routing protocols. To mention a few major contributors Sung-Ju Lee, Mahesh Marina, Erik Nordstrom, Yves Prelot, J.J. Garcia-Luna-Aceves, Marc Mosko, Manel Guerrero Zapata, Philippe Jacquet, and Chris Shiflet. Also, special thanksexperiences. Thanks to Luke Klein-Berndt for extensive implementation and testing of AODV, earlyreviewing of DYMO, as well as several technical discussions.specification suggestions. 9. References 9.1 Normative References  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, BCP 26, October 1998.  Perkins, C., Belding-Royer, E. and S. Das, "Ad hoc On-demand Distance Vector (AODV) Routing", RFC 3561, July 2003. 9.2 Informative References  Perkins, C. and E. Belding-Royer, "Ad hoc On-Demand Distance Vector (AODV) Routing", Proceedings of the 2nd IEEE Workshop on Mobile Computing Systems and Applications, New Orleans, LA, pp. 90-100, February 1999.  Johnson, D. and D. Maltz, "Dynamic Source Routing (DSR) in Ad-hoc WirelessAd hoc Networks", AugustIn Mobile Computing, Chapter 5, pp. 153-181, 1996. Authors' Addresses Ian Chakeres University of California Santa Barbara Dept. of Electrical and Computer Engineering Santa Barbara, CA 93106 USA Phone: +1-805-893-8981 Fax: +1-805-893-8553 Email: email@example.com Elizabeth Belding-Royer University of California Santa Barbara Dept. of Computer Science Santa Barbara, CA 93106-5110 USA Phone: +1-805-893-3411 Fax: +1-805-893-8553 Email: firstname.lastname@example.org Charlie Perkins Nokia Research Center 313 Fairchild Drive Mountain View, CA 94043 USA Phone: +1-650-625-2986 Fax: +1-650-625-2502 Email: email@example.com Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at firstname.lastname@example.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society.