Mobile Ad hoc Networks Working Group C. Perkins
Internet-Draft Futurewei
Intended status: Standards Track May 30, 2015
Expires: December 1, 2015

Intermediate RREP for dynamic MANET On-demand (AODVv2) Routing
draft-perkins-irrep-03

Abstract

The Ad Hoc On-demand Distance Vector (AODVv2) routing protocol is intended for use by mobile routers in wireless, multihop networks. AODVv2 determines unicast routes among AODVv2 routers within the network in an on-demand fashion, offering on-demand convergence in dynamic topologies. This document specifies an extension to AODVv2 (possibly useful with other reactive routing protocols) enabling intermediate nodes to shorten route discovery times.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

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."

This Internet-Draft will expire on December 1, 2015.

Copyright Notice

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Overview

The Ad Hoc On-demand Distance Vector (AODVv2) routing protocol [I-D.ietf-manet-aodvv2] enables on-demand, multihop unicast routing among participating AODVv2 routers. The basic operations of the AODVv2 protocol are route discovery and route maintenance. Route discovery is performed by an AODVv2 router when one of its clients (called OrigNode) attempts to transmit a packet towards a destination for which the router does not have a route.

OrigNode's AODVv2 router (denoted RREQ_Gen) initiates route discovery by multicasting a Route Request (RREQ). During the hop-by-hop multicast operation, each intermediate AODVv2 router records a route to the IP address of OrigNode (i.e., OrigAddr). If an intermediate router has a route to the destination requested (denoted TargAddr) in the RREQ, it could transmit an RREP with that routing information to RREQ_Gen. Such an RREP message is called an "Intermediate RREP" (or, "iRREP"). The intermediate router (denoted iRREP_Gen) also generates another RREP message, which is called an "Unsolicited RREP" (or, "uRREP"), to TargRtr, the router TargAddr. The uRREP supplies TargRtr and other intermediate routers with a route towards OrigAddr. When RREQ_Gen receives the iRREP, and TargRtr receives the uRREP, a bi-directional route is established between RREQ_Gen and TargRtr.

In this document, RREQ always refers to the incoming RREQ message received by iRREP_Gen. RREQ_Gen, OrigAddr, TargRtr, and TargAddr always refer to the addresses and routers as defined in [I-D.ietf-manet-aodvv2]; they are named from the context of RREQ_Gen (the AODVv2 router originating the RREQ message).

Intermediate RREP can be particularly effective in conjunction with the use of "expanding rings multicast", which is specified as an optional feature in [I-D.ietf-manet-aodvv2]. Together, these two features enable a simple "route repair" mechanism. When a route breaks close to the origin, RREQ_Gen MAY limit the flooding of a RREQ using expanding rings multicast. Then, nearby AODVv2 routers could in many situations generate iRREP to supply a new route to the desired destination.

When an AODVv2 router receives an RREQ, it first uses the information in the RREQ to update any relevant route table entries. Then, if the router is able to generate an iRREP to satisfy the RREQ, it uses the up-to-date information in its route table to assign proper values to the data elements of the iRREP and uRREP.

Other Intermediate routers receiving the iRREP and uRREP messages use the same procedures to process those messages as specified in [I-D.ietf-manet-aodvv2]. In other words, when iRREP_Gen sends iRREP and uRREP messages, other AODVv2 routers along the route receive and regenerate those messages using the same rules as for any other RREP message.

2. Terminology and Notation

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Additionally, this document uses some terminology and notation from [RFC5444] and [I-D.ietf-manet-aodvv2], some of which is duplicated here for convenience.

AODVv2 Sequence Number (SeqNum)

An AODVv2 Sequence Number is maintained by each AODVv2 router process. This sequence number is used by other AODVv2 routers to identify the temporal order of routing information generated and ensure loop-free routes.
Intermediate Route Reply (iRREP)

A RREP message that is originated by an Intermediate router.
Intermediate Router

An AODVv2 router along a route between RREQ_Gen and TargRtr that itself is not RREQ_Gen or TargRtr.
iRREP_Gen

