INTERNET-DRAFT                                            October 1998
draft-ietf-manet-cedar-spec-00.txt
Expires in six months


    Core Extraction Distributed Ad hoc Routing (CEDAR) Specification

          Raghupathy Sivakumar  Prasun Sinha   Vaduvur Bharghavan
               University of Illinois, Urbana-Champaign

Status of this Memo

   This document is an Internet-Draft.  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."

   To view the entire list of current Internet-Drafts, please check the
   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
   Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
   Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).

Abstract

   This  draft presents CEDAR,   a   Core-Extraction Distributed  Ad
   hoc Routing algorithm for QoS routing in ad hoc network environments.
   CEDAR has three  key  components: (a)  the establishment   and
   maintenance  of  a  self-organizing  routing infrastructure,  called
   the  "core",  for   performing   route computations,  (b)  the
   propagation of the link-state of  stable high-bandwidth links in the
   core  through  "increase/decrease" waves,  and  (c)  a  QoS  route
   computation  algorithm  that is executed at the core nodes using only
   locally available state.














Sivakumar, Sinha, Bharghavan                                    [Page 1]


INTERNET-DRAFT            CEDAR Specification               October 1998


Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.   Network Model  . . . . . . . . . . . . . . . . . . . . . . . 5
   3.   CEDAR Architecture and the Core  . . . . . . . . . . . . . . 7
   3a.   Rationale for a Core-based Architecture in CEDAR  . . . . . 8
   3b.   Generation and Maintenance of the Core in CEDAR . . . . .  10
   3c.   Core Broadcast and its Application to CEDAR . . . . . . .  12
   4.   QoS State Propagation in CEDAR . . . . . . . . . . . . . .  14
   4a.   Increase and Decrease Waves . . . . . . . . . . . . . . .  15
   4b.   Issues in link state propagation  . . . . . . . . . . . .  19
   5.   QoS Routing in CEDAR . . . . . . . . . . . . . . . . . . .  20
   5a.   Establishment of the Core Path  . . . . . . . . . . . . .  20
   5b.   QoS Route Computation . . . . . . . . . . . . . . . . . .  22
   5c.   Dynamic QoS Route Recomputation for Ongoing Connections .  24
   6.   Performance Results  . . . . . . . . . . . . . . . . . . .  25
   7.   Conclusions  . . . . . . . . . . . . . . . . . . . . . . .  26
   8.   References . . . . . . . . . . . . . . . . . . . . . . . .  27
   9 .  Authors' Addresses . . . . . . . . . . . . . . . . . . . .  28
































Sivakumar, Sinha, Bharghavan                                    [Page 2]


INTERNET-DRAFT            CEDAR Specification               October 1998


