Network Working Group P. Newman, Nokia 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. Newman, et. al. Informational [Page 1] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 2] RFC 2297 Ipsilon's General Switch Management March 1998 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). Newman, et. al. Informational [Page 3] RFC 2297 Ipsilon's General Switch Management March 1998 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: Newman, et. al. Informational [Page 4] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 5] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 6] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 7] RFC 2297 Ipsilon's General Switch Management March 1998 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: Newman, et. al. Informational [Page 8] RFC 2297 Ipsilon's General Switch Management March 1998 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.") Newman, et. al. Informational [Page 9] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 10] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 11] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 12] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 13] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 14] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 15] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 16] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 17] RFC 2297 Ipsilon's General Switch Management March 1998 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. Newman, et. al. Informational [Page 18] RFC 2297 Ipsilon's General Switch Management March 1998 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 Newman, et. al. Informational [Page 19] RFC 2297 Ipsilon's General Switch Management March 1998 switch. It is assumed that for virtual path connections or