Mobile Ad Hoc Networking Working Group                Elizabeth M. Royer
INTERNET DRAFT                   University of California, Santa Barbara
15 July 2000                                          Charles E. Perkins
                                                   Nokia Research Center

       Multicast Ad hoc On-Demand Distance Vector (MAODV) Routing
                     draft-ietf-manet-maodv-00.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 multicast operation of the Ad hoc On-Demand Distance Vector
   (AODV) routing protocol (MAODV) 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, and low network
   utilization.  It creates bi-directional shared multicast trees
   connecting multicast sources and receivers.  These multicast trees
   are maintained as long as group members exist within the connected
   portion of the network.  Each multicast group has a group leader
   whose responsibility is maintaining the group sequence number, which
   is used to ensure freshness of routing information.









Royer, Perkins             Expires 15 December 2000             [Page i]


Internet Draft                Multicast AODV                15 July 2000




                                Contents


Status of This Memo                                                    i

Abstract                                                               i

 1. Introduction                                                       2

 2. Overview                                                           2

 3. Route Tables                                                       3

 4. MAODV Terminology                                                  5

 5. Route Request (RREQ) Message Format                                6

 6. Route Reply (RREP) Message Format                                  6

 7. Multicast Activation (MACT) Message Format                         7

 8. Group Hello (GRPH) Message Format                                  8

 9. Protocol Operation                                                 9
     9.1. Maintaining Multicast Tree Utilization Records  . . . . .    9
     9.2. Generating Route Requests . . . . . . . . . . . . . . . .    9
           9.2.1. Controlling Route Request broadcasts  . . . . . .   10
     9.3. Receiving Route Requests  . . . . . . . . . . . . . . . .   10
     9.4. Generating Route Replies  . . . . . . . . . . . . . . . .   11
     9.5. Forwarding Route Replies  . . . . . . . . . . . . . . . .   12
     9.6. Route Activation  . . . . . . . . . . . . . . . . . . . .   12
     9.7. Multicast Tree Pruning  . . . . . . . . . . . . . . . . .   13
     9.8. Repairing a Broken Link . . . . . . . . . . . . . . . . .   14
     9.9. Tree Partitions . . . . . . . . . . . . . . . . . . . . .   16
    9.10. Reconnecting Two Trees  . . . . . . . . . . . . . . . . .   17
    9.11. Maintaining Local Connectivity  . . . . . . . . . . . . .   17
    9.12. Group Hello Messages  . . . . . . . . . . . . . . . . . .   18
    9.13. Actions After Reboot  . . . . . . . . . . . . . . . . . .   19
    9.14. Interfaces  . . . . . . . . . . . . . . . . . . . . . . .   20

10. Extensions                                                        20
    10.1. Multicast Group Leader Extension Format . . . . . . . . .   20
    10.2. Multicast Group Rebuild Extension Format  . . . . . . . .   21
    10.3. Multicast Group Information Extension Format  . . . . . .   21

11. Configuration Parameters                                          22




Royer, Perkins             Expires 15 December 2000             [Page 1]


Internet Draft                Multicast AODV                15 July 2000


12. Security Considerations                                           23


1. Introduction

   The Multicast Ad hoc On-Demand Distance Vector (MAODV) protocol
   enables dynamic, self-starting, multihop routing between
   participating mobile nodes wishing to join or participate in a
   multicast group within an ad hoc network.  The membership of these
   multicast groups is free to change during the lifetime of the
   network.  MAODV enables mobile nodes to establish a tree connecting
   multicast group members.  Mobile nodes are able to respond quickly
   to link breaks in multicast trees by repairing these breaks in a
   timely manner.  In the event of a network partition, multicast trees
   are established independently in each partition, and trees for the
   same multicast group are quickly connected if the network components
   merge.

   One distinguishing feature of MAODV is its use of sequence numbers
   for multicast groups.  Each multicast group has its own sequence
   number, which is initialized by the multicast group leader and
   incremented periodically.  Using these sequence numbers ensures that
   routes found to multicast groups are always the most current ones
   available.  Given the choice between two routes to a multicast tree,
   a requesting node always selects the one with the greatest sequence
   number.

   MAODV is the multicast protocol associated with the Ad hoc On-Demand
   Distance Vector (AODV) routing protocol, and as such it shares many
   similarities and packet formats with AODV. The Route Request and
   Route Reply packet types are based on those used by AODV, as is the
   unicast Route Table.  Similarly, many of the configuration parameters
   used by MAODV are defined by AODV. The reader is referred to the AODV
   Internet draft [2] for the suggested values of those parameters, as
   well as for details on the unicast operation of AODV.


2. Overview

   Route Requests (RREQs), Route Replies (RREPs), Multicast Activations
   (MACTs), and Group Hellos (GRPHs) are the message types utilized
   by the multicast operation AODV. RREQs and RREPs are handled as
   specified in [2], except for certain procedures controlled by new
   flags (see section 5, 6).  These message types are handled by UDP,
   and normal IP header processing applies.  So, for instance, the
   requesting node is expected to use its IP address as the source IP
   address for the messages.  The range of dissemination of broadcast
   RREQs can be indicated by the TTL in the IP header.  Fragmentation is
   typically not required.



Royer, Perkins             Expires 15 December 2000             [Page 2]


