Subject: <draft-buerkle-gsmp-usage-flags-00.txt>

From: Joachim Buerkle <[email-masked]>
Date: Fri, 22 Oct 1999 23:52:43 +0200

GSMP WG,
it seems that I just missed the cut-off time  by 5min.
So I send the draft unfortunately just to the WG list and you can decide
where we shall discuss it at the next meeting or not.
Sorry
Joachim

- - - - - - - - - - -

Date: Fri, 22 Oct 1999 17:05:18 -0400 (EDT)
To: [email-masked]
Subject: Re: new draft
Subject: Autoreply from Internet Draft Submission Manager
From: [email-masked] (Internet Draft Submission Manager)

Greetings,

We are sorry, but the cut-off for Internet-Draft submissions was Friday,

October 22, 1999 at 5pm ET. Your submission will not be retained (i.e.
you
need to resubmit) after November 7.

Any submissions received prior to November 8, 1999 will not be retained;

they must be resubmitted. Internet-Draft submissions received on or
after
November 8 will be processed. However, Internet-Draft announcements will

not be sent until after the meeting concludes.

If you receive this announcement, your submission will NOT be processed.

Thank you for your understanding.

IETF Secretariat

Internet-Draft
Expiration Date: February 2000                   21. October 1999

                  Addition of usage flage to GSMP
              <draft-buerkle-gsmp-usage-flags-00.txt>

Status of this Memo

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.

Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (1999).  All Rights Reserved.

Abstract
   GSMP needs an extension of the add branch message that a switch
   controller which is running applications like MPLS, ATMF
   UNI-Sig. or VB5 is able to reserve resources for connections
   which shall be established later on in their related virtual
   switch partition.

   This memo includes a proposal for the extension of GSMPs add
   branch message.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 2]

Overview
   The General Switch Management Protocol (GSMP), is a general
   purpose protocol to control a label switch. GSMP allows a
   controller to establish and release connections across the
   switch; add and delete leaves on a multicast connection; manage
   switch ports; request configuration information; and request 
   statistics [1].
 
   The current connection establishment message allows only the 
   connection establishment in one step, i.e. allocating the
   resources for the connection and establishing the connection in
   one step.
   Some application like MPLS [2], ATMF UNI-Sig [3] and 
   VB5.1/VB5.2 [4, 5] need also the possibility to establish a 
   connection in two steps.
   In the first step:
      reserving the resources for a connection
   and in the second step:
      finally enabling the connection.

   For the release of the reserved resources GSMPs delete branch
   message can be used without changing the message format. 

