IETF MANET Working Group                        J.J. Garcia-Luna-Aceves
INTERNET-DRAFT                     University of California, Santa Cruz
                                             Marcelo Spohn, David Beyer
                                                                  NOKIA
                                                        22 October 1999



              SOURCE TREE ADAPTIVE ROUTING (STAR) PROTOCOL


                     <draft-ietf-manet-star-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 Source-Tree Adaptive Routing (STAR) protocol is intended for use
   by nodes (static and mobile) in an ad hoc network or an internet.  A



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 1]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   router in STAR communicates to its neighbors the parameters of its
   source routing tree, which consists of each link that the router
   needs to reach every known destination (and address range) in the ad
   hoc network or internet. To conserve transmission bandwidth and
   energy, a router communicates changes to its source routing tree only
   when the router detects new destinations, the possibility of looping,
   or the possibility of node failures or network partitions.




   Introduction

   This document describes the Source-Tree Adaptive Routing (STAR) pro-
   tocol [11, 12], a proptocol developed in the SPARROW project part of
   the DARPA GloMo program.

   Routing algorithms for ad hoc networks can be categorized according
   to the way in which routers obtain routing information, and according
   to the type of information they use to compute preferred paths.  In
   terms of the way in which routers obtain information, routing proto-
   cols have been classified as table-driven and on-demand.  In terms of
   the type of information used by routing protocols, routing protocols
   can be classified into link-state protocols and distance-vector pro-
   tocols. Routers running a link-state protocol use topology informa-
   tion to make routing decisions. Routers running a distance-vector
   protocol use distances or path information to destinations to make
   routing decisions. Our characterization of distance-vector routing
   protocols is broader than in other documents but is consistent with
   our prior publications.

   In an on-demand routing protocol, routers maintain routing informa-
   tion for only those destinations that they need to contact as a
   source or relay of information. The basic approach consists of allow-
   ing a router that does not know how to reach a destination to send a
   flood-search message to obtain the path information it needs. The
   first routing protocol of this type was proposed to establish virtual
   circuits in the MSE network [19], and there are several more recent
   examples of this approach (e.g., AODV [23], ABR [30], DSR [15], TORA
   [21], SSA [6], ZRP [13]).  On-demand routing protocols differ on the
   specific mechanisms used to disseminate flood-search packets and
   their responses, cache the information heard from other nodes'
   searches, determine the cost of a link, and determine the existence
   of a neighbor.

   In a table-driven algorithm, each router maintains path information
   for each known destination in the network and updates its routing-
   table entries as needed.  Examples of table-driven algorithms based



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 2]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   on distance vectors are the routing protocol of the DARPA packet-
   radio network [16i], DSDV [22], WRP [27], WIRP [9], and least-
   resistance routing protocols [24].  Prior table-driven approaches to
   link-state routing in packet-radio networks are based on topology
   broadcast. However, disseminating complete link-state information to
   all routers incurs excessive communication overhead in an ad hoc net-
   work, because of the dynamics of the network and the small bandwidth
   available.  Accordingly, all link-state routing approaches for
   packet-radio networks have been based on hierarchical routing schemes
   [25, 26, ,29].

   A key issue in deciding which type of routing protocol is best for ad
   hoc networks is the communication overhead incurred by the protocol.
   Because data and control traffic share the same communication
   bandwidth in the network, and because untethered routers use the same
   energy source to transmit data and control packets, computing
   minimum-cost (e.g., least interference) paths to all destinations at
   the expense of considerable routing-update traffic is not practical
   in ad hoc networks with untethered nodes and dynamic topologies. The
   routing protocol used in an ad hoc network should incur as little
   communication overhead as possible to preserve battery life at
   untethered routers and to leave as much bandwidth as possible to data
   traffic.

   To date, the debate on whether a table-driven or an on-demand routing
   approach is best for wireless networks has assumed that table-driven
   routing necessarily has to provide optimum (e.g., shortest-path)
   routing, when in fact on-demand routing protocols cannot ensure
   optimum paths. STAR is the first example of a table-driven routing
   protocol that is as efficient as an on-demand routing protocol by
   exploiting link-state information and allowing paths taken to desti-
   nations to deviate from the optimum in order to save bandwidth.




   Assumptions and Terminology

   We make very few assumptions for the efficient operation of STAR.
   STAR assumes that the ad hoc network is in fact a wireless internet
   in which IP hosts are connected through subnets or point-to-point
   links to routers. Currently, STAR operates on top of IP, just like an
   Internet routing protocol does.

   STAR can operate in ad hoc networks based on vary different medium
   access control (MAC) protocols, which need not permit promiscuous
   listening of transmissions.




