Internet Draft                                            Daniel Zappala
Expiration: September 1997            USC Information Sciences Institute
File: draft-zappala-multicast-routing-me-00.txt



             A Route Setup Mechanism For Multicast Routing



                             March 26, 1997

Status of 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 learn the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
   Directories on ds.internic.net (US East Coast), nic.nordu.net
   (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
   Rim).

Abstract

   This document describes a multicast route setup protocol that can be
   used to install alternate paths and pinned routes when they are
   requested by receivers.  We describe the protocol, derive some of its
   properties, and address its applicability to unicast route setup.















Zappala                Expiration: September 1997               [Page 1]


Internet Draft           Multicast Route Setup                March 1997


1. Introduction

   This document describes a multicast route setup protocol that can be
   used to install alternate paths and pinned routes when they are
   requested by receivers.  This protocol is designed as part of the
   interdomain multicast routing architecture described in [7].  In
   general, this protocol is useful when multicast routers wish to
   install explicit routes in a multicast tree without coordinating the
   routing of the entire tree according to a globally defined metric.
   Thus, in addition to being used as prescribed in [7], this protocol
   may also be used to install a QoS route for a receiver.  We have
   focused on designing a multicast route setup protocol; a later
   section describes the relevance of our work to unicast route setup.

   For the purposes of this document, we assume that receivers use a
   reservation protocol such as RSVP [8,2] to reserve resources for
   unicast and multicast flows.  By default, these reservations are
   obtained over an opportunistic, shortest-path multicast tree computed
   and installed by a multicast routing protocol, likely either DVMRP
   [6], MOSPF [5], PIM [4] or CBT [1].  Each sender may have its own
   tree, or all senders may use a shared tree.  Throughout this document
   we assume sender trees, although the mechanism is equally applicable
   to shared trees.

   We also assume that a receiver, or some entity acting on behalf of a
   receiver, may request several services in place of its current
   opportunistic route:

   o    "Alternate Path": A route that is an alternative to the
        currently installed route.  A receiver may wish to use an
        alternate path when it is unable to reserve resources along its
        current path.

   o    "Pinned Route": A route that remains unchanged unless a node
        along the route fails.  A receiver may wish to know that once it
        has secured a reservation, the route will not change unless it
        fails, and hence the reservation will likely remain in place.
        When an application does not use a pinned route (the route is
        opportunistic), the reservation protocol must adapt the
        reservation whenever the route adapts to a shorter path, even if
        the original path is still working.

   Using these basic services, a receiver may ask for an alternate path
   that is opportunistic, an alternate path that is pinned, or it may
   ask to pin its current route.  Note that an opportunistic alternate
   path has some pinned hops while the remaining hops are opportunistic;
   see [7] for more details.




Zappala                Expiration: September 1997               [Page 2]


Internet Draft           Multicast Route Setup                March 1997


   As part of the architecture described in [7], we assume that a
   receiver asks its first-hop router for an alternate path or a pinned
   route.  This router in turn contacts a local route construction agent
   to construct a route and encodes the response as an explicit route.
   The setup protocol connects the receiver to the multicast tree along
   this new path.  Along the way, the setup protocol pins any hop that
   is listed in the route; thus if the receiver wants a pinned route,
   then every hop between the receiver and the sender must be listed.

2. The MORF Multicast Route Setup Protocol

   We have designed the MORF multicast route setup protocol to install
   routes provided by local route construction agents.  For each
   multicast tree built by the multicast routing protocol, MORF creates
   its own parallel multicast tree consisting of alternate paths and
   pinned routes.  Each branch of this tree, called the Setup Tree, is
   constructed using a Setup message originated by a leaf router on
   behalf of local receivers.  The Setup message contains an explicit
   route indicating the path the Setup should travel (Table 1).  As the
   Setup travels upstream, MORF notifies the multicast routing protocol
   that it is overriding some local portions of the multicast tree with
   some branches in the Setup Tree.  The multicast routing protocol adds
   these branches to the multicast tree and prunes any conflicting
   branches from the original tree (Figure 1a).  The resulting multicast
   tree reflects the path installed by MORF (Figure 1b).  The multicast
   tree may be for a single sender [4], or multiple senders may
   rendezvous via a core [4,1].  In either case, the protocol is the
   same; in the following discussion we refer to sender-based trees for
   simplicity.

                      Table 1: MORF Protocol Messages

   Messages                              Parameters
   -----------------------------------------------------------------
   Setup(Group,Target,Route)             Group  : multicast group
   Failure(Group,Target,JoinRt,TreeRt)   Target : sender or core
   Teardown(Group,Target)                Route  : explicit route
                                         SetupRt: route from Setup
                                         TreeRt : route used by tree