1. Introduction of new flags in the current GSMP add branch
   message

   This section proposes an extension to GSMP which is necessary
   to reserve and query resources for a connection with the
   current add branch message.
   The current general connection management message format,
   which is used in [1] for the add branch message is: 

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 3]

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Version    | Message Type  |    Result     |     Code      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |    Transaction Identifier                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Port Session Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |M|B|x|E|                  Input Label                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
** ~x x x|E|              Extended Input Label                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |QMS|x|E|                  Output Label                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
** ~x x x|E|              Extended Output Label                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Number of Branches       |       Service Selector        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Under certain conditions (see below) the Add Branch message has
   additional, variable length data block appended to the above
   message [1]:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    TC Flags   |                 Reserved                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                   Traffic Parameters Block                    ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   ** Note: There can be zero or more 32 bit words containing
   Extended Labels (like those marked **) following an Input
   or Output Label field. A 32 bit word containing an Extended
   Label follows the previous label field if and only if the E
   Flag immediately preceeding the previous label is set [1].

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 4]

   This draft proposes the use of one of the spare bits ("x") 
   (U-Flag) and introduces a new flag (P-Flag) in each Label row in
   the current general connection management message format, to
   allow the necessary additional functionality with a minimal
   change of the existing GSMP message header and without
   introducing a new message.

   The new proposed message format looks as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |M|B|U|P|E|              (Pseudo) Input Label                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|P|E|          Extended (Pseudo) Input Label              ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |QMS|x|P|E|              (Pseudo) Output Label                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|P|E|          Extended (Pseudo) Output Label             ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The meaning of the new flags is defined as follows:

   U-flag:  U=0  -  establish the connection in one step or 
                    finally establish the connection with the 
                    already reserved resources
                    The behavior is defined in section 1.1.
            U=1  -  establish the connection in one step or 
                    finally establish the connection with the
                    already reserved resources
                    The behavior is defined in section 1.2.

   P-flag:  P=0  -  Value of Input Label or Output Label
            P=1  -  Value Pseudo Input Label or Pseudo Output Label

   The following 2 examples are showing how the new flags are used.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 5]

   Example 1:
   No pseudo label is used at the Input Port and at the Output Port.
   P-Flag not set (P=0).

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * |M|B|U|0|E|                Input Label                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * ~x x x|0|E|            Extended Input Label                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
** |QMS|x|0|E|                Output Label                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
** ~x x x|0|E|            Extended Output Label                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   *  The P-flag in the Input Label row is not set (P=0)
      This means no Pseudo Input Label is used.
      If the E-flag is set, then the P-flags in the following
      Extended Input Label rows are also not set (P=0).

   ** The P-flag in the Output Label row is zero (P=0)
      This means no Pseudo Output Label is used.
      If the E-flag is set, then the P-flags in the following
      Extended Output Label rows are also not set (P=0).

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 6]

   Example 2:
   A pseudo label is used at the Input Port and at the Output Port.
   P-Flag set (P=1).

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*  |M|B|U|1|1|             Pseudo Input Label                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|1|1|         Extended Pseudo Input Label                 ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
** ~x x x|0|E|                Input Label                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|0|E|            Extended Input Label                     ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+  |QMS|x|1|E|             Pseudo Output Label                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|1|E|         Extended Pseudo Output Label                ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
++ ~x x x|0|E|                Output Label                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~x x x|0|E|            Extended Output Label                    ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   *  The P-flag in the Input Label row is set (P=1):
      This means a Pseudo Input Label is used.
      If in addition the E-flag is set then the Pseudo Input Label
      is extended in the next row or the Input Label is given in
      the following row dependent on whether the P-flag is set or
      not.
   ** The Input Label starts in the row where the P-flag is not set
      anymore.

   +  The P-flag in the Output Label row is set (P=1):
      This means a Pseudo Output Label is used.
      If in addition the E-flag is set then the Pseudo Output Label
      is extended in the next row or the Output Label is given in
      the following row dependent on whether the P-flag is set or
      not.
   ++ The Output Label starts in the row where the P-flag is not
      set anymore.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 7]

1.1.  Behavior for the connection establishment (U=0)

   The new states of a connection specified by the Input Port, Input
   Label, Output Ports and Output Labels and the reaction/behavior
   of a virtual switch after a add branch message with U=0 is: 

    Input State      I Output State     I Behavior
   ------------------+------------------+----------
    conn. not exists I conn. not exists I    1)
    conn. not exists I conn. estab.     I    2)
    conn. not exists I reserved O.L.    I    3)
    conn. not exists I reserved P.O.L.  I    4)
                     I                  I
    conn. estab.     I conn. not exists I    5)
    conn. estab.     I conn. estab.     I    6)
    conn. estab.     I reserved O.L.    I    7)
    conn. estab.     I reserved P.O.L.  I    8)
                     I                  I
    reserved I.L.    I conn. not exists I    9)
    reserved I.L.    I conn. estab.     I   10)
    reserved I.L.    I reserved O.L.    I   11)
    reserved I.L.    I reserved P.O.L.  I   12)
                     I                  I
    reserved P.I.L.  I conn. not exists I   13)
    reserved P.I.L.  I conn. estab.     I   14)
    reserved P.I.L.  I reserved O.L.    I   15)
    reserved P.I.L.  I reserved P.O.L.  I   16)
                     I                  I

   O.L.   :  Output Label
   I.L.   :  Input Label
   P.O.L. :  Pseudo Output Label
   P.I.L  :  Pseudo Input Label

   1)  As specified in [1]:
       If the connection specified by the Input Port and Input
       Label fields does not exist, it must be established with
       the single output branch specified in the request message.
       If the Bi-directional flag in the flags field is set, the
       reverse connection must also be established. The connection
       should have the QoS attributes specified by the Class of 
       Service field.

   2)  If the connection specified by the Input Port and Input
       Label fields does not exist, it must be establish as new
       Input branch of the already existing output branch
       Specified in the request message.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 8]