Internet Draft                Multicast AODV                15 July 2000


   As long as the multicast group members remain connected (within
   a ``multicast tree''), MAODV does not play any role.  When a
   node either wishes to join a multicast group or find a route to a
   multicast group, the node uses a broadcast RREQ to discover a route
   to the multicast tree associated with that group.  For join requests,
   a route is determined when the RREQ reaches a node that is already a
   member of the multicast tree, and the node's record of the multicast
   group sequence number is at least as great as that contained in the
   RREQ. For non-join requests, any node with a current route to the
   multicast tree may respond to the RREQ. A current route is defined as
   an unexpired multicast route table entry whose associated sequence
   number for the multicast group is at least as great as that contained
   in the RREQ. The route to the multicast tree is made available by
   unicasting a RREP back to the source of the RREQ. Since each node
   receiving the request caches a route back to the source of the
   request, the RREP can be unicast back to the source from any node
   able to satisfy the request.  Once the source node has waited the
   discovery period to receive RREPs, it selects the best route to the
   multicast tree and unicasts the next hop along that route a MACT
   message.  This message activates the route.

   Nodes monitor the link status of next hops on the multicast tree.
   When a link break on the multicast tree is detected, the tree branch
   should be immediately repaired through the use of the RREQ/RREP/MACT
   messages.

   A multicast group leader is associated with each multicast group.
   The primary responsibility of this node is the initialization and
   maintenance of the group sequence number.  A Group Hello message is
   periodically broadcast across the network by the multicast group
   leader.  This message carries a multicast group and group sequence
   number and corresponding group leader IP address.  This information
   is used for disseminating updated group sequence numbers throughout
   the multicast group and for repairing multicast trees after a
   previously disconnected portion of the network containing part of the
   multicast tree becomes reachable once again.


3. Route Tables

   MAODV is a routing protocol, and it deals with route table
   management.  Route table information must be kept even for ephemeral
   routes, such as are created to temporarily store reverse paths
   towards nodes originating RREQs.  MAODV uses the following fields
   with each route table entry, which are based on the route table
   defined in the AODV Internet Draft [2]:

    -  Destination IP Address




Royer, Perkins             Expires 15 December 2000             [Page 3]


Internet Draft                Multicast AODV                15 July 2000


    -  Destination Sequence Number

    -  Hop Count (number of hops needed to reach destination)
    -  Last Hop Count (described in subsection 9.2.1)

    -  Next Hop
    -  Next Hop Interface

    -  List of Precursors
    -  Lifetime (expiration or deletion time of the route)

    -  Routing Flags

   The following information is stored in each entry of the multicast
   route table for multicast tree routes:

    -  Multicast Group IP Address
    -  Multicast Group Leader IP Address

    -  Multicast Group Sequence Number
    -  Next Hops

    -  Hop Count to next Multicast Group Member

    -  Hop Count to Multicast Group Leader

   The Next Hops field is a linked list of structures, each of which
   contains the following fields:

    -  Next Hop IP Address
    -  Next Hop Interface

    -  Link Direction
    -  Activated Flag

   The direction of the link is relative to the location of the group
   leader, i.e.  UPSTREAM is a next hop towards the group leader, and
   DOWNSTREAM is a next hop away from the group leader.  A node on the
   multicast tree must necessarily have only one UPSTREAM link.  The IP
   Address of a Next Hop MUST NOT be used to forward multicast messages
   until after a MACT message has activated the route (see Section 9.6).
   The Next Hop Interface fields in the Route Table and Next Hop field
   of the Multicast Route Table are used for recording the outgoing
   interface on which the next hop can be reached (see Section 9.14).

   Nodes MAY also maintain a Group Leader Table, which is an association
   between multicast groups and their corresponding group leaders.  The
   fields of the group leader table are the following:




Royer, Perkins             Expires 15 December 2000             [Page 4]


Internet Draft                Multicast AODV                15 July 2000


    -  Multicast Group IP Address

    -  Group Leader IP Address

   This table can be used when discovering routes to multicast groups,
   as described in Section 9.2.


4. MAODV Terminology

   This protocol specification uses conventional meanings [1] for
   capitalized words such as MUST, SHOULD, etc., to indicate requirement
   levels for various protocol features.  This section defines other
   terminology used with MAODV that is not already defined in [3].

      group leader

         A node which is a member of the given multicast group
         and which is typically the first such group member in the
         connected portion of the network.  This node is responsible for
         initializing and maintaining the multicast group destination
         sequence number.

      group leader table

         The table where ad hoc nodes keep information concerning each
         multicast group and its corresponding group leader.  There is
         one entry in the table for each multicast group for which the
         node has received a Group Hello (see Section 9.2).

      multicast tree

         The tree containing all nodes which are members of the
         multicast group and all nodes which are needed to connect the
         multicast group members.

      multicast route table

         The table where ad hoc nodes keep routing (including next hops)
         information for various multicast groups.

      reverse route

         A route set up to forward a reply (RREP) packet back to the
         source from the destination or from an intermediate node having
         a route to the destination.






Royer, Perkins             Expires 15 December 2000             [Page 5]


Internet Draft                Multicast AODV                15 July 2000


5. Route Request (RREQ) Message Format

    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      |J|R|G|       Reserved          |   Hop Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Other fields as specified for AODV.......
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The format of the Route Request message remains as specified in [2],
   except that the following flags have been added:

      J              Join flag; set when source node wants to join a
                     multicast group.

      R              Repair flag; set when a node wants to initiate
                     a repair to connect two previously disconnected
                     portions of the multicast tree.

   When a node wishes to repair a multicast tree, it appends the
   Multicast Group Rebuild extension (see Section 10.2).  When a node
   wishes to unicast the RREQ for a multicast group to the group leader,
   it includes the Multicast Group Leader extension (see Section 10.1).


