Request for Comments: 2297 W. Edwards, Sprint
Updates: 1987 R. Hinden, Nokia
Category: Informational E. Hoffman, Nokia
F. Ching Liaw
T. Lyon, Nokia
G. Minshall, Fiberlane
March 1998
Ipsilon's General Switch Management Protocol Specification
Version 2.0
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1998). All Rights Reserved.
Abstract
This memo specifies enhancements to the General Switch Management
Protocol (GSMP) [RFC1987]. The major enhancement is the addition of
Quality of Service (QoS) messages. Other improvements have been made
to the protocol resulting from operational experience. GSMP is a
general purpose protocol to control an ATM switch. It 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.
Table of Contents
1. Introduction....................................................3
2. GSMP Packet Encapsulation.......................................4
2.1 ATM Encapsulation...........................................4
2.2 Ethernet Encapsulation......................................6
3. Common Definitions and Procedures...............................7
3.1 GSMP Packet Format..........................................8
3.2 Failure Response Messages..................................11
4. Connection Management Messages.................................16
4.1 Add Branch Message.........................................21
4.2 Delete Tree Message........................................23
4.3 Verify Tree Message........................................24
4.4 Delete All Message.........................................24
4.5 Delete Branches Message....................................25
4.6 Move Branch Message........................................27
5. Port Management Messages.......................................29
5.1 Port Management Message....................................29
5.2 Label Range Message........................................34
6. State and Statistics Messages..................................37
6.1 Connection Activity Message................................38
6.2 Statistics Messages........................................40
6.2.1 Port Statistics Message..............................44
6.2.2 Connection Statistics Message........................44
6.2.3 QoS Class Statistics Message.........................44
6.3 Report Connection State Message............................45
7. Configuration Messages.........................................49
7.1 Switch Configuration Message...............................50
7.2 Port Configuration Message.................................51
7.3 All Ports Configuration Message............................57
8. Event Messages.................................................59
8.1 Port Up Message............................................60
8.2 Port Down Message..........................................60
8.3 Invalid VPI/VCI Message....................................61
8.4 New Port Message...........................................61
8.5 Dead Port Message..........................................61
9. Quality of Service Messages....................................61
9.1 Abstract Switch Model......................................62
9.2 QoS Configuration Message..................................66
9.3 Scheduler Establishment Message............................74
9.4 QoS Class Establishment Message............................78
9.5 QoS Release Message........................................85
9.6 QoS Connection Management Message..........................86
9.7 QoS Failure Response Codes.................................97
10. Adjacency Protocol............................................97
10.1 Packet Format.............................................98
10.2 Procedure.................................................101
10.3 Loss of Synchronization...................................103
11. Summary of Failure Response Codes.............................104
12. Summary of Message Set........................................105
References........................................................107
Security Considerations...........................................107
Authors' Addresses................................................107
Full Copyright Statement..........................................109
1. Introduction
The General Switch Management Protocol (GSMP), is a general purpose
protocol to control an ATM 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. It also allows the
switch to inform the controller of asynchronous events such as a link
going down. GSMP runs across an ATM link connecting the controller to
the switch, on a control connection (virtual channel) established at
initialization. GSMP operation across an Ethernet link is also
specified. The GSMP protocol is asymmetric, the controller being the
master and the switch being the slave. Multiple switches may be
controlled by a single controller using multiple instantiations of
the protocol over separate control connections.
A switch is assumed to contain multiple "ports". Each port is a
combination of one "input port" and one "output port". Some GSMP
requests refer to the port as a whole whereas other requests are
specific to the input port or the output port. ATM cells arrive at
the switch from an external communication link on incoming virtual
paths or virtual channels at an input port. ATM cells depart from the
switch to an external communication link on outgoing virtual paths or
virtual channels from an output port. Virtual paths on a port or link
are referenced by their virtual path identifier (VPI). Virtual
channels on a port or link are referenced by their virtual path and
virtual channel identifiers (VPI/VCI).
A virtual channel connection across a switch is formed by connecting
an incoming virtual channel to one or more outgoing virtual channels.
Virtual channel connections are referenced by the input port on which
they arrive and the virtual path and virtual channel identifiers
(VPI/VCI) of their incoming virtual channel. A virtual path
connection across a switch is formed by connecting an incoming
virtual path to one or more outgoing virtual paths. Virtual path
connections are referenced by the input port on which they arrive and
their virtual path identifier (VPI). In a virtual path connection
the value of the VCI in each cell on that, connection is not used by
the switch and remains unchanged by the switch.
GSMP supports point-to-point and point-to-multipoint connections. A
multipoint-to-point connection is specified by establishing multiple
point-to-point connections each of them specifying the same output
branch. A multipoint-to-multipoint connection is specified by
establishing multiple point-to-multipoint trees each of them
specifying the same output branches.
In general a virtual channel is established with a certain quality of
service (QoS). A rich set of QoS messages is introduced in this
version of the protocol. However, implementation or operation of GSMP
without any of the messages defined in Section 9, "Quality of service
messages," is permitted. In this case each virtual channel
connection or virtual path connection may be assigned a priority when
it is established. It may be assumed that for virtual connections
that share the same output port, an ATM cell on a connection with a
higher priority is much more likely to exit the switch before an ATM
cell on a connection with a lower priority if they are both in the
switch at the same time. The number of priorities that each port of
the switch supports may be obtained from the port configuration
message.
GSMP contains an adjacency protocol. The adjacency protocol is used
to synchronize state across the link, to negotiate which version of
the GSMP protocol to use, to discover the identity of the entity at
the other end of a link, and to detect when it changes.
2. GSMP Packet Encapsulation
2.1 ATM Encapsulation
GSMP packets are variable length and for an ATM data link layer they
are encapsulated directly in an AAL-5 CPCS-PDU [I.363] with an
LLC/SNAP header as illustrated:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LLC (0xAA-AA-03) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| SNAP (0x00-00-00-88-0C) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ GSMP Message ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pad (0 - 47 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ AAL-5 CPCS-PDU Trailer (8 octets) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
(The convention in the documentation of Internet Protocols [RFC1700]
is to express numbers in decimal. Numbers in hexadecimal format are
specified by prefacing them with the characters "0x". Data is
pictured in "big-endian" order. That is, fields are described left to
right, with the most significant octet on the left and the least
significant octet on the right. Whenever a diagram shows a group of
octets, the order of transmission of those octets is the normal order
in which they are read in English. Whenever an octet represents a
numeric quantity the left most bit in the diagram is the high order
or most significant bit. That is, the bit labeled 0 is the most
significant bit. Similarly, whenever a multi-octet field represents a
numeric quantity the left most bit of the whole field is the most
significant bit. When a multi-octet quantity is transmitted, the most
significant octet is transmitted first. This is the same coding
convention as is used in the ATM layer [I.361] and AAL-5 [I.363].)
The LLC/SNAP header contains the octets: 0xAA 0xAA 0x03 0x00 0x00
0x00 0x88 0x0C. (0x880C is the assigned Ethertype for GSMP.)
The maximum transmission unit (MTU) of the GSMP Message field is 1492
octets.
The virtual channel over which a GSMP session is established between
a controller and the switch it is controlling is called the GSMP
control channel. The default VPI and VCI of the GSMP control channel
for LLC/SNAP encapsulated GSMP messages on an ATM data link layer is:
VPI = 0
VCI = 15.
2.2 Ethernet Encapsulation
GSMP packets may be encapsulated on an Ethernet data link as
illustrated:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype (0x88-0C) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
~ GSMP Message ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pad |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Frame Check Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Destination Address
For the SYN message of the adjacency protocol the
Destination Address is the broadcast address
0xFFFFFFFFFFFF. (Alternatively, it is also valid to
configure the node with the unicast 48-bit IEEE MAC address
of the destination. In this case the configured unicast
Destination Address is used in the SYN message.) For all
other messages the Destination Address is the unicast 48-
bit IEEE MAC address of the destination. This address may
be discovered from the Source Address field of messages
received during synchronization of the adjacency protocol.
Source Address
For all messages the Source Address is the 48-bit IEEE MAC
address of the sender.
Ethertype
The assigned Ethertype for GSMP is 0x880C.
GSMP Message
The maximum transmission unit (MTU) of the GSMP Message
field is 1492 octets.
Sender Instance
The Sender Instance number for the link obtained from the
adjacency protocol. This field is already present in the
adjacency protocol message. It is appended to all non-
adjacency GSMP messages in the Ethernet encapsulation to
offer additional protection against the introduction of
corrupt state.
Receiver Instance
The Receiver Instance number is what the sender believes is
the current instance number for the link, allocated by the
entity at the far end of the link. This field is already
present in the adjacency protocol message. It is appended
to all non-adjacency GSMP messages in the Ethernet
encapsulation to offer additional protection against the
introduction of corrupt state.
Pad
The minimum length of the data field of an Ethernet packet
is 46 octets. If necessary, padding should be added such
that it meets the minimum Ethernet frame size. This padding
should be octets of zero and it is not considered to be
part of the GSMP message.
After the adjacency protocol has achieved synchronization, for every
GSMP message received with an Ethernet encapsulation, the receiver
must check the Source Address from the Ethernet MAC header, the
Sender Instance, and the Receiver Instance. The incoming GSMP
message must be discarded if the Sender Instance and the Source
Address do not match the values of Sender Instance and Sender Name
stored by the "Update Peer Verifier" operation of the GSMP adjacency
protocol. The incoming GSMP message must also be discarded if it
arrives over any port other than the port over which the adjacency
protocol has achieved synchronization. In addition, the incoming
message must also be discarded if the Receiver Instance field does
not match the current value for the Sender Instance of the GSMP
adjacency protocol.
3. Common Definitions and Procedures
GSMP is a master-slave protocol. The controller issues request
messages to the switch. Each request message indicates whether a
response is required from the switch and contains a transaction
identifier to enable the response to be associated with the request.
The switch replies with a response message indicating either a
successful result or a failure. There are five classes of GSMP
request-response message: Connection Management, Port Management,
State and Statistics, Configuration, and Quality of Service. The
switch may also generate asynchronous Event messages to inform the
controller of asynchronous events. Event messages are not
acknowledged by the controller. There is also an adjacency protocol
message used to establish synchronization across the link and
maintain a handshake.
For the request-response messages, each message type has a format for
the request message and a format for the success response. Unless
otherwise specified a failure response message is identical to the
request message that caused the failure, with the Code field
indicating the nature of the failure. Event messages have only a
single format defined as they are not acknowledged by the controller.
Switch ports are described by a 32-bit port number. The switch
assigns port numbers and it may typically choose to structure the 32
bits into subfields that have meaning to the physical structure of
the switch (e.g. slot, port). In general, a port in the same physical
location on the switch will always have the same port number, even
across power cycles. The internal structure of the port number is
opaque to the GSMP protocol. However, for the purposes of network
management such as logging, port naming, and graphical
representation, a switch may declare the physical location (physical
slot and port) of each port. Alternatively, this information may be
obtained by looking up the product identity in a database.
Each switch port also maintains a port session number assigned by the
switch. A message, with an incorrect port session number must be
rejected. This allows the controller to detect a link failure and to
keep state synchronized.
Except for the adjacency protocol message, no GSMP messages may be
sent across the link until the adjacency protocol has achieved
synchronization, and all GSMP messages received on a link that does
not currently have state synchronization must be discarded.
3.1 GSMP Packet Format
All GSMP messages, except the adjacency protocol message, have the
following format:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transaction Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Message Body ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version
The version number of the GSMP protocol being used in this
session. It should be set by the sender of the message to
the GSMP protocol version negotiated by the adjacency
protocol.
Message Type
The GSMP message type. GSMP messages fall into six classes:
Connection Management, Port Management, State and
Statistics, Configuration, Quality of Service, and Events.
Each class has a number of different message types. In
addition, one Message Type is allocated to the adjacency
protocol.
Result
Field in a Connection Management request message, a Port
Management request message, or a Quality of Service request
message is used to indicate whether a response is required
to the request message if the outcome is successful. A
value of "NoSuccessAck" indicates that the request message
does not expect a response if the outcome is successful,
and a value of "AckAll" indicates that a response is
expected if the outcome is successful. In both cases a
failure response must be generated if the request fails.
For Sate and Statistics, and Configuration request
messages, a value of "NoSuccessAck" in the request message
is ignored and the request message is handled as if the
field were set to "AckAll". (This facility was added to
reduce the control traffic in the case where the controller
periodically checks that the state in the switch is
correct. If the controller does not use this capability,
all request messages should be sent with a value of
"AckAll.")
In a response message the result field can have three
values: "Success," "More," and "Failure". The "Success" and
"More" results both indicate a success response. The "More"
result indicates that the success response exceeds the
maximum transmission unit of the data link and that one or
more further messages will be sent to complete the success
response. All messages that belong to the same success
response will have the same Transaction Identifier. The
"Success" result indicates a success response that may be
contained in a single message or the final message of a
success response spanning multiple messages.
The encoding of the result field is:
NoSuccessAck: Result = 1
AckAll: Result = 2
Success: Result = 3
Failure: Result = 4
More: Result = 5.
The Result field is not used in an adjacency protocol
message.
Code
Field gives further information concerning the result in a
response message. It is mostly used to pass an error code
in a failure response but can also be used to give further
information in a success response message or an event
message. In a request message the code field is not used
and is set to zero. In an adjacency protocol message the
Code field is used to determine the function of the
message.
Transaction Identifier
Used to associate a request message with its response
message. For request messages the controller may select any
transaction identifier. For response messages the
transaction identifier is set to the value of the
transaction identifier from the message to which it is a
response. For event messages the transaction identifier
should be set to zero. The Transaction Identifier is not
used, and the field is not present, in the adjacency
protocol.
The following fields are frequently found in GSMP messages. They are
defined here to avoid repetition.
Port
Gives the port number of the switch port to which the
message applies.
Port Session Number
Each switch port maintains a Port Session Number assigned
by the switch. The port session number of a port remains
unchanged while the port is continuously in the Available
state and the link status is continuously Up. When a port
returns to the Available state after it has been
Unavailable or in any of the Loopback states, or when the
line status returns to the Up state after it has been Down
or in Test, or after a power cycle, a new Port Session
Number must be generated. Port session numbers should be
assigned using some form of random number.
If the Port Session Number in a request message does not
match the current Port Session Number for the specified
port, a failure response message must be returned with the
Code field indicating, "Invalid port session number." The
current port session number for a port may be obtained
using a Port Configuration or an All Ports Configuration
message.
Any field in a GSMP message that is unused or defined as "reserved"
must be set to zero by the sender and ignored by the receiver.
It is not an error for a GSMP message to contain additional data
after the end of the Message Body. This is to support development and
experimental purposes. However, the maximum transmission unit of the
GSMP message, as defined by the data link layer encapsulation, must
not be exceeded.
A success response message must not be sent until the requested
operation has been successfully completed.
3.2 Failure Response Messages
A failure response message is formed by returning the request message
that caused the failure with the Result field in the header
indicating failure (Result = 4) and the Code field giving the failure
code. The failure code specifies the reason for the switch being
unable to satisfy the request message.
If the switch issues a failure response in reply to a request
message, no change should be made to the state of the switch as a
result of the message causing the failure. (For request messages that
contain multiple requests, such as the Delete Branches message, the
failure response message will specify which requests were successful
and which failed. The successful requests may result in changed
state.)
If the switch issues a failure response it must choose the most
specific failure code according to the following precedence:
Invalid Message
Failure specific to the particular message type (failure code
16). (The meaning of this failure is dependent upon the
particular message type and is specified in the text defining
the message.)
A failure response specified in the text defining the message
type.
Connection Failures
Virtual Path Connection Failures
Multicast Failures
QoS Failures (QoS failures are specified in Section 9.7.)
General Failures
If multiple failures match in any of the following categories, the
one that is listed first should be returned. The following failure
response messages and failure codes are defined:
Invalid Message
3: The specified request is not implemented on this switch.
The Message Type field specifies a message that is not
implemented on the switch or contains a value that is not
defined in the version of the protocol running in this
session of GSMP.
5: One or more of the specified ports does not exist.
At least one of the ports specified in the message is
invalid. A port is invalid if it does not exist or if it
has been removed from the switch.
4: Invalid Port Session Number.
The value given in the Port Session Number field does not
match the current Port Session Number for the specified
port.
Connection Failures
8: The specified connection does not exist.
An operation that expects a connection to be specified,
either a virtual channel or a virtual path connection,
cannot locate the specified connection. A virtual channel
connection is specified by the input port, input VPI, and
input VCI on which it arrives. A virtual path connection
is specified by the input port and input VPI on which it
arrives.
9: The specified branch does not exist.
An operation that expects a branch of an existing
connection to be specified, either a virtual channel or a
virtual path connection, cannot locate the specified
branch. A branch of a virtual channel connection is
specified by the virtual channel connection it belongs to
and the output port, output VPI, and output VCI on which
it departs. A branch of a virtual path connection is
specified by the virtual path connection it belongs to
and the output port and output VPI on which it departs.
18: One or more of the specified input VPIs is invalid.
19: One or more of the specified input VCIs is invalid.
20: One or more of the specified output VPIs is invalid.
21: One or more of the specified output VCIs is invalid.
22: Invalid Class of Service field in a Connection Management
message.
The value of the Class of Service field is invalid.
23: Insufficient resources for QoS Profile.
The resources requested by the QoS Profile in the Class
of service field are not available.
Virtual Path Connections
24: Virtual path switching is not supported on this input port.
25: Point-to-multipoint virtual path connections are not
supported on either the requested input port or the
requested output port.
One or both of the requested input and output ports is
unable to support point-to-multipoint virtual path
connections.
26: Attempt to add a virtual path connection branch to an
existing virtual channel connection.
It is invalid to mix branches switched as virtual channel
connections with branches switched as virtual path
connections on the same point-to-multipoint connection.
27: Attempt to add a virtual channel connection branch to an
existing virtual path connection.
It is invalid to mix branches switched as virtual channel
connections with branches switched as virtual path
connections on the same point-to-multipoint connection.
Multicast Failures
10: A branch belonging to the specified point-to-multipoint
connection is already established on the specified output
port and the switch cannot support more than a single
branch of any point-to-multipoint connection on the same
output port.
11: The limit on the maximum number of point-to-multipoint
connections that the switch can support has been reached.
12: The limit on the maximum number of branches that the
specified point-to-multipoint connection can support has
been reached.
17: Cannot label each output branch of a point-to-multipoint tree
with a different label.
Some early designs, and some low-cost ATM switch designs,
require all output branches of a multicast connection to
use the same value of VPI/VCI.
28: Only point-to-point bidirectional connections may be
established.
It is an error to attempt to add an additional output
branch to an existing connection with the bidirectional
flag set.
13: Unable to assign the requested VPI/VCI value to the requested
branch on the specified point-to-multipoint connection.
Although the requested VPI and VCI are valid, the switch
is unable to support the request using the specified
values of VPI and VCI for some reason not covered by the
above failure responses. This message implies that a
valid value of VPI or VCI exists that the switch could
support. For example, some switch designs restrict the
number of distinct VPI/VCI values available to a point-
to-multipoint connection. (Most switch designs will not
require this message.)
14: General problem related to the manner in which point-to-
multipoint is supported by the switch.
Use this message if none of the more specific multicast
failure messages apply. (Most switch designs will not
require this message.)
General Failures
2: Invalid request message.
There is an error in one of the fields of the message not
covered by a more specific failure message.
6: One or more of the specified ports is down.
A port is down if its Port Status is Unavailable.
Connection Management, Connection State, Port Management,
and Configuration operations are permitted on a port that
is Unavailable. Connection Activity and Statistics
operations are not permitted on a port that is
Unavailable and will generate this failure response. A
Port Management message specifying a Take Down function
on a port already in the Unavailable state will also
generate this failure response.
15: Out of resources.
The switch has exhausted a resource not covered by a more
specific failure message, for example, running out of
memory.
1: Unspecified reason not covered by other failure codes.
The failure message of last resort.
The following failure response messages are only used by the Label
Range message.
29: Cannot support requested VPI range.
30: Cannot support requested VCI range on all requested VPIs.
The following failure response messages are only used by the Set
Transmit Cell Rate function of the Port Management
message.
31: The transmit cell rate of this output port cannot be changed.
32: Requested transmit cell rate out of range for this output
port.
4. Connection Management Messages
Connection management messages are used by the controller to
establish, delete, modify and verify virtual channel connections and
virtual path connections across the switch. The Add Branch, Delete
Tree, and Delete All connection management messages have the
following format for both request and response messages:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transaction Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Port Session Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Input Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|M|Q|B|C| Input VPI | Input VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Output Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|x x x x| Output VPI | Output VCI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Branches | Class of Service |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Input Port
Identifies a switch input port.
Flags
M: Multicast
The Multicast flag is used as a hint for point-to-
multipoint connections in the Add Branch message. It is not
used in any other connection management messages and in
these messages it should be set to zero. If set, it
indicates that the virtual channel connection or the
virtual path connection is very likely to be a point-to-
multipoint connection. If zero, it indicates that this
connection is very likely to be a point-to-point connection
or is unknown.
The Multicast flag is only used in the Add Branch message
when establishing the first branch of a new connection. It
is not required to be set when establishing subsequent
branches of a point-to-multipoint connection and on such
connections it should be ignored by the receiver. (On
receipt of the second and subsequent Add Branch messages
the receiver knows that this is a point-to-multipoint
connection.) If it is known that this is the first branch
of a point-to-multipoint connection this flag should be
set. If it is unknown, or if it is known that the
connection is point-to-point this flag should be zero. The
use of this flag is not mandatory. It may be ignored by the
switch. If unused the flag should be set to zero. Some
switches use a different data structure for point-to-
multipoint connections than for point-to-point connections.
This flag avoids the switch setting up a point-to-point
structure for the first branch of a point-to-multipoint
connection which must immediately be deleted and
reconfigured as point-to-multipoint when the second branch
is established.
Q: QoS Profile
The QoS Profile flag, if set, indicates that the Class of
Service field contains a QoS Profile Identifier. If this
flag is zero, it indicates that the Class of Service field
contains a Priority or a Scheduler Identifier.
B: Bidirectional
The Bidirectional flag applies only to the Add Branch
message. In all other Connection Management messages it is
not used. It may only be used when establishing a point-
to-point connection. The Bidirectional flag in an Add
Branch message, if set, requests that two unidirectional
virtual channels or virtual paths be established, one in
the forward direction, and one in the reverse direction. It
is equivalent to two Add Branch messages, one specifying
the forward direction, and one specifying the reverse
direction. The forward direction uses the values of Input
Port, Input VPI, Input VCI, Output Port, Output VPI, and
Output VCI as specified in the Add Branch message. The
reverse direction is derived by exchanging the values
specified in the Input Port, Input VPI, and Input VCI
fields, with those of the Output Port, Output VPI, and
Output VCI fields respectively. Thus, a virtual connection
in the reverse direction arrives at the input port
specified by the Output Port field, on the VPI/VCI
specified by the Output VPI and Output VCI fields. It
departs from the output port specified by the Input Port
field, on the VPI/VCI specified by the Input VPI and Input
VCI fields.
The Bidirectional flag is simply a convenience to establish
two unidirectional virtual connections in opposite
directions between the same two ports, with identical
VPI/VCIs, using a single Add Branch message. In all future
messages the two unidirectional virtual connections must be
handled separately. There is no bidirectional delete
message. However, a single Delete Branches message with two
Delete Branch Elements, one for the forward connection and
one for the reverse, may be used.
C: Congestion Indication
The Congestion Indication flag, if set, requests that cells
on this connection be marked if congestion is experienced.
If this connection passes through a queue that the switch
considers to be congested, the Congestion Experienced bit
will be set in the Payload Type field of the cell header of
all cells on the connection. GSMP does not specify the
algorithm or any threshold by which the switch decides when
a queue is congested.
Input VPI
Identifies an ATM virtual path arriving at the switch input
port indicated by the Input Port field.
Input VCI
Identifies an ATM virtual channel arriving on the virtual
path indicated by the Input VPI field at the switch input
port indicated by the Input Port field. For virtual path
connections the Input VCI field is not used.
Output Port
Identifies a switch output port.
x: Unused
Output VPI
Identifies an outgoing virtual path departing from the
switch output port indicated in the Output Port field.
Output VCI
Identifies an outgoing virtual channel departing on the
virtual path indicated by the Output VPI field from the
switch output port indicated in the Output Port field. For
virtual path connections the Output VCI field is not used.
Number of Branches
In a success response message and a failure response
message, gives the number of output branches on a virtual
channel connection or a virtual path connection after
completion of the requested operation. (A point-to-point
connection will have one branch, a point-to-multipoint
connection will have two or more branches.) If the switch
is unable to keep track of the number of branches on a
virtual path connection or a virtual channel connection it
must respond with the value 0xFFFF meaning: "number of
branches unknown". This field is not used in the request
message.
Class of Service
This field can contain either a QoS Profile Identifier, a
Priority, or a Scheduler Identifier. If the QoS Profile
flag in the Flags field is set, the Class of Service field
contains a QoS Profile. If the QoS Profile flag in the
Flags field is zero, and the value of the Class of Service
field is greater than or equal to 0x100, the Class of
Service field contains a Scheduler Identifier. If the QoS
Profile flag in the Flags field is zero, and the value of
the Class of Service field is less than 0x100, the Class of
Service field contains a Priority. (Values of Scheduler
Identifier less than 0x100 are interpreted as priorities.)
The Class of Service field is only used in the Add Branch
and Move Branch messages.
A QoS Profile Identifier is an opaque 16-bit value. It is
used to identify a QoS profile in the switch which
specifies the Quality of Service required by the
connection. QoS profiles are established by a mechanism
external to GSMP.
A Scheduler Identifier is an alternative method of
communicating the QoS requirements of a connection. The
Scheduler Identifier is defined in Section 9, "Quality of
Service Messages."
A Priority specifies the priority of the connection for Add
Branch and Move Branch messages that choose not to use a
QoS profile, or the QoS capabilities defined in Section 9,
"Quality of Service Messages." The highest priority is
numbered zero and the lowest priority is numbered "Q-1"
where "Q" is the number of priorities that the output port
can support. The ability to offer different qualities of
service to different connections based upon their priority
is assumed to be a property of the output port of the
switch. It is assumed that for virtual path connections or
virtual channel connections that share the same output
port, an ATM cell on a connection with a higher priority is
much more likely to exit the switch before an ATM cell on a
connection with a lower priority, if they are both in the
switch at the same time. The number of priorities that each
output port can support is given in the Port Configuration
message.
For all connection management messages, except the Delete Branches
message, the success response message is a copy of the request
message returned with the Result field indicating success and the
Number of Branches field indicating the number of branches on the
connection after completion of the operation. The Code field is not
used in a connection management success response message.
The failure response message is a copy of the request message
returned with a Result field indicating failure and the Number of
Branches field indicating the number of branches on the connection.
Fundamentally, no distinction is made between point-to-point and
point-to-multipoint connections. By default, the first Add Branch
message for a particular Input Port, Input VPI, and Input VCI will
establish a point-to-point virtual connection. The second Add Branch
message with the same Input Port, Input VPI, and Input VCI fields
will convert the connection to a point-to-multipoint virtual
connection with two branches. (For virtual path connections the Input
VCI is not required.) However, to avoid possible inefficiency with
some switch designs, the Multicast Flag is provided. If the
controller knows that a new connection is point-to-multipoint when
establishing the first branch, it may indicate this in the Multicast
Flag. Subsequent Add Branch messages with the same Input Port, Input
VPI, and Input VCI fields will add further branches to the point-to-
multipoint connection. Use of the Delete Branch message on a point-
to-multipoint connection with two branches will result in a point-
to-point connection. However, the switch may structure this
connection as a point-to-multipoint connection with a single output
branch if it chooses. (For some switch designs this structure may be
more convenient.) Use of the Delete Branch message on a point-to-
point connection will delete the point-to-point connection. There is
no concept of a connection with zero output branches. All connections
are unidirectional, one input virtual path or virtual channel to one
or more output virtual paths or virtual channels.
GSMP supports point-to-point and point-to-multipoint connections. A
multipoint-to-point connection is specified by establishing multiple
point-to-point connections each of them specifying the same output
branch. (An output branch is specified by an output port and output
VPI for a virtual path connection and by an output port, output VPI,
and output VCI for a virtual channel connection.) A multipoint-to-
multipoint connection is specified by establishing multiple point-
to-multipoint trees each of them specifying the same output branches.
The connection management messages apply both to virtual channel
connections and virtual path connections. The Add Branch and Move
Branch connection management messages have two Message Types. One
Message Type indicates that a virtual channel connection is required,
and the other Message Type indicates that a virtual path connection
is required. The Delete Branches, Delete Tree, and Delete All
connection management messages have only a single Message Type
because they do not need to distinguish between virtual channel
connections and virtual path connections. For virtual path
connections, neither Input VCI fields nor Output VCI fields are
required. They should be set to zero by the sender and ignored by the
receiver. Virtual channel branches may not be added to an existing
virtual path connection. Conversely, virtual path branches may not
be added to an existing virtual channel connection. In the Port
Configuration message each switch input port may declare whether it
is capable of supporting virtual path switching (i.e. accepting
connection management messages requesting virtual path connections).
The connection management messages may be issued regardless of the
Port Status of the switch port. Connections may be established or
deleted when a switch port is in the Available, Unavailable, or any
of the Loopback states. However, all connection state on an input
port will be deleted when the port returns to the Available state
from any other state, i.e. when a Port Management message is received
for that port with the Function field indicating either Bring Up, or
Reset Input Port.
4.1 Add Branch Message
The Add Branch message is a connection management message used to
establish a virtual channel connection or a virtual path connection
or to add an additional branch to an existing virtual channel
connection or virtual path connection. It may also be used to check
the connection state stored in the switch. The connection is
specified by the Input Port, Input VPI, and Input VCI fields. The
output branch is specified by the Output Port, Output VPI, and Output
VCI fields. The quality of service requirements of the connection are
specified by the Class of Service field. To request a virtual channel
connection the Virtual Channel Connection (VCC) Add Branch message
is:
Message Type = 16
To request a virtual path connection the Virtual Path Connection
(VPC) Add Branch message is:
Message Type = 26
If a VPC Add Branch message is received and the switch input port
specified by the Input Port field does not support virtual path
switching, a failure response message must be returned indicating,
"Virtual path switching is not supported on this input port."
If the virtual channel connection specified by the Input Port, Input
VPI, and Input VCI fields; or the virtual path connection specified
by the Input Port and Input VPI fields; does not already exist, it
must be established with the single output branch specified in the
request message. If the Bidirectional Flag in the Flags field is set,
the reverse connection must also be established. The output branch
should have the QoS attributes specified by the Class of Service
field.
For the VCC Add Branch message, if a virtual path connection already
exists on the virtual path specified by the Input Port and Input VPI
fields, a failure response message must be returned indicating,
"Attempt to add a virtual channel connection branch to an existing
virtual path connection." For the VPC Add Branch message, if a
virtual channel connection already exists on any of the virtual
channels within the virtual path specified by the Input Port and
Input VPI fields, a failure response message must be returned
indicating, "Attempt to add a virtual path connection branch to an
existing virtual channel connection."
If the virtual channel connection specified by the Input Port, Input
VPI, and Input VCI fields; or the virtual path connection specified
by the Input Port and Input VPI 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.
If the virtual channel connection specified by the Input Port, Input
VPI, and Input VCI fields; or the virtual path connection specified
by the Input Port and Input VPI 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).
If the output branch specified by the Output Port, Output VPI, and
Output VCI fields for a virtual channel connection; or the output
branch specified by the Output Port and Output VPI fields for a
virtual path connection; is already in use by any connection other
than that specified by the Input Port, Input VPI, and Input VCI
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. If
multiple point-to-multipoint trees share the same output branches the
result will be a multipoint-to-multipoint connection.
If the virtual channel connection specified by the Input Port, Input
VPI, and Input VCI fields, or the virtual path connection specified
by the Input Port and Input VPI fields, already exists, and the
Bidirectional Flag in the Flags field is set, a failure response must