Garcia-Luna-Aceves, Spohn, Beyer                                [Page 3]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   To describe STAR, the topology of a network is modeled as a directed
   graph G = (V, E), where V is the set of nodes and E is the set of
   edges connecting the nodes. Each node has a unique identifier and
   represents a router with input and output queues updated according to
   a FIFO policy. In a wireless network, a node can have connectivity
   with multiple nodes over a single physical radio link. For the pur-
   pose of routing-table updating, a node A can consider another node B
   to be adjacent (we call such a node a ``neighbor'') if there is
   link-level connectivity between A and B and A receives update mes-
   sages from B reliably.  Accordingly, we map a physical broadcast link
   connecting multiple nodes into multiple point-to-point bidirectional
   links defined for these nodes.  A functional bidirectional link
   between two nodes is represented by a pair of edges, one in each
   direction and with a cost associated that can vary in time but is
   always positive.

   For brevity, an underlying protocol (which we call the neighbor pro-
   tocol) is assumed to assure that a router detects within a finite
   time the existence of a new neighbor and the loss of connectivity
   with a neighbor.  In practice, simple techniques can be used by a
   router to decide whether or not it maintains connectivity with a
   neighbor router by keeping track of packets received from neighboring
   nodes. In ad hoc networks with simple waveforms in which a node can
   eavesdrop on its neighbors, a router can keep track of transmissions
   from other neighbors to estimate who its neighbors are. Future
   specifications of STAR will describe examples of such techniques.

   All messages, changes in the cost of a link, link failures, and new-
   neighbor notifications are processed one at a time within a finite
   time and in the order in which they are detected.  Routers are
   assumed to operate correctly, and information is assumed to be stored
   without errors.

   A pseudocode description of STAR is presented in [12]. A subsequent
   version of this draft will specify STAR in more detail.




   Updating Routes in Wireless Networks

   We can distinguish between two main approaches to updating routing
   information in the routing protocols that have been designed for
   wireless networks: the optimum routing approach (ORA) and the least-
   overhead routing approach (LORA).  With ORA, the routing protocol
   attempts to update routing tables as quickly as possible to provide
   paths that are optimum with respect to a defined metric.  In con-
   trast, with LORA, the routing protocol attempts to provide viable



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 4]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   paths according to a given performance metric, which need not be
   optimum, to incur the least amount of control traffic.

   For the case of ORA, the routing protocol can provide paths that are
   optimum with respect to different types of service (TOS), such as
   minimum delay, maximum bandwidth, least amount of interference, max-
   imum available battery life, or combinations of metrics. Multiple TOS
   can be supported in a routing protocol.

   On-demand routing protocols follow LORA, in that these protocols
   attempt to minimize control overhead by: (a) maintaining path infor-
   mation for only those destinations with which the router needs to
   communicate, and (b) using the paths found after a flood search as
   long as the paths are valid, even if the paths are not optimum. On-
   demand routing protocols can be applied to support multiple TOS; an
   obvious approach is to obtain paths of different TOS using separate
   flood searches. However, we assume that a single TOS is used in the
   network.  ORA is not an attractive or even feasible approach in on-
   demand routing protocols, because flooding the network frequently
   while trying to optimize existing paths with respect to a cost metric
   of choice consumes the available bandwidth and can make the paths
   worse while trying to optimize them.

   We can view the flood search messages used in on-demand routing pro-
   tocols as a form of polling of destinations by the sources.  In con-
   trast, in a table-driven routing protocol, it is the destinations who
   poll the sources, meaning that the sources obtain their paths to des-
   tinations as a result of update messages that first originate at the
   destinations. What is apparent is that some form of information
   flooding occurs in both approaches.

   Interestingly, all the table-driven routing protocols reported to
   date for ad hoc networks adhere to ORA, and admittedly have been
   adaptations of routing protocols developed for wired networks. A
   consequence of adopting ORA in table-driven routing within a wireless
   network is that, if the topology of the network changes very fre-
   quently, the rate of update messages increases dramatically, consum-
   ing the bandwidth needed for user data.  The two methods used to
   reduce the update rate in table-driven routing protocols are cluster-
   ing and sending updates periodically. Clustering is attractive to
   reduce overhead due to network size; however, if the affiliations of
   nodes with clusters change too often, then clustering itself intro-
   duces unwanted overhead. Sending periodic updates after long timeouts
   reduces overhead, and it is a technique that has been used since the
   DARPA packet-radio network was designed [16]; however, control
   traffic still has to flow periodically to update routing tables.

   A nice feature of such routing protocols as DSR [15] and WIRP [9] is



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 5]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   that these protocols remain quiet when no new update information has
   to be exchanged; they have no need for periodic updates. Both proto-
   cols take advantage of promiscuous listening of any packets sent by
   router's neighbors to determine the neighborhood of the router.

   Given that both on-demand and table-driven routing protocols incur
   flooding of information in one way or another, a table-driven routing
   protocol could be designed that incurs similar or less overhead than
   on-demand routing protocols by limiting the polling done by the des-
   tinations to be the same or less than the polling done by the sources
   in on-demand routing protocols.  However, there has been no prior
   description of a table-driven routing protocol that can truly adhere
   to LORA, i.e., one that has no need for periodic updates, uses no
   clustering, and remains quiet as long as the paths available at the
   routers are valid, even if they are not optimum. The reason why no
   prior table-driven routing protocols have been reported based on LORA
   is that, with the exception of WIRP and WRP, prior protocols have
   used either distances to destinations, topology maps, or subsets of
   the topology, to obtain paths to destinations, and none of these
   types of information permits a router to discern whether the paths it
   uses are in conflict with the paths used by its neighbors. Accord-
   ingly, routers must send updates after they change their routing
   tables in order to avoid long-term routing loops, and the best that
   can be done is to reduce the control traffic by sending such updates
   periodically.  STAR is the first table-driven routing protocol that
   implements LORA.





   STAR Overview

   In STAR, each router reports to its neighbors the characteristics of
   every link it uses to reach a destination. The set of links used by a
   router in its preferred path to destinations is called the source
   tree of the router.  A router knows its adjacent links and the source
   trees reported by its neighbors; the aggregation of a router's adja-
   cent links and the source trees reported by its neighbors constitute
   a partial  topology graph. The links in the source tree and topology
   graph must be adjacent links or links reported by at least one neigh-
   bor. The router uses the topology graph to generate its own source
   tree. Each router derives a routing table specifying the successor to
   each destination by running a local  route-selection algorithm on its
   source tree.

   Depending on the bandwidth available in an ad hoc network, the ORA or
   LORA approach can be used to updating routing information. STAR



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 6]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   supports both.

   Under ORA, updates are sent when source trees change.  Under LORA, a
   router running STAR sends updates on its source tree to its neighbors
   only when it loses all paths to one ore more destinations, when it
   detects a new destination, or when it determines that local changes
   to its source tree can potentially create long term routing loops.
   Because each router communicates its source tree to its neighbors,
   the deletion of a link no longer used to reach a destination is
   implicit with the addition of the new link used to reach the destina-
   tion and need not be sent explicitly as an update; a router makes
   explicit reference to a failed link only when the deletion of a link
   causes the router to have no paths to one or more destinations, in
   which case the router cannot provide new links to make the deletion
   of the failed link implicit.

   The basic update unit used in STAR to communicate changes to source
   trees is the link-state update (LSU).  An LSU reports the charac-
   teristics of a link; an update message contains one or more LSUs. For
   a link between router u and router or destination v, router u is
   called the headnode of the link in the direction from u to v. The
   head node of a link is the only router that can report changes in the
   parameters of that link.  LSUs are validated using sequence numbers,
   and each router erases a link from its topology graph if the link is
   not present in the source trees of any of its neighbors. The head of
   a link does not periodically send LSUs for the link, because link-
   state information never ages out.

   Unlike any of the hierarchical link-state routing schemes proposed to
   date for packet-radio networks [29], STAR does not require backbones,
   the dissemination of complete cluster topology within a cluster, or
   the dissemination of the complete inter-cluster connectivity among
   clusters. Furthermore, STAR can be used with distributed hierarchical
   routing schemes proposed in the past for both distance-vector or
   link-state routing [18, 29, 28, 2].

   Prior proposals for link-state routing using partial link-state data
   without clusters [8, 10] require routers to explicitly inform their
   neighbors which links they use and which links they stop using.  In
   contrast, because STAR sends only changes to the structure of source
   trees, and because each destination has a single predecessor in a
   source tree, a router needs to send only updates for those links that
   are part of the tree and a single update entry for the root of any
   subtree of the source tree that becomes unreachable due to failures.
   Routers receiving a STAR update can infer correctly all the links
   that the sender has stopped using, without the need for explicit
   delete updates.