1. Introduction

   An ad hoc network is a dynamic multi-hop wireless network that is
   established  by  a  group  of  mobile  hosts on a shared wireless
   channel by virtue  of  their  proximity  t[o  each  other.  These
   channels, typically being scarce and dynamic, make it difficult to
   perform efficient resource utilization or to execute critical
   applications. Hence, QoS routing, as opposed to non-QoS routing, is
   desirable in such environments.  This draft focuses on a restricted
   QoS Routing problem: the satisfaction of minimum bandwidth
   requirements. Of course, since the network is highly dynamic, and
   transmissions are susceptible to fades, interference, and collisions
   from hidden/exposed stations, CEDAR cannot provide bandwidth
   guarantees for the computed routes. Rather, its goal is to provide
   routes that are highly likely to satisfy the bandwidth requirement of
   a route, so long as such routes exist [1].

   Given the nature of the  network  and  the  requirements  of  the
   applications,  the  following  are  the  key goals of CEDAR.

    (a) Route computation must be distributed because centralized
   routing in a dynamic network is impossible even for fairly small
   networks. (b) Route computation should not involve the maintenance of
   global state, or even significant amounts of volatile non-local
   state. In particular, link state routing is not feasible for highly
   dynamic networks because of the significant state propagation
   overhead when the network topology changes. (c) As few nodes as
   possible must be involved in state propagation and route computation
   (without becoming single points of failure), since this involves
   monitoring and updating at least some state in the network.  On the
   other hand, every host must have quick access to routes on-demand.
   (d) Each node must only care about the routes corresponding to its
   destination, and must not be involved in frequent topology updates
   for parts of the network to which it has no traffic. (e) Stale routes
   must be either avoided, or detected and eliminated quickly. (f)
   Broadcasts must be avoided as far as possible because broadcasts are
   highly unreliable in ad hoc networks. (g) If the topology stabilizes,
   then routes must converge to the optimal routes, and (h) It is
   desirable to have a backup route when the primary route has become
   stale and is being recomputed.

   QoS routing for ad hoc networks is relatively unchartered territory.
   In addition to the above, we have the following goals for QoS routing
   in ad hoc networks. (a) Applications provide a minimum bandwidth
   requirement for a connection, and the routing algorithm must
   efficiently compute a route that can satisfy the bandwidth
   requirement with high probability. (b) The amount of state
   propagation and topology update information must be kept to a



Sivakumar, Sinha, Bharghavan                                    [Page 3]


INTERNET-DRAFT            CEDAR Specification               October 1998


   minimum. In particular, every change in available bandwidth should
   not result in updated state propagation. (c) Dynamic links (either
   unstable or low bandwidth links) must not cause state propagation
   throughout the network.  Only stable high bandwidth link information
   must be propagated throughout the network, and (d) The QoS route
   computation algorithm should be simple and robust. Robustness, rather
   than optimality, is the key requirement.

   In order to achieve the above goals, this draft proposes the Core-
   Extraction Distributed Ad hoc Routing (CEDAR) algorithm for QoS
   routing in ad hoc networks. Briefly, CEDAR dynamically establishes a
   "core" of the network, and then incrementally propagates link state
   of stable high bandwidth links to the nodes of the core. Route
   computation is on-demand, and is performed by core hosts using local
   state only.  CEDAR is proposed as a QoS routing algorithm for small
   to medium size ad hoc networks consisting of tens to hundreds of
   nodes. CEDAR does not compute optimal routes because of the
   minimalist approach to state management, but the trade-off of
   robustness and adaptation for optimality is believed to be well
   justified in ad hoc networks. The following is a brief description of
   the three key components of CEDAR.

   1. Establishment and Maintenance of a core using Local Core
   Extraction

      CEDAR does core extraction in order to extract a subset of nodes
      in the network that would be the only ones that perform state
      management and route computation.  The core extraction is done
      dynamically by approximating a minimum dominating set of the ad
      hoc network using only local computation and local state. Each
      host in the core then establishes a virtual link (via a tunnel) to
      nearby core hosts (within the 3rd neighborhood in the ad hoc
      network). Each core host maintains the local topology of the hosts
      in its domain, and also performs route computation on behalf of
      these hosts. The core computation and core management upon change
      in the network topology are purely local computations to enable
      the core to adapt efficiently to the dynamics of the network.

   2. Link State Propagation using Increase/Decrease waves

      While it is possible to execute ad hoc routing algorithms using
      only local topology information at the core nodes, QoS routing in
      CEDAR is achieved by propagating, in the core, the bandwidth
      availability information of stable links. The basic idea is that
      the information about stable high-bandwidth links can be made
      known to core nodes far away in the network, while information
      about dynamic links or low bandwidth links should remain local. By
      means of this link state propagation mechanism, CEDAR approximates



Sivakumar, Sinha, Bharghavan                                    [Page 4]


INTERNET-DRAFT            CEDAR Specification               October 1998


      a minimalist local state algorithm in highly dynamic networks
      while it approaches the maximalist link state algorithm in highly
      stable networks. The propagation of link-state is achieved through
      slow-moving 'increase' waves (which denote increase of bandwidth)
      and fast-moving 'decrease' waves (which denote decrease of
      bandwidth), which traverse the core. The key questions to answer
      in link state propagation are: when should an increase/decrease
      wave be initiated, how far should a wave propagate, and how fast
      should a wave propagate.

   3. Route Computation

      Route computation first establishes a core path from the domain of
      the source to the domain of the destination.  This initial phase
      involves probing on the core, and the resultant core path is
      cached for future use.  The core path provides the directionality
      of the route from the source to the destination. Using this
      directional information, CEDAR iteratively tries to find a partial
      route from the source to the domain of the furthest possible node
      in the core path (which then becomes the source for the next
      iteration) which can satisfy the requested bandwidth, using only
      local information. Effectively, the computed route is a
      concatenation of the shortest-widest-furthest (the least hop path
      among the maximum bandwidth paths) paths found locally using the
      core path as the guideline.


   Several algorithms have been proposed for routing in ad hoc networks.
   The ad hoc routing algorithms proposed in [2,3,4] provide a single
   route in response to a route query from a source. Previous work on
   tactical packet radio networks had led to many of the fundamental
   results in ad hoc networks. [3] has proposed an architecture similar
   to the "core" called the linked clusterhead architecture but it uses
   gateways for communication between clusterheads and does not attempt
   to minimize the size of the core infrastructure.  The multipath
   routing algorithms proposed in [6,7,8] are more robust than the
   single route on demand algorithms, at the cost of higher memory and
   message requirements.


2. Network Model

   This section describes the network model and the terminology used in
   this draft.

   Network Model

      CEDAR assumes that all the hosts communicate on the same shared



Sivakumar, Sinha, Bharghavan                                    [Page 5]


INTERNET-DRAFT            CEDAR Specification               October 1998


      logical wireless channel. CEDAR assumes that each transmitter has
      a fixed transmission range, and that neighborhood is a commutative
      property (i.e. if A can hear B, then B can hear A). Because of the
      local nature of transmissions, hidden and exposed stations abound
      in an ad hoc network. CEDAR assumes the use of a CSMA/CA like
      algorithm for reliable unicast communication, and for solving the
      problem of hidden/exposed stations. Essentially, data transmission
      is preceded by a control packet handoff, and the sequence of
      packets exchanged in a communication is the following: RTS (from
      sender to receiver) - CTS (from receiver to sender) - Data (from
      sender to receiver) - ACK (from receiver to sender).  The RTS and
      CTS packets avoid collisions from the exposed stations and the
      hidden stations respectively.  Local broadcasts are not guaranteed
      to be reliable (because it is unreasonable to expect a CTS from
      every receiver before commencing data transmission), and are
      typically quite unreliable due to the presence of hidden and
      exposed stations.

      CEDAR assumes small to medium networks ranging upto to hundreds of
      hosts. For larger networks, we believe that a clustering algorithm
      [6] can be used to reduce the cluster size and apply CEDAR
      hierarchically within each cluster, for a cluster of clusters,
      etc.  CEDAR also assumes that mobility and extended fades are the
      main causes of link failures and topology changes. We assume that
      the change in network topology is frequent, but not frequent
      enough to render any sort of route computation useless. Note that
      CEDAR only cares about the relative mobility of the hosts, not the
      absolute mobility of the hosts. In particular, even if all the
      hosts are moving, the ad hoc network would be considered to be
      stable so long as the neighborhood of each host does not change.

      As in most QoS routing algorithms, CEDAR assumes that the MAC/link
      layer can estimate the available link bandwidth. Because all the
      hosts in a region share the same channel, each host must share the
      link bandwidth with the hosts in its second neighborhood [7]. In
      related work on providing QoS in wireless channels, a mechanism is
      provided for each host to fairly access a shared channel, and
      claim at least B/N bandwidth, where B is the effective channel
      bandwidth and N is the number of hosts locally contending for the
      bandwidth [8]. This work is currently being extended to ad hoc
      networks. While details of bandwidth sharing and estimation are
      beyond the scope of this draft, it is assumed that each host can
      estimate the available bandwidth of its links using some link-
      level mechanisms.

      CEDAR assumes a close coordination between the MAC layer and the
      routing layer. In particular, it uses the reception of RTS and CTS
      control messages at the MAC layer in order to improve the behavior



Sivakumar, Sinha, Bharghavan                                    [Page 6]


INTERNET-DRAFT            CEDAR Specification               October 1998


      of the routing layer, as explained in Section 3.

      Finally, bandwidth is the QoS parameter of interest in this draft.
      When an application requests a connection, it specifies the
      required bandwidth for the connection. The goal of CEDAR is then
      to find a short stable route that can satisfy the bandwidth
      requirement of the connection.

   Graph Terminology

      The ad hoc network is represented by means of an undirected graph
      G=(V,E), where V is the set of nodes in the graph (hosts in the
      network), and E is the set of edges in the graph (links in the
      network). The i-th open neighborhood, Ni(x) of node x is the set
      of nodes whose distance from x is not greater than i, except node
      x itself. The i-th closed neighborhood Ni[x] of node x is N(i) U
      {x}.

      A dominating set S (a subset of V) is a set such that every node
      in V is either in S or is a neighbor of a node in S. A dominating
      set with minimum cardinality is called a minimum dominating set
      (MDS). A virtual link [u,v] between two nodes in the dominating
      set S is a path in G from u to v. The draft uses the term tunnel
      interchangeably with virtual link.

      Given an MDS Vc of graph G, define a core of the graph C=(Vc, Ec),
      where Ec = { [u,v] u in Vc, v in Vc, u in N3(v) } . Thus, the core
      graph consists of the MDS nodes Vc, and a set of virtual links
      between every two nodes in Vc that are within a distance 3 of each
      other in G. Two nodes u and v which have a virtual link [u,v] in
      the core are said to be "nearby" nodes.

      For a connected graph G, consider any dominating set S. If the
      diameter of G is greater than 2, then for each node v in S, there
      must be at least one other node of S in N3(v) (otherwise there is
      at least one node in G which is neither in S nor has a neighbor in
      S). From the definition of the core, if G is connected, then a
      core C of G must also be connected (via virtual links).

3. CEDAR Architecture and the Core

   This section focuses on the establishment and maintenance of the
   core. Briefly, CEDAR extracts the core of the ad hoc network by
   approximating the minimum dominating set (MDS) of the ad hoc network.
   The nodes in the MDS comprise the core nodes of the network.  Each
   core node establishes a unicast virtual link (via a tunnel) with
   nearby core nodes that are a distance of 3 or less away from it in
   the ad hoc network.  This guarantees that the core is connected so



Sivakumar, Sinha, Bharghavan                                    [Page 7]


INTERNET-DRAFT            CEDAR Specification               October 1998


   long as the network is connected.  The core nodes then collect local
   topology information and information about stable high-bandwidth
   links far away and perform routing for the nodes in their domain (or
   immediate neighborhood). Each node that is not in the core chooses a
   core neighbor as its dominator, i.e. the node which performs route
   computations on its behalf.  The core is merely an infrastructure for
   facilitating route computation, and is itself independent of the
   routing algorithm. In particular, it is possible to use any of the
   well known ad hoc routing algorithms such as DSR [2], LMR [4], TORA
   [5], DSDV [9], etc. in the core graph.

   In the following subsections,  the motivation for choosing a core-
   based routing architecture is first described, then  a low overhead
   mechanism to generate and maintain the core of the network is
   presented, and finally an efficient mechanism to accomplish a 'core
   broadcast' using local unicast transmissions is described. The core
   broadcast is used both for propagation of increase/decrease waves,
   and for the establishment of the core path in the route computation
   phase.


   3a. Rationale for a Core-based Architecture in CEDAR

      Many contemporary proposals for ad hoc networking require every
      node in the ad hoc network to perform route computations and
      topology management [2,6,19,20].  However, CEDAR uses a core-based
      infrastructure for QoS routing due to two compelling reasons.

         1. QoS route computation involves maintaining local and some
         non-local link-state, and monitoring and reacting to some
         topology changes. Clearly, it is beneficial to have as few
         nodes in the network performing state management and route
         computation as possible.

         2. Local broadcasts are highly unreliable in ad hoc networks
         due to the abundance of hidden and exposed stations. The
         problem of local broadcasts in ad hoc networks has also been a
         recent subject of discussion in the MANET working group.
         Topology information propagation [19,20] and route probes [2,6]
         are inevitable in order to establish routes and will, of
         necessity, need to be broadcast if every node performs route
         computation. On the other hand, if only a core subset of  nodes
         in the ad hoc network perform route computations, it is
         possible to set up reliable unicast channels between nearby
         core nodes and accomplish both the topology updates and route
         probes much more effectively.

      The issues with having only a core subset of nodes performing



Sivakumar, Sinha, Bharghavan                                    [Page 8]


INTERNET-DRAFT            CEDAR Specification               October 1998


      route computations are threefold.  First, nodes in the ad hoc
      network that do not perform route computation must have easy
      access to a nearby core node so that they can quickly request
      routes to be setup. Second, the establishment of the core must be
      a purely local computation. In particular, no core node must need
      to know the topology of the entire core graph. Third, a change in
      the network topology may cause a recomputation of the core graph.
      Recomputation of the core graph must only occur in the locality of
      the topology change, and must not involve a global recomputation
      of the core graph.  On the other hand, the locally recomputed core
      graph must still only comprise of a small number of core nodes -
      otherwise the benefit of restricting route computation to a small
      core graph is lost.






































Sivakumar, Sinha, Bharghavan                                    [Page 9]


INTERNET-DRAFT            CEDAR Specification               October 1998


                o                        o
                |                        |
                |                        |
                o                        *
               / \                      / \
              /   \                    /   \
        o----o-----o----o        o----*-----*----o
             |     |                  |     |
             o     o                  o     o
             |     |                  |     |
             |     o                  |     o
             |     |                  |     |
        o----o-----o----o        o----*-----*----o
             |     |                  |     |
             |     |                  |     |
             o-----o                  o-----o

               (a)                      (b)

                  o nodes        -- link
                  * core nodes

      Figure 1 : (a) The example network (b) The example network with
      core nodes chosen

   3b. Generation and Maintenance of the Core in CEDAR

      Ideally, the core comprises of the nodes in a minimum dominating
      set Vc of the ad hoc network G=(V,E).  While a greedy algorithm
      can be used to generate the best known approximation for the MDS,
      CEDAR  uses a robust and simple, constant time algorithm which
      requires only local computations and generates good approximations
      for the MDS in the average case.

      Consider a node u, with first open neighborhood N1(u), degree d(u)
      = |N1(u)|, dominator dom(u), and effective degree d*(u), where
      d*(u) is the number of nodes in the closed neighborhood N1[u], who
      have chosen u as their dominator. The core computation algorithm,
      which is performed periodically, works as follows at node u.


         1.  u broadcasts a beacon which contains the following
         information pertaining to the core computation:
                    ---------------------------
                   | u | d*(u) | d(u) | dom(u) |
                    ---------------------------

         2.  u sets dom(u) <- v, where  v is the node in N1[u]  with the



Sivakumar, Sinha, Bharghavan                                   [Page 10]


INTERNET-DRAFT            CEDAR Specification               October 1998


         largest value for <d*(v), d(v)>, in lexicographic order. Note
         that u may choose itself as the dominator.

         3.  u then sends v a unicast message including the following
         information:
                    ----------------------------------------
                   | u | {(w, dom(w)) : for all w in N1(u)} |
                    ----------------------------------------

         Upon reception of the message, v increments d*(v) if u is not
         already in v's dominated list.

         4.  If d*(u) > 0, then u joins the core.

      Essentially, each node that needs to find a dominator selects the
      highest degree node with the maximum effective degree in its first
      closed neighborhood. Ties are broken by node id.

      When a node u joins the core, it issues a 'piggybacked broadcast'
      in N3(u). A piggybacked broadcast is accomplished as follows. In
      its beacon, u transmits a message:

              -----------------------------------
             | u | DOM | 3 | path_traversed=null |
              -----------------------------------

      When node w hears a beacon that contains a message
      <u, DOM, i, path_traversed>, it piggybacks the message

              ----------------------------------
             | u | DOM | i-1 | path_traversed+w |
              ----------------------------------

      in its own beacon if (i-1 > 0). Thus, the piggybacked broadcast of
      a core node advertises its presence in its third neighborhood. As
      mentioned in Section 2, this guarantees that each core node
      identifies its nearby core nodes, and can set up virtual links to
      these nodes using the path_traversed field in the broadcast
      messages.  The state that is contained in a core node u is the
      following:

         1. its nearby core nodes (i.e. the core nodes in N3(u))
         2. N*(u), the nodes that it dominates
         3. for each node v in N*(u), <forall w in N1(v), <w, dom(w)>>

      Thus each core node has enough local topology information to reach
      the domain of its nearby nodes and set up virtual links. However,
      no core node has knowledge of the core graph. In particular, no



Sivakumar, Sinha, Bharghavan                                   [Page 11]


INTERNET-DRAFT            CEDAR Specification               October 1998


      non-local state needs to be maintained by core nodes for the
      construction or maintenance of the core. Note from steps 2 and 4
      that over a period of time, the core graph prunes itself because
      nodes have a propensity to choose their core neighbor with the
      highest effective degree as their dominator. Figure 1 shows an
      example network and the corresponding core for the network.

      Maintaining the core in the presence of network dynamics is very
      simple as the periodic computation of the original core
      computation algorithm ensures nomination of an appropriate
      dominator for each node that loses connectivity with its dominator
      during mobility.

   3c. Core Broadcast and its Application to CEDAR

      As mentioned earlier, broadcasts do not work well in an ad hoc
      network (because of hidden and exposed stations). Hence, CEDAR
      uses a unicast based mechanism for achieving a 'core broadcast'.
      Note that it is reasonable to assume a unicast based mechanism to
      achieve broadcast in the core, because each core node is expected
      to have few nearby core nodes. Besides, the core broadcast
      mechanism ensures that each core node does not transmit a
      broadcast packet to every nearby core node, as described before.
      CEDAR uses a close coordination between the medium access layer
      and the routing layer in order to achieve efficient core
      broadcast.

      Recall that a virtual link is a unicast path of length 1, 2, or 3.
      Recall also, that CSMA/CA protocols use an RTS-CTS-Data-ACK
      handshake sequence to achieve reliable unicast packet
      transmission.  Our goal is to use the MAC state in order to
      achieve efficient core broadcast using O(|V|) messages, where |V|
      is the number of nodes in the network.

      In order to achieve efficient core broadcast, it is assumed that
      each node temporarily caches every RTS and CTS packet that it
      hears on the channel for core broadcast packets only. Each core
      broadcast message M that is transmitted to a core node i has the
      unique tag <M, i>. This tag is put in the RTS and CTS packets of
      the core broadcast packet, and is cached for a short period of
      time by any node that receives (or overhears) these packets on the
      channel. Consider that a core node u has heard a CTS(<M, v>) on
      the channel. Then, it estimates that its nearby node v has
      received M, and does not forward M to node v. Now suppose that u
      and v are a distance 2 apart, and the virtual channel [u,v] passes
      through a node w. Since w is a neighbor of v, w hears CTS(<M, v>).
      Thus, when u sends a RTS(<M, v>) to w, w sends back a NACK to u.
      If u and v are a distance 3 apart, using the same argument there



Sivakumar, Sinha, Bharghavan                                   [Page 12]


INTERNET-DRAFT            CEDAR Specification               October 1998


      will be atmost one extra message.  Essentially, the idea is to
      monitor the RTS and CTS packets in the channel in order to
      discover when the intended receiver of a core broadcast packet has
      already received the packet from another node, and suppress the
      duplicate transmission of this packet.


                  o
                  |
                  |
                  *
                 # \
                #   \
        S o----*#####*----o
               #     |
               #     |
               #     |
               #     |
               #     |
          o----*#####*----o D
               |     |
               |     |
               o-----o

      S:source;  D:destination;  #:tunnels used in the core broadcast

      Figure 2 : A core broadcast initiated by dom(S) for finding a
      route to D


      Note that the core broadcast has the following properties:

         1. The core nodes do not explicitly maintain a source-based
         tree. However, the core broadcast dynamically (and implicitly)
         establishes a source-based tree (using the MAC-based broadcast
         suppression), which is typically a breadth-first search tree
         for the source of the core broadcast.

         2. The number of messages is O(|V|) in the worst case, and
         O(|Vc|) in the average case.  In particular, the only case
         extra messages are transmitted is when two nearby core nodes
         are a distance 3 apart.

         3.  Since the trees are not explicitly maintained, different
         messages may establish different trees.  Likewise, changes in
         the network topology do not require any explicit recomputation
         of the implicitly generated source tree.  However, the
         coordination of the MAC layer and the routing layer ensures



Sivakumar, Sinha, Bharghavan                                   [Page 13]


INTERNET-DRAFT            CEDAR Specification               October 1998


         that the core broadcast establishes a tree, and that a core
         node typically does not receive duplicates for a core
         broadcast.

      While the core broadcast in CEDAR has low overhead and adapts
      easily to topology changes, the RTS and CTS packets corresponding
      to a core broadcast need to be cached for some time after their
      reception. Figure 2 illustrates a core broadcast in an example
      network. Notice that  all tunnels need not be used for core
      broadcast, as the core broadcast dynamically establishes a
      source-based tree, as mentioned above.

      Core broadcast finds applicability in two key aspects of CEDAR:
      discovery of the core path, and propagation of increase/decrease
      waves. The discovery of the core path is broadcast because the
      sender may not know the location of the receiver. It initiates a
      core broadcast to find the location of the receiver, and
      simultaneously, discover the core path.


4. QoS State Propagation in CEDAR

   Section 3 described the core routing infrastructure of CEDAR. Since
   each core node uses only the locally cached state to compute the
   shortest-widest furthest path along the core path in the route
   computation phase, the focus is now turned to the nature of state
   that is stored in each core node. At one extreme is the minimalist
   approach of only storing local topology information at each core
   node. This approach results in a poor routing algorithm (i.e. the
   routing algorithm may fail to compute an admissible route even if
   such routes exist in the ad hoc network) but has a very low overhead
   for dynamic networks. At the other extreme is the maximalist approach
   of storing the entire link state of the ad hoc network at each core
   node.  This approach may compute optimal routes but incurs a high
   state management overhead for dynamic networks, and potentially
   computes stale routes based on out-of-date cached state when the
   network dynamics is high.

   The problem with having only local state is that core nodes are
   unable to compute good routes in the absence of link-state
   information about stable high-bandwidth remote links, while the
   problem of having global state is that it is useless to maintain the
   link state corresponding to low-bandwidth and highly dynamic links
   that are far away because the cached state is likely to be stale
   anyway. Fundamentally, each core node needs to have the up-to-date
   state about its local topology, and also the link-state corresponding
   to relatively stable high-bandwidth links further away. Providing for
   such a link-state propagation mechanism ensures that CEDAR approaches



Sivakumar, Sinha, Bharghavan                                   [Page 14]


INTERNET-DRAFT            CEDAR Specification               October 1998


   the minimalist local state algorithm in highly dynamic networks, and
   approaches the maximalist link-state algorithm in highly stable
   networks. CEDAR achieves the goal of having stability and bandwidth
   based link-state propagation using increase and decrease waves, as
   described in this section.

   In the rest of this section, the draft  first describes the mechanics
   of the increase and decrease waves, and then answers the three key
   questions pertaining to these waves: when should a wave be generated,
   how fast should a wave propagate, and how far should a wave
   propagate.

   4a. Increase and Decrease Waves

      For every link l=(a,b), the node b is  responsible for monitoring
      the available bandwidth  on l and informing a of the same if l is
      bi-directional.  b and a in turn notify their respective
      dominators for initiating the increase or decrease waves, when the
      bandwidth changes by some threshold value.  These  waves are then
      propagated by the dominators (core nodes) to a subset of  core
      nodes via core broadcasts. Each core node has two queues: the
      "ito-queue" that contains the pending core broadcast messages for
      increase waves, and the "dto-queue" that contains the pending core
      broadcast messages for decrease waves. For each link l about which
      a core node caches link-state, the core node contains the cached
      available bandwidth bav(l).

























Sivakumar, Sinha, Bharghavan                                   [Page 15]


INTERNET-DRAFT            CEDAR Specification               October 1998


      The following is the sequence of actions for an increase wave:

         1. When a new link l=(a,b) comes up, or when the available
         bandwidth b(a, b) increases beyond a threshold value, then the
         two end-points of l inform their dominators for initiating a
         core broadcast for an increase wave:

         ito(<a, b, dom(a), dom(b), b(a,b), ttl(b)>)

         where ito (increase to) denotes the type of the wave, (a,b)
         identifies the link, dom(a) denotes the dominator of a, dom(b)
         denotes the dominator of b, b(a, b) denotes the available
         bandwidth on the link, and ttl(b) is a 'time-to-live' field
         that denotes the maximum distance to which this wave can be
         propagated as an increase wave. The ids of the dominators of
         the link end-points are required by the routing algorithm.
         ttl(b) is an increasing function of the available bandwidth, as
         described in Section 4c.

         2. When a core node u receives an ito wave

         ito(<a, b, dom(a), dom(b), b(a, b), ttl>),

         1       if u has no state cached for (a,b),
         2          bav(a,b) <- b(a,b)
         3          if (ttl > 0), then add the following message
                         to the ito-queue:
         4             ito(<a, b, dom(a), dom(b), b(a,b), ttl - 1>)
         5       else if u has cached state for (a,b) and (ttl > 0),
         6          if (bav(a,b) < b(a,b))
         7             bav(a,b) <- b(a,b)
         8             delete any pending ito/dto message for (a,b) from the
         9                ito-queue and dto-queue.
         10            add the following message to the ito-queue:
         11               ito(<a, b, dom(a), dom(b), b(a,b), ttl - 1>)
         12         else if (bav(a,b) > b(a,b)),
         13            bav(a,b) <- b(a,b)
         14            delete any pending ito/dto message for (a,b) from the
         15                    ito-queue and dto-queue.
         16            add the following message to the dto-queue:
         17               dto(<a, b, dom(a), dom(b), b(a,b), ttl - 1>)
         18      else if u has cached state for (a,b) and (ttl = 0),
         19         bav(a,b) <- b(a,b)
         20         delete any pending ito/dto message for (a,b) from the
                         ito-queue and dto-queue.
         21         add the following message to the dto-queue:
         22              dto(<a, b, dom(a), dom(b), 0, infinity>)




Sivakumar, Sinha, Bharghavan                                   [Page 16]


INTERNET-DRAFT            CEDAR Specification               October 1998


         The ito-queue and the dto-queues are flushed periodically,
         depending on the speed of propagation of the increase/decrease
         waves.

         The following is the sequence of actions for a decrease wave:

         1. When a link l=(a,b) goes down, or when the available
         bandwidth b(a, b) decreases beyond a threshold value, then the
         two end-points of l inform their dominators for initiating a
         core broadcast for a decrease wave:

         dto(<a, b, dom(a), dom(b), b(a,b), ttl(b)>),

         where  dto (decrease to) denotes the type of the wave, and the
         other parameters are as defined before.

         2. When a core node u receives a dto wave

         dto(<a, b, dom(a), dom(b), b(a,b), ttl>),

         1       if u has no state cached for (a,b) and (b(a,b) = 0),
         2          the wave is killed.
         3       else if u has no state cached for (a,b) and (b(a,b) > 0),
         4          bav(a,b) <- b(a,b)
         5          if (ttl > 0), then add the following message
                         to the ito-queue:
         6             ito(<a, b, dom(a), dom(b), b(a,b), ttl - 1>)
         7       else if u has cached state for (a,b) and (ttl > 0),
         8          if (bav(a,b) < b(a,b)),
         9             bav(a,b) <- b(a,b)
         10            delete any pending ito/dto message for (a,b) from the
         11                  ito-queue and dto-queue.
         12            add ito(<a, b, dom(a), dom(b), b(a,b), ttl - 1>) to
         13                  the ito-queue.
         14         else if (bav(a,b) > b(a,b)),
         15            bav(a,b) <- b(a,b)
         16            delete any pending ito/dto message for (a,b) from the
         17               ito-queue and dto-queue.
         18            add the following message to the dto-queue.
         19               dto(<a, b, dom(a), dom(b), b(a,b), ttl - 1>)
         20      else if u has cached state for (a,b) and (ttl = 0),
         21           bav(a,b) <- b(a,b)
         22           delete any pending ito/dto message for (a,b) from the
         23              ito-queue and dto-queue.
         24           add the following message to the dto-queue.
         25              dto(<a, b, dom(a), dom(b), 0, infinity>)

      There are several key points in the above algorithm. First, the



Sivakumar, Sinha, Bharghavan                                   [Page 17]


INTERNET-DRAFT            CEDAR Specification               October 1998


      way that the ito-queue and the dto-queue are flushed ensures that
      the decrease waves propagate much faster than the increase waves
      and suppress state propagation for unstable links. Second, waves
      are converted between ito and dto on-the-fly, depending on whether
      the cached value for the available bandwidth is lesser than the
      new update (ito wave generated) or not (dto wave generated).
      Third, after a distance of ttl (which depends on the current
      available bandwidth of the link), the dto(<a, b, dom(a), dom(b),
      0, infinity>) message ensures that all other core nodes which had
      state cached for this link now destroy that state. However, the
      dto(<a, b, dom(a), dom(b), 0, infinity>) wave does not propagate
      throughout the network - it is suppressed as soon as it hits the
      core nodes which do not have link state for (a,b) cached (line 2
      in decrease wave propagation). The increase/decrease waves use the
      efficient core broadcast mechanism for propagation. Figure 3
      illustrates a decrease wave cancelling a previously generated
      increase wave for a link l.

                      ^
                      |
                      |
                      |                    increase wave
              ^       |                      nullified
              |       |                         + -
              |       |                        +  -
                      |                      +   -
           # of hops  |                    +     -
            from      |                  +      -
             l        |                +        -
                      |              +         -
                      |            +           -
                      |          +            -
                      |        +              -
                      |      +               -
                      |    +                 -
                     -|----X-----------------X---------------->
                      |   increase wave      decrease wave
                      |   for l generated    for l generated

                                        time ->

      Figure 3 : A decrease wave cancelling an increase wave for l

      Essentially, the above algorithm ensures that the link-state
      information for stable high-bandwidth links gets propagated
      throughout the core, while the link-state information for unstable
      and low-bandwidth links remains local - which is the goal of the
      CEDAR state propagation algorithm.



Sivakumar, Sinha, Bharghavan                                   [Page 18]


INTERNET-DRAFT            CEDAR Specification               October 1998


   4b. Issues in link state propagation

      In this subsection, the three key questions pertaining to the
      propagation of increase/decrease waves are discussed:  when should
      a wave be generated, how fast should a wave propagate, and how far
      should a wave propagate.

      When is a wave generated ?

         To avoid a large overhead, CEDAR generates waves only when the
         bandwidth has changed by some threshold value. We suggest the
         use of a constant threshold when the bandwidth request sizes
         are comparable to the available bandwidth and a logarithmic
         scale [10] for the threshold when the typical request sizes are
         an order of a magnitude less than the available bandwidths. The
         advantage of the logarithmic update is that it does not
         wastefully generate increase/decrease waves when the change in
         link capacity is unlikely to alter the probability of computing
         admissible routes. Further work is needed to substantiate the
         above heuristics.

      How Far does a Increase/Decrease Wave Propagate?

         The goal is to propagate link bandwidth information to a number
         of nodes that is proportional to the amount of bandwidth being
         propagated. The motivation for this approach is the fact that
         every node that has knowledge about a particular link would
         potentially contend for the link, and a higher percentage of
         requests can be satisfied if the contention on a link is
         proportional to its bandwidth. Hence we suggest that the
         maximum distance that the link state travels (time to live -
         ttl) be an increasing function of the available bandwidth of
         the link. Although the current CEDAR simulation uses a linear
         function of the available bandwidth for computing the ttl, a
         fluid model analysis of an ad hoc network suggests that in
         general, the ttl should be a function of b^(1/k), where k is a
         small number between 1 and 3.

      How Fast does a Increase/Decrease Wave Propagate?

         An increase wave waits for a fixed timeout period (which is a
         system parameter that should be approximately twice the
         expected inter-arrival time between the generation of two
         successive waves for any link in the network) at each node
         before being forwarded to its neighbors (using the core
         broadcast). Thus, increase waves propagate slowly. A decrease
         wave is immediately forwarded to its neighbors (using the core
         broadcast). Thus decrease waves move much faster and can kill



Sivakumar, Sinha, Bharghavan                                   [Page 19]


INTERNET-DRAFT            CEDAR Specification               October 1998


         increase waves for unstable links.

5. QoS Routing in CEDAR

   The previous two sections have described the core infrastructure
   (i.e. which nodes in the ad hoc network perform route computation and
   how they communicate among themselves) and the state propagation
   algorithm (i.e. what state does each core node contain).  This
   section completes the description of CEDAR by specifying how the core
   nodes use the state information to compute QoS routes.

   The QoS route computation in CEDAR consists of three key components:
   (a) discovery of the location of the destination and establishment of
   the core path to the destination, (b) establishment of a short stable
   admissible QoS route from the source to the destination using the
   core path as a directional guideline, and (c) dynamic re-
   establishment of routes for ongoing connections upon link failures
   and topology changes in the ad hoc network.


   5a. Establishment of the Core Path

      The establishment of a core path takes place when s requests
      dom(s) to set up a route to d, and dom(s) does not know the
      identity of dom(d) or does not have a core path to dom(d).
      Establishment of a core path consists of the following steps.

         1. dom(s) initiates a core broadcast to set up a core path with
         the following message: <core_path_req, dom(s), d, b, P = null>.

         2.  When a core node u receives the core path request message
         <core_path_req, dom(s), d, b, P>, it appends u  to P, and
         forwards the message to each of its nearby core nodes
         (according to the core broadcast algorithm) to whose domain
         there exists atleast one path (from u's domain) satisfying
         bandwidth b.

         3. When dom(t) receives the core path request message
         <core_path_req, dom(s), d, b, P>, it sends back a source rooted
         unicast core_path_ack message to dom(s) along the inverse path
         recorded in P. The response message also contains P, the core
         path from dom(s) to dom(d).

      Upon reception of the core_path_ack message from dom(d), dom(s)
      completes the core path establishment phase and enters the QoS
      route computation phase.

      Note that by virtue of the core broadcast algorithm, the core path



Sivakumar, Sinha, Bharghavan                                   [Page 20]


INTERNET-DRAFT            CEDAR Specification               October 1998


      request traverses an implicitly (and dynamically) established
      source routed tree from dom(s) which is typically a breadth-first
      search tree. Thus, the core path is approximately the shortest
      admissible path in the core graph from dom(s) to dom(d), and hence
      provides a good directional guideline for the QoS route
      computation phase. Figure 4 shows an example for a core path. The
      example assumes that the link marked with 0.5 has an available
      bandwidth of 0.5 units, whereas all other links have 1 unit of
      bandwidth available. The route request has a QoS requirement of 1
      unit.









































Sivakumar, Sinha, Bharghavan                                   [Page 21]


INTERNET-DRAFT            CEDAR Specification               October 1998


                   o
                   |
                   |1
                   *
                1 / \ 1
             1   /   \  1
        S  o----*-----*----o
                +     |
                +     |
              1 +     | 1
                +     |
             1  + 0.5 |  1
           o----*+++++*----o D
                |     |
              1 |     | 1
                o-----o              1

      + core path   S source     D destination

      Figure 4 : Core path from dom(S) to dom(D)

   5b. QoS Route Computation

      After the core path establishment, dom(s) knows dom(d) and the
      core path from dom(s) to dom(d). Recall from Section 3 that dom(s)
      has the local topology - which includes all the nodes in its
      domain, and for each dominated node u, the bandwidth of each link
      incident on u, the adjacency list of u and the dominator of each
      of the neighbors of u. Recall from Section 4 that dom(s) has the
      information gathered about remote links through increase/decrease
      waves, and for each such link (u, v), the bandwidth of (u,v),
      dom(u), and dom(v). dom(s) thus has a partial knowledge of the ad
      hoc network topology, which consists of the up-to-date local
      topology, and some possibly out-of-date information about remote
      stable high-bandwidth links in the network.  The following is the
      sequence of events in QoS route computation.

         1. Using the local topology, dom(s) tries to find a path from s
         to the domain of the furthest possible core node in the core
         path (say dom(t)) that can provide at least a bandwidth of b
         (bandwidth of the connection request). The bandwidth that can
         be provided on a path is the minimum of the individual
         available link bandwidths that comprise the path.

         2. Among all the admissible paths (known using local state) to
         the domain of the furthest possible core node in the core path,
         dom(s) picks the shortest-widest path using a two phase
         Dijkstra's algorithm [11]. The first phase is used to find the



Sivakumar, Sinha, Bharghavan                                   [Page 22]


INTERNET-DRAFT            CEDAR Specification               October 1998


         available bandwidth B of the widest path. In the subsequent
         phase, links with available bandwidth less than B are
         eliminated before computing the shortest path in the resulting
         graph.

         3. Let t be the end point of the chosen path and p(s, t) denote
         the path. dom(s) sends dom(t) the following message:  < s, d,
         b, P, p(s, t), dom(s), t>, where s, d, and t are the source,
         destination, and intermediate node in the partially computed
         path, b is the required bandwidth, P is the core path, and p(s,
         t) is the partial path.

         4. dom(t) then performs the QoS route computation using its
         local state identical to the computation described above.

         5. Eventually, either there is an admissible path to d or the
         local route computation will fail to produce a path at some
         core node. The concatenation of the partial paths computed by
         the core nodes provides an end-to-end path that can satisfy the
         bandwidth requirement of the connection with high probability.
         Figure 5 shows how the core path found in Figure 4 is used to
         find a QoS route satisfying the 1 unit bandwidth request.  As
         mentioned earlier, all links except the one indicated with 0.5,
         have an available bandwidth of 1 unit. This example also
         illustrates that the QoS route found in CEDAR can be non-
         optimal as it uses a core path as the guiding direction (the
         path along the core has 7 hops whereas there is another
         feasible path - not along the chosen core path - with 6 hops).

      The core path is computed in one round trip, and the QoS route
      computation algorithm also takes one round trip. Thus, the route
      discovery and computation algorithms together take two round trips
      if the core path is not cached and one round trip otherwise.

      Note that while the QoS route is being computed, packets may be
      sent from s to d using the core path. The core path thus provides
      a simple backup route while the primary route is being computed.














Sivakumar, Sinha, Bharghavan                                   [Page 23]


INTERNET-DRAFT            CEDAR Specification               October 1998


                      o
                      |
                      |
                      *
                     / \
                    /   \
           S  o....*-----*----o
                   :     |
                   o     o
                   :     |
                   :     o
                   : 0.5 |
              o----*-----*....o D
                   :     :
                   :     :
                   o.....o


      Figure 5 : QoS route from S to D satisfying a bandwidth
      requirement of 1 unit.

   5c. Dynamic QoS Route Recomputation for Ongoing Connections

      Route recomputations may be required for ongoing connections under
      two circumstances:  the end host moves, and there is some
      intermediate link failure (possibly caused by the mobility of an
      intermediate router or by a reduction in available bandwidth on
      that link such that the connection can no longer be served). End
      host mobility can be thought of as a special case of link failure,
      wherein the last link fails.

      CEDAR has two mechanisms to deal with link failures and reduce the
      impact of failures on ongoing flows: dynamic recomputation of an
      admissible route from the point of failure, and notification back
      to the source for source-initiated route recomputation. These two
      mechanisms work in concert and enable us to provide seamless
      mobility.

         1. QoS Route Recomputation at the Failure Point: Consider that
         a link (u, v) fails on the path of an ongoing connection from s
         to t. The node nearest to the sender, u, then initiates a local
         route recomputation similar to the algorithm in Section 5b.
         Once the route is recomputed, u updates the source route in all
         packets from s to t accordingly. If the link failure happens
         near the destination, then dynamic route recomputation at the
         intermediate node works very well because the route
         recomputation time to the destination is expected to be small,
         and packets in-flight are re-routed seamlessly.



Sivakumar, Sinha, Bharghavan                                   [Page 24]


INTERNET-DRAFT            CEDAR Specification               October 1998


         2. QoS Route Recomputation at the Source:  Consider that a link
         (u, v) fails on the path of an ongoing connection from s to t.
         The node nearest to the sender, u, then notifies s that the
         link (u, v) has failed. Upon receiving the notification, u
         stops its packet transmission, initiates a QoS route
         computation as in  Section 5b, and resumes transmission upon
         the successful re-establishment of an admissible route.  If the
         link failure happens near the source, then source-initiated
         recomputation is effective, because the source can quickly
         receive the link-failure notification and temporarily stop
         transmission.

      The combination of these two mechanisms is effective in supporting
      seamless communication inspite of mobility and dynamic topology
      changes. Basically, CEDAR uses source-initiated recomputation as
      the long-term solution to handling link failure, while the short-
      term solution to handle packets in-flight is through the dynamic
      recomputation of routes from the intermediate nodes. Recomputation
      at the failure point is not really effective if the failure
      happens close to the source, but in this case, the number of
      packets in flight from s to u is small.

6. Performance Results

   We have evaluated the performance of CEDAR via both implementation
   and simulation. Our implementation consists of a small ad hoc network
   consisting of six mobile nodes that use Photonics (Data Technology) 1
   Mbps infrared network. We have customized the Linux 2.0.31 kernel to
   build our ad hoc network environment (written partly in user mode and
   partly in kernel mode). While the testbed shows proof of concept and
   has exposed some difficulties in implementing CEDAR, our detailed
   performance evaluation [12] has been using a simulator that
   faithfully implements the CEDAR algorithms.

   While the entire gamut of results obtained from the tests are not
   presented due to space constraints, the rest of this section briefly
   summarizes the performance of CEDAR as observed from these tests. For
   tests in a best-effort environment we assume the optimal performance
   to be the performance of a global algorithm that does shortest path
   computation, while in a QoS environment we assume this to be the
   performance of a global algorithm doing a shortest widest path
   computation. The metrics used for comparison in these results are:
   (i) stretch - the ratio of the number of hops in a route computed by
   CEDAR to the number of hops in a route computed by the global
   algorithm, (ii) bandwidth - the ratio of bandwidth available on the
   routes computed by CEDAR to that of the global algorithm, (iii)
   message complexity, (iv) time complexity and (v) crankbacks - the
   ratio of the number of rejects to the number of connection requests.



Sivakumar, Sinha, Bharghavan                                   [Page 25]


INTERNET-DRAFT            CEDAR Specification               October 1998


   In a best-effort environment, CEDAR performs reasonably well before
   the introduction of ito/dto waves, and progressively converges to a
   near optimal performance once these waves are introduced.  In
   particular, for dynamic networks we observed a stretch of around 1.2
   before the waves were introduced. The stretch came down to 1.1 once
   the waves were introduced. For stable networks, the stretch observed
   was 1. Additionally, the message and time complexities of CEDAR were
   also comparable to the optimal performance [12].

   In a QoS environment, CEDAR was compared to the optimal algorithm in
   terms of the number of hops and the bandwidth available on the
   computed path. In terms of bandwidth, CEDAR's performance was worse
   than the optimal performance by an average of 3%.  For the number of
   hops on the computed path, CEDAR in fact performed better in some
   cases (the global algorithm could pick a longer path with a higher
   bandwidth).  When the number of crank-backs was observed in these
   tests, CEDAR had 30% more crank-backs than the optimal algorithm
   before the introduction of waves, while after the introduction of
   ito/dto waves, the number of crank-backs were the same in both CEDAR
   and the optimal algorithm.

   For detailed performance results, please refer to [12].

7. Conclusions

   This draft presents CEDAR, a core-Extraction Distributed Ad hoc
   Routing algorithm for providing QoS in ad hoc network environments.
   CEDAR has three key components: (a)  the establishment   and
   maintenance  of  a  self-organizing  routing infrastructure,  called
   the  "core",  for   performing   route computations,  (b)  the
   propagation of the link-state of  stable high-bandwidth links in the
   core  through  "increase/decrease" waves,  and  (c)  a  QoS  route
   computation  algorithm  that is executed at the core nodes using only
   locally available state.  While the core provides an efficient and
   low-overhead infrastructure to perform routing and broadcasts in an
   ad hoc network, the increase/decrease wave based state propagation
   mechanism ensures that the core nodes have the important link-state
   they need for route computation without incurring the high overhead
   of state maintenance for dynamic links.  The QoS routing algorithm is
   robust and uses only local state for route computation at each core
   node.

   CEDAR is a robust and adaptive algorithm that reacts quickly and
   efficiently to the dynamics of the network while still approximating
   link-state performance for stable networks. Our simulations show that
   CEDAR produces good stable admissible routes with a high probability
   if such routes exist. Furthermore, CEDAR does not require high
   maintenance overhead even for highly dynamic networks. Ongoing work



Sivakumar, Sinha, Bharghavan                                   [Page 26]


INTERNET-DRAFT            CEDAR Specification               October 1998


   on CEDAR is focusing on three areas. (a) While it is shown that CEDAR
   is effective for small to medium size networks, work is being done on
   a hierarchically clustered version of CEDAR that can provide QoS
   routing in large ad hoc networks. (b) While this draft has only
   considered bandwidth as the QoS parameter in this work, current work
   is extending CEDAR to include delay as a QoS parameter and (c) The
   heuristics mentioned in Section 4 need more study and are in the
   process of being refined.

8. References


   [1]  R. Nair, B. Rajagopalan, H. Sandick, and E. Crawley.  "A
        framework for QoS-based routing in the Internet."  Internet
        Draft draft-ietf-qosr-framework-05.txt, May 1998.


   [2]  D. B. Johnson and D. A. Maltz.  "Dynamic source routing in ad
        hoc wireless networks".  In Mobile Computing, (ed. T. Imielinski
        and H. Korth), Kluwer Academic Publishers, 1996.


   [3]  A. Ephremides, J. E. Wieselthier, and D. J. Baker.  "A design
        concept for reliable mobile radio networks with frequency
        hopping signaling".  In Proceedings of the IEEE, pages 56--73,
        January 1987.


   [4]  M. S. Corson and A. Ephremides.  "A highly adaptive distributed
        routing algorithm for mobile wireless  networks".  ACM/Baltzer
        Wireless Networks Journal, 1(1):61--81, February 1995.


   [5]  V. D. Park and M. S. Corson.  "A highly adaptive distributed
        routing algorithm for mobile wireless networks".  In Proceedings
        of 1997 IEEE Conference on Computer Communications, April 1997.


   [6]  R. Sivakumar, B. Das, and V. Bharghavan.  "Spine routing in ad
        hoc networks".  ACM/Baltzer Cluster Computing Journal (special
        issue on Mobile Computing). To appear, 1998.


   [7]  V. Bharghavan, S. Shenker A. Demers, and L. Zhang.  "MACAW: A
        medium access protocol for wireless LANs".  In Proceedings of
        ACM SIGCOMM}, London, England, August 1994.