An Intermediate Router that generates an iRREP message and a uRREP message.
OrigAddr

An IP address of the Originating Node used as a data element within AODVv2 messages.
Originating Node (OrigNode)

The Originating Node is the node that launched the application requiring communication with the Target Address.
RREQ Generating Router (RREQ_Gen)

The AODVv2 router that provides network connectivity to the Originating Node (OrigNode). RREQ_Gen creates a AODVv2 control message (namely, RREQ) on behalf of OrigNode to discover a route to TargAddr.
Router Client

A node that requires the services of an AODVv2 router for route discovery and maintenance. An AODVv2 router is always its own client, so that its list of client IP addresses is never empty.
Target Address (TargAddr)

The Target Address is the address for which a route discovery is initiated by RREQ_Gen.
Target Router (TargRtr)

TargRtr is the AODVv2 router providing connectivity for TargAddr.
Unsolicited Route Reply (uRREP)

An unsolicited RREP message is a RREP originated by an AODVv2 router to a router which did not send a RREQ. In previous documents, uRREP was also sometimes called "Gratuitous RREP".

This document uses the Data Elements and conventions found in Table 1 and Table 2.

Data Elements Meaning
MetricType The metric type for OrigMetric and TargMetric
AddressList A list of IP addresses
OrigAddr IP address of the Originating Node
TargAddr IP address of the Target Node
PrefixLengthList Routing prefixes associated with addresses in AddressList
OrigSeqNum Originating Node Sequence Number
TargSeqNum Target Node Sequence Number
OrigMetric Metric value for route to OrigAddr
TargMetric Metric value for route to TargAddr
ValidityTime Validity Time values for routes
Notation Meaning
Route[Address] A route table entry towards Address
Route[Address].{field} A field in such a route table entry
-- --
iRREP_Gen AODVv2 Router generating Intermediate RREP
uOrigAddr Used as OrigAddr in the uRREP message
uTargAddr Used as TargAddr in the uRREP message

3. Intermediate RREP Protocol Features

The protocol features specified in this document are as follows:

  • DestOnly Message TLV
  • iRREP
  • uRREP

RREQ_Gen MAY specify that only the router serving TargAddr is allowed to generate an RREP message, by including the DestOnly data element (see Section 6) as part of the message. This also assures that RREP_Gen increments its sequence number. Otherwise Intermediate AODVv2 routers MAY respond to the RREQ if they have a valid route to TargAddr, as detailed in this document.

If an intermediate AODVv2 router (iRREP_Gen) has a Route that can satisfy an incoming RREQ, it MAY respond with an Intermediate RREP (iRREP). As usual with any incoming RREQ, iRREP_Gen first updates its route table using the information contained in the RREQ. For example, a route to OrigAddr may be created or updated. After the incoming route update information is applied, iRREP_Gen has valid routes to both OrigAddr and TargAddr (Route[OrigAddr] and Route[TargAddr] respectively).

iRREP_Gen SHOULD also send a RREP to TargRtr, so that TargRtr can obtain a route towards OrigAddr. This RREP sent towards the TargAddr is known as an "Unsolicited RREP" (uRREP). Each AODVv2 router between iRREP_Gen and TargRtr that receives the uRREP, uses the uRREP information to update their route table entry for OrigAddr.

The following conditions must be satisfied before iRREP_Gen can generate iRREP and uRREP.

  • RREQ does not contain the DestOnly Message TLV.
  • iRREP_Gen has a valid route with the same MatricType for TargAddr (namely Route[TargAddr]).
  • Route[TargAddr].SeqNum ≥ RREQ.TargSeqNum

4. Intermediate RREP Generation

