Internet Engineering Task Force          P. Pan/H. Schulzrinne/R. Guerin
INTERNET DRAFT                               IBM/Columbia University/IBM
                                                        21 November 1997




                     Staged Refresh Timers for RSVP
                      draft-pan-rsvp-timer-00.txt




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 not appropriate to use Internet Drafts as
   reference material, or to cite them other than as a ``working draft''
   or ``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

   The current resource Reservation Protocol (RSVP) design has
   no reliability mechanism for the delivery of control messages.
   Instead, RSVP relies on periodic refresh between routers to
   maintain reservation states.  This approach has several problems
   in a congested network.  End systems send Path and Resv messages
   to set up RSVP connections.  If the first Path or Resv message
   from an end system is accidentally lost in the network, a copy of
   the message will not be retransmitted until the end of a refresh
   interval, causing a delay of 30 seconds or more until a reservation
   is established.  If a congested link causes a tear-down message
   (PathTear or ResvTear) to be dropped, the corresponding reservation
   will not be removed from the routers until the RSVP cleanup timer
   expires.






Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page i]


Internet Draft                RSVP Timer                21 November 1997


   We present an RSVP enhancement called staged refresh timers to
   support fast and reliable message delivery that ensures hop-by-hop
   delivery of control messages without violating the soft-state design.
   The enhancement is backwards-compatible and can be easily added to
   current implementations.  The new approach can speed up the delivery
   of trigger messages while reducing the amount of refresh messages.
   The approach is also applicable to other soft-state protocols.

   The performance benefits of this approach are explored in [PS97].










































Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page ii]


Internet Draft                RSVP Timer                21 November 1997




                                Contents



Status of This Memo                                                    i

Abstract                                                               i

 1. Introduction                                                       1

 2. Terminology                                                        2
     2.1. Sending and Receiving Nodes . . . . . . . . . . . . . . .    2
     2.2. Trigger and Refresh Message . . . . . . . . . . . . . . .    2

 3. Protocol Mechanisms                                                3
     3.1. Outline of Operation  . . . . . . . . . . . . . . . . . .    3
     3.2. Time Parameters . . . . . . . . . . . . . . . . . . . . .    3
     3.3. Staged Refresh  . . . . . . . . . . . . . . . . . . . . .    4

 4. Protocol Extension                                                 5
     4.1. Common Header . . . . . . . . . . . . . . . . . . . . . .    5
     4.2. Echo-Reply Messages . . . . . . . . . . . . . . . . . . .    6
           4.2.1. PathAck Messages  . . . . . . . . . . . . . . . .    6
           4.2.2. PathTearAck Messages  . . . . . . . . . . . . . .    7
           4.2.3. ResvAck Messages  . . . . . . . . . . . . . . . .    7
           4.2.4. ResvTearAck Messages  . . . . . . . . . . . . . .    7

 5. Special Considerations                                             8
     5.1. Backward Compatibility  . . . . . . . . . . . . . . . . .    8
     5.2. Computing Cleanup Timeout Values  . . . . . . . . . . . .    8
     5.3. Handling of Tear-Down Messages  . . . . . . . . . . . . .    9
     5.4. Operation in an NBMA Environment  . . . . . . . . . . . .    9

 6. Discussion                                                        11

 A. Appendix:  Processing Rules                                       12
     A.1. Modification to the Existing Rules  . . . . . . . . . . .   13
           A.1.1. PATH MESSAGE ARRIVES: . . . . . . . . . . . . . .   13
           A.1.2. PATHTEAR MESSAGE ARRIVES: . . . . . . . . . . . .   14
           A.1.3. RESV MESSAGE ARRIVES: . . . . . . . . . . . . . .   15
           A.1.4. RESVTEAR MESSAGE ARRIVES: . . . . . . . . . . . .   15
     A.2. Processing Rules for New Messages . . . . . . . . . . . .   16
           A.2.1. PATHACK MESSAGE ARRIVES . . . . . . . . . . . . .   16
           A.2.2. PATHTEARACK MESSAGE ARRIVES . . . . . . . . . . .   17
           A.2.3. RESVACK MESSAGE ARRIVES . . . . . . . . . . . . .   18
           A.2.4. RESVTEARACK MESSAGE ARRIVES . . . . . . . . . . .   18



Pan/Schulzrinne/Guerin          Expires 26 May 1998           [Page iii]


Internet Draft                RSVP Timer                21 November 1997


           A.2.5. PATH ACK  . . . . . . . . . . . . . . . . . . . .   18
           A.2.6. RESV ACK  . . . . . . . . . . . . . . . . . . . .   19

















































Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page iv]