Sivakumar, Sinha, Bharghavan                                   [Page 27]


INTERNET-DRAFT            CEDAR Specification               October 1998


   [8]  S. Lu, V. Bharghavan, and R. Srikant.  "Fair queuing in wireless
        packet networks".  In Proceedings of ACM SIGCOMM '97, Cannes,
        France, September  1997.


   [9]  C. E. Perkins and P. Bhagwat.  "Highly dynamic destination-
        sequenced distance-vector routing (DSDV) for mobile computers".
        In Proceedings of ACM SIGCOMM, pages 234--244, London, England,
        August 1994.


   [10]  B. Awerbuch, Yi Du, B. Khan, and Y. Shavitt.  "Routing through
        networks with topology aggregation".  In IEEE Symposium on
        Computers and Communications, Athens,  Greece, June 1998.


   [11]  Q. Ma and P. Steenkiste.  "On path selection for traffic with
        bandwidth guarantees".  In Proceedings of Fifth IEEE
        International Conference on Network  Protocols, Atlanta, October
        1997.


   [12] R. Sivakumar, P. Sinha and V. Bharghavan.  "CEDAR: a Core-
        Extraction Distributed Ad hoc Routing algorithm". TIMELY Group
        Technical Report,http://www.timely.crhc.uiuc.edu/Papers/cedar.ps

9. Author's Addresses

        Raghupathy Sivakumar
        458 C&SRL, Coordinated Science Lab
        University of Illinois, Urbana-Champaign
        1308 W. Main St., Urbana, IL 61801
        USA
        Email: sivakumr@timely.crhc.uiuc.edu

        Prasun Sinha
        458 C&SRL, Coordinated Science Lab
        University of Illinois, Urbana-Champaign
        1308 W. Main St., Urbana, IL 61801
        USA
        Email: prasun@timely.crhc.uiuc.edu

        Vaduvur Bharghavan
        457 C&SRL, Coordinated Science Lab
        University of Illinois, Urbana-Champaign
        1308 W. Main St., Urbana, IL 61801
        USA
        Email: bharghav@timely.crhc.uiuc.edu



Sivakumar, Sinha, Bharghavan                                   [Page 28]


INTERNET-DRAFT            CEDAR Specification               October 1998





















































Sivakumar, Sinha, Bharghavan                                   [Page 29]