6. Route Reply (RREP) Message Format

    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      |R|     Reserved      |Prefix Sz|   Hop Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Other fields as specified for AODV.......
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The format of the Route Reply message remains as specified in [2],
   except that the following flag has been added:

      R             Repair flag; set when a node is responding
                    to a repair request to connect two previously
                    disconnected portions of the multicast tree.

   When the RREP is sent for a multicast destination, the Multicast
   Group Information extension is appended (see Section 10.3).







Royer, Perkins             Expires 15 December 2000             [Page 6]


Internet Draft                Multicast AODV                15 July 2000


7. Multicast Activation (MACT) Message Format

    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      |J|P|G|U|R|     Reserved        |   Hop Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Multicast Group IP address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source IP address                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Source Sequence Number                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   The format of the Multicast Activation message is illustrated above,
   and contains the following fields:

      Type        4

      J           Join flag; set when a node is joining the multicast
                  group, as opposed to finding a route to the group for
                  the transmission of data messages.

      P           Prune flag; set when a node wishes to prune itself
                  from the tree, unset when the node is activating a
                  tree link.

      G           Group Leader flag; set by a multicast tree member that
                  fails to repair a multicast tree link breakage, and
                  indicates to the group member receiving the message
                  that it should become the new multicast group leader.

      U           Update flag; set when a multicast tree member has
                  repaired a broken tree link and is now a new distance
                  from the group leader.

      R           Reboot flag; set when a node has just rebooted (see
                  Section 9.13).

      Reserved    Sent as 0; ignored on reception.

      Hop Count   The distance of the sending node from the multicast
                  group leader.  Used only when the 'U' flag is set;
                  otherwise sent as 0.

      Multicast Group IP Address
                  The IP address of the Multicast Group for which a
                  route is supplied.



Royer, Perkins             Expires 15 December 2000             [Page 7]


Internet Draft                Multicast AODV                15 July 2000


      Source IP Address
                  The IP address of the sending node.

      Source Sequence Number
                  The current sequence number for route information
                  generated by the source of the route request.

   To prune itself from the tree (i.e., inactivate its last link to the
   multicast tree), a multicast tree member sends a MACT with the 'P'
   flag = 1 to its next hop on the multicast tree.  A multicast tree
   member that has more than one next hop to the multicast tree SHOULD
   NOT prune itself from the multicast tree.


8. Group Hello (GRPH) Message Format

    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      |U|O|       Reserved            |   Hop Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Group Leader IP address                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Multicast Group IP address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Multicast Group Sequence Number                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   The format of the Group Hello message is illustrated above, and
   contains the following fields:

      Type        5

      U           Update flag; set when there has been a change in group
                  leader information.

      O           Off_Mtree flag; set by a node receiving the group
                  hello that is not on the multicast tree.

      Reserved    Sent as 0; ignored on reception.

      Hop Count   The number of hops the packet has traveled.  Used by
                  multicast tree nodes to update their distance from the
                  group leader when the M flag is not set.

      Group Leader IP Address
                  The IP address of the group leader.




Royer, Perkins             Expires 15 December 2000             [Page 8]


Internet Draft                Multicast AODV                15 July 2000


      Multicast Group IP Address
                  The IP address of the Multicast Group for which the
                  sequence number is supplied.

      Multicast Group Sequence Number
                  The current sequence number of the multicast group.


9. Protocol Operation

   This section describes the scenarios under which nodes generate
   control messages for multicast communication, and how the fields in
   the messages are handled.


9.1. Maintaining Multicast Tree Utilization Records

   For each multicast tree to which a node belongs, either because
   it is a member of the group or because it is a router for the
   multicast tree, the node maintains a list of next hops -- i.e., those
   1-hop neighbors that are likewise a part of the multicast tree.
   This list of next hops is used for forwarding messages received
   for the multicast group.  A node forwards a multicast message to
   every such next hop, except that neighbor from which the message
   arrived.  If there are multiple next hops, the forwarding operation
   MAY be performed by broadcasting the multicast packet to the node's
   neighbors; only the neighbors that belong to the multicast tree
   and have not already received the packet continue to forward the
   multicast packet.


