Mobile Ad Hoc Networking Working Group                Charles E. Perkins
INTERNET DRAFT                                     Nokia Research Center
14 October 2003                               Elizabeth M. Belding-Royer
                                 University of California, Santa Barbara

    Quality of Service for Ad hoc On-Demand Distance Vector Routing
                   draft-perkins-manet-aodvqos-01.txt


Status of This Memo

   This document is a submission by the Mobile Ad Hoc Networking Working
   Group of the Internet Engineering Task Force (IETF).  Comments should
   be submitted to the manet@itd.nrl.navy.mil mailing list.

   Distribution of this memo is unlimited.

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.  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.


Abstract

   The Ad hoc On-Demand Distance Vector (AODV) routing protocol is
   intended for use by mobile nodes in an ad hoc network.  It offers
   quick adaptation to dynamic link conditions, low processing and
   memory overhead, low network utilization, and determines routes
   between source and destination addresses.  To provide quality of
   service, extensions can be added to the messages used during route
   discovery.  These extensions specify the service requirements which
   must be met by nodes rebroadcasting a Route Request or returning a
   Route Reply for a destination.  This draft describes how service
   partners discover routes that can satisfy QoS service conditions by
   using these extensions.








Perkins, Royer              Expires 14 April 2004               [Page i]


Internet Draft               QoS for AODV                14 October 2003


1. Introduction

   Route discovery in AODV is on-demand and follows a route
   request/route reply query cycle.  When a source is needs a route
   to a destination, it broadcasts a Route Request (RREQ) control in
   search of a route.  Nodes having a current route to the indicated
   destination respond by unicasting a Route Reply (RREP) to the source
   node.  To provide quality of service, extensions can be added to
   these messages during the route discovery process.  A node which
   receives a RREQ with a quality of service extension must agree to
   meet that service requirement in order to either rebroadcast the RREQ
   (if it does not have a route to the destination) or unicast a RREP to
   the source.  For more details on the route discovery process, please
   see the AODV base specification [3].

   In particular, this document specifies extensions which can be used
   to ensure that delay does not exceed a maximum value, or to ensure
   that a certain amount of network capacity (i.e., bandwidth) is made
   available along a route between communication partners.

   This protocol specification uses conventional meanings [1] for
   capitalized words such as MUST, SHOULD, etc., to indicate requirement
   levels for various protocol features.


2. Quality of Service Overview

   Using the extensions in this document, AODV enables mobile nodes
   in an ad hoc network to specify, as part of a RREQ, Quality of
   Service requirements that a route to a destination must satisfy.
   In particular, the RREQ MAY include a QoS Object extension (see
   Section 3) which specifies bandwidth and/or delay parameters.  In
   order to enable measurements to be accumulated for end-to-end delay,
   AODV also provides an Accumulated Value extension (see Section 4.3).
   Any QoS parameters that have to be measured and accumulated at each
   hop along the way can be stored along with the associated RREQ
   message.

   Every RREQ QoS extension also carries with it a "session-ID" value
   which is used to identify the particular QoS flow that will be
   established according to the parameters of the RREQ. The session-ID
   has to be stored along with the route table information associated
   with the particular flow that might be created because of the
   extended RREQ. Every flow is uniquely identified by the triplet
   including the source IP address, the destination IP address, and the
   session-ID. This places a limitation of 65,535 unique flows between
   any two nodes in an ad hoc network.





Perkins, Royer              Expires 14 April 2004               [Page 1]