Internet Draft                RSVP Timer                21 November 1997


1. Introduction

   The Reservation Protocol (RSVP) [ZDE+93, BZB+97] has been designed
   to exchange resource reservation information among routers in an
   internet.  One of its advantages is that it relies on soft state
   to maintain reservation state in each router:  Reservations will
   disappear by themselves if they are not refreshed periodically.  This
   avoids orphan reservations and allows reservations to adapt quickly
   to routing changes, without involvement of the end systems.  End
   systems send explicit tear-down messages to speed up the removal of
   reservations when routes change or the application exits.

   RSVP sends its control messages as IP datagrams with no reliability
   guarantee.  It relies on the periodic refresh messages from hosts
   and routers to handle the occasional loss of a Path or Resv message.
   Each RSVP host or router maintains a cleanup timer.  A state is
   deleted if no refresh messages arrive before the expiration of a
   cleanup timeout interval.

   Packet losses in the current Internet can be frequent, unfortunately.
   In today's Internet multicast backbone (Mbone), the packet loss rate
   [YKT96] is approximately 1-2% on average, and can occasionally reach
   20% or more on congested links.  The existing RSVP message delivery
   mechanism will not work well in such an environment.  For example,
   when a user tries to make a reservation over the network, if the
   first reservation request (Resv message) is lost due to congestion,
   it will not be retransmitted over the congested link until the next
   refresh cycle arrives.  The default refresh interval is 30 seconds.

   Thus, the first few seconds of, say, a multimedia flow may experience
   degraded quality of service as packets are carried on a best-effort
   basis rather than as a reserved flow.  Unfortunately, packet loss is
   more likely to delay reservations just when needed most, i.e., when
   packet loss rates for best-effort service are high.

   RSVP soft states are managed hop-by-hop, i.e., no network entities
   other than the node that sent the original refresh message can
   retransmit a refresh message.  Thus, a user cannot accelerate the
   reservation process by retransmitting RSVP messages.

   RSVP also does not retransmit tear-down messages.  If, for example,
   a user tries to remove a reservation, and the message (ResvTear) is
   lost, the reservation will remain in place until it times out, by
   default after 90 seconds.  If holding a reservation incurs costs,
   the user will have to pay for the extra time that has been spent
   waiting for the reservation time-out.  Also, network resources are
   used inefficiently.  Network providers will have to account for this
   uncertainty in their billing policies.



Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 1]


Internet Draft                RSVP Timer                21 November 1997


   In this document, we propose a simple RSVP extension that provides
   a mechanism to deliver RSVP messages faster and more reliably, that
   is backward compatible with the existing implementations, and that
   reduces the number of refreshes among routers, contributing to
   protocol scalability.


2. Terminology

2.1. Sending and Receiving Nodes

   A sending node is a router or host that generates RSVP messages.  A
   receiving node is defined as the RSVP router or host that is one RSVP
   hop away from a sending node.  In a shared-media or non-broadcast
   multiple access (NBMA) network such as an ATM subnet, a sending node
   may have multiple receiving nodes.  In some cases, not all routers
   between sending and receiving nodes implement RSVP. We refer to these
   networks as non-RSVP clouds.


2.2. Trigger and Refresh Message

   In RSVP, control traffic can be categorized into two types:  trigger
   and refresh messages.  Trigger messages are generated by an RSVP
   host or a router due to state changes.  Such state changes include
   the initiation of a new state, a route change that altered the
   reservation paths, or a reservation modification by a downstream
   router.  Path, Resv, PathTear and ResvTear serve as RSVP trigger
   messages.

   Refresh messages, on the other hand, contain replicated state
   information generated by a router to maintain state.  As indicated in
   the introduction, RSVP periodically refreshes state for robustness.
   For instance, if the RSVP daemon on a router crashes and resets,
   it loses all RSVP state information.  However, since its neighbor
   routers send copies of RSVP state information periodically, the
   router can recover the lost states within one refresh interval.  A
   refresh message can be either a Path or Resv message.

   The RSVP routing interface [Zap96, GSE97] can detect state changes,
   so that refresh messages are not needed to update router reservation
   states.  If the RSVP daemon is reasonably reliable, refresh messages
   are more of a safety mechanism than actually used for network
   operation and can thus be sent very infrequently, in the range of
   hours instead of 30 seconds.  This greatly reduces the traffic and
   processing impact of RSVP messages and makes RSVP signaling at least
   as efficient as circuit-switched setup protocols.  However, this
   requires that trigger messages are delivered reliably.



Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 2]