Zappala                Expiration: September 1997               [Page 3]


Internet Draft           Multicast Route Setup                March 1997




                   [See postscript version for figures]


            Figure 1: Using a Setup Message to Install a Route



   Since the Setup Tree overrides default opportunistic routing, each
   router in the Setup Tree must have a mechanism to detect failures of
   an alternate path or a pinned route.  The setup protocol may rely on
   a unicast routing protocol to exchange query messages with its
   neighbors to determine whether they are alive, or it may use its own
   similar mechanism.  Once a failure is detected, MORF sends a Teardown
   message both upstream and downstream of the failure to remove failed
   branches from the Setup Tree (Figure 2a).  At each hop, MORF notifies
   the multicast routing protocol of the branches it is removing.  The
   multicast routing protocol re-builds the multicast tree to reflect
   its metric, often the shortest path to the sender (Figure 2b).



                   [See postscript version for figures]


            Figure 2: Using a Teardown to Remove a Failed Route



   The above examples represent the simplified case when a Setup does
   not conflict with the rest of the Setup Tree.  However, the setup
   protocol must also resolve Setup messages from different leaves that
   use conflicting routes, because leaf routers may use independent
   route construction agents.  MORF resolves conflicts by choosing the
   first route that is installed for any given branch of the tree.
   Where subsequent routes meet this branch, they must conform to the
   route used from that point upward toward the source.  If the setup
   protocol does not follow this restriction, then a number of looping
   scenarios may arise; Section 2.1 discusses these cases and the manner
   in which they are prevented.

   Figure 3 shows an example of how all Setup messages except the first
   one must match the route already used by the Setup Tree. When a Setup
   message adds a node to the Setup Tree, it caches the route it will
   use to travel from that node upward toward the sender.  If a
   subsequent Setup message arrives at that node, it compares the
   remaining route it must travel to the route cached locally.  If the



Zappala                Expiration: September 1997               [Page 4]


Internet Draft           Multicast Route Setup                March 1997


   routes do not match, the node stops processing the Setup and sends a
   Failure message downstream (Figure 3a).  The Failure message contains
   the route used by the failed Setup and the route used by the tree
   from the rejecting node upward (Table 1).  A router receiving a
   Failure message merges the two routes it contains to construct a new
   route that will match the tree, then sends a second Setup with this
   route (Figure 3b).



                   [See postscript version for figures]


                     Figure 3: Matching Setup Messages



   It is from this mechanism -- "Match or Fail" -- that MORF derives its
   name.  By using this restriction, MORF may increase the setup
   latency, but it prevents any loops from forming while the tree is
   constructed.  The remainder of this section discusses potential
   looping scenarios and analyzes the tradeoffs of MORF versus other
   potential solutions for preventing loops.

   2.1 Looping Scenarios

      When Setup messages are not restricted to matching the rest of the
      Setup Tree, a number of possible looping scenarios arise.  Figure
      4a shows two Setups, each using a strict explicit route.  Based on
      their order of arrival, as shown, if the Setups merge they form a
      loop.  This loop can be prevented if nodes A and C compare the
      routes and detect the loop will form.  However, when three joins
      are involved, as in Figure 4b, a single node cannot prevent the
      loop from forming without having more information available.



                      [See postscript version for figures]


                   Figure 4: Loops Formed by Setup Messages



      To prevent loops, a node can use one of two strategies:

      1.   Before adding a parent, the node checks all its descendants
           to be sure the parent is not already a descendant.