Internet Draft               QoS for AODV                14 October 2003


   If, after establishment of such a route, any node along the path
   detects that the requested Quality of Service parameters can no
   longer be maintained, that node MUST transmit a ICMP QOS_LOST
   message back to the node which had originally requested the now
   unmaintainable level of service.  This typically requires additional
   information to be stored in each per-destination route table entry
   (see section 4.1).  The ICMP QOS_LOST message identifies the broken
   flow by including the session-ID value associated with the flow.

   For QoS parameters that are affected by cumulative measures at each
   intermediate node of a routing path, an extension is defined to
   enable a running total to be maintained for that measure as the RREQ
   is propagated.  Each intermediate node that elects to forward a
   RREQ MUST adjust the accumulated value in the extension so that an
   accurate determination must be made.  This approach is better than
   modifying the values in the QoS object directly, because it enables
   the original request to be authenticated whenever that is required.

   An intermediate node that can satisfy a RREQ with QoS parameters
   specified typically SHOULD always rebroadcast the RREQ, even if it
   has a route to the destination.  This contrasts with the situation
   with unconstrained RREQ messages, because without any need for QoS
   an intermediate is allowed to answer with an RREP message if it has
   a route to the destination.  Unfortunately, the intermediate node
   is not likely to have current enough information about whether the
   remaining nodes along the path to the destination can also satisfy
   the requested QoS. Effectively, according to this specification,
   every QoS path to the destination will be ultimately approved by the
   destination itself along with every intermedate node along the path
   from the source to the destination.

   When the destination issues the RREP message, it MUST also copy
   over the QoS extension into the RREP message.  Each intermediate
   node forwarding the RREP message back to the originator of the RREQ
   message also MUST copy over the QoS extension.

   In the future, if a specification is made enabling an intermediate
   node to have reliable information about the remaining nodes along
   the path, then the node could issue an RREP, along with a gratuitous
   RREP unicast towards the destination.  The gratuitous RREP would
   then enable the remaining nodes to make the appropriate resource
   reservations that would be needed to satisfy the QoS route discovery
   request.


3. QoS Object Format

   QoS information is expected to be encoded into a standard format,
   illustrated in figure 1.  The standard format allows both complete



Perkins, Royer              Expires 14 April 2004               [Page 2]