Internet Draft                RSVP Timer                21 November 1997


3. Protocol Mechanisms

3.1. Outline of Operation

   We propose the following feedback mechanism for RSVP trigger message
   delivery:  When sending an RSVP trigger message, a node inserts a new
   echo-request flag into the RSVP common header of the message.  Upon
   reception, a receiving node acknowledges the arrival of the message
   by sending back an echo-reply.  When the sending node receives this
   echo-reply for a Path or Resv message, it will automatically scale
   back the refresh rate for these messages for the flow.  If the
   trigger message was a flow tear-down, no more tear-down messages are
   sent, just as in the current RSVP specification.  Until the echo
   reply is received, the sending node will retransmit the trigger
   message.  The interval between retransmissions is governed by a
   staged refresh timer.  The staged refresh timer starts at a small
   interval which increases exponentially until it reaches a threshold.
   From that point on, the sending node will use a fixed timer to
   refresh Path and Resv messages and stop re-transmitting tear-down
   messages.  This mechanism is designed so that the message load is
   only slightly larger than in the current specification even if a node
   does not support this staged refresh timer.


3.2. Time Parameters

   The new extension makes the use of the following time parameters.
   All parameters should be modifiable per interface.

      Fast refresh interval Rf:

         Rf is the initial retransmission interval for trigger messages.
         After sending the message for the first time, the sending node
         will schedule a retransmission after Rf seconds.  The value of
         Rf could be as small as the round trip time (RTT) between a
         sending and a receiving node, if known.  Unless a node knows
         that all receiving nodes support echo-replies, a slightly
         larger value of, for example, 3 seconds is suggested.

      Slow refresh interval Rs:

         The sending node retransmits with this interval after it
         has determined that the receiving nodes support the RSVP
         echo-reply.  To reduce the number of unnecessary refreshes in
         a stable network, Rs can be set to a large value.  The value
         of Rs can be set for each egress interface.  Throughout the
         remainder of the document we assume a value of 15 minutes for
         Rs.



Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 3]


Internet Draft                RSVP Timer                21 November 1997


      Fixed refresh interval R:

         A node retransmits the trigger message with the interval Rf*(1
         + Delta)**i until the refresh interval reaches the fixed
         refresh interval R or an echo reply has been received.  If
         no reply has been received, the node continues to retransmit
         refreshes every R seconds.  We choose a value for R of 30
         seconds, the same value as the refresh interval in the current
         RSVP specification.

      Increment value Delta:

         Delta governs the speed with which the sender increases
         the refresh interval.  The ratio of two successive refresh
         intervals is (1 + Delta).  We arbitrarily set Delta to 0.30,
         which is also the the same value as the Slew.Max parameter that
         has been defined in RSVP to increase the retransmission and
         timeout interval for long-lived flows using local repairs.


3.3. Staged Refresh

   After a sending node transmits a trigger message, it will immediately
   schedule a retransmission after Rf seconds.  If it receives
   echo-replies, the sending node will change the refresh interval to
   Rs.  Otherwise, it will retransmit the message after (1 + Delta)*Rf
   seconds.  The staged retransmission will continue until either
   echo-replies are received, or the refresh interval has been increased
   to R.

   The implementation of staged refresh is simple.  A sending node can
   use the following algorithm when the RSVP refresh timer for state
   (flow) k has expired:


    if (Rk < R)  {
        Rk = Rk * (1 + Delta);
        send out a refresh message;
        wake up in state k after Rk seconds;
        exit;
    }
    else  {    /* no reply from receivers for too long: */
        Rk = R;
        if (the state k is for a tear-down message) {
            clean up state k;
            exit;
        }
        else  {



Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 4]


Internet Draft                RSVP Timer                21 November 1997


            send out a refresh message;
            wake up state k after Rk seconds;
            exit;
        }
    }



   Asynchronously, when a sending node receives echo-replies from the
   receiving nodes, it will change the refresh interval Rk to Rs for
   state k.


4. Protocol Extension

   The proposed mechanism requires several minor modifications to the
   current version of RSVP: a new bit is defined in the flag field of
   the RSVP common header, and four new message types are created for
   echo-reply.  The echo reply messages are simple copies of the message
   to be confirmed, with the message type changed.  While Path messages
   are generated end-to-end, Path echo-replies are hop-by-hop, using the
   previous hop (PHOP) field from the message.