Garcia-Luna-Aceves, Spohn, Beyer                                [Page 7]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   Conceptual Data Structures

   To execute STAR, a router maintains a topology graph, a source tree,
   a routing table, the set of neighbors, the source trees  reported by
   each neighbor, and the topology graphs  reported by each neighbor.

   The record entry for a link from u to v in the topology graph of
   router i is denoted $TG sub {i(u, v)}$ and is defined by the tuple
   $(u, v, l, sn, del)$, and an attribute $p$ in the tuple is denoted by
   $TG sub i (u, v).p$.  The same notation applies to a link $(u, v)$ in
   $ST sub i$, $ST sup i sub x$, and $TG sup i sub x$. $TG sub i (u,
   v).del$ is set to TRUE if the link is not in the source tree of any
   neighbor.

   A vertex $v$ in $TG sub i$ is denoted $TG sub i (v)$. It contains a
   tuple $(d, pred, suc, d', suc', nbr)$ whose values are used on the
   computation of the source tree.  $TG sub i (v).d$ reports the dis-
   tance of the path $i d$ is $v$'s predecessor in $i  next hop along
   the path towards $v$, $suc'$ holds the address of the previous hop
   towards $v$, $d'$ corresponds to the previous distance to $v$
   reported by $suc'$, and $nbr$ is a flag used to determine if an
   update message must be generated when the distance reported by the
   new successor towards $v$ increases. The same notation applies to a
   vertex $v$ in $ST sub i$, $ST sup i sub x$, and $TG sup i sub x$.

   The source tree $ST sub i$ is a subset of $TG sub i$.  The routing
   table contains record entries for destinations in $ST sub i$, each
   entry consists of the destination address, the cost of the path to
   the destination, and the address of the next-hop towards the destina-
   tion.

   The topology graph $TG sup i sub x$ contains the links in $ST sup i
   sub x$ and the links reported by neighbor $x$ in a message being pro-
   cessed by router $i$, after processing the message $TG sup i sub x =
   ST sup i sub x$.

   A router $i$ running LORA also maintains the last reported source
   tree ${ST sub i}'$.

   The cost of a failed link is considered to be infinity. The way in
   which costs are assigned to links is beyond the scope of this specif-
   ication. As an example, the cost of a link could simply be the number
   of hops, or the addition of the latency over the link plus some con-
   stant bias.

   We refer to an LSU that has a cost infinity as a RESET, $TG sup i sub
   i = TG sub i$, and $ST sup i sub i = ST sub i$.




Garcia-Luna-Aceves, Spohn, Beyer                                [Page 8]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   Validating Updates in STAR

   Because of delays in the routers and links of an internetwork, update
   messages sent by a router may propagate at different speeds along
   different paths. Therefore, a given router may receive an LSU from a
   neighbor with stale link-state information, and a distributed
   termination-detection mechanism is necessary for a router to ascer-
   tain when a given LSU is valid and avoid the possibility of LSUs cir-
   culating forever.  STAR uses sequence numbers to validate LSUs. A
   sequence number associated with a link consists of a counter that can
   be incremented only by the head node of the link. For convenience, a
   router $i$ needs to keep only a counter $SN sub i$ for all the links
   for which it is the head node, which simply means that the sequence
   number a router gives to a link for which it is the head node can be
   incremented by more than one each time the link parameters change
   value.

   A router receiving an LSU accepts the LSU as valid if the received
   LSU has a larger sequence number than the sequence number of the LSU
   stored from the same source, or if there is no entry for the link in
   the topology graph and the LSU is not reporting an infinite cost.
   Link-state information for failed links are the only LSUs erased from
   the topology graph due to aging (which is in the order of an hour
   after having processed the LSU). LSUs for operational links are
   erased from the topology graph when the links are erased from the
   source tree of all the neighbors.

   We note that, because LSUs for operational links never age out, there
   is no need for the head node of a link to send periodic LSUs to
   update the sequence number of the link. This is very important,
   because it means that STAR does not need periodic update messages to
   validate link-state information like OSPF [20] and every single rout-
   ing protocol based on sequence numbers or time stamps does!

   To simplify our description, the specification in the rest of this
   document describes STAR as if unbounded counters were available to
   keep track of sequence numbers. Future specifications of STAR will be
   more precise.




   Exchanging Update Messages

   How update messages are exchanged depends on the routing approach
   used (ORA or LORA) and the services provided by the link layer. The
   rest of this section describes how LORA and ORA can be supported in
   STAR and describes the impact of the link layer on the way in which