3)  If the connection specified by the Input Port and Input Label
       fields does not exist, it must be established with the single
       output branch specified in the request message, by using the
       reserved resources for the Output branch.

   4)  If the connection specified by the Input Port and Input Label
       fields does not exist, and the resources for the specified
       pseudo output branch are already reserved, it must be
       established with the single output branch by using the
       already reserved resources and the given Output Port and
       Output Label.
       If no Output Label is given for the Pseudo Output Label then
       A failure response message must be send with the failure code
       "No Output Label specified for the Pseudo Output Label."

   5)  As specified in [1]:
       If the connection specified by the Input Port and Input Label
       fields already exists, but the specified output branch does
       not, the new output branch must be added. The new output
       branch should have the QoS attributes specified by the Class 
       of Service field.

   6)  As specified in [1]:
       If the connection specified by the Input Port and Input Label
       fields already exists and the specified output branch also 
       already exists, the QoS attributes of the connection,
       specified by the Class of Service field, if different from
       the request message, should be changed to that in the request
       message. A success response message must be sent if the
       Result field of the request message is "AckAll". This allows the
       controller to periodically reassert the state of a connection
       or to change its priority. If the result field of the request
       message is "NoSuccessAck" a success response message should 
       not be returned. This may be used to reduce the traffic on
       the control link for messages that are reasserting previously
       established state. For messages that are reasserting
       previously established state, the switch must always check
       that this state is correctly established in the switch
       hardware (i.e. the actual connection tables used to forward
       cells).

   7)  If the connection specified by the Input Port and Input Label
       fields already exists, and the resources for the specified
       output branch are already reserved, the new output branch
       must be added by using the already reserved resources.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 9]

   8)  If the connection specified by the Input Port and Input Label
       fields already exists, and the resources for the specified
       pseudo output branch are already reserved, the new output
       branch must be added by using the already reserved resources
       and the given Output Port and Output Label.
       If no Output Label is given for the Pseudo Output Label then
       A failure response message must be send with the failure code
       "No Output Label specified for the Pseudo Output Label."

   9)  If the resources for a connection specified by the Input Port
       and Input Label fields are already reserved, these resources
       are used to establish the connection with the single output
       branch specified in the request message.

   10) If the resources for the connection specified by the Input
       Port and Input Label fields are already reserved, these
       resources are used to establish the new input branch of the
       already existing output branch which is specified by the
       Output Port and Output Label in the request message.

   11) If the resources for a connection specified by the Input Port
       and Input Label fields already reserved and the specified
       output branch also already reserved, the connection shall be
       established by using the reserved resources.

   12) If the resources for a connection specified by the Input Port
       and Input Label fields already reserved and the resources for
       the specified pseudo output branch are also already reserved,
       the connection shall be established by using the reserved
       resources and the given Input Port, Input Label, Output Port
       and Output Label.

   13) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields are already reserved, these 
       resources are used to establish the connection specified by
       the given Input Label with the single output branch, which is
       specified in the request message by the Output Port and
       Output Label.
       If no Input Label is given for the Pseudo Input Label then
       A failure response message must be send with the failure code
       "No Input Label specified for the Pseudo Input Label."

   14) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields are already reserved, these 
       resources are used to establish the connection specified by
       the given Input Label with the already existing single output 
       branch, which is specified in the request message by the
       Output Port and Output Label.
       If no Input Label is given for the Pseudo Input Label then
       A failure response message must be send with the failure code
       "No Input Label specified for the Pseudo Input Label."

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 10]

   15) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields already reserved and the
       resources for the specified output branch are also already
       reserved, the connection shall be established by using the
       reserved resources and the given Input Port, Input Label,
       Output Port and Output Label.
       If no Input Label is given for the Pseudo Input Label then
       A failure response message must be send with the failure code
       "No Input Label specified for the Pseudo Input Label."

   16) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields already reserved and the
       resources for the specified pseudo output branch are also
       already reserved, the connection shall be established by
       using the reserved resources and the given Input Port, Input
       Label, Output Port and Output Label.
       If no Input Label/Output Label is given for the Pseudo Input
       Label/Pseudo Output Label then a failure response message
       must be send with the failure code:
       "No Input Label specified for the Pseudo Input Label."
       "No Output Label specified for the Pseudo Output Label."

   General Remarks:

   - If in the case where the resources are already reserved 
     less resources are needed the remaining shall be released.
     If more resources are needed the already reserved resources
     shall be used and the additional shall be acquired, if
     available. If no further resources are available a failure
     response message must be returned indicating, "No additional
     resources available."

   - If the Bi-directional flag in the flags field is set, the
     reverse connection must also be established (by using the
     resources which are already reserved for the (Pseudo) Input
     Label). The connection should have the QoS attributes specified
     by the Class of Service field.

   - A success response message must be sent if the Result field of
     the request message is "AckAll". If the result field of the 
     request message is "NoSuccessAck" a success response message 
     should not be returned. This may be used to reduce the traffic
     on the control link.