4.1. Common Header

   For Path, Resv, PathTear and ResvTear messages, there is an
   additional echo-request flag in the RSVP common header.  Four
   additional new messages have also been defined to support feedback.






















Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 5]


Internet Draft                RSVP Timer                21 November 1997


   The format of the RSVP common-header is:

                0             1              2             3
         +-------------+-------------+-------------+-------------+
         | Vers | Flags|  Msg Type   |       RSVP Checksum       |
         +-------------+-------------+-------------+-------------+
         |  Send_TTL   | (Reserved)  |        RSVP Length        |
         +-------------+-------------+-------------+-------------+

         Flags: 4 bits

                 0x01:         echo-request flag.

         Msg Type: 8 bits

                 8 = PathAck
                 9 = PathTearAck
                10 = ResvAck
                11 = ResvTearAck



4.2. Echo-Reply Messages

4.2.1. PathAck Messages

   The format of a PathAck message is as follows:


           <PathAck Message> ::= <Common Header> [ <INTEGRITY> ]

                                     <SESSION> <RSVP_HOP>

                                     [ <sender descriptor> ]

           <sender descriptor> ::= <SENDER_TEMPLATE> [ <SENDER_TSPEC> ]

                                   [ <ADSPEC> ]



   The RSVP_HOP object of each PathAck message contains the IP address
   of the interface through which the Path message was received and the
   LIH (Logical Interface Handle) which was carried in the Path message.

   The destination address in IP header is the address stored in the
   RSVP_HOP object of the original Path message.




Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 6]


Internet Draft                RSVP Timer                21 November 1997


4.2.2. PathTearAck Messages

   The format of a PathTearAck message is as follows:


           <PathTearAck Message> ::= <Common Header> [ <INTEGRITY> ]

                                     <SESSION> <RSVP_HOP>

                                     [ <sender descriptor> ]

           <sender descriptor> ::= <SENDER_TEMPLATE> [ <SENDER_TSPEC> ]

                                     [ <ADSPEC> ]


   The RSVP_HOP object of each PathTearAck message contains the IP
   address of the interface through which the PathTear message was
   received and the LIH of which was carried in the PathTear message.

   The destination address in IP header is the address stored in the
   RSVP_HOP object of the original PathTear message.


4.2.3. ResvAck Messages


           <ResvAck Message> ::= <Common Header> [<INTEGRITY>]

                                 <SESSION> <RSVP_HOP>

                                 [ <SCOPE> ] <STYLE>

                                 <flow descriptor list>

           <flow descriptor list> ::=  (see RSVP specification, RFC2205)



   The RSVP_HOP (i.e., the PHOP) object contains the IP address of the
   interface through which the Resv message was received.  It also
   carries the corresponding LIH.

4.2.4. ResvTearAck Messages

           <ResvTearAck Message> ::= <Common Header> [<INTEGRITY>]

                                     <SESSION> <RSVP_HOP>



Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 7]


Internet Draft                RSVP Timer                21 November 1997



                                     [ <SCOPE> ] <STYLE>

                                     <flow descriptor list>

           <flow descriptor list> ::=  (see RSVP specification, RFC2205)



   The RSVP_HOP (i.e., the PHOP) object contains the IP address of the
   interface through which the ResvTear message was received.  It also
   carries the corresponding LIH.

5. Special Considerations

5.1. Backward Compatibility

   Backward compatibility is one of the main objectives in our design.
   One cannot assume that both sending and receiving nodes on a link
   will support the extension simultaneously.

   In the current RSVP specification, sending nodes refresh the soft
   states with fixed timers.  In our design, sending nodes rely on echo
   request/reply mechanism to ``learn'' about the status of receiving
   nodes.  If a sending node does not receive echo replies from the
   receiving nodes after several tries, it will assume the receiving
   nodes do not support the new extension, and switch its refresh
   interval to a fixed value.  The RSVP operation is not affected at the
   receiving nodes.


5.2. Computing Cleanup Timeout Values

   Each RSVP Path and Resv message carries a refresh interval in its
   TIME_VALUES object.  Receiver nodes use the refresh interval to
   compute the cleanup timeout interval that governs the lifetime of
   reservation state that has not been refreshed.  Generally, the
   cleanup timeout interval is a small multiple of refresh interval.

   In the staged refresh design, a sending node initially places
   the slow refresh timer, Rs, in the Path or Resv message.  For the
   receiving nodes that do not support the new extension, the sending
   node will insert R in the refresh messages after the actual refresh
   interval has been increased to R. If the receiving nodes do support
   the new extension, they will set the cleanup timeout interval based
   on Rs.





Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 8]