Zappala                Expiration: September 1997               [Page 5]


Internet Draft           Multicast Route Setup                March 1997


      2.   Before adding a child, the node checks all its ancestors to
           be sure the new child is not already an ancestor.

      We discuss each of these in turn.  Due to the dynamic nature of
      multicast trees, a node may not know all of its ancestors or
      descendants.  While a node knows the route embedded in the Setup
      message it has sent upstream, that message may have merged with
      another Setup carrying a different route.  Likewise, other Setups
      may have merged downstream, adding new descendants.

      One approach to keep nodes updated concerning upstream and
      downstream merges is to distribute information after each merge.
      Following solution (1) above, each Setup that merges can send a
      Merge message upstream containing its route (Figure 5a).  Every
      node can then know all its descendants and thereby detect any
      loops.  Alternatively, in keeping with solution (2) above, each
      Setup that merges can send a Merge message downstream containing
      the upstream portion of the route it merged with (Figure 5b).
      This allows every node to detect loops by knowing all its
      ancestors.  We denote these two mechanisms as "Merge Up" and
      "Merge Down", respectively.  In both of these approaches,
      information distributed by the Merge messages may be stale, so
      loops such as that shown in Figure 4 may still form temporarily
      before being broken.



                      [See postscript version for figures]


             Figure 5: Merging Setup Messages Instead of Matching



      As opposed to these solutions, which in some cases will only
      detect loops after they have been formed, the strategy we use in
      MORF prevents any loops from forming.  By requiring each Setup to
      match the upstream route already in place on the tree, MORF in
      effect enforces solution (2) by requiring that each node know its
      ancestors before it is added to the tree.  Once a node is added to
      the multicast tree, its ancestors do not change.  The cost of this
      strategy is that each Setup may take an extra roundtrip between
      itself and the rest of the tree.  The following section more
      completely analyses the tradeoffs of MORF versus the other
      mechanisms discussed above.






Zappala                Expiration: September 1997               [Page 6]


Internet Draft           Multicast Route Setup                March 1997


   2.2 Analysis of Setup Mechanisms

                   Table 2: Comparison of Setup Mechanisms

      Mechanism      Message     Storage   Setup          Loop
      Name           Overhead    Overhead  Latency        Handling
      -----------------------------------------------------------------
      MORF           O(1)        O(a)      1 or 3 trips   Prevent
      Merge Down     O(1)        O(a)      1 trip         Detect/Break
      Merge Up       O(d)        O(d)      1 trip         Detect/Break


      Table 2 compares the setup mechanisms discussed above when
      building a single multicast tree, assuming there is no packet loss
      and that one receiver joins the tree at a time.  The columns
      listing message and storage overhead consider the behavior of each
      mechanism at a single node.  Overhead in these cases is expressed
      in terms of a, the number of ancestors of a node, or d, the number
      of descendants of a node.  The setup latency column lists time in
      terms of the number of trips taken between a receiver and the
      multicast tree.

      Clearly the Merge Up mechanism does not scale well because each
      node must store each descendent as well as send one message
      upstream for each descendant.  The advantages of using a
      receiver-oriented mechanism are lost with Merge Up; a sender-
      oriented mechanism has the same message overhead, but only the
      sender must store the descendants.

      The MORF and Merge Down mechanisms have a similar overhead in this
      situation.  The MORF mechanism may have a longer setup latency,
      but in return has the distinct advantage that it may prevent
      rather than just detect loops, as discussed above.

      When we relax the assumption that one receiver joins the tree at
      time, thus allowing multiple simultaneous Setups, the other
      tradeoffs of these two mechanisms become more apparent.  In this
      situation, MORF must take into account conflicting Setups.  We
      assume that it will use a binary exponential backoff to prevent
      thrashing.  If we also assume a message transmission takes a
      uniform time t when sent over any link, then the dynamic setup
      latency for MORF:

               Latency_MORF = 3Lt(c+1) + sum{i=1->c} b*2^{i-1},

      where L is the average length of the branch from a receiver to the
      rest of the tree, b is the backoff constant, and c is the number
      of conflicts the Setup encounters.