- If the output branch specified by the Output Port and Output 
     Label fields is already in use by any connection other than
     that specified by the Input Port and Input Label fields, then
     the resulting output branch will have multiple input branches.
     If multiple point-to-point connections share the same output
     Branch the result will be a multipoint-to-point connection.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 11]

- As already pointed out in [1] it should be noted that different
     switches support multicast in different ways. There will be a
     limit to the total number of point-to-multipoint connections
     any switch can support (reserve/establish), and possibly a
     limit on the maximum number of branches that a 
     point-to-multipoint connection may support (reserve/establish).
     Some switches also impose a limit on the number of different
     Label values that may be assigned to (reserved for) the output
     branches of a point-to-multipoint connection. Many switches are
     incapable of supporting (reserving) more than a single branch
     of any particular point-to-multipoint connection on the same
     output port. Specific failure codes are already defined in [1]
     for some of these conditions.

1.2.  Behavior for the resource reservation (U=1)

   The new states of a connection specified by the Input Port, Input
   Label, Output Ports and Output Labels and the reaction/behavior
   of a virtual switch after a add branch message with U=1 is: 

    Input State      I Output State     I Behavior
   ------------------+------------------+----------
    conn. not exists I conn. not exists I    1)
    conn. not exists I conn. estab.     I    2)
    conn. not exists I reserved I.L.    I    3)
    conn. not exists I reserved P.I.L.  I    4)
                     I                  I
    conn. estab.     I conn. not exists I    5)
    conn. estab.     I conn. estab.     I    6)
    conn. estab.     I reserved I.L.    I    7)
    conn. estab.     I reserved P.I.L.  I    8)
                     I                  I
    reserved I.L.    I conn. not exists I    9)
    reserved I.L.    I conn. estab.     I   10)
    reserved I.L.    I reserved I.L.    I   11)
    reserved I.L.    I reserved P.I.L.  I   12)
                     I                  I
    reserved P.I.L.  I conn. not exists I   13)
    reserved P.I.L.  I conn. estab.     I   14)
    reserved P.I.L.  I reserved I.L.    I   15)
    reserved P.I.L.  I reserved P.I.L.  I   16)
                     I                  I

   1)  If the connection specified by the Input Port and Input Label
       fields does not exist, the resources for the connection must
       be reserved with the single output branch specified in the
       request message.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 12]

   2)  If the connection specified by the Input Port and Input Label
       fields does not exist, the resources for the Input branch
       of the connection (with the already existing output branch)
       shall be reserved.

   3)  If the connection specified by the Input Port and Input Label
       fields does not exist, the resources for the Input branch 
       of the connection shall be reserved. 
       If less resources for the reservation of the output
       branch are needed than the already reserved resources, the
       remaining shall be released. If more resources are needed
       the already reserved resources shall be used and the
       additional shall be acquired, if available. If no further
       resources are available a failure response message must be
       returned indicating, "No additional resources available."

   4)  If the connection specified by the Input Port and Input Label
       fields does not exist, and the resources for the specified
       pseudo output branch are already reserved, the resources 
       for the Input branch of the connection shall be reserved.
       If less resources for the reservation of the pseudo output
       branch are needed than the already reserved resources, the
       remaining shall be released. If more resources are needed
       the already reserved resources shall be used and the
       additional shall be acquired, if available.

   5)  If the connection specified by the Input Port and Input Label
       fields already exists, but the specified output branch does
       not, the resources for the new output branch must be reserved.
       The new output branch should have the QoS attributes
       specified by the Class of Service field.

   6)  A failure response message must be returned indicating,
       "Resources for a connection specified by the Input Port,
        Input Label, Output Port and Output Label can not be
        reserved because the connection is already established."
       Resource reservation for a connection which is already 
       established is in principle possible but should not allowed
       in this version of GSMP because this requires a further state
       for the connection.

   7)  If the connection specified by the Input Port and Input Label
       fields already exists, and the resources for the specified
       output branch are already reserved, the state of the
       connection will remain unchanged.
       The reservation for the output branch should have still the
       QoS attributes specified by the Class of Service field.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 13]

   8)  If the resources for a connection specified by the Input Port
       and Input Label fields already exists and the resources for
       the output branch, specified by the Output Port and the
       Pseudo Output Label, are already reserved, and the QoS
       attributes of the connection, specified by the Class of
       Service field, are different from the request message, the
       reservation should be changed to that in the request message.
       If less resources are needed the remaining shall be released.
       If more resources are needed the already reserved resources
       shall be used and the additional shall be acquired, if
       available. If no further resources are available a failure
       response message must be returned indicating, "No additional
       resources available."
       The connection remains in the reservation state.

   9)  If the resources for a connection specified by the Input Port
       and Input Label fields are already reserved, the resources
       for the specified new output branch must be reserved.
       If less resources for the reservation of the input branch
       are needed than the already reserved resources, the
       remaining shall be released. If more resources are needed
       the already reserved resources shall be used and the
       additional shall be acquired, if available.
       For the reservation of resources of the output branch also
       the QoS attributes specified by the Class of Service filed
       should be used.

   10) Since the resources for the Input branch specified by the
       Input Port and Input Label fields are already reserved
       and the Output branch is already established with a given QoS
       the state does not change.

   11) If the resources for a connection specified by the Input Port
       and Input Label fields already reserved and the specified
       output branch also already reserved, and the QoS attributes
       of the connection, specified by the Class of Service field,
       are different from the request message, the reservation
       should be changed to that in the request message. If less
       resources are needed the remaining shall be released. If more
       resources are needed the already reserved resources shall be
       used and the additional shall be acquired, if available. If
       no further resources are available a failure response message
       must be returned indicating, "No additional resources
       available."
       The connection remains in the reservation state.
       A success response message must be sent if the Result field
       of the request message is "AckAll". If the result field of
       the request message is "NoSuccessAck" a success response
       message should not be returned. This may be used to reduce
       the traffic on the control link.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 14]

   12) If the resources for a connection specified by the Input Port
       and Input Label fields already reserved and the resources for
       the output branch, specified by the Output Port and the
       Pseudo Output Label, are also already reserved, and the QoS 
       attributes of the connection, specified by the Class of 
       Service field, are different from the request message, the
       reservation should be changed to that in the request message.
       If less resources are needed the remaining shall be released.
       If more resources are needed the already reserved resources
       shall be used and the additional shall be acquired, if
       available. If no further resources are available a failure
       response message must be returned indicating, "No additional
       resources available."

   13) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields are already reserved, then the
       resources for the out branch specified by the Output Port and
       Output Label shall also be reserved. If the QoS attributes of
       the Pseudo Input branch, are different from the request
       message, the reservation for the Pseudo Input Branch should
       be changed to that in the request message. If less resources
       are needed the remaining shall be released. If more resources
       are needed the already reserved resources shall be used and
       the additional shall be acquired, if available. If no further
       resources are available a failure response message must
       be returned indicating, "No additional resources available."

   14) Since the resources for the Pseudo Input branch specified by
       the Input Port and Pseudo Input Label fields are already
       reserved and the Output branch is already established with a
       given QoS the state does not change.

   15) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields already reserved and the
       resources for the specified Output branch are also already
       reserved, and the QoS attributes of the for the reserved
       resources are equal to QoS given in the Class of Service
       filed the state does not change.
       If the QoS attributes of the reserved resources are different
       from the request message, the reservation for the Pseudo
       Input Branch should be changed to that in the request
       message. If less resources are needed the remaining shall be
       released. If more resources are needed the already reserved
       resources shall be used and the additional shall be acquired,
       if available. If no further resources are available a failure
       response message must be returned indicating, "No additional
       resources available."

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 15]

   16) If the resources for a connection specified by the Input Port
       and Pseudo Input Label fields already reserved and the
       resources for the specified Pseudo Output branch are also
       already reserved, , and the QoS attributes of the for the
       reserved resources are equal to QoS given in the Class of
       Service filed the state does not change.
       If the QoS attributes of the reserved resources are different
       from the request message, the reservation for the Pseudo
       Input Branch should be changed to that in the request
       message. If less resources are needed the remaining shall be
       released. If more resources are needed the already reserved
       resources shall be used and the additional shall be acquired,
       if available. If no further resources are available a failure
       response message must be returned indicating, "No additional
       resources available."

   General Remarks:

   - If in any of the reservation operation no further 
     resources are available a failure response message must be
     returned indicating, "No additional resources available."

   - If branch request message specifies the Output Label the
     for the Pseudo Output Label the reserved resources are 
     from now identified by the Output Label.

   - If branch request message specifies the Input Label the
     for the Pseudo Input Label the reserved resources are 
     from now identified by the Input Label.

   - If in the case where the resources are already reserved
     less resources in new reservation operation is needed
     remaining shall be released.
     If more resources are needed the already reserved resources
     shall be used and the additional shall be acquired, if
     available. If no further resources are available a failure
     response message must be returned indicating, "No additional
     resources available."

   - If the Bi-directional flag in the flags field is set, the
     resources for the reverse connection must also be reserved 
     The connection should have the QoS attributes specified
     by the Class of Service field.

   - A success response message must be sent if the Result field of
     the request message is "AckAll". If the result field of the 
     request message is "NoSuccessAck" a success response message 
     should not be returned. This may be used to reduce the traffic
     on the control link.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 16]

   - As already pointed out in [1] it should be noted that different
     switches support multicast in different ways. There will be a
     limit to the total number of point-to-multipoint connections
     any switch can support (reserve/establish), and possibly a
     limit on the maximum number of branches that a 
     point-to-multipoint connection may support (reserve/establish).
     Some switches also impose a limit on the number of different
     Label values that may be assigned to (reserved for) the output
     branches of a point-to-multipoint connection. Many switches are
     incapable of supporting (reserving) more than a single branch
     of any particular point-to-multipoint connection on the same
     output port. Specific failure codes are already defined in [1]
     for some of these conditions.

   - If the output branch specified by the Output Port and Output 
     Label fields is already in use by any connection other than
     that specified by the Input Port and Input Label fields, then
     the resulting output branch will have multiple input branches.
     If multiple point-to-point connections share the same output
     Branch the result will be a multipoint-to-point connection.