Internet Draft                RSVP Timer                21 November 1997


5.3. Handling of Tear-Down Messages

   RSVP uses PathTear and ResvTear messages to tear-down path and
   reservation states, respectively.  According to the current
   specification, sending nodes only generate one tear-message per flow.
   If the message is accidentally dropped along the way, the reserved
   resource will not be released until the cleanup timer expires.
   However, receiving duplicate tear-down messages at a receiving node
   should not impact the operation of RSVP in a proper implementation.

   In our RSVP extension, we have altered the processing rules for
   tear-down messages at the sending node.  Instead of deleting the
   state after a tear-down message is sent, a sending node will release
   all resource allocated to the state, and mark the state as closing.
   The state information is saved for message retransmission.  The
   entire state information will be removed when echo-replies are
   received, or when the sending node realizes that the receiving nodes
   do not support the extension.


5.4. Operation in an NBMA Environment

   For a multicast RSVP session in a non-broadcast multiple access
   (NBMA) network (such as ATM), a sending node may not know the total
   number of receiving nodes for a Path or PathTear message at an egress
   interface.  Therefore, a sending node cannot simply switch to the
   longer refresh timer Rs based on having received echo-replies.
























Pan/Schulzrinne/Guerin           Expires 26 May 1998            [Page 9]


Internet Draft                RSVP Timer                21 November 1997



                                        Path
                       +-------------+   ------>      +----+
                       |           a |----------------| R3 |
                       |             |                +----+
                       |             |
                       |             |    Path
       +---+           |             |   ------>      +----+
       | S |-----------|   Router  b |----------------| R2 |
       +---+  ----->   |             |   <------      +----+
               Path    |             |    PathAck
                       |             |
                       |             |
                       |             |     Path
                       |             |    ------>     +----+
                       |           c |----------------| R1 |
                       +-------------+    <------     +----+
                                           PathAck


            Figure-1: Path/PathAck in an NBMA network



   For example, as shown in Figure-1, if the receiving node R3 does
   not support the new RSVP extension, the sending node S should not
   change to the longer refresh interval Rs, even though it has received
   echo-replies from R1 and R2.

   In this case, a sending node has two alternatives:

    -  It can query a local database such as the ARP or MARS server
       to find out the exact number of the next-hop receivers.  It
       then switches to a longer refresh interval after receiving
       echo-replies from all receiving nodes.

    -  Since Path messages are mainly used for traffic advertisement
       purposes, the sending node may not need to use staged refresh
       timers for Path messages.  In an NBMA network, the staged refresh
       time mechanism would only make sense for the message delivery of
       Resv, ResvTear and PathTear messages.

   In case of PathTear message, a sending node always knows all the
   receiving nodes that have made reservations.  The following rules can
   be used:






Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 10]


Internet Draft                RSVP Timer                21 November 1997


    -  A sending node stops re-transmitting PathTear messages once it
       receives echo-replies from all its known next-hop receivers at an
       egress interface.

    -  Otherwise, the sending node generates PathTear messages using
       staged refresh timer until the refresh interval is increased to
       the fixed refresh rate R. Then it stops re-transmitting.


                                         PathTear
                       +-------------+   ------>      +----+
                       |           a |----------------| R3 |
                       |             |                +----+
                       |             |
                       |             |   PathTear
       +---+           |             |   ------>      +----+
       | S |-----------|   Router  b |----------------| R2 |
       +---+  ----->   |             |   <------      +----+
             PathTear  |             |   PathTearAck
                       |             |
                       |             |
                       |             |   PathTear
                       |             |   ------>      +----+
                       |           c |----------------| R1 |
                       +-------------+   <------      +----+
                                         PathTearAck


            Figure-2: PathTear/PathTearAck in an NBMA network



   An example is shown in Figure-2.  R1, R2 and R3 are the receiving
   nodes to S. Initially, the sender S had the reservation state
   information for receiving node R1 and R2.  Since R3 did not make
   any reservation, S would not know the existence of R3 from its
   RSVP database.  After sending the first PathTear message, S will
   retransmit the message until it has received echo replies from R1 and
   R2.  After which, S stops generating PathTear messages.


6. Discussion

   We believe that RSVP message delivery mechanism requires some
   degree of reliability guarantee to make RSVP useful for individual
   applications rather than reserving ``pipes''.  One way of improving
   reliability is to grant some minimal bandwidth for RSVP messages
   to protect them from congestion losses, as suggested in the RSVP



Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 11]