The data elements for the iRREP are assigned as follows.

  • IP.DestinationAddr := Route[OrigAddr].NextHop
  • AddressList := {OrigAddr, TargAddr}
  • TargSeqNum := Route[TargAddr].Seqnum
  • Include the MetricType data element if offering a route for a non-default metric type, and set the type accordingly.
  • MetricList := {null, Route[TargAddr].Metric}
  • PrefixLengthList contains the length of the prefix for TargAddr, if TargAddr resides on a Client Network with a prefix length shorter than the number of bits of the address family for TargAddr.
  • If Route[TargAddr].Timed is TRUE, include the ValidityTimeList and set ValidityTimeList := {Route[TargAddr].ExpirationTime - Current_Time, null}

If TargAddr has an associated subnet prefix in the route table, insert its prefix in the PrefixLengthList; otherwise, omit the PrefixLengthList.

5. Unsolicited RREP Generation

The uRREP is intended to fulfill the function of an RREP as if in response to a (fictional) RREQ message sent by TargRtr for discovering a route to OrigAddr. The sense of the addresses in the uRREP has to be reversed. To reduce confusion which might result from this reversal, the OrigAddr data element of the uRREP is denoted "uOrigAddr"; uOrigAddr has the same value as the TargAddr of the incoming RREQ. Similarly, the TargAddr data element is denoted "uTargAddr", and it has the same value as the OrigAddr of the incoming RREQ.

The data elements of the uRREP are assigned as follows.

  • IP.DestinationAddr := Route[TargAddr].NextHop
  • AddressList := {uOrigAddr, uTargAddr}
  • TargSeqNum := Route[uTargAddr].Seqnum
  • Include the MetricType data element if offering a route for a non-default metric type, and set the type accordingly.
  • MetricList := {null, Route[uTargAddr].Metric}
  • PrefixLengthList contains the length of the prefix for uTargAddr, if uTargAddr resides on a Client Network with a prefix length shorter than the number of bits of the address family for uTargAddr.
  • If Route[OrigAddr].Timed is TRUE, include the ValidityTimeList and set ValidityTimeList := {Route[OrigAddr].ExpirationTime - Current_Time, null}.

6. IANA Considerations

This section specifies one new RFC 5444 message-tlv type.

RFC 5444 Message TLV Types
Name of RFC 5444 Message TLV Type Length (octets) Cross Reference
Destination RREP Only (DestOnly) TBD 0 Section 3

7. Acknowledgments

Victoria Mercieca

8. Security Considerations

Since the RREP message is used in the same way as in AODVv2, no new security vulnerabilities are introduced. The effect of an intermediate node erroneously inserting a DestOnly TLV is minimal, and would simply prevent other routers from offering the benefit of generating Intermediate RREP. Security associations SHOULD be maintained in the same way as specified in AODVv2 [I-D.ietf-manet-aodvv2]. Likewise, RREP messages generated according to the specification in this document SHOULD be protected in the same way as specified in AODVv2 [I-D.ietf-manet-aodvv2].

9. Normative References

[I-D.ietf-manet-aodvv2] Perkins, C., Ratliff, S., Dowdell, J., Steenbrink, L. and V. Mercieca, "Ad Hoc On-demand Distance Vector (AODVv2) Routing", Internet-Draft draft-ietf-manet-aodvv2-09, May 2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5444] Clausen, T., Dearlove, C., Dean, J. and C. Adjih, "Generalized Mobile Ad Hoc Network (MANET) Packet/Message Format", RFC 5444, February 2009.

Appendix A. Changes since version ...-02

  • Text rewritten to conform to new terminology in [I-D.ietf-manet-aodvv2].
  • Updated to handle nondefault metrics.
  • Replace SeqNum by OrigSeqNum and TargSeqNum as needed.
  • Minor editorial improvements.

Appendix B. Previous Changes

  • Many changes for RFC 5444 compliance.
  • Added unsolicitied RREP (uRREP).
  • Added notation from [I-D.ietf-manet-aodvv2].
  • Rewrote many paragraphs to conform to above changes.
  • Added section about "prefix-length"=0.
  • Added this "Changes" section.

Author's Address

Charles E. Perkins Futurewei Inc. 2300 Central Expressway Santa Clara, CA 95053 USA Phone: +1-408-330-4586 EMail: charliep@computer.org