Garcia-Luna-Aceves, Spohn, Beyer                                [Page 9]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   update messages are exchanged.





   Supporting LORA and ORA in STAR

   In an on-demand routing protocol, a router can keep using a path
   found as long as the path leads to the destination, even if the path
   does not have optimum cost. A similar approach can be used in STAR,
   because each router has a complete path to every destination as part
   of its source tree.  To support LORA, router $i$ running STAR should
   send update messages according to the following three rules, which
   inform routers of unreachable destinations, new destinations, and
   update topology information to prevent permanent routing loops.
   Router $i$ implements these rules by comparing its source tree
   against the source trees it has received from its neighbors.


   [LORA-1:
        Router $i$ finds a new destination, or any of its neighbors
        reports a new destination.

   Whenever a router hears from a new neighbor that is also a new desti-
   nation, it sends an update message that includes the new LSUs in its
   source tree.  Obviously, when a router is first initialized or after
   a reboot, the router itself is a new destination and should send an
   update message to its neighbors.  Link-level support should be used
   for the router to know its neighbors within a short time, and then
   report its links to those neighbors with LSUs sent in an update mes-
   sage.  Else, a simple way to implement an initialization action con-
   sists of requiring the router to listen for some time for neighbor
   traffic, so that it can detect the existence of links to neighbors.


[LORA-2:
     At least one destination becomes unreachable to router $i$ or any
     of its neighbors.

   When a router processes an input event (e.g., a link fails, an update
   message is received) that causes   all  its paths through all its
   neighbors to one or more destination to be severed, the router sends
   an update message that includes an LSU specifying an infinite cost
   for the link connecting to the head of each subtree of the source
   tree that becomes unreachable.  The update message does not have to
   include an LSU for each node in an unreachable subtree, because a
   neighbor receiving the update message has the sending node's source



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 10]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   tree and can therefore infer that all nodes below the root of the
   subtree are also unreachable, unless LSUs are sent for new links used
   to reach some of the nodes in the subtree.


[LORA-3:
     This rule has three parts:

(1)  A path implied in the source tree of router $i$ leads to a loop.

(2)  The new successor chosen to a given destination has an address
     larger than the address of router $i$.

(3)  The reported distance from the new chosen successor $n$ to a desti-
     nation $j$ is longer than the reported distance from the previous
     successor to the same destination. However, if the link $(i, j)$
     fails and $n$ is a neighbor of $j$, no update message is needed
     regarding $j$ or any destination whose path from $i$ involves $j$.

   Each time a router processes an update message from a neighbor, it
   updates that neighbor's source tree and traverses that tree to deter-
   mine for which destinations its neighbor uses the router as a relay
   in its preferred paths. The router then determines if it is using the
   same neighbor as a relay for any of the same destinations.  A routing
   loop is detected if the router and neighbor use each other as relay
   to any destination, in which case the loop must be broken and the
   router must send an update message with the corresponding changes.

   To explain the need for the second part of LORA-3, we observe that,
   in any routing loop among routers with unique addresses, one of the
   routers must have the smallest address in the loop; therefore, if a
   router is forced to send an update message when it chooses a succes-
   sor whose address is larger than its own, then it is not possible for
   all routers in a routing loop to remain quiet after choosing one
   another, because at least one of them is forced to send an update
   message, which causes the loop to break when routers update their
   source trees.

   The last part of LORA-3 is needed when link costs can assume dif-
   ferent values in different directions, in which case the second part
   of LORA-3 may not suffice to break loops because the node with the
   smallest address in the loop may not have to change successors when
   the loop is formed.

   Examples of why these rules are used are presented in [11, 12]. The
   next version of this document will include detailed examples as well.





Garcia-Luna-Aceves, Spohn, Beyer                               [Page 11]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   To ensure that the above rules work with incremental updates specify-
   ing only changes to a source tree, a router must remember the source
   tree that was last notified to its neighbors. If any of LORA-1 to
   LORA-3 are satisfied, the router must do one of two things:


(1)  If the new source tree includes new neighbors than those present in
     the source tree that was last updated, then the router must send
     its entire source tree in its update, so that new neighbors learn
     about all the destinations the router knows.

(2)  If the two source trees imply the same neighbors, the router sends
     only the updates needed to obtain the new tree from the old one.


   To ensure that STAR stops sending update messages, a simple rule can
   be used to determine which router must stop using its neighbor as a
   relay, such a rule can be, for example, ``the router with the smaller
   address must change its path.''

   The above rules are sufficient to ensure that every router obtains
   loopless paths to all known destinations, without the routers having
   to send updates periodically. In addition to the ability for a router
   to detect loops in STAR, the two key features that enable STAR to
   adopt LORA are: (a) validating LSUs without the need of periodic
   updates, and (b) the ability to either listen to neighbors' packets
   or use a neighbor protocol at the link layer to determine who the
   neighbors of a router are.

   If ORA is to be supported in STAR, the only rule needed for sending
   update messages consists of a router sending an update message every
   time its source tree changes.

   The rules for update-message exchange stated above assume that an
   update message is sent reliably to all the neighbors of a router.
   This is a very realistic assumption, because STAR working under LORA
   generates far fewer update messages than the topology changes that
   occur in the network. However, if preserving bandwidth is of utmost
   importance and the underlying link protocol is contention-based,
   additional provisions must be taken, which we describe next.




   Impact of The Link Layer

   If the link layer provides efficient reliable broadcast of network-
   level packets, then STAR can rely on sending an update message only



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 12]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   once to all neighbors, with the update message specifying only incre-
   mental changes to the router's source tree. The link layer will
   retransmit the packet as needed to reach all neighbors, so that it
   can guarantee that a neighbor receives the packet unless the link is
   broke.

   A reliable broadcast service at the link layer can be implemented
   very efficiently if the MAC protocol being used guarantees
   collision-free transmissions of broadcast packets. A typical example
   of MAC protocols that can support collision-free broadcasts is TDMA,
   and there are several recent proposals that need not rely on static
   assignments of resources (e.g., FPRP [31]).

   Unfortunately, reliable broadcasting from a node to all its neighbors
   is not supported in the collision-avoidance MAC protocols that have
   been proposed and implemented for ad hoc networks [1, 7, 14, 17].
   Furthermore, any link-level or network-level strategy for reliable
   exchange of broadcast update messages over a contention-based MAC
   protocol will require substantial retransmissions under high-load
   conditions and rapid changes to the connectivity of nodes.

   Therefore, if the underlying MAC protocol does not provide
   collision-free broadcasts over which efficient reliable broadcasting
   can be built, then STAR, and any table-driven routing protocol for
   that matter, is better off relying on the approach adopted in the
   past in the DARPA packet-radio network. For STAR this means that a
   router broadcasts unreliably its update messages to its neighbors,
   and each update message contains the entire source tree. For STAR to
   operate correctly with this approach under LORA, routers must prevent
   the case in which permanent loops are created because an update mes-
   sage is not received by a neighbor. A simple example is a two-node
   loop between two neighbor routers, $A$ and $B$, in which the neighbor
   with the smaller address $A$ sends an update to its neighbor $B$
   specifying that $A$ is using $B$ to get to at least one destination
   $D$, but the message does not reach $B$, which then starts using $A$
   to reach $D$.

   An additional simple rule to send an update message can be used to
   eliminate permanent looping due to lost packets using unreliable
   broadcasting:


[LORA-4:
     A data packet is received from a neighbor who, according to its
     source tree, is in the path to the destination specified in the
     data packet.  This rule is needed to eliminate permanent looping
     under unreliable broadcasting.




Garcia-Luna-Aceves, Spohn, Beyer                               [Page 13]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


     Details on The Processing of Input Events

   The next version of this draft will provide a detailed account of how
   input events (topology changes and update messages) are processed by
   a router running STAR.  Details can be found in [11, 12].

   The neighbor set of the router is empty initially, and the sequence
   number counter is set to zero.

   If the neighbor protocol reports a new link to a neighbor $k$ (or the
   mechanisms used instead of the neighbor protocol based on the recep-
   tion of neighbor packets), the router then sends an update message to
   its neighbor.

   Router $i$ updates its source tree when router $i$ receives an update
   message from neighbor $k$ or when the parameters of an outgoing link
   have changed.  First, the topology graphs $TG sub i$ and $TG sup i
   sub k$ are updated, then the source trees $ST sup i sub k$ and $ST
   sub i$ are updated, which may cause the router to update its routing
   table and to send its own update message.

   The state of a link in the topology graph $TG sub i$ is updated with
   the new parameters for the link if the link-state update in the
   received message is valid, i.e., if the LSU has a larger sequence
   number than the sequence number of the link stored in $TG sub i$.

   The parameters of a link in $TG sup i sub k$ are always updated when
   processing an LSU sent by a neighbor $k$, even if the link-state
   information is outdated, because they report changes to the source
   tree of the neighbor.  A node in a source tree $ST sup i sub k$ can
   have only one link incident to it. Hence, when $i$ receives an LSU
   for link $(u, v)$ from $k$ the current incident link $(u', v)$ to
   $v$, with $u$ being different than $u'$, is deleted from $TG sup i
   sub k$.

   The information of an LSU reporting the failure of a link is dis-
   carded if the link is not in the topology graph of the router.

   A shortest-path algorithm (SPF) based on Dijkstra's SPF is run on the
   updated topology graph $TG sup i sub k$ to construct a new source
   tree $ST sup i sub k$, and then run on the topology graph $TG sub i$
   to construct a new source tree $ST sub i$.

   The incident  link to a  node $v$ in router's  $i$ new source  tree
   is different from the link in the current source  tree $ST sub i$
   only if the cost of the  path to $v$  has  decreased or  if  the
   incident  link in $ST sub i$ was deleted from the source trees of all
   neighbors.



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 14]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   A new source tree $newST$ for a neighbor $k$, including the router's
   new source tree, is then compared to the current source tree $ST sup
   i sub k$, and the links that are in $ST sup i sub k$ but not in
   $newST$ are deleted from $TG sup i sub k$.  After deleting a link
   $(u, v)$ from $TG sup i sub k$ the router sets $TG sub i (u, v).del$
   to TRUE if the link is not present in the topology graphs $TG sup i
   sub x$ for all $x$ in $N sub i$.

   If a  destination $v$ becomes unreachable,  i.e., there is  no path
   to $v$ in the  new source tree $newST$, then  LSUs will be broadcast
   to the neighbors for each link in the topology graph $TG sub i$ that
   have $v$ as the tail node of the link and a link cost infinity.


   The new router's source tree $newST$ is compared to the last reported
   source tree (${ST sub i}'$ for LORA and $ST sub i$ for ORA), and an
   update message that will be broadcast to the neighbors is constructed
   from the differences of the two trees. An LSU is generated if the
   link is in the new source tree but not in the current source tree, or
   if the parameters of the link have changed. For the case of a router
   running LORA, the source trees are only compared with each other if
   at least one of the three conditions (LORA-1, LORA-2, and LORA-3) is
   met, i.e., $M sub i =$ TRUE.

   If the new router's source tree was compared against the last
   reported source tree then the router removes from the topology graph
   all the links that are no longer used by any neighbor in their source
   trees.

   Finally, the current shortest-path tree $ST sup i sub k$ is discarded
   and the new one becomes the current source tree.  The router's source
   tree is then used to compute the new routing table, using for example
   a depth-first search in the shortest-path tree.




   Packet Formats


   An update message in STAR has the following format:










Garcia-Luna-Aceves, Spohn, Beyer                               [Page 15]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999




           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+
           |                                                             |
           |                    HEADER ( 4-8 bytes)                      |
           |                                                             |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+
           |                                                             |
           |          ACKNOWLEDGMENT LIST ( 6 bytes per neighbor)        |
           |                                                             |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+
           |                                                             |
           |              LSU LIST ( 24 + link parameters bytes )        |
           |                                                             |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+



   The header specifies control information for the proper processing of
   acknowledgments to prior updates and LSUs contained in the update
   message. Acknowledgments are specified in the acknowledgment list and
   LSUs are specified in the LSU list of the message.


   There are four types of packets in STAR: GUM, PUM, TUM, RUM, and SUM.
   A SUM packet (Start Update Message) is broadcast or unciast and indi-
   cates that the router has restarted operation.  A GUM packet (Goodbye
   Update Message) is broadcast and indicates that the router will be
   out of reach for some time and should not be used as a neighbor. A
   PUM packet (Partial Update Message) is broadcast or unicast and con-
   tains a partial update. A TUM  packet (Total Update Message) is
   broadcast or unicast and contains an atomic upate. A RUM packet
   (Reset Update Message) is broadcast and informs neighbors to disre-
   gard the sequence numbers used in prior update messages.





   Packet Headers

   The next version of this document will provide more details on the
   packet formats used in STAR, and the REQUIRED and the OPTIONAl infor-
   mation it uses.

   The packet header for packet types: GUM, PUM, TUM, and RUM is the
   following:




Garcia-Luna-Aceves, Spohn, Beyer                               [Page 16]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999




                               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
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |Version| Type  | Num. of ACKs  |      Sequence Number          |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+



   The packet header for packet type SUM is the following:



                               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
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |Version| Type  | Num. of ACKs  |      Sequence Number          |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |                        Router ID                              |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+


   The current version is   Protocol version 1.




                   SUM  (0x1) : Start Update Message   (broadcast/unicast)
                   GUM  (0x2) : Goodbye Update Message (broadcast)
                   PUM  (0x3) : Partial Update Message (broadcast/unicast)
                   TUM  (0x4) : Total Update Message   (broadcast/unicast)
                   RUM  (0x5) : Reset Update Message   (broadcast)



   The Number of ACKs denotes the number of entries in the Acknowledg-
   ment List

   The Sequence Number has values in the range [0, 2^15 - 1]. The Most
   Significant Bit is used to request acknowledgments when set in the
   sequence numbers specified at the Acknowledgment List.


   The Router ID:

         The first packet sent to a new neighbor (SUM) must carry the
         router ID so that the neighbor get to know how to uniquely



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 17]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


         identify the router.





    Acknowledgment List Entry





                                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
            +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
            |                       Neighbor's Address                      |
            +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
            |R|  Expected Sequence Number   |
            +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+


   Neighbor's Address

        The address of the neighbor we are acknowledging receipt of
   packet(s).

   R (The request for acknowledgment bit - BAR)

        This bit is set when the router is requesting an acknowledgment
        from the neighbor with address specified in the Acknowledgment
        List Entry.

   Expected Sequence Number

        Corresponds to the sequence number of the next expected packet
        from the neighbor. It acknowledges the receipt of all the
        packets with smaller sequence number.






   LSU List Entry







Garcia-Luna-Aceves, Spohn, Beyer                               [Page 18]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999



                               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
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |H| Head Prefix |T| Tail Prefix |   Link Type   | TOS Bit Vector|
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |                           Time Stamp                          |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |              IP address of the Head of the Link               |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |              IP address of the Tail of the Link               |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |              ID of the Head of the Link (OPTIONAL)            |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |              ID of the Tail of the Link (OPTIONAL)            |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |         Parameters of the Link (VARIABLE LENGTH)              |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+

                                           . . .

           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |         Parameters of the Link (VARIABLE LENGTH)              |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+




   H (Head ID bit - HIB)

        This bit is set to 1 if the field "ID of the Head of the Link"
        is present in the LSU, it is set to 0 otherwise.

   Head Prefix

        Number of 1's in the network mask associated with the "IP
        address of the Head of the Link".

   T (Tail ID bit - TIB)

        This bit is set to 1 if the field "ID of the Tail of the Link"
        is present in the LSU, it is set to 0 otherwise.

   Tail Prefix

        Number of 1's in the network mask associated with the "IP
        address of the Tail of the Link".




Garcia-Luna-Aceves, Spohn, Beyer                               [Page 19]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


   Link Type


                   LSU_BROADCAST       (0x01) : Broadcast
                   LSU_P2P             (0x02) : Point-to-Point with subnet
                   LSU_P2P_UN          (0x03) : Point-to-Point unnumbered
                   LSU_P2P_BR          (0x04) : Point-to-Point broadcast
                   LSU_ROUTER_TO_HOST  (0x05) : Link to a host
                   LSU_LINK_EXTERNAL   (0x06) : Link to EXTERIOR ROUTING information



   TOS Bit Vector

        The iTH bit in the vector is set to 1 if the link is present in
        the source tree of the TOS associated with the iTH bit, other-
   wise      the iTH bit is set to 0.

   Time Stamp

        Used to determine if the LSU carries up-to-date information.
        The time stamp corresponds to the number of seconds elapsed
        from January 1st, 1990, to the moment the head of the link
        generates the LSU reporting changes in the parameters of the
        link. A router maintains a clock that does not reset when the
        router stops operating. A time stamp based on 32 bits requires
        resetting after 136 years of operation.


   IP address of the Head of the Link

        Corresponds to the IP address of the network interface through
        which the head of the link has a bidirectional link with the
        router at the tail of the link.


   IP address of the Tail of the Link

        Corresponds to the IP address of the network interface through
        which the tail of the link has a bidirectional link with the
        router at the head of the link. This field can be a vector of
        IP addresses if the "Link Type" is LSU_ROUTER_TO_HOST (the
        number of instances is then determined by "Number of Links".


   ID of the Head of the Link (OPTIONAL)

        This field is required if the head of the link has multiple



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 20]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


        network interfaces with different IP address. It specifies an
        ID that uniquely identifices the head of the link in the
        network, and should be chosen among the set of IP addresses
        assigned to the router.

   ID of the Tail of the Link (OPTIONAL)

        This field is required if the tail of the link has multiple
        network interfaces with different IP address. It specifies an
        ID that uniquely identifices the tail of the link in the
        network, and should be chosen among the set of IP addresses
        assigned to the router.








   Parameters of the Link


                               1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |Num. of Metrics| Metric 1 Type | Metric 2 Type | Metric 3 Type |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |                      Metric 1 Value                           |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |                      Metric 2 Value                           |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+
           |                      Metric 3 Value           |    Padding    |
           +-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-*-+-+-+-+-+-+-+-+






   References



[1]  V.   Bharghavan ,  A.  Demers ,  S.  Shenker and  L.  Zhang , ``
     MACAW: A Media Access Protocol for Wireless LAN's ''   Proc. ACM
     SIGCOMM 94 , London, UK, Aug. 31 - Sep. 2, 1994.




Garcia-Luna-Aceves, Spohn, Beyer                               [Page 21]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


[2]  J. Behrens and J. J. Garcia-Luna-Aceves, ``Hierarchical Routing
     Using Link Vectors,''   Proc. IEEE INFOCOM 98 , San Francisco, Cal-
     ifornia, March 29-April 2, 1998


[3]  D.  Bertsekas and R.  Gallager,   Data Networks , Second Edition,
     Prentice-Hall, Inc., 1992.


[4]  J. Broch et al, ``A Performance Comparison of Multi-Hop Wireless Ad
     Hoc Network Routing Protocols,'' Proc. ACM MOBICOM 98 , Dallas, TX,
     October 1998.


[5]  J. Broch et al, ``The Dynamic Source Routing Protocol for Mobile Ad
     Hoc Networks,'' draft-ietf-manet-dsr-01.txt, December 1998.


[6]  R. Dube et al., ``Signal Stability-Based Adaptive Routing (SSA) for
     Ad-Hoc Mobile Networks,'' IEEE Pers. Commun.  February 1997.


[7]  C. L.  Fullmer  and J.J.  Garcia-Luna-Aceves , `` Solutions to Hid-
     den Terminal Problems in Wireless Networks ,'' Proc. ACM SIGCOMM 97
     , Cannes, France, September 14-18, 1997.


[8]  J.J. Garcia-Luna-Aceves and J. Behrens, ``Distributed, scalable
     routing based on vectors of link states,''
       IEEE Journal on Selected Areas in Communications , Vol. 13, No.
     8, 1995.


[9]  J.J.  Garcia-Luna-Aceves et al., ``Wireless Internet Gateways
     (WINGS),''   Proc. IEEE MILCOM'97 , Monterey, California, November
     1997.


[10] J.J. Garcia-Luna-Aceves and M. Spohn, ``Scalable Link-State Inter-
     net Routing,''   Proc. IEEE International Conference on Network
     Protocols (ICNP 98) , Austin, Texas, October 14-16, 1998.


[11] J.J. Garcia-Luna-Aceves and M. Spohn, ``
       Proc. IEEE International Conference on Network Protocols (ICNP
     99) , November 1999.





Garcia-Luna-Aceves, Spohn, Beyer                               [Page 22]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


[12] J.J. Garcia-Luna-Aceves and M. Spohn, ``Efficient Routing in
     Packet-Radio Networks Using Link-State Information,'' Proc. IEEE
     WCNC 99, August 1999.



[13] Z. Haas and M. Pearlman, ``The Zone Routing Protocol for Highly
     Reconfigurable Ad-Hoc Networks,''   Proc. ACM SIGCOMM 98 , Van-
     couver, British Columbia, August 1998.


[14] P802.11--Unapproved Draft: Wireless LAN Medium Access Control (MAC)
     and Physical Specifications  , IEEE, January 1996.



[15] D.  Johnson and D.  Maltz, ``Protocols for Adaptive Wireless and
     Mobile Networking,''   IEEE Pers. Commun. , Vol. 3, No. 1, February
     1996.


[16] J.  Jubin and J.  Tornow, ``The DARPA Packet Radio Network Proto-
     cols,''   Proceedings of the IEEE , Vol. 75, No. 1, January 1987.


[17] P.  Karn , `` MACA  - a new channel access method for packet
     radio,'' in ARRL/CRRL  Amateur Radio 9th Computer Networking
     Conference , pp. 134--40, ARRL , 1990.



[18] L. Kleinrock and F. Kamoun, ``Hierarchical Routing for Large Net-
     works:  Performance Evaluation and Optimization,''   Computer Net-
     works , Vol. 1, pp. 155-174, 1977.


[19] V.O.K. Li and R. Chang, ``Proposed routing algorithms for the US
     Army mobile subscriber equipment (MSE) network,''   Proc. IEEE MIL-
     COM'86 , Monterey, California, October 1986.


[20] J. Moy, ``OSPF Version 2,'' RFC 1583, Network Working Group, March
     1994.


[21] V.  Park and M.  Corson, ``A Highly Adaptive Distributed Routing
     Algorithm for Mobile Wireless Networks,'' Proc. IEEE INFOCOM 97 ,
     Kobe, Japan, April 1997.



Garcia-Luna-Aceves, Spohn, Beyer                               [Page 23]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


[22] C.  Perkins and P.  Bhagwat, ``Highly Dynamic Destination-Sequenced
     Distance-Vector Routing (DSDV) for Mobile Computers,''   Proc. ACM
     SIGCOMM 94 , London, UK, October 1994.


[23] C.  Perkins, ``Ad-Hoc On Demand Distance Vector (AODV) Routing,''
     draft-ietf-manet-aodv-00.txt, November 1997.


[24] M. Pursley and H.B. Russell, ``Routing in Frequency-Hop Packet
     Radio Networks with Partial-Band Jamming,''
       IEEE Trans. Commun. , Vol. 41, No. 7, pp. 1117-1124, 1993.


[25] R. Ramanathan and M. Steenstrup, ``Hierarchically-organized, Mul-
     tihop Mobile Wireless Networks for Quality-of-Service Support,''
     ACM Mobile Networks and Applications , Vol.3, No.  1, pp. 101-119,
     1998.


[26] C.V.  Ramamoorthy and W.  Tsai, ``An Adaptive Hierarchical Routing
     Algorithm,"   Proceedings of IEEE COMPSAC '83,  Chicago, Illinois,
     pp.  93-104, November 1983.


[27] S.  Murthy and J.J.  Garcia-Luna-Aceves, ``An Efficient Routing
     Protocol for Wireless Networks,''   ACM Mobile Networks and Appli-
     cations Journal , Special issue on Routing in Mobile Communication
     Networks, 1996.


[28] S. Murthy and J.J. Garcia-Luna-Aceves, ``Loop-Free Internet Routing
     Using Hierarchical Routing Trees,''   Proc. IEEE INFOCOM 97 , Kobe,
     Japan, April 7-11, 1997.


[29] M. Steenstrup (Ed.),   Routing in Communication Networks ,
     Prentice-Hall, 1995.


[30] C-K.  Toh, ``Wireless ATM and Ad-Hoc Networks,'' Kluwer, November
     1996.


[31] C. Zhu and S. Corson, ``A Five Phase Reservation Protocol (FPRP)
     for Mobile Ad-Hoc Networks,'' Proc. IEEE INFOCOM 98.





Garcia-Luna-Aceves, Spohn, Beyer                               [Page 24]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999


[32] The CMU Monarch Project, ``Wireless and Mobility Extensions to ns-2
     - Snapshot 1.0.0-beta,'' URL: http://www.monarch.cs.cmu.edu/cmu-
     ns.html, August 1998.






     Implementation Status

   We have implemented STAR running in gated. For convenienece, in this
   implementation, STAR runs on top of UDP, just like RIP. We have
   demonstrated STAR several times at DARPA PI meetings running in
   testbed wireless internetworks consisting of wireless links and wired
   segments.

   The gated code for STAR can be made available to the MANET community
   upon request.

   We have verified the correctness of STAR, and the proof of its
   correctness is presented in a forthcoming journal publication.

   The exact same code used in the gated implementation of STAR has been
   used in simulations comparing its performance against on-demand rout-
   ing approaches. Part of these results appear in [11, 12].

   An OPNET model of STAR is almost complete at the time of this writ-
   ing, and we will start a public-domain simulation of STAR in the Par-
   sec (GloMoSIM) package developed by UCLA.

   The design and development work on STAR has been sponsored bt the
   DARPA GloMo Program (Rob Ruth, Program Manager).



   Chair's Address


   The Working Group can be contacted via its current chairs:











Garcia-Luna-Aceves, Spohn, Beyer                               [Page 25]


Internet DRAFT   Source Tree Adaptive Routing Protocol   22 October 1999



                   M. Scott Corson
                   Institute for Systems Research
                   University of Maryland
                   College Park, MD  20742
                   USA

                   Phone:  +1 301 405-6630
                   Email:  corson@isr.umd.edu

                   Joseph Macker
                   Information Technology Division
                   Naval Research Laboratory
                   Washington, DC  20375
                   USA

                   Phone:  +1 202 767-2001
                   Email:  macker@itd.nrl.navy.mil








   Authors' Addresses


   Questions about this document can also be directed to:





















Garcia-Luna-Aceves, Spohn, Beyer                               [Page 26]