9.2. Generating Route Requests

   A node sends a RREQ either when it determines that it should be a
   part of a multicast group, and it is not already a member of that
   group, or when it has a message to send to the multicast group but
   does not have a route to that group.  If the node wishes to join the
   multicast group, it sets the `J' flag in the RREQ; otherwise, it
   leaves the flag unset.  The destination address of the RREQ is always
   set to the multicast group address.  If the node knows the group
   leader and has a route to it, the node MAY place the group leader's
   address in the Multicast Group Leader extension (Section 10.1), and
   unicast the RREQ to the corresponding next hop for that destination.
   Otherwise, if the node does not have a route to the group leader, or
   if it does not know who the multicast group leader is, it broadcasts
   the RREQ and does not include the extension field.

   After transmitting the RREQ, the node waits for the reception of a
   RREP. The node may resend the RREQ up to RREQ_RETRIES additional



Royer, Perkins             Expires 15 December 2000             [Page 9]


Internet Draft                Multicast AODV                15 July 2000


   times if a RREP is not received.  If a RREQ was unicast to a group
   leader and a RREP is not received within RREP_WAIT_TIME milliseconds,
   the node broadcasts subsequent RREQs for that multicast group across
   the network.  If a RREP is not received after RREQ_RETRIES additional
   requests, the node may assume that there are no other members of that
   particular group within the connected portion of the network.  If it
   wanted to join the multicast group, it then becomes the multicast
   group leader for that multicast group and initializes the sequence
   number of the multicast group.  Otherwise, if it only wanted to send
   packets to that group without actually joining the group, it drops
   the packets it had for that group and aborts the session.

   When the node wishes to join or send a message to a multicast group,
   it first consults its Group Leader Table.  Based on the existence
   of an entry for the multicast group in this table, the node then
   formulates and sends the RREQ as described at the beginning of this
   section.


9.2.1. Controlling Route Request broadcasts

   To prevent unnecessary network-wide broadcasts of RREQs, the source
   node SHOULD use an expanding ring search technique as specified
   in [2].  When a RREP is received, the Hop Count to the group leader
   used in the RREP packet is remembered as Last Hop Count for that node
   in the routing table.  When a new route to the same multicast group
   is required at a later time (e.g., upon a link break in the multicast
   tree), the TTL in the RREQ IP header is initially set to this Last
   Hop Count plus TTL_INCREMENT. Thereafter, following each timeout the
   TTL is incremented by TTL_INCREMENT until TTL = TTL_THRESHOLD is
   reached, as in [2].


9.3. Receiving Route Requests

   When a node receives a RREQ, the node checks whether the 'J' flag of
   the RREQ is set.  If the 'J' flag is set, the node can only respond
   if it is a member of the multicast tree for the indicated multicast
   group, and if its record of the multicast group sequence number is
   at least as great as that contained in the RREQ. If the 'J' flag is
   not set, then the node can respond if it has an unexpired route to
   the multicast group and the above multicast group sequence number
   criteria is met.

   If the node does not meet either of these conditions, it rebroadcasts
   the RREQ from its interface(s) but using its own IP address in the IP
   header of the outgoing RREQ. The Destination Sequence Number in the
   RREQ is updated to the maximum of the existing Destination Sequence
   Number in the RREQ and the multicast group sequence number in the



Royer, Perkins            Expires 15 December 2000             [Page 10]


Internet Draft                Multicast AODV                15 July 2000


   multicast route table (if an entry exists) of the current node.  The
   TTL or hop limit field in the outgoing IP header is decreased by one.
   The Hop Count field in the broadcast RREQ message is incremented by
   one, to account for the new hop through the intermediate node.

   The node always creates or updates a reverse route as specified
   in [2].  This reverse route would be needed in case the node
   receives an eventual RREP back to the node which originated the RREQ
   (identified by the Source IP Address).

   In addition to creating or updating the route table entry for the
   source node, the node receiving the RREQ also creates a next hop
   entry for the multicast group in its multicast route table.  If no
   entry exists for the multicast group, it creates one, and then places
   the node from which it received the RREQ as next hop for that group.
   It leaves the Activated flag associated with this next hop unset.
   The direction for this next hop entry is DOWNSTREAM.


9.4. Generating Route Replies

   If a node receives a join RREQ for a multicast group, and it is
   already a member of the multicast tree for that group, the node
   updates its multicast route table and then generates a RREP message.
   The Source and Destination IP Addresses in RREQ message are copied
   to corresponding fields in the RREP message.  The RREP contains the
   current sequence number for the multicast group and the IP address
   of the group leader.  Furthermore, the node initializes the Hop
   Count field of the RREP to zero.  Additional information about the
   multicast group is entered into the Multicast Group Information
   extension (see Section 10.3).  It unicasts the RREP back to the node
   indicated by the Source IP Address field of the received RREQ.

   A node can respond to a join RREQ only if it is a member of the
   multicast tree.  If a node receives a multicast route request that
   is not a join message, it can reply if it has a current route to the
   multicast tree.  Otherwise it continues forwarding the request.  If a
   node receives a join RREQ for a multicast group and it is not already
   a member of the multicast tree for that group, it rebroadcasts the
   RREQ to its neighbors.

   When a node receives a RREQ for a multicast group which has its own
   IP address in the Destination IP address of the IP header, that
   means that the source node expects this destination node to be the
   multicast group leader.  In this case, if the node is in fact not the
   group leader, it can simply ignore the RREQ. The source node will
   time out after RREP_WAIT_TIME milliseconds and will broadcast a new
   RREQ without the group leader address specified.




Royer, Perkins            Expires 15 December 2000             [Page 11]


Internet Draft                Multicast AODV                15 July 2000


   Regardless of whether the multicast group leader or a multicast tree
   member generates the RREP, the RREP fields are set as follows:

      Hop Count    0

      Destination IP Address
                   The IP address of the multicast group.

      Destination Sequence Number
                   The current multicast group sequence number.

      Lifetime     The time for which nodes receiving the RREP consider
                   the route to be valid (only used it the RREQ is not a
                   join request).

   The Multicast Group Information extension described in Section 10.3
   is also included for join requests.  If the node generating the RREP
   is not on the multicast tree (because the RREQ was not a join RREQ),
   it places its distance from the multicast tree in the Hop Count
   field, instead of 0.


9.5. Forwarding Route Replies

   If an intermediate node receives a RREP in response to a RREQ that it
   has transmitted (or retransmitted on behalf of some other node), it
   creates a multicast group next hop entry for the node from which it
   received the RREP. The direction of this next hop is UPSTREAM, and
   the Activated flag is left unset.  Additionally, the node updates
   the Lifetime field in the route table entry associated with the node
   from which it received the RREP. It then increments the Hop Count and
   Multicast Group Hop Count fields or the RREP and forwards this packet
   along the path to the source of the RREQ.

   When the node receives more than one RREP for the same RREQ, it saves
   the route information with the greatest sequence number, and beyond
   that the lowest hop count; it discards all other RREPs.  This node
   forwards the first RREP towards the source of the RREQ, and then
   forwards later RREPs only if they have a greater sequence number or
   smaller metric.


9.6. Route Activation

   When a node broadcasts a RREQ message, it is likely to receive more
   than one reply since any node in the multicast tree can respond.  The
   RREP message sets up route pointers as it travels back to the source
   node.  If the request is a join request, these route pointers may
   eventually graft a branch onto the multicast tree.  Also, because



Royer, Perkins            Expires 15 December 2000             [Page 12]


Internet Draft                Multicast AODV                15 July 2000


   multicast data packets may be transmitted as broadcast traffic, the
   route to the multicast tree must be explicitly selected.  Otherwise,
   each node with a route to the tree which receives a multicast data
   packet will rebroadcast the packet, resulting in an inefficient use
   of network bandwidth.  Hence, it is necessary to activate only one
   of the routes created by the RREP messages.  The RREP containing
   the largest destination sequence number is chosen to be the branch
   added to the multicast tree (or the path to the multicast tree, if
   the request was a non-join).  In the event that a node receives more
   than one RREP with the same (largest) sequence number, it selects the
   first one with the smallest hop count, i.e., the shortest distance to
   a member of the multicast tree.

   After waiting RREP_WAIT_TIME milliseconds, the node must select the
   route it wishes to use as its link to the multicast tree.  This is
   accomplished by sending a Multicast Activation (MACT) message.  The
   Destination IP Address field of the MACT packet is set to the IP
   address of the multicast group.  If the node is joining the multicast
   group, it sets the join flag of this message.  The node unicasts this
   message to the selected next hop, effectively activating the route.
   It then sets the Activated flag in the next hop Multicast Route Table
   entry associated with that node.  After receiving this message, the
   node to which the MACT was sent activates the route entry for the
   link in its multicast route table, thereby finalizing the creation of
   the tree branch.  All neighbors not receiving this message time out
   and delete that node as a next hop for the multicast group in their
   route tables, having never activated the route entry for that next
   hop.

   Two scenarios exist for a neighboring node receiving the MACT
   message.  If this node was previously a member of the multicast
   tree, it does not propagate the MACT message any further.  However,
   if the next hop selected by the source node's MACT message was not
   previously a multicast tree member, it will have propagated the
   original RREQ further up the network in search of nodes which are
   tree members.  Thus it is possible that this node also received more
   than one RREP, as noted in Section 9.5.

   When the node receives a MACT selecting it as the next hop, it
   unicasts its own MACT to the node it has chosen as its next hop,
   and so on up the tree, until a node which was already a part of the
   multicast tree is reached.


9.7. Multicast Tree Pruning

   A multicast group member can revoke its member status at any time.
   However, it can only actually leave the multicast tree if it is not a
   tree router for any other nodes in the multicast group (i.e., if it



Royer, Perkins            Expires 15 December 2000             [Page 13]


Internet Draft                Multicast AODV                15 July 2000


   is a leaf node).  If a node wishing to leave the multicast group is
   a leaf node, it unicasts to its next hop on the tree a MACT message
   with the 'P' flag set and with the Destination IP Address set to the
   IP address of the multicast group.  It then deletes the multicast
   group information for that group from its multicast route table.
   When its next hop receives this message, it deletes the sending
   node's information from its list of next hops for the multicast tree.
   If the removal of the sending node causes this node to become a leaf
   node, and if this node is also not a member of the multicast group,
   it may in turn prune itself by sending its own MACT message up the
   tree.

   When the multicast group leader wishes to leave the multicast group,
   it proceeds in a manner similar to the one just described.  If it
   is a leaf node, it may leave the group and unicast a prune message
   to its next hop.  The next hop acts in the manner described in
   Section 9.10, since the prune message is coming from its upstream
   neighbor.  Otherwise, if the group leader is not a leaf node, it may
   not prune itself from the tree.  It takes the actions described in
   Section 9.9, where it selects one of its next hops and unicasts to it
   the MACT with set 'G' flag.


9.8. Repairing a Broken Link

   Branches of the multicast tree become invalid if a broken link
   results in an infinite metric being associated with the next hop
   route table entry.  When a broken link is detected between two nodes
   on the multicast tree, the two nodes should delete the link from
   their list of next hops for the multicast group.  The node downstream
   of the break (i.e., the node which is further from the multicast
   group leader) is responsible for initiating the repair of the broken
   link.  In order to repair the tree, the downstream node broadcasts
   a RREQ with destination IP address set to the IP address of the
   multicast group and with the 'J' flag set.  The destination sequence
   number of the RREQ is the last known sequence number of the multicast
   group.  The node also includes the Multicast Group Leader Extension.
   The Multicast Group Hop Count field of this extension is set to the
   distance of the source node from the multicast group leader.  A node
   MUST have a hop count to the multicast group leader less than or
   equal to the indicated value in order to respond.  This hop count
   requirement prevents nodes on the same side of the break as the node
   initiating the repair from replying to the RREQ.

   The RREQ is broadcast using an expanding rings search, as described
   in Section 9.2.1.  Because of the high probability that other
   nearby nodes can be used to rebuild the route, the original
   RREQ is broadcast with a TTL (time to live) field value equal to
   TTL_INCREMENT plus the Multicast Group Hop Count.  In this way,



Royer, Perkins            Expires 15 December 2000             [Page 14]


Internet Draft                Multicast AODV                15 July 2000


   the effects of the link breakage may be localized.  If no reply
   is received within RREP_WAIT_TIME milliseconds, the node SHOULD
   increment the TTL of each successive RREQ by TTL_INCREMENT, until
   either a route is determined, or TTL_THRESHOLD is reached.  After
   this point, if a route is still not discovered, each additional RREQ
   is broadcast with TTL = NET_DIAMETER. Up to RREQ_RETRIES additional
   broadcasts may be attempted after TTL = NET_DIAMETER is reached.

   A node receiving this RREQ can respond if it meets the following
   conditions:

    -  It is a member of the multicast tree.

    -  Its record of the multicast group sequence number is at least as
       great as that contained in the RREQ.

    -  Its hop count to the multicast group leader is less than or equal
       to the contained in the Multicast Group Hop Count extension
       field.

   If the originating node receives more than one RREP, route activation
   occurs as described in the previous section.

   At the end of the discovery period, the node selects its next hop
   and unicasts a MACT message to that node to activate the link, as
   described in Section 9.6.  Since the node was repairing a tree break,
   it is likely that it is now a different distance from the group
   leader than it was before the break.  If this is the case, it must
   inform its DOWNSTREAM next hops of their new distance from the group
   leader.  It does this by broadcasting a MACT message with the 'U'
   flag set, and the Hop Count field set to the node's new distance
   from the group leader.  This 'U' flag indicates that multicast tree
   nodes should update their distance from the group leader.  When a
   node on the multicast tree receives the MACT message with the 'U'
   flag set, it determines whether this packet arrived from its UPSTREAM
   neighbor.  If it did not, the node discards the packet.  Otherwise,
   it increments the Hop Count value contained in the MACT packet and
   updates it distance to the group leader to be this node value.  If
   this node has one or more downstream next hops, it in turn must send
   a MACT message with a set 'U' flag to its next hops, and so on.

   When a link break occurs, it is possible that the tree will be
   repaired through different intermediate nodes.  If the node UPSTREAM
   of the break is not a group member, and if the loss of that link
   causes it to become a leaf node, it sets a prune timer to wait
   for the link to be repaired.  This PRUNE_TIMEOUT should be larger
   than RREP_WAIT_TIMEOUT to give the link time to be repaired.  If,
   when this timer expires, the node has not received a MACT message
   selecting it to be a part of the repaired tree branch, it prunes



Royer, Perkins            Expires 15 December 2000             [Page 15]


Internet Draft                Multicast AODV                15 July 2000


   itself from the tree by sending a MACT with set 'P' flag to its next
   hop, as previously described.


9.9. Tree Partitions

   It is possible that after a link breaks, the tree cannot be repaired
   due to a network partition.  If the node attempting to repair a tree
   link break does not receive a response after RREQ_RETRIES attempts,
   it can be assumed that the network has become partitioned and the
   multicast tree cannot be repaired at this time.  In this situation,
   if the node which initiated the route rebuilding is a multicast group
   member, it becomes the new multicast group leader for its part of the
   multicast tree partition.  It increments the group sequence number
   and then broadcasts a Group Hello (GRPH) for this multicast group.
   The 'U' flag in the GRPH is set, indicating that there has been a
   change in the group leader information.  All nodes receiving this
   message update their group leader table to indicate the new group
   leader information.  Nodes which are a part of the multicast tree
   also update the group leader and sequence number information for that
   group in their multicast route table.

   On the other hand, if the node which had initiated the repair is not
   a multicast group member, there are two possibilities.  If it only
   has one next hop for the multicast tree, it prunes itself from the
   tree by unicasting a MACT message, with the 'P' flag set, to its
   next hop.  The node receiving this message notes that the message
   came from its upstream link, i.e., from a node that is closer to
   the group leader than it is.  If the node receiving this message
   is a multicast group member, it becomes the new group leader and
   broadcasts a GRPH message as indicated above.  Otherwise, if it is
   not a multicast group member and it only has one other next hop link,
   it similarly prunes itself from the tree.  This process continues
   until a multicast group member is reached.

   The other possibility is that the node which initiated the rebuilding
   is not a group member and has more than one next hop for the tree.
   In this case, it cannot prune itself, since doing so would partition
   the tree.  It instead selects one of its next hops and unicasts a
   MACT with the 'G' flag set to that node.  This flag indicates that
   the next group member to receive this message should become the new
   group leader.  It then changes the direction of that link to be
   UPSTREAM. If the node receiving the MACT is a group member, then this
   node becomes the new group leader.  Otherwise, the node unicasts its
   own MACT message with the 'G' flag set to one of its next hops, and
   changes the direction of that link.  Once a group member is reached,
   the new group leader is determined.





Royer, Perkins            Expires 15 December 2000             [Page 16]


Internet Draft                Multicast AODV                15 July 2000


9.10. Reconnecting Two Trees

   In the event that a link break cannot be repaired, the multicast
   tree remains partitioned until the two parts of the network become
   connected once again.  A node from one partition of the network knows
   that it has come into contact with a node from the other partition of
   the network by noting the difference in the GRPH message multicast
   group leader information.  The multicast group leader with the lower
   IP address initiates the tree repair.  For the purposes of this
   explanation, call this node GL1.  GL1 unicasts a RREQ with both
   the 'J' and 'R' flags set to the group leader of the other network
   partition (GL2), using the node from which it received the GRPH
   as the next hop.  This RREQ contains the current value of GL1's
   multicast group sequence number.  If any node that receives the RREQ
   is a member of GL2's multicast tree, it MUST forward the RREQ along
   its upstream link, i.e.  towards GL2.  This prevents any loops from
   being formed after the repair.  Upon receiving the RREQ, GL2 takes
   the larger of its and the received multicast group sequence number,
   increments this value by one, and responds with a RREP. This is the
   group leader which becomes the leader of the reconnected multicast
   tree.  The 'R' flag of the RREP is set, indicating that this RREP is
   in response to a repair request.

   As the RREP is propagated back to GL1, nodes add the incoming and
   outgoing links to the multicast route table next hop entries if
   these entries do not already exist.  The nodes also activate these
   entries, thereby adding the branch on to the multicast tree.  If a
   node that was previously a member of GL1's tree receives the RREP, it
   MUST forward the packet along its link to its previous group leader
   (GL1).  It then updates its group leader information to reflect GL2
   as the new group leader, changes the direction of the next hop link
   associated with GL1 to DOWNSTREAM, and sets the direction of the
   link on which it received the RREP to UPSTREAM. When GL1 receives
   the RREP, it updates its group leader information and sets the
   link from which it received the RREP as its upstream link.  The
   tree is now reconnected.  The next time GL2 broadcasts a GRPH, it
   sets the `U' flag to indicate that there is a change in the group
   leader information and group members should update the corresponding
   information.  All network nodes update their group leader table to
   reflect the new group leader information.