Internet Draft                RSVP Timer                21 November 1997


   specification [BZB+97].  However, this may require additional
   functionality at both sending and receiving nodes and does not help
   if RSVP messages have to traverse non-RSVP clouds.  It is also not
   clear how this can be achieved in a backward-compatible manner.

   In this paper, we presented a mechanism called staged refresh timers
   that enhances the current RSVP message delivery and is completely
   backward compatible.  Staged refresh timers are easy to add to
   RSVP router and host implementations and save both processing and
   bandwidth overhead.

   The staged refresh timer mechanism is an example of state management
   that falls somewhere between ``classical'' handshake-based
   reliability as found in ATM signaling, for example, and purely
   timer-based soft-state protocols such as the original RSVP proposal
   [ZDE+93], delta-t [Wat89] or IGMPv1 [Dee89].  An approach similar
   to staged refresh is also being used by the Session Initiation
   Protocol [HSS97] to confirm state establishment.  Generally speaking,
   experience has shown that state management is greatly simplified
   by requiring only one message (in each direction) to establish
   state, rather than going through several intermedia states.  State
   establishment messages should be idempotent and should contain a
   globally (spatially and temporally) unique state label, so that
   retransmissions of the same message can be ignored.

   Since only neighboring routers are involved in the reliability
   mechanism described here, these routers can easily estimate
   round-trip times, thus further tightening the retransmission
   interval, if desired.

   While staged refresh timers improve scalability, RSVP remains
   a rather complex protocol.  Alternative approaches to reserve
   reservation [CW97, PS98] may offer better scaling properties.


A. Appendix:  Processing Rules

   We outline a set of algorithms to illustrate how the new scheme
   works.  The notations and definitions such as PSB and RSB are defined
   in [BZ97].  However, this should not be considered as the actual
   implementation requirements.










Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 12]


Internet Draft                RSVP Timer                21 November 1997


A.1. Modification to the Existing Rules

A.1.1. PATH MESSAGE ARRIVES:

   Two additional steps that are required during Path message
   processing:

    1. reply PathAck message back to a sending node;

    2. use staged refresh timer to send Path if the PSB is new or
       changed.

   Reference Algorithm:


    Assume the message arrives on interface InIf.

    After message sanity checks:

    o Search for a path state block (PSB) whose (session, sender_template)
      pair matches the corresponding objects in the message, and whose
      ingress interface matches InIf.

    o If there is no matching PSB, then:

        1. Create a new PSB.

        2. Update all relevant information to the PSB.

    o Otherwise (there is a matching PSB):

        - Update all relevant information to the PSB.

    o If the echo-request flag is set in the common-header, and the
      echo-reply option is enabled for the ingress interface InIf:

        - Execute the PATH ACK sequence (below) for the PHOP in PSB.

    o Continue the Path message processing.

    o If the PSB is new or modified, then:

        1. Update the PSB's refresh timer to fast refresh interval Rf.

        2. Execute the PATH REFRESH sequence.






Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 13]


Internet Draft                RSVP Timer                21 November 1997


A.1.2. PATHTEAR MESSAGE ARRIVES:

   The router can reply a PathTearAck message to the sending node,
   release allocated resource and relay tear-down message downstream
   with staged refresh timer.

   During the process of PathTear message, unlike what's in the current
   RSVP specification, where a state is deleted as a result, the state
   is marked as PathTear_Pending in the new scheme.  It will be deleted
   by either the arrival of PathTearAck messages, or clean-up timer
   expiration.

   Reference Algorithm:


   Assume the message arrives on interface InIf.

   After message sanity checks:

   o Search for a PSB whose (Session, Sender_Template) pair matches
     the corresponding objects in the message, and the ingress
     interface matches to InIf.

   o If there is no matching PSB:

       - Drop the message and return.

   o If the echo-request flag is set in the common-header, and the
     echo-reply option is enabled for the ingress interface,

       - Execute the PATH ACK sequence (below) for the PHOP in PSB.

   o Forward a copy of the PathTear message to each egress interface
     listed in the PSB.

   o If the PSB is marked as Pathtear_Pending, (that is, a repeated
     PathTear message from upstream)

       - Drop the message and return.

   o Otherwise, (i.e., the Pathtear_Pending flag in the PSB is off):

       1. Insert a Pathtear_Pending flag into the PSB.

       2. Release all resource associated to the PSB.

       3. Update the PSB's refresh timer to fast refresh interval Rf.




Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 14]