Zappala                Expiration: September 1997               [Page 7]


Internet Draft           Multicast Route Setup                March 1997


      When considering these dynamic conditions, each node using the
      Merge Down mechanism may potentially send O(a) messages
      downstream, since each ancestor may send the node one Merge
      message.  In addition, the setup latency for Merge Down must take
      into account the time required to break loops.  The worst case
      time to break a loop of m nodes is t(m-1), so the setup latency
      can be given by:

               Latency_MergeDown = 2Lt + sum{i=1->l} (m_i-1)t,

      where l is the number of loops encountered and m_i is the number
      of nodes in loop i.

      As can be seen from this analysis, the Merge Down mechanism
      requires a robust protocol design to ensure that loops are quickly
      detected and broken.  The more merges that occur simultaneously,
      the longer it will take for the mechanism to distribute the
      information needed to break the loops.  The Merge Down mechanism
      will also have to detect when a Merge message is lost, as that
      event can cause a loop to persist.  In contrast, MORF uses a
      simpler protocol to prevent loops and uses more complexity only at
      the edges of the network.

   2.3 Unicast Route Setup

      Previous work has studied the efficacy of using source routing to
      support unicast real-time applications [3].  One way to use source
      routes to provide alternate paths or pinned routes is to embed the
      source route in an application's packets.  Assuming the route will
      be inserted by a filter at a sender's nearest router, no
      modifications to applications will be needed.  However, because
      many routers currently delay processing of source routed packets,
      this mechanism may not be applicable to applications with strict
      delay requirements.

      An alternative is for the sender's nearest router to insert a
      label in the application's packets rather than a source route.
      This label can reference an alternate path or pinned route that is
      installed using MORF.  Because unicast applications involve only
      one receiver, the setup latency will only be 1 trip.  Either the
      sender or receiver can initiate the route setup, although
      initiating at the sender will require trivial modifications to the
      protocol.

3. Acknowledgments

   Bob Braden, Deborah Estrin, and Scott Shenker provided valuable
   feedback on this work.



Zappala                Expiration: September 1997               [Page 8]


Internet Draft           Multicast Route Setup                March 1997


References

[1] A. J. Ballardie, P.F. Francis, and J. Crowcroft, "Core Based Trees",
    In "ACM SIGCOMM", August 1993.

[2] R. Braden, L. Zhang, S. Berson, S. Herzog, and S. Jamin, "Resource
    ReSerVation Protocol (RSVP) - Version 1 Functional Specification",
    work in progress, November 1996.

[3] Lee Breslau, ""Adaptive Source Routing of Real-Time Traffic in
    Integrated Services Networks"", PhD thesis, University of Southern
    California, December 1995.

[4] Stephen Deering, Deborah Estrin, Dino Farinacci, Van Jacobson,
    Ching-Gung Liu, and Liming Wei, An Architecture for Wide-Area
    Multicast Routing, In "ACM SIGCOMM", August 1994.

[5] J. Moy, "Multicast Extensions to OSPF", RFC 1584, March 1994.

[6] D. Waitzman, C. Partridge, and S. Deering, "Distance Vector
    Multicast Routing Protocol", RFC 1075, November 1988.

[7] Daniel Zappala, Bob Braden, Deborah Estrin, and Scott Shenker,
    "Interdomain Multicast Routing Support for Integrated Services
    Networks", work in progress, March 1997.

[8] Lixia Zhang, Steve Deering, Deborah Estrin, Scott Shenker, and
    Daniel Zappala, "RSVP: A New Resource ReSerVation Protocol", "IEEE
    Network", September 1993.



Security Considerations

   Security considerations are not discussed in this memo.

Author's Address

   Daniel Zappala
   USC Information Sciences Institute
   4676 Admiralty Way, Floor 10
   Marina del Rey, CA 90292
   EMail: daniel@isi.edu








Zappala                Expiration: September 1997               [Page 9]