9.11. Maintaining Local Connectivity

   Each node on the multicast tree MUST keep track of its neighbors
   which are next hops on the multicast tree.  This is done as specified
   in [2].  If a link to the next hop cannot be detected by any of the
   methods specified therein, the forwarding node MUST assume that the




Royer, Perkins            Expires 15 December 2000             [Page 17]


Internet Draft                Multicast AODV                15 July 2000


   link is broken, and take corrective action by following the methods
   specified in Section 9.8.

   Whenever the multicast tree is used for the transmission of data
   packets, a node on the tree must hear from each of its next hop
   neighbors every RETRANSMIT_TIME. The node can hear from its neighbors
   through one of the methods previously described, or through the
   reception of a rebroadcast of a data packet from these next hops,
   if the data packets are being transmitted by broadcast.  If a
   node does not hear from one of its multicast tree next hops within
   RETRANSMIT_TIME, and if the multicast tree is actively being used
   to transmit data packets, then the node MUST assume the link to
   its next hop is broken, and proceed as described in Section 9.8.
   Decreasing the amount of time between when a node must hear from its
   next hops from ALLOWED_HELLO_LOSS * HELLO_INTERVAL milliseconds to
   RETRANSMIT_TIME allows for the quickest detection of broken links and
   fewer data packet losses.


