6. Management Messages
6.1 Port Management Message
The Port Management message allows a port to be brought into service, to be taken out of service, to be set to loop back, reset, or to change the transmit data rate. Only the Bring Up and the Reset Input Port functions change the connection state (established connections) on the input port. Only the Bring Up function changes the value of the Port Session Number. The Port Management message MAY also be used for enabling the replace connection mechanism. The Port Management message is also used as part of the Event Message flow control mechanism. If the Result field of the request message is "AckAll", a success response message MUST be sent upon successful completion of the operation. The success response message MUST NOT be sent until the operation has been completed. The Port Management Message is: Message Type = 32
The Port Management message has the following format for the request and success 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|x|x|x|x|x|x|x| Duration | Function | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Flags | Flow Control Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Data Rate | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Fields and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details. Event Sequence Number The success response message gives the current value of the Event Sequence Number of the switch port indicated by the Port field. The Event Sequence Number is set to zero when the port is initialised. It is incremented by one each time the port detects an asynchronous event that the switch would normally report via an Event message. If the Event Sequence Number in the success response differs from the Event Sequence Number of the most recent Event message received for that port, events have occurred that were not reported via an Event message. This is most likely to be due to the flow control that restricts the rate at which a switch can send Event messages for each port. In the request message this field is not used. R: Connection Replace The R flag shall only be checked when the Function field = 1 (Bring Up). If the R flag is set in the Port Management request message, it indicates that a switch controller requests the switch port to support the Connection Replace mechanism.
Connection Replace behaviour is described in chapter 4.2. If a switch does not support the Connection Replace mechanism, it MUST reply with the failure response: "45: Connection Replace mechanism not supported on switch" and reset the R-flag. Upon successful response, the R flag SHOULD remain set in the response message. Duration Is the length of time in seconds, that any of the loopback states remain in operation. When the duration has expired, the port will automatically be returned to service. If another Port Management message is received for the same port before the duration has expired, the loopback will continue to remain in operation for the length of time specified by the Duration field in the new message. The Duration field is only used in request messages with the Function field set to Internal Loopback, External Loopback, or Bothway Loopback. Function Specifies the action to be taken. The specified action will be taken regardless of the current status of the port (Available, Unavailable, or any Loopback state). If the specified function requires a new Port Session Number to be generated, the new Port Session Number MUST be returned in the success response message. The defined values of the Function field are: Bring Up: Function = 1. Bring the port into service. All connections that originate at the specified input port MUST be deleted and a new Port Session Number MUST be selected, preferably using some form of random number. On completion of the operation all dynamically assigned Label values for the specified input port MUST be unassigned, i.e., no connections will be established in the Label space that GSMP controls on this input port. Afterwards, the Port Status of the port will be Available. Take Down: Function = 2. Take the port out of service. Any data received at this port will be discarded. No data will be transmitted from this port. Afterwards, the Port Status of the port will be Unavailable. The behaviour is undefined if the port is taken down over which the GSMP session that controls the switch is running. (In this case the most probable behaviour would be for the switch either to ignore the message or to terminate the current GSMP session and to initiate another session,
possibly with the backup controller, if any.) The correct method to reset the link over which GSMP is running is to issue an RSTACK message in the adjacency protocol. Internal Loopback: Function = 3. Data arriving at the output port from the switch fabric are looped through to the input port to return to the switch fabric. All of the functions of the input port above the physical layer, e.g., header translation, are performed upon the looped back data. Afterwards, the Port Status of the port will be Internal Loopback. External Loopback: Function = 4. Data arriving at the input port from the external communications link are immediately looped back to the communications link at the physical layer without entering the input port. None of the functions of the input port, above the physical layer are performed upon the looped back data. Afterwards, the Port Status of the port will be External Loopback. Bothway Loopback: Function = 5. Both internal and external loopbacks are performed. Afterwards, the Port Status of the port will be Bothway Loopback. Reset Input Port: Function = 6. All connections that originate at the specified input port MUST be deleted and the input and output port hardware re-initialised. On completion of the operation, all dynamically assigned Label values for the specified input port MUST be unassigned, i.e., no connections will be established in the Label space that GSMP controls on this input port. The range of labels that may be controlled by GSMP on this port will be set to the default values specified in the Port Configuration message. The transmit data rate of the output port MUST be set to its default value. The Port Session Number is not changed by the Reset Input Port function. Afterwards, the Port Status of the port will be Unavailable. Reset Flags: Function = 7. This function is used to reset the Event Flags and Flow Control Flags. For each bit that is set in the Event Flags field, the corresponding Event Flag in the switch port MUST be reset to 0. For each bit that is set in the Flow Control Flags field, the corresponding Flow Control Flag in the switch port MUST be toggled; i.e., flow control
for the corresponding event is turned off if is currently on and it is turned on if it is currently off. The Port Status of the port is not changed by this function. Set Transmit Data Rate: Function = 8. Sets the transmit data rate of the output port as close as possible to the rate specified in the Transmit Data Rate field. In the success response message, the Transmit Data Rate MUST indicate the actual transmit data rate of the output port. If the transmit data rate of the requested output port cannot be changed a failure response MUST be returned with the Code field indicating: "43: The transmit data rate of this output port cannot be changed". If the transmit data rate of the requested output port can be changed, but the value of the Transmit Data Rate field is beyond the range of acceptable values, a failure response MUST be returned with the Code field indicating: "44: Requested transmit data rate out of range for this output port". In the failure response message, the Transmit Data Rate MUST contain the same value as contained in the request message that caused the failure. The transmit data rate of the output port is not changed by the Bring Up, Take Down, or any of the Loopback functions. It is returned to the default value by the Reset Input Port function. Transmit Data Rate This field is only used in request and success response messages with the Function field set to "Set Transmit Data Rate". It is used to set the output data rate of the output port. It is specified in cells/s and bytes/s. If the Transmit Data Rate field contains the value 0xFFFFFFFF the transmit data rate of the output port SHOULD be set to the highest valid value. Event Flags Field in the request message that is used to reset the Event Flags in the switch port indicated by the Port field. Each Event Flag in a switch port corresponds to a type of Event message. When a switch port sends an Event message, it sets the corresponding Event Flag on that port. Depending on the setting in the Flow Control Flag, a port is either subject to flow control or not. If it is subject to flow control, then it is not permitted to send another Event message of the same type before the Event Flag has been reset. To reset an event flag, the Function field in the request message is set to "Reset Flags". For each bit that is set in the Event Flags field, the corresponding Event Flag in the switch port is reset.
The Event Flags field is only used in a request message with the Function field set to "Reset Event Flags". For all other values of the Function field, the Event Flags field is not used. In the success response message the Event Flags field MUST be set to the current value of the Event Flags for the port, after the completion of the operation specified by the request message, for all values of the Function field. Setting the Event Flags field to all zeros in a "Reset Event Flags" request message allows the controller to obtain the current state of the Event Flags and the current Event Sequence Number of the port without changing the state of the Event Flags. The correspondence between the types of Event messages and the bits of the Event Flags field is as follows: 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |U|D|I|N|Z|A|x|x|x|x|x|x|x|x|x|x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ U: Port Up Bit 0, (most significant bit) D: Port Down Bit 1, I: Invalid Label Bit 2, N: New Port Bit 3, Z: Dead Port Bit 4, A: Adjacency Event Bit 5, x: Unused Bits 6-15. Flow Control Flags Field The flags in this field are used to indicate whether the flow control mechanism described in the Events Flag field is turned on or not. If the Flow Control Flag is set, then the flow control mechanism for that event on that port is activated. To toggle the flow control mechanism, the Function field in the request message is set to "Reset Flags". When doing a reset, for each flag that is set in the Flow Control Flags field, the corresponding flow control mechanism MUST be toggled. The Flow Control Flags correspond to the same event definitions as defined for the Event Flag.
6.2 Label Range Message
The default label range, Min Label to Max Label, is specified for each port by the Port Configuration or the All Ports Configuration messages. When the protocol is initialised, before the transmission of any Label Range messages, the label range of each port will be set to the default label range. (The default label range is dependent upon the switch design and configuration and is not specified by the GSMP protocol.) The Label Range message allows the range of labels supported by a specified port, to be changed. Each switch port MUST declare whether it supports the Label Range message in the Port Configuration or the All Ports Configuration messages. The Label Range message is: Message Type = 33 The Label Range message has the following format for the request and success 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Q|M|D|x| Range Count | Range Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Label Range Block ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Fields and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details.
Each element of the Label Range Block has the following format: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|C| | +-+-+-+-+ Min Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| | +-+-+-+-+ Max Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remaining Labels | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Flags Q: Query If the Query flag is set in a request message, the switch MUST respond with the current range of valid labels. The current label range is not changed by a request message with the Query flag set. If the Query flag is zero, the message is requesting a label change operation. M: Multipoint Query If the Multipoint Query flag is set the switch MUST respond with the current range of valid specialized multipoint labels. The current label range is not changed by a request message with the Multipoint Query flag set. D: Non-contiguous Label Range Indicator This flag will be set in a Query response if the labels available for assignment belong to a non-contiguous set. V: Label The Label flag use is port type specific. C: Multipoint Capable Indicates label range that can be used for multipoint connections. Range Count Count of Label Range elements contained in the Label Range Block. Range Length Byte count in the Label Range Block.
Min Label The minimum label value in the range. Max Label The maximum label value in the range. Remaining Labels The maximum number of remaining labels that could be requested for allocation on the specified port. The success response to a Label Range message requesting a change of label range is a copy of the request message with the Remaining Labels field updated to the new values after the Label Range operation. If the switch is unable to satisfy a request to change the Label range, it MUST return a failure response message with the Code field set to: "40: Cannot support one or more requested label ranges". In this failure response message, the switch MUST use the Min Label and Max Label fields to suggest a label range that it is able to satisfy. A Label Range request message may be issued regardless of the Port Status or the Line Status of the target switch port. If the Port field of the request message contains an invalid port (a port that does not exist or a port that has been removed from the switch) a failure response message MUST be returned with the Code field set to, "4: One or more of the specified ports does not exist". If the Query flag is set in the request message, the switch MUST reply with a success response message containing the current range of valid labels that are supported by the port. The Min Label and Max Label fields are not used in the request message. If the Multipoint Query flag is set in the request message and the switch does not support a range of valid multipoint labels, then the switch MUST reply with a failure response message with the Code field set to, "42: Specialised multipoint labels not supported". The Min Label and Max Label fields are not used in the Multipoint request message. If a label range changes and there are extant connection states with labels used by the previous label range, a success response message MUST be returned with the Code field set to, "46: One or more labels are still used in the previous Label Range". This action indicates that the label range has successfully changed but with a warning that there are extant connection states for the previous label range.
6.2.1 Labels
6.2.1.1 ATM Labels
If the Label Type = ATM Label, the labels range message MUST be interpreted as an ATM Label as shown: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|C| ATM Label (0x100) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| min VPI | min VCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| ATM Label (0x100) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| max VPI | max VCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remaining VPI's | Remaining VCI's | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ V: Label If the Label flag is set, the message refers to a range of VPI's only. The Min VCI and Max VCI fields are unused. If the Label flag is zero the message refers to a range of VCI's on either one VPI or on a range of VPI's. Min VPI, Max VPI Specify a range of VPI values, Min VPI to Max VPI inclusive. A single VPI may be specified with a Min VPI and a Max VPI having the same value. In a request message, if the value of the Max VPI field is less than or equal to the value of the Min VPI field, the requested range is a single VPI with a value equal to the Min VPI field. Zero is a valid value. In a request message, if the Query flag is set, and the Label flag is zero, the Max VPI field specifies a single VPI and the Min VPI field is not used. The maximum valid value of these fields for both request and response messages is 0xFFF. Min VCI, Max VCI Specify a range of VCI values, Min VCI to Max VCI inclusive. A single VCI may be specified with a Min VCI and a Max VCI having the same value. In a request message, if the value of the Max VCI field is less than or equal to the value of the Min VCI field, the requested range is a single VCI with a value equal to the Min VCI field. Zero is a valid value. (However, VPI=0, VCI=0 is not available as a virtual channel connection as it is used as a special value in ATM to indicate an unassigned cell.)
Remaining VPI's, Remaining VCI's These fields are unused in the request message. In the success response message and in the failure response message these fields give the maximum number of remaining VPI's and VCI's that could be requested for allocation on the specified port (after completion of the requested operation in the case of the success response). It gives the switch controller an idea of how many VPI's and VCI's it could request. The number given is the maximum possible given the constraints of the switch hardware. There is no implication that this number of VPI's and VCI's is available to every switch port. If the Query flag and the Label flag are set in the request message, the switch MUST reply with a success response message containing the current range of valid VPI's that are supported by the port. The Min VPI and Max VPI fields are not used in the request message. If the Query flag is set and the Label flag is zero in the request message, the switch MUST reply with a success response message containing the current range of valid VCI's that are supported by the VPI specified by the Max VPI field. If the requested VPI is invalid, a failure response MUST be returned indicating: "13: One or more of the specified Input Labels is invalid". The Min VPI field is not used in either the request or success response messages. If the Query flag is zero and the Label flag is set in the request message, the Min VPI and Max VPI fields specify the new range of VPI's to be allocated to the input port specified by the Port field. The range of VPI's previously allocated to this port SHOULD be increased or decreased to the specified value. If the Query flag and the Label flag are zero in the request message, the Min VCI and Max VCI fields specify the range of VCI's to be allocated to each of the VPI's specified by the VPI range. The range of VCI's previously allocated to each of the VPI's within the specified VPI range on this port, it SHOULD be increased or decreased to the specified value. The allocated VCI range MUST be the same on each of the VPI's within the specified VPI range. If the switch is unable to satisfy a request to change the label range, it MUST return a failure response message with the Code field set to: "40: Cannot support one or more requested label ranges". If the switch is unable to satisfy a request to change the VPI, the switch MUST use the Min VPI and Max VPI fields to suggest a VPI range that it would be able to satisfy and set the VCI fields to zero, or if the switch is unable to satisfy a request to change the VCI range
on all VPI's within the requested VPI range, the switch MUST use the Min VPI, Max VPI, Min VCI, and Max VCI fields to suggest a VPI and VCI range that it would be able to satisfy. In all other failure response messages for the label range operation, the switch MUST return the values of Min VPI, Max VPI, Min VCI, and Max VCI from the request message. While switches can typically support all 256 or 4096 VPI's, the VCI range that can be supported is often more constrained. Often the Min VCI MUST be 0 or 32. Typically all VCI's within a particular VPI MUST be contiguous. The hint in the failure response message allows the switch to suggest a label range that it could satisfy in view of its particular architecture. While the Label Range message is defined to specify both a range of VPI's and a range of VCI's within each VPI, the most likely use is to change either the VPI range or the range of VCI's within a single VPI. It is possible for a VPI to be valid but to be allocated no valid VCI's. Such a VPI could be used for a virtual path connection, but to support virtual channel connections it would need to be allocated a range of VCI's.6.2.1.2 Frame Relay Labels
If the Label Type = FR Label, the labels range message MUST be interpreted as Frame Relay Labels as shown: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|C| FR Label (0x101) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| Res |Len| Min DLCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| FR Label (0x101) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| Res |Len| Max DLCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remaining DLCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ V: Label The Label flag is not used. Res The Res field is reserved in [21], i.e., it is not explicitly reserved by GSMP.
Len The Len field specifies the number of bits of the DLCI. The following values are supported: Len DLCI bits 0 10 2 23 Min DLCI, Max DLCI Specify a range of DLCI values, Min DLCI to Max DLCI inclusive. The values SHOULD be right justified in the 23-bit fields and the preceding bits SHOULD be set to zero. A single DLCI may be specified with a Min DLCI and a Max DLCI having the same value. In a request message, if the value of the Max DLCI field is less than or equal to the value of the Min DLCI field, the requested range is a single DLCI with a value equal to the Min DLCI field. Zero is a valid value. Remaining DLCI's This field is unused in the request message. In the success response message and in the failure response message, this field gives the maximum number of remaining DLCI's that could be requested for allocation on the specified port (after completion of the requested operation in the case of the success response). It gives the switch controller an idea of how many DLCI's it could request. The number given is the maximum possible given the constraints of the switch hardware. There is no implication that this number of DLCI's is available to every switch port.6.2.1.3 MPLS Generic Labels
The Label Range Block for PortTypes using MPLS labels. These types of labels are for use on links for which label values are independent of the underlying link technology. Examples of such links are PPP and Ethernet. On such links the labels are carried in MPLS label stacks [14]. If Label Type = MPLS Gen Label, the labels range message MUST be interpreted as MPLS Generic Label as shown:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|C| MPLS Gen Label (0x102)| Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x|x|x|x|x|x|x|x|x| Min MPLS Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| MPLS Gen Label (0x102)| Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x|x|x|x|x|x|x|x|x| Max MPLS Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Remaining Labels | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ V: Label The Label flag is not used. Min MPLS Label, Max MPLS Label Specify a range of MPLS label values, Min MPLS Label to Max MPLS Label inclusive. The Max and Min MPLS label fields are 20 bits each. Remaining MPLS Labels This field is unused in the request message. In the success response message and in the failure response message this field gives the maximum number of remaining MPLS Labels that could be requested for allocation on the specified port (after completion of the requested operation in the case of the success response). It gives the switch controller an idea of how many MPLS Labels it could request. The number given is the maximum possible given the constraints of the switch hardware. There is no implication that this number of Labels is available to every switch port.6.2.1.4 FEC Labels
The Label Range message is not used for FEC Labels and is for further study.7. State and Statistics Messages
The state and statistics messages permit the controller to request the values of various hardware counters associated with the switch input and output ports and connections. They also permit the controller to request the connection state of a switch input port. The Connection Activity message is used to determine whether one or
more specific connections have recently been carrying traffic. The Statistics message is used to query the various port and connection traffic and error counters. The Report Connection State message is used to request an input port to report the connection state for a single connection, a single ATM virtual path connection, or for the entire input port.7.1 Connection Activity Message
The Connection Activity message is used to determine whether one or more specific connections have recently been carrying traffic. The Connection Activity message contains one or more Activity Records. Each Activity Record is used to request and return activity information concerning a single connection. Each connection is specified by its input port and Input Label which are specified in the Input Port and Input Label fields of each Activity Record. Two forms of activity detection are supported. If the switch supports per connection traffic accounting, the current value of the traffic counter for each specified connection MUST be returned. The units of traffic counted are not specified but will typically be either cells or frames. The controller MUST compare the traffic counts returned in the message with previous values for each of the specified connections to determine whether each connection has been active in the intervening period. If the switch does not support per connection traffic accounting, but is capable of detecting per connection activity by some other unspecified means, the result may be indicated for each connection using the Flags field. The Connection Activity message is: Message Type = 48
The Connection Activity request and success response messages 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of Records |x x x x x x x x x x x x x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Activity Records ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Fields and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details. Number of Records Field specifies the number of Activity Records to follow. The number of Activity records in a single Connection Activity message MUST NOT cause the packet length to exceed the maximum transmission unit defined by the encapsulation. Each Activity Record has the following format: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V|C|A|x| TC Count | TC Block Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Input Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Traffic Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| | +-+-+-+-+ Input Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags V: Valid Record In the success response message the Valid Record flag is used to indicate an invalid Activity Record. The flag MUST be zero if any of the fields in this Activity Record are invalid, if the input port specified by the Input Port field does not exist, or if the specified connection does not exist. If the Valid Record flag is zero in a success response message, the Counter flag, the Activity flag, and the Traffic Count field are undefined. If the Valid Record flag is set, the Activity Record is valid, and the Counter and Activity flags are valid. The Valid Record flag is not used in the request message. C: Counter In a success response message, if the Valid Record flag is set, the Counter flag, if zero, indicates that the value in the Traffic Count field is valid. If set, it indicates that the value in the Activity flag is valid. The Counter flag is not used in the request message. A: Activity In a success response message, if the Valid Record and Counter flags are set, the Activity flag, if set, indicates that there has been some activity on this connection since the last Connection Activity message for this connection. If zero, it indicates that there has been no activity on this connection since the last Connection Activity message for this connection. The Activity flag is not used in the request message. TC Count In cases where per connection traffic counting is supported, this field contains the count of Traffic Count entries. TC Block Length In cases where per connection traffic counting is supported, this field contains the Traffic Count block size in bytes. Input Port Identifies the port number of the input port on which the connection of interest originates in order to identify the connection (regardless of whether the traffic count for the connection is maintained on the input port or the output port).
Input Label Fields identify the specific connection for which statistics are being requested. Traffic Count Field is not used in the request message. In the success response message, if the switch supports per connection traffic counting, the Traffic Count field MUST be set to the value of a free running, connection specific, 64-bit traffic counter counting traffic flowing across the specified connection. The value of the traffic counter is not modified by reading it. If per connection traffic counting is supported, the switch MUST report the Connection Activity result using the traffic count rather than using the Activity flag. The format of the failure response is the same as the request message with the Number of Records field set to zero and no Connection Activity records returned in the message. If the switch is incapable of detecting per connection activity, a failure response MUST be returned indicating, "3: The specified request is not implemented on this switch".7.2 Statistics Messages
The Statistics messages are used to query the various port, connection and error counters. The Statistics request messages 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| | +-+-+-+-+ Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Fields and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details.
Label The Label Fields identifies the specific connection for which statistics are being requested. The success response for the Statistics message has 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| | +-+-+-+-+ Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Input Cell Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Input Frame Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Input Cell Discard Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Input Frame Discard Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Header Checksum Error Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Input Invalid Label Count + | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Output Cell Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Output Frame Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Output Cell Discard Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Output Frame Discard Count + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Field and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details. Input Cell Count, Output Cell Count Give the value of a free running 64-bit counter counting cells arriving at the input or departing from the output respectively. These fields are relevant for label type = ATM, for all other label types these fields SHOULD be set to zero by the sender and ignored by the receiver. Input Frame Count, Output Frame Count Give the value of a free running 64-bit counter counting frames (packets) arriving at the input or departing from the output respectively. These fields are relevant for label types = FR and MPLS, for all other label types these fields SHOULD be set to zero by the sender and ignored by the receiver. Input Cell Discard Count, Output Cell Discard Count Give the value of a free running 64-bit counter counting cells discarded due to queue overflow on an input port or on an output port respectively. These fields are relevant for label type = ATM, for all other label types these fields SHOULD be set to zero by the sender and ignored by the receiver. Input Frame Discard Count, Output Frame Discard Count Give the value of a free running 64-bit counter counting frames discarded due to congestion on an input port or on an output port respectively. These fields are relevant for label
types = FR and MPLS, for all other label types these fields SHOULD be set to zero by the sender and ignored by the receiver. Header Checksum Error Count Gives the value of a free running 64-bit counter counting cells or frames discarded due to header checksum errors on arrival at an input port. For an ATM switch this would be the HEC count. Invalid Label Count Gives the value of a free running 64-bit counter counting cells or frames discarded because their Label is invalid on arrival at an input port.7.2.1 Port Statistics Message
The Port Statistics message requests the statistics for the switch port specified in the Port field. The contents of the Label field in the Port Statistics request message is ignored. All of the count fields in the success response message refer to per-port counts regardless of the connection to which the cells or frames belong. Any of the count fields in the success response message not supported by the port MUST be set to zero. The Port Statistics message is: Message Type = 497.2.2 Connection Statistics Message
The Connection Statistics message requests the statistics for the connection specified in the Label field that originates on the switch input port specified in the Port field. All of the count fields in the success response message refer only to the specified connection. The Header Checksum Error Count and Invalid Label Count fields are not connection specific and MUST be set to zero. Any of the other count fields not supported on a per connection basis MUST be set to zero in the success response message. The Connection Statistics message is: Message Type = 50
7.2.3 QoS Class Statistics Message
The QoS Class Statistics message is not supported in this version of GSMP. Message Type = 51 is reserved.7.3 Report Connection State Message
The Report Connection State message is used to request an input port to report the connection state for a single connection or for the entire input port. The Report Connection State message is: Message Type = 52 The Report Connection State request message has 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Input Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|A|V| | +-+-+-+-+ Input Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Field and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details. Input Port Identifies the port number of the input port for which the connection state is being requested.
Flags A: All Connections If the All Connections flag is set, the message requests the connection state for all connections that originate at the input port specified by the Input Port field. In this case the Input Label field and the Label flag are unused. V: ATM VPI The ATM VPI flag may only be set for ports with PortType=ATM. If the switch receives a Report Connection State message in which the ATM VPI flag set and in which the input port specified by the Input Port field does not have PortType=ATM, the switch MUST return a Failure response "28: ATM Virtual Path switching is not supported on non-ATM ports". If the All Connections flag is zero and the ATM VPI flag is also zero, the message requests the connection state for the connection that originates at the input port specified by the Port and Input Label fields. ATM specific procedures: If the All Connections flag is zero and the ATM VPI flag is set and the input port specified by the Input Port field has LabelType=ATM, the message requests the connection state for the virtual path connection that originates at the input port specified by the Input Port and Input VPI fields. If the specified Input VPI identifies an ATM virtual path connection (i.e., a single switched virtual path) the state for that connection is requested. If the specified Input VPI identifies a virtual path containing virtual channel connections, the message requests the connection state for all virtual channel connections that belong to the specified virtual path. Input Label Field identifies the specific connection for which the connection state is being requested. For requests that do not require a connection to be specified, the Input Label field is not used.
The Report Connection State success response message has 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Partition ID | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |I| SubMessage Number | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Input Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Connection Records ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Note: Fields and Parameters that have been explained in the description of the general messages will not be explained in this section. Please refer to section 3.1 for details. Input Port Is the same as the Input Port field in the request message. It identifies the port number of the input port for which the connection state is being reported. Sequence Number In the case that the requested connection state cannot be reported in a single success response message, each successive success response message, in reply to the same request message, MUST increment the Sequence Number. The Sequence Number of the first success response message, in response to a new request message, MUST be zero. Connection Records Each success response message MUST contain one or more Connection Records. Each Connection Record specifies a single point-to-point or point-to-multipoint connection. The number of Connection Records in a single Report Connection State success response MUST NOT cause the packet length to exceed the maximum transmission unit defined by the encapsulation. If the requested connection state cannot be reported in a single success response message, multiple success response messages MUST be sent. All success response messages that are sent in
response to the same request message MUST have the same Input Port and Transaction Identifier fields as the request message. A single Connection Record MUST NOT be split across multiple success response messages. "More" in the Result field of a response message indicates that one or more further success response messages should be expected in response to the same request message. "Success" in the Result field indicates that the response to the request has been completed. The Result values are defined in chapter 3.1.1. Each Connection Record has the following format: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |A|V|P| Record Count | Record Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| | +-+-+-+-+ Input Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Output Branch Records ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Flags A: All Connections V: ATM VPI For the first Connection Record in each success response message, the All Connections and the ATM VPI flags MUST be the same as those of the request message. For successive Connection Records in the same success response message, these flags are not used. P: ATM VPC The ATM VPC flag may only be set for ports with PortType=ATM. The ATM VPC flag, if set and only if set, indicates that the Connection Record refers to an ATM virtual path connection. Input Label The input label of the connection specified in this Connection Record. Record Count Count of Output Branch Records included in a response message.
Record Length Length in bytes of Output Branch Records field Output Branch Records Each Connection Record MUST contain one or more Output Branch Records. Each Output Branch Record specifies a single output branch belonging to the connection identified by the Input Label field of the Connection Record and the Input Port field of the Report Connection State message. A point-to-point connection will require only a single Output Branch Record. A point-to-multipoint connection will require multiple Output Branch Records. If a point-to-multipoint connection has more output branches than can fit in a single Connection Record contained within a single success response message, that connection may be reported using multiple Connection Records in multiple success response messages. Each Output Branch Record has the following format: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Output Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| | +-+-+-+-+ Output Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Output Port The output port of the switch to which this output branch is routed. Output Label The output label of the output branch specified in this Output Branch Record. ATM specific procedures: If this Output Branch Record is part of a Connection Record that specifies a virtual path connection (the ATM VPC flag is set) the Output VCI field is unused. A Report Connection State request message may be issued regardless of the Port Status or the Line Status of the target switch port. If the Input Port of the request message is valid, and the All Connections flag is set, but there are no connections established on that port, a failure response message MUST be returned with the Code field set to, "10: General Message Failure". For the Report Connection State message, this failure code indicates that no
connections matching the request message were found. This failure message SHOULD also be returned if the Input Port of the request message is valid, the All Connections flag is zero, and no connections are found on that port matching the specified connection.