Internet Draft                RSVP Timer                21 November 1997


   o Drop the message and return.




A.1.3. RESV MESSAGE ARRIVES:

   Similar to the modified Path processing rule, the new extension
   requires a router to reply an acknowledgment message and schedule
   refreshes with staged refresh timer.

   Reference Algorithm:


    After message sanity checks:

    o Find all reservation state blocks (RSB's) that are corresponding
      to the flows defined in the message.

        - Execute RESV ACK sequence (below) to the NHOP in the message.

    o Continue the Resv message processing.

    o For all the RSB's that are new or modified,

        1. Update their refresh interval to fast refresh interval Rf.

        2. Execute RESV REFRESH sequence.




A.1.4. RESVTEAR MESSAGE ARRIVES:

   The router will send an echo-reply to the sending node, and schedule
   refreshes with the staged refresh timer.

   During the process of the message, resource that is associated with
   the state should be released and marked as pending.  The state
   information is finally removed during the processing of ResvTearAck
   message or timer expiration.

   Reference Algorithm:


    After message sanity checks:

    o Find all PSB's that are corresponding to the flows defined in



Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 15]


Internet Draft                RSVP Timer                21 November 1997


      the message.

      - Execute RESV ACK sequence (below) to the NHOP in the message.

    o Continue the ResvTear message processing.

    o For all the RSB's that are described the ResvTear message:

        1. If a RSB is not marked with Resvtear\_Pending flag:

            - remove the reserved resource indicated in the RSB.

            - mark the RSB to be Resvtear\_Pending.

            - mark the RSB's refresh interval to fast interval Rf.

        2. Execute RESV REFRESH sequence to forward ResvTear messages
           upstream.

    o Drop the message and return.




A.2. Processing Rules for New Messages

A.2.1. PATHACK MESSAGE ARRIVES

   From SESSION, SENDER_TEMPLATE and egress interface information, a
   router finds the corresponding state and changes the refresh rate to
   a slower one.

   Reference Algorithm:


    Assume the message arrives on interface OutIf.

    o Search for a path state block (PSB) whose (session, sender_template)
      pair matches the corresponding objects in the message, and
      whose egress interface matches OutIf.

    o If there is no matching PSB, then:

        - Drop the message and return.

    o Otherwise (there is a matching)

        - Set the refresh timer of the PSB to slow refresh interval Rs.



Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 16]


Internet Draft                RSVP Timer                21 November 1997



    o Drop the message and return.




A.2.2. PATHTEARACK MESSAGE ARRIVES

   From SESSION, SENDER_TEMPLATE and egress interface, a router finds
   the corresponding state.  However the state can not be removed until
   the router has received acknowledgments from all known next-hop
   routers of the RSVP flow.

   Reference Algorithm:


    Assume the message arrives on interface OutIf.

    o Search for a path state block (PSB) whose (session, sender_template)
      pair matches the corresponding objects in the message, and whose
      egress interface matches OutIf.

    o If there is no matching PSB, then:

        - drop the message and return.

    o Find the RSB that matches the PSB. (The resource associated
      with the RSB should has been released during PathTear processing
      time.)

        - remove the RSB.

    o Search for all RSB that matches this PSB.

        - If no more RSB could be found, then:

            - remove the PSB and return.

        - Otherwise, (there may still be reserved flows downstream):

            - return.










Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 17]


Internet Draft                RSVP Timer                21 November 1997


A.2.3. RESVACK MESSAGE ARRIVES

   Find all the states that are described in the message, and switches
   their refresh timer to a slower one.

   Reference Algorithm:


    After message sanity checks:

    o Find all the RSB's that are corresponding to the flows defined
      in the message.

      - Set the refresh timer of the RSB's to slow refresh interval Rs.

    o Drop the message and return.




A.2.4. RESVTEARACK MESSAGE ARRIVES

   Find the corresponding states, and remove them.

   Reference Algorithm:


    After message sanity checks:

    o Find all RSB's that are corresponding to the flows defined in
      the message.

      - Delete the RSB's.

    o Drop the message and return.




A.2.5. PATH ACK

   This sequence sends a PathAck or a PathTearAck towards a particular
   previous hop.  It is invoked from either PATH MESSAGE ARRIVES, or
   PATHTEAR MESSAGE ARRIVES sequence.


    o Copy SESSION object and sender descriptor from the received
      Path (or PathTear) message into the PathAck (or PathTearAck)



Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 18]