9.12. Group Hello Messages

   If a node sends a RREQ to join a multicast group (`J' flag set)
   and after RREQ_RETRIES attempts does not receives a response, it
   then becomes the multicast group leader.  The node initializes the
   multicast group sequence number and then broadcasts a GRPH message
   to inform network nodes that it is now the group leader for the
   multicast group.  To ensure nodes maintain consistent and up-to-date
   information about who the multicast group leaders are, any node which
   is a group leader for a multicast group broadcasts such a GRPH across
   the network every GROUP_HELLO_INTERVAL milliseconds.  The contents of
   the GRPH fields are set as follows:

      U Flag      0

      M Flag      0

      Hop Count   0

      Group Leader IP Address
                  The IP Address of the group leader.

      Multicast Group IP Address
                  The IP Address of the Multicast Group for which the
                  node is the group leader.

      Multicast Group Sequence Number
                  One plus the last known sequence number of the
                  multicast group.




Royer, Perkins            Expires 15 December 2000             [Page 18]


Internet Draft                Multicast AODV                15 July 2000


   Nodes receiving the GRPH increment the Hop Count field by one before
   forwarding the message.  When a node not on the multicast tree
   receives the GRPH message, it sets the 'M' flag.  This indicates that
   this incarnation of the message has traveled off the multicast tree,
   and hence cannot be used by group members to verify their distance
   from the group leader.  The 'U' flag is set by the group leader
   whenever there has been a change in group leader information.  It
   informs nodes that they should update the group leader information
   associated with the indicated multicast group.

   A node receiving the GRPH message first verifies that is has
   not already received the GRPH message with the same group IP
   address/group sequence number pair in the last BCAST_ID_SAVE
   milliseconds.  If it has, it silently discards the message.
   Otherwise, the node updates its group leader table to reflect
   the current multicast group IP address/group leader IP address
   combination, and increments the Hop Count value in the message.  If
   the node receiving the GRPH message is a member of the multicast
   tree, it also updates this information in its multicast route table.
   If the 'M' flag is unset, then this node can also use the Hop Count
   value to verify its current distance from the group leader.

   After processing the GRPH message, the node buffers the group
   IP address/ group sequence number combination to avoid multiple
   processings of the same GRPH message.  It then rebroadcasts the
   message to its neighbors.


9.13. Actions After Reboot

   A node participating in the multicast tree that reboots (or
   restarts the routing daemon) loses all of its multicast tree
   information.  Upon reboot, the rebooted node does not know whether
   it was previously a member of the multicast tree.  Hence, it should
   unconditionally broadcast a MACT message with set Reboot ('R') flag
   to inform neighboring nodes that it has lost its multicast group
   information.  When a node on the multicast tree receives the reboot
   MACT message, it checks whether this message came from one of its
   next hops on the multicast tree.  If so, one of two situations
   exists.

   If the reboot MACT came from a downstream link, the node deletes that
   link from its list of next hops and sets a prune timer according to
   the guidelines in Section 9.8.  Otherwise, if the reboot MACT came
   from a node's upstream link, it must rebuild the tree branch as is
   also indicated in Section 9.8.






Royer, Perkins            Expires 15 December 2000             [Page 19]


Internet Draft                Multicast AODV                15 July 2000


9.14. Interfaces

   Because MAODV should operate smoothly over wired, as well as
   wireless, networks, and because it is likely that MAODV will also be
   used with multi-homed radios, the interface over which packets arrive
   must be known to MAODV whenever a packet is received.  This includes
   the reception of RREQ, RREP, MACT, and GRPH messages.  Whenever a
   packet is received from a new neighbor, the interface on which that
   packet was received is recorded into the route table entry for that
   neighbor, along with all the other appropriate routing information.
   Similarly, whenever a route to a new destination is learned, the
   interface through which the destination can be reached is also
   recorded into the destination's route table entry.

   When multiple interfaces are available, a node receiving and
   rebroadcasting a RREQ or GRPH message rebroadcasts that message on
   all interfaces except the one on which it was received.  If a node is
   participating on the multicast tree, and if multicast data packets
   are being sent as broadcast traffic, a multicast tree node should
   only rebroadcast a packet on those interfaces which have multicast
   tree next hops.


10. Extensions

   This section specifies for multicast extensions for RREQ and RREP
   messages, conforming to the format defined in [2].


10.1. Multicast Group Leader Extension Format

   This extension is appended to a RREQ by a node wishing to repair a
   multicast tree.

      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     | Multicast Group Leader IP ... |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   ... Address (continued)     | Previous Hop IP Address ...   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   ... (continued)             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type     3

      Length   8





Royer, Perkins            Expires 15 December 2000             [Page 20]


Internet Draft                Multicast AODV                15 July 2000


      Multicast Group Leader IP Address
               The IP Address of the Multicast Group Leader.

      Previous Hop IP Address
               The IP Address of the node which previously received the
               RREQ. This field is used when the RREQ is unicast to
               the group leader when a node wishes to join a multicast
               group.

   This extension is used when unicasting the RREQ to the group leader.
   Each node receiving the RREQ updates the Previous Hop IP Address
   field to reflect its address.


10.2. Multicast Group Rebuild Extension Format

   This extension is appended to a RREQ by a node wishing to repair a
   multicast tree.

      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     |   Multicast Group Hop Count   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type     4

      Length   2

      Multicast Group Hop Count
               The distance in hops of the node sending the RREQ from
               the Multicast Group Leader.

   This extension is used for rebuilding a multicast tree branch.  It is
   used to ensure that only nodes as least as close to the group leader
   as indicated by the Multicast Group Hop Count field respond to the
   request.


10.3. Multicast Group Information Extension Format

   The following extension is used to carry additional information for
   the RREP message (see Section 6) when sent to establish a route to a
   multicast destination.








Royer, Perkins            Expires 15 December 2000             [Page 21]


Internet Draft                Multicast AODV                15 July 2000



    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     |   Multicast Group Hop Count   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Multicast Group Leader IP Address               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


      Type     5

      Length   6

      Multicast Group Hop Count
               The distance of the node from the Multicast Group Leader.

      Multicast Group Leader IP Address
               The IP Address of the current Multicast Group Leader.

   This extension is included when responding to a RREQ to join a
   multicast group.  The node responding to the RREQ places its distance
   from the group leader in the Multicast Group Hop Count field.


11. Configuration Parameters

   This section gives default values for some important values
   associated with MAODV protocol operations.  A particular mobile node
   may wish to change certain of the parameters, in particular the
   NET_DIAMETER, MY_ROUTE_TIMEOUT, ALLOWED_HELLO_LOSS, RREQ_RETRIES,
   and possibly the HELLO_INTERVAL. In the latter case, the node should
   advertise the HELLO_INTERVAL in its Hello messages, by appending
   a Hello Interval Extension to the RREP message.  Choice of these
   parameters may affect the performance of the protocol.

















Royer, Perkins            Expires 15 December 2000             [Page 22]


Internet Draft                Multicast AODV                15 July 2000



      Multicast Parameters     Value
      ----------------------   -----
      GROUP_HELLO_INTERVAL     5,000 Milliseconds
      MTREE_BUILD              2 * REV_ROUTE_LIFE
      PRUNE_TIMEOUT            ACTIVE_ROUTE_TIMEOUT
      RETRANSMIT_TIME          750 Milliseconds


      Additional AODV Parameters
      --------------------------
      ACTIVE_ROUTE_TIMEOUT
      ALLOWED_HELLO_LOSS
      BCAST_ID_SAVE
      DELETE_PERIOD
      HELLO_INTERVAL
      NET_DIAMETER
      NEXT_HOP_WAIT
      NODE_TRAVERSAL_TIME
      REV_ROUTE_LIFE
      RREP_WAIT_TIME
      RREQ_RETRIES
      TTL_START
      TTL_INCREMENT
      TTL_THRESHOLD



   Please see [2] for a discussion of and the appropriate values for the
   Additional AODV Parameters.


12. Security Considerations

   Currently, MAODV does not specify any special security measures.
   Route protocols, however, are prime targets for impersonation
   attacks, and must be protected by use of authentication techniques
   involving generation of unforgeable and cryptographically strong
   message digests or digital signatures.  It is expected that, in
   environments where security is an issue, that IPSec authentication
   headers will be deployed along with the necessary key management to
   distribute keys to the members of the ad hoc network using MAODV.










Royer, Perkins            Expires 15 December 2000             [Page 23]


Internet Draft                Multicast AODV                15 July 2000


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] C. Perkins, E. Royer, and S. Das.  Ad hoc on demand distance
       vector (AODV) routing (work in progress).  Internet Draft,
       Internet Engineering Task Force, Mar. 2000.

   [3] C. E. Perkins.  Terminology for Ad-Hoc Networking (work in
       progress).  draft-ietf-manet-terms-00.txt, Nov. 1997.


Author's Addresses

   Questions about this memo can be directed to:

      Elizabeth M. Royer
      Dept. of Electrical and Computer Engineering
      University of California, Santa Barbara
      Santa Barbara, CA 93106
      +1 805 893 7788
      +1 805 893 3262 (fax)
      eroyer@alpha.ece.ucsb.edu


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
















Royer, Perkins            Expires 15 December 2000             [Page 24]