Internet Draft               QoS for AODV                14 October 2003


   flexibility for specification of arbitrary values for various QoS
   requirements, and also allows very compact representation, especially
   for the well-known requirements of common applications such as voice
   over IP (VoIP). In this section, we present the standard object
   format.  This object format is used as the main part of the QoS
   Object Extension (see section 4.2).


    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
                                   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                   |A|N|rsv|    QoS Profile Type   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Session ID          |Non-Dflt Bit Vect. (if present)|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :N|    Additional Non-Default Values Bit Vector (if present)    :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Authentication Data (32 bits) (if present)         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :         QoS fields with non-default values (if present)       :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :      More QoS fields with non-default values (if present)     :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                      Figure 1: QoS Object Format


      rsv          Sent as 0, value unused and undefined on reception

      QoS Profile Type
                   If nonzero, an index for a list of QoS parameter
                   field definitions and default values for those
                   fields.  If zero, the fields are as listed below in
                   this section, and there are no default values.

      A            If this bit is set, the Authentication Data field
                   is present following the bit vectors indicating the
                   non-default values.

      N            If QoS Profile Type is zero, this bit MUST be zero.
                   Otherwise, if if the QoS Profile Type is nonzero,
                   when the `N' bit is set, the 16 bits following the
                   "session-ID" field are present and part of the
                   "Non-Default Values" bit vector

      Session-ID   16-bit value identifying the flow which could be
                   set up as a result of the extended route discovery
                   operation controlled by this RREQ message.



Perkins, Royer              Expires 14 April 2004               [Page 3]


Internet Draft               QoS for AODV                14 October 2003


      Non-Default Values Bit Vector
                   a bit vector with one bit for each field parameter
                   field defined for the particular QoS Profile Type
                   number.

      Authentication Data
                   When present, supplies authentication data so that
                   nodes receiving the RREQ can check whether or not the
                   data in the QoS object is the same as specified by
                   the source node.

      QoS Parameter Fields
                   defined in accordance with the QoS Profile Type.  If
                   the profile type is 0, then the fields are as defined
                   below in this section.

   For QoS Profile Type zero, the following parameter fields are
   defined, and MUST appear in this order as indicated by the
   corresponding bit in the "Non-Default Values Bit Vector":

      Capacity Requirement
                   32-bit number, measured in bits/second

      Maximum Permissible Delay
                   16-bit number, measured in milliseconds

      Maximum Permissible Jitter
                   16-bit number, measured in milliseconds

      Traffic Class
                   According to Differentiated Services Code Points

      Some fields that might occur for profile type not equal 0
                   Peak data rate, Maximum permissible BER, ...


4. Extensions

   Several extensions are needed in the routing table structure and
   the RREQ and RREP messages for supporting QoS routing.  We first
   describe the extensions needed for the routing table.  The extensions
   defined in the section after that conform to the format defined for
   extensions to RREQ and RREP messages as specified in [3].


4.1. Routing Table Extensions

   Certain fields are conceptually added to each route table entry
   corresponding to each network node requesting QoS. The fields are



Perkins, Royer              Expires 14 April 2004               [Page 4]


Internet Draft               QoS for AODV                14 October 2003


   needed to notify endpoint nodes in cases where QoS parameter value
   are agreed upon, but the associated service qualities can no longer
   be supplied or maintained.  The specific additional fields depend on
   the QoS object field entries (see section 3), but the following list
   illustrates the general idea.

    -  Session-ID

    -  Maximum Delay

    -  Minimum Available Bandwidth

    -  List of Sources Requesting Delay Guarantees

    -  List of Sources Requesting Bandwidth Guarantees


4.2. QoS Object Extension Format

   A node appends a QoS Object extension to a RREQ in order to disover a
   path that satisfies the QoS parameters which are present in the QoS
   Object, which is situated within the QoS Object extension data.

    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     |    Length     |   QoS Object (variable) ...   :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type         TBD

      Length       variable

      QoS Object   varliable length; as defined in section 3.

   A node originating a RREQ message MAY append a QoS Object Extension
   after the RREQ data, optionally followed by one or more Accumulated
   Value extensions according to the specific data in the QoS Object
   extension.


4.3. Accumulated Value Extension Format

   The Accumulated Value Extension Format may be applied to RREQ
   messages containing the QoS Object extension.  It provides
   information about the cumulative value that has been experienced by
   nodes along the path from the originating node to the node currently
   processing the RREQ.




Perkins, Royer              Expires 14 April 2004               [Page 5]


Internet Draft               QoS for AODV                14 October 2003



    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      |    Length     |   Value Type  |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Accumulated Value                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type         TBD

      Length       2

      Value Type   8 bits specifying the type of the value stored in the
                   Accumulated Value field.

      Reserved     Sent as zero, ignored on reception

      Accumulated Value
                   This field indicates the current estimate of
                   cumulative parameter value from the originating node
                   up to the intermediate node retransmitting the RREQ
                   on behalf of the originating node.

   The Accumulated Value Extension MUST be appended to a RREQ by a node
   rebroadcasting a request for a QoS route whenever it is needed to
   measure the accumulated value of the parameter of the type given in
   the Value Type field; the accumulation occurs at each node starting
   from the originating node.  This allows each next intermediate node,
   or the destination, to determine whether the path can still meet the
   required parameter specification within the QoS Object data.

   The following table gives the currently specified subtype values
   for the Accumulated Value extension.  The last column gives the
   conventional name of the Accumulated Value extension when used with
   the particular subtype.

      Delay == 1        Accumulated Delay Extension

      Jitter == 2       Accumulated Jitter Extension


4.4. QoS Object Authentication Extension

   The QoS Object Authentication Extension may be used so that nodes
   receiving QoS route discovery message may verify that the QoS request
   was in fact originated by the source node.  This extension does
   not verify the contents of any extension other than the QoS Object




Perkins, Royer              Expires 14 April 2004               [Page 6]


Internet Draft               QoS for AODV                14 October 2003


   extension, because other extensions may have mutable fields that are
   modified in transit.


    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      |    Length     |S|        Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   SPI (32 bits) (if present)                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     Authentication Data                       :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


          Figure 2: QoS Object Authentication Extension Format


      S            If this bit is set, the SPI field is present.

      Authentication Data
                   When present, supplies authentication data so that
                   nodes receiving the RREQ can check whether or not the
                   data in the QoS object is the same as specified by
                   the source node.


5. Link Capacity

   A capacity (bandwidth) specification in a QoS object does not require
   the inclusion of any Accumulated Value extension in the RREQ. Any
   node that has sufficient unreserved link capacity to forward data,
   or in the case of the destination to supply data, does not modify
   any contents of the RREQ for the purpose of fulfilling a bandwidth
   specification in the QoS object.

   Note, however, that in order to properly fulfill such a
   specification, a node has to take into account neighborhood
   traffic conditions.  If recent history indicates that neighboring
   transmissions will likely interfere with the node's ability to carry
   out the indicated bandwidth specification, then the node SHOULD NOT
   rebroadcast the RREQ. Exact mechanisms for estimating neighborhood
   traffic levels are beyond the scope of this document.  Additional
   signaling and protocols may be defined in the future in order to
   obtain a higher probability of collecting the necessary neighborhood
   bandwidth utilization information.






Perkins, Royer              Expires 14 April 2004               [Page 7]


Internet Draft               QoS for AODV                14 October 2003


6. Delay

   If the QoS object in the RREQ specifies a delay parameter, then any
   node forwarding the request MUST ensure that an Accumulated Delay
   extension is present in the RREQ before forwarding the message.  A
   node that agrees to satisfy delay constraints has to measure the
   average time it is currently requiring to forward a data packet,
   including processing time, average queuing delays and propagation
   delays.  Call this average time the FORWARDING_DELAY. Before
   forwarding the RREQ, an intermediate node MUST compare the current
   value of its FORWARDING_DELAY to the current value of the difference
   between the Maximum Delay value in the QoS object extension, and
   the value in the Accumulated Delay Extension.  If the remaining
   delay is less, the node MUST discard the RREQ and not retransmit it.
   Otherwise, the node subtracts FORWARDING_DELAY from the value in the
   Accumulated Value extension and continues processing the RREQ as
   specified in [3].

   A node forwarding a RREP also records the Source IP address in the
   RREP message in the list of source nodes requesting delay guarantees
   in the corresponding destination's route table entry.  These source
   nodes are to be notified with an ICMP QOS_LOST message in case there
   is a signficant change in FORWARDING_DELAY at this node.


7. Jitter

   If the QoS object in the RREQ specifies a jitter parameter, then any
   node forwarding the request MUST ensure that an Accumulated Jitter
   extension is present in the RREQ before forwarding the message.
   Before forwarding the RREQ, an intermediate node MUST compare its
   recently computed typical jitter value (call it NODE_JITTER) to the
   current value of the difference between the Maximum Jitter value in
   the QoS object extension, and the value in the Accumulated Jitter
   Extension.  If the remaining allowable jitter is less, the node MUST
   discard the RREQ and not process it any further.  Otherwise, the
   node subtracts NODE_JITTER from the value in the Accumulated Jitter
   extension and continues processing the RREQ as specified in [3].

   A node forwarding a RREP with the QoS extension also records the
   Source IP address in RREP message in the list of source nodes
   requesting jitter guarantees in the corresponding destination's route
   table entry.  These source nodes are to be notified with an ICMP
   QOS_LOST message in case there is a change in NODE_JITTER at this
   node.







Perkins, Royer              Expires 14 April 2004               [Page 8]


Internet Draft               QoS for AODV                14 October 2003


8. ICMP QOS LOST Message

   An ICMP QOS_LOST message is generated when an intermediate node
   experiences a significant change in its ability to live up to the QoS
   guarantees it has made as part of generating a RREP during the QoS
   Route Discovery process.  The format of this message is as follows.

    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      |   Value Type  |           Session-ID          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Destination IP address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type   TBD

      Value Type
             The type of the parameter which can no longer be guaranteed
             to conform to the value indicated in the original QoS
             Object data of the RREQ. The subtype values are as
             specified in section 4.3.

      Destination IP address
             IP address of the destination node using the link for
             which there has been a change in the QoS parameter of the
             indicated subtype.

   The QOS_LOST message is forwarded to all sources potentially affected
   by the change in the QoS parameter.  These are those sources to which
   a RREP with a QoS extension has been forwarded in the past (see
   section 4.1 for a method of determining these sources).


9. ICMPv6 QOS LOST Message

   The ICMPv6 QOS_LOST message is generated when an intermediate node
   experiences a significant change in its ability to live up to th QoS
   guarantees it has made as part of generating a RREP during the QoS
   Route Discovery process.  The format of this message is as follows.












Perkins, Royer              Expires 14 April 2004               [Page 9]


Internet Draft               QoS for AODV                14 October 2003



    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      |   Value Type  |           Session-ID          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                      128-bit Destination                      |
   |                         IPv6 address                          |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type   TBD

      Value Type
             The type of the parameter which can no longer be guaranteed
             to conform to the value indicated in the original QoS
             Object data of the RREQ. The subtype values are as
             specified in section 4.3.

      Destination IP address
             IP address of the destination node using the link for
             which there has been a change in the QoS parameter of the
             indicated subtype.

   The QOS_LOST message is forwarded to all sources potentially affected
   by the change in the QoS parameter.  These are those sources to which
   a RREP with a QoS extension has been forwarded before.  These sources
   are able to be conveniently stored in a list as a part of the route
   table entry.


10. IANA Considerations

   The type number for the ICMP QoS_LOST message is to be taken from
   the space of available type numbers for the Internet Control Message
   Protocol, ICMP [4].  The type number for the ICMPv6 QoS_LOST message
   is to be taken from the space of available type numbers for the
   Internet Control Message Protocol for IPv6 [2].

   The type numbers for the extensions in section 4 are to be taken from
   the space of extensions to AODV [3].


11. Security Considerations

   This draft specifies mechanisms for handling quality of service.  It
   does not introduce any special security vulnerabilities which were
   not already present in the AODV routing protocol [3].



Perkins, Royer              Expires 14 April 2004              [Page 10]


Internet Draft               QoS for AODV                14 October 2003


References

   [1] S. Bradner.  Key words for use in RFCs to Indicate Requirement
       Levels.  Request for Comments (Best Current Practice) 2119,
       Internet Engineering Task Force, Mar. 1997.

   [2] A. Conta and S. Deering.  Internet Control Message Protocol
       (ICMPv6) for the Internet Protocol version 6 (IPv6)
       specification.  Request for Comments (Draft Standard) 2463,
       Internet Engineering Task Force, Dec. 1998.

   [3] C. Perkins, E. Royer, and S. Das.  Ad hoc on demand distance
       vector (AODV) routing (work in progress).  Internet Draft,
       Internet Engineering Task Force, Feb. 2003.

   [4] J. Postel.  Internet Control Message Protocol.  Request for
       Comments (Standard) 792, Internet Engineering Task Force, Sept.
       1981.


Author's Addresses

   Questions about this memo can be directed to:

      Charles E. Perkins
      Communications Systems Laboratory
      Nokia Research Center
      313 Fairchild Drive
      Mountain View, CA 94303
      USA
      +1 650 625 2986
      +1 650 625 2502 (fax)
      charles.perkins@nokia.com


      Elizabeth M. Belding-Royer
      Dept. of Computer Science
      University of California, Santa Barbara
      Santa Barbara, CA 93106
      +1 805 893 3411
      +1 805 893 8553 (fax)
      ebelding@cs.ucsb.edu










Perkins, Royer              Expires 14 April 2004              [Page 11]