2. Release of reserved resources

   The format of the delete branch message request [1] is 
   defined as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Version    | Message Type  |    Result     |     Code      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Partition ID  |           Transaction Identifier              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Reserved            |      Number of Elements       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                    Delete Branch Elements                     ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Each Delete Branch Element specifies an output branch to be
   deleted and has the following structure:

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 17]

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Port Session Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |x x|I|O|                                                       |
   +-+-+-+-+                  Input Label                          ~
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Error |                                                       |
   +-+-+-+-+                  Output Label                         ~
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The delete branch message can also be used to release reserved
   resources by adding the P-flag which identifies whether the
   given labels in the delete branch message are pseudo labels or
   not. There is no further change in the message format necessary
   since the to be released resources can be identified by the 
   Input Port, Input Label/Pseudo Input Label, Output Port and
   Output Label/Pseudo Output Label is enough.

   Then the each Delete Branch Element will have the following
   structure:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Port Session Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Input Port                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |x x|I|O|P|                                                     |
   +-+-+-+-+-+                Input Label                          ~
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Output Port                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Error |P|                                                     |
   +-+-+-+-+-+                Output Label                         ~
   ~                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Using the Delete Branch message on a "reserved" connection will
   release all reserved resources for this connection, i.e. that the
   connection will be deleted. In the case where only the resources
   of an Input branch or an Output branch be released the existing
   other part of the connection remains as already specified in [1].

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 18]