Internet Draft                RSVP Timer                21 November 1997


      message being built.

    o Insert into its RSVP_HOP object the ingress interface address
      and the LIH for the interface.

    o Insert the PHOP address (from the Path/PathTear message) as the
      destination address into the IP header being built.

    o Update the RSVP common-header and IP header.

    o Send the message out.




A.2.6. RESV ACK

   This sequence sends a ResvAck or a ResvTearAck towards a particular
   next hop.  It is invoked from either RESV MESSAGE ARRIVES, or
   RESVTEAR MESSAGE ARRIVES sequence.


    o Copy SESSION, STYLE, SCOPE (if WF style), and the flow
      descriptor list from the received Resv (or ResvTear) message
      into the Resv (or ResvTearAck) message being built.

    o Insert into its RSVP_HOP objet the egress interface address and
      the LIH for the interface.

    o Insert the NHOP address (from the Resv/ResvTear message) as the
      destination address into the IP header being built.

    o Update the RSVP common-header and IP header.

    o Send the message out.




References

   [BZ97]   R. Braden and L. Zhang.  Resource reservation protocol
            (rsvp) -- version 1 message processing rules.   RFC 2209,
            Internet Engineering Task Force, September 1997.

   [BZB+97] R. Braden, L. Zhang, S. Berson, S. Herzog, and S. Jamin.
            Resource reservation protocol (RSVP) -- version 1




Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 19]


Internet Draft                RSVP Timer                21 November 1997


            functional specification.  , Internet Engineering Task
            Force, September 1997.

   [CW97]   D. Clark and J. Wroclawski.  An approach to service
            allocation in the internet.  Internet Draft, Internet
            Engineering Task Force, August 1997.  Work in progress.

   [Dee89]  S. Deering.  Host extensions for IP multicasting.   STD 5,
            RFC 1112, Internet Engineering Task Force, August 1989.

   [GSE97]  R. Guerin, Kamat S., and Rosen E.  Extended rsvp-routing
            interface.  Internet Draft, Internet Engineering Task
            Force, July 1997.  Work in progress.

   [HSS97]  Mark Handley, Henning Schulzrinne, and Eve Schooler.  SIP:
            Session initiation protocol.  Internet Draft, Internet
            Engineering Task Force, July 1997.  Work in progress.

   [PS97]   Ping Pan and Henning Schulzrinne.  Staged refresh timers
            for RSVP.  In Global Internet'97, Phoenix, Arizona,
            November 1997.  also IBM Research Technical Report TC20966.

   [PS98]   Ping P. Pan and Henning Schulzrinne.  YESSIR: A simple
            reservation mechanism for the Internet.  In IBM Research
            Technical Report TC20967, 1998.

   [Wat89]  Richard W. Watson.  The Delta-t transport protocol:
            Features and experience.  In Harry Rudin and Robin
            Williamson, editors, First IFIP WG6.1/WG6.4 International
            Workshop on Protocols for High-Speed Networks, pages 3--17,
            Z rich, Switzerland, May 1989.

   [YKT96]  Maya Yajnik, Jim Kurose, and Don Towsley.  Packet loss
            correlation in the MBone multicast network.  In Proceedings
            of Global Internet, London, England, November 1996.

   [Zap96]  Daniel Zappala.  RSRR: a routing interface for RSVP.
            Internet Draft (expired), Internet Engineering Task Force,
            November 1996.  Work in progress.

   [ZDE+93] Lixia Zhang, Stephen Deering, Deborah Estrin, Scott
            Shenker, and Daniel Zappala.  RSVP: a new resource
            ReSerVation protocol.  IEEE Network, 7(5):8--18, September
            1993.







Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 20]


Internet Draft                RSVP Timer                21 November 1997


Authors' Address


 Ping Pan
 IBM T.J. Watson Research Center
 P.O. Box 704
 Yorktown Heights, NY 10598
 USA
 Phone:  +1 914 784-6579
 Email: pan@watson.ibm.com

 Henning Schulzrinne
 Dept. of Computer Science
 Columbia University
 1214 Amsterdam Avenue
 New York, NY 10027
 USA
 electronic mail:  schulzrinne@cs.columbia.edu

 Roch Guerin
 IBM T.J. Watson Research Center
 P.O. Box 704
 Yorktown Heights, NY 10598
 USA
 Phone:  +1 914 784-7038
 Email: guerin@watson.ibm.com

























Pan/Schulzrinne/Guerin           Expires 26 May 1998           [Page 21]