3. New failure codes for the failure response message 

   For the definition of a failure response message see [1].
   
   If the Usage-bits are introduced in GSMP as proposed above the
   following failure codes for the failure response message are
   necessary.

   Usage-bit Failures:

   x:  No additional resources available.
           The switch controller wants to establish a connection
           with more resources than reserved but these additional
           resources are not available. Or the switch controller
           wants to reserve in addition to a existing reservation
           resources for a connection but these additional resources
           are not available. 
           The failure code can be used for both since the failure
           response message is a copy of the request message this
           can be identified by the UU bits.

   x:  Resources for a connection specified by the Input Port, Input
       Label, Output Port and Output Label can not be reserved 
       because the connection is already established.
           The switch controller wants to reserve resources for a
           connection which is already established.

   Release Failures:
   x:   The resources can not be released because the given Pseudo
        Input Label does not exist.
            The Switch Controller (Virtual Switch Controller)
            Wants to release resources which are reserved for 
            Pseudo Input Label, which does not exist in the Switch.

   x:   The resources can not be released because the given Pseudo
        Output Label does not exist.
            The Switch Controller (Virtual Switch Controller)
            Wants to release resources which are reserved for 
            Pseudo Output Label, which does not exist in the Switch.

4. Modifications

   If the GSMP WG decides to go along with an other header format
   than the format of draft [1], this proposal of this draft can be
   easily mapped also to this message format.

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999

Buerkle                    Expires Feb 2000                [Page 19]

5. Acknolagements

   Avri for the comments about MPLS.
   Thank you also to Bernd Bardter and Bernd Kurzaj.

6. References

[1] Tom Worster, et. al., "General Switch Management Protocol",
    <draft-ietf-gsmp-02.txt>, Oct. 1999.

[2] IETF MPLS.
    http://www.ietf.org/html.charters/mpls-charter.html

[3] ATM Forum Technical Committee, "ATM User-Network Interface 
    (UNI) Signalling Specification", af-sig-0061.000, July 1996.

[4] ITU-T Recommendation G.967.1 (6/98), "V-Interfaces at the
    Service Node (SN) - VB5.1 Reference Point Specification".

[5] ITU-T Recommendation G.967.2 (2/99), "V-Interfaces at the
    Service Node (SN) - VB5.2 Reference Point Specification".

Authors' Contact

Joachim Buerkle
@ Bosch Telecom GmhH
  Backnang
  Germany

  Phone:   +49 7191 13 4602
  Telefax: +49 7191 13 64602
  Email:   [email-masked]

INTERNET-DRAFT       Addition of usage flags to GSMP      Oct 1999