8. Configuration Messages
The configuration messages permit the controller to discover the capabilities of the switch. Three configuration request messages have been defined: Switch, Port, and All Ports.8.1 Switch Configuration Message
The Switch Configuration message requests the global (non port- specific) configuration for the switch. The Switch Configuration message is: Message Type = 64 The Port field is not used in the switch configuration message. The Switch Configuration 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MType | MType | MType | MType | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Firmware Version Number | Window Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Switch Type | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Switch Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max Reservations | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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.
MType Represents an alternative QoS Configuration type. In the request message the requested MType is in the most significant (leftmost) MType byte; the other three MType bytes are unused. The reply message will either accept the MType request by including the requested MType in the leftmost MType field of the response message or it will reject the MType request by responding with MType=0, the default MType, in the first MType field. Optionally, in the case of a rejection, the switch reply can include up to 3 additional MType values, each of which indicates an available alternative QoS Configuration. A switch that supports only the default QoS Configuration always returns MType=0 in all four MType fields. MType negotiation is discussed in section 8.1.1. 0 - Indicates use of the default GSMP model 1-200 - Reserved 201-255 - Experimental Firmware Version Number The version number of the switch control firmware installed. Window Size The maximum number of unacknowledged request messages that may be transmitted by the controller without the possibility of loss. This field is used to prevent request messages being lost in the switch because of overflow in the receive buffer. The field is a hint to the controller. If desired, the controller may experiment with higher and lower window sizes to determine heuristically the best window size. Switch Type A 16-bit field allocated by the manufacturer of the switch. (For these purposes, the manufacturer of the switch is assumed to be the organisation identified by the OUI in the Switch Name field.) The Switch Type identifies the product. When the Switch Type is combined with the OUI from the Switch Name the product is uniquely identified. Network Management may use this identification to obtain product related information from a database. Switch Name A 48-bit quantity that is unique within the operational context of the device. A 48-bit IEEE 802 MAC address, if available, may be used as the Switch Name. The most significant 24 bits
of the Switch Name MUST be an Organisationally Unique Identifier (OUI) that identifies the manufacturer of the switch. Max Reservations The maximum number of Reservations that the switch can support (see Chapter 5). A value of 0 indicates that the switch does not support Reservations.8.1.1 Configuration Message Processing
After adjacency between a controller and after a switch is first established the controller that opts to use a QoS Configuration model other then the default would send the Switch Configuration request including the requested QoS Configuration's MType value in the request message. This request MUST be sent before any connection messages are exchanged. If the switch can support the requested QoS configuration, then the switch includes the requested MType value in the response message as an indication that it accepts the request. If the switch cannot support the requested QoS Configuration, it replaces the MType value in the request message with that of the default QoS Configuration, i.e., MType=0. The switch configuration response messages may additionally include the MType values of up to three alternative QoS Configurations that the switch supports and that the controller may choose between. The exchange continues until the controller sends a requested MType that the switch accepts or until it sends a connection request message. If the exchange ends without confirmation of an alternate switch model, then the default Mtype=0 is be used. Once an MType has been established for the switch, it cannot be changed without full restart, that is the re-establishment of adjacency with the resetting of all connections.8.2 Port Configuration Message
The Port Configuration message requests the switch for the configuration information of a single switch port. The Port field in the request message specifies the port for which the configuration is requested. The Port Configuration message is: Message Type = 65.
The Port Configuration 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Flags | Port Attribute Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PortType |S|x|x|x|x|x|x|x| Data Fields Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ PortType Specific Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x x x x x x x x x x x x x| Number of Service Specs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | ~ Service Specs List ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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. Port The switch port to which the configuration information refers. Configuration information relating to both the input and the output sides of the switch port is given. Port numbers are 32 bits wide and allocated by the switch. The switch may choose to structure the 32 bits into subfields that have meaning to the physical structure of the switch hardware (e.g., physical slot and port). This structure may be indicated in the Physical Slot Number and Physical Port Number fields.
Event Sequence Number 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. The Event Sequence Number is explained in section 9. Event Flags Event Flags in a switch port corresponds to a type of Event message. Port Attribute Flags Port Attribute Flags indicate specific behaviour of a switch port. The format of the Port Attribute Flags field is given below: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |R|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x|x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R: Connection Replace flag If set, indicates that connections being established by an Add Branch message with a corresponding R-bit set will replace any previously established connection if a clash between the established output branch and the requested output branch occurs [see chapter 4.2]. x: Unused. PortType 1: PortType is ATM 2: PortType is FR 3: PortType is MPLS S: Service Model If set, indicates that Service Model data follows the PortSpecific port configuration data. Data Fields Length The total length in bytes of the combined PortType Specific Data and Service Model Data fields. The length of each of these fields may be derived from the other data so the value of Data Fields Length serves primarily as a check and to assist parsing of the All Ports Configuration message success response.
PortType Specific Data This field contains the configuration data specific to the particular port type as specified by the PortType field. The field format and length also depends on the value of the PortType. PortType Specific Data is defined below. Number of Service Specs Field contains the total number of Service Specs following in the remainder of the Port Configuration message response or Port Configuration Record. Service Specs List The Service Specs correspond to the Input and Output Service selectors used in Connection Management and Reservation messages. Specifically they define the possible values used when the Service Selector (IQS or OQS) is set to 0b10 indicating the use of the default service specification model defined in Chapter 10. Service Spec The format of each service spec is given below: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service ID | Capability Set ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Each Service Spec identifies a Service supported by the switch together with the Capability Set ID that identifies the parameters of that instance of the Service. The Service Spec List may contain more than one Service Spec sharing the same Service ID. However, each Service Spec in the Service Specs List MUST be unique. Service ID Field contains the Service ID of a Service supported on the port. Service ID values are defined as part of the Service definition in Chapter 9.6. Capability Set ID Field identifies a Capability Set ID of the Service specified by the Service ID that is supported on the port. Capability Set ID values are defined by the Switch in the Service Configuration response message (see Section 8.4). The switch MUST NOT return a {Service ID, Capability Set ID} pair that is not reported in a Service Configuration response message.
8.2.1 PortType Specific Data
The length, format and semantics of the PortType Specific Data field in the Port Configuration message success response and in the Port Records of the All Port Configuration message success response all depend on the PortType value of the same message or record respectively. The specification of the PortType Specific Data field is given below. For each defined PortType value the Min and Max Label fields are given in the subsequent subsections. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|M|L|R|Q| Label Range Count | Label Range Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Default Label Range Block ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Data Rate | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Data Rate | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Status | Line Type | Line Status | Priorities | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Physical Slot Number | Physical Port Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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. Where each of the ranges in the Default Label Range Blocks will have the following format: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|C| | +-+-+-+-+ Min Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| | +-+-+-+-+ Max Label | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Flags P: VP Switching The ATM VPC flag may only be set for ports with PortType=ATM. The VP Switching flag, if set, indicates that this input port is capable of supporting virtual path switching. Else, if zero, it indicates that this input port is only capable of virtual channel switching. M: Multicast Labels The Multicast Labels flag, if set, indicates that this output port is capable of labelling each output branch of a point-to-multipoint tree with a different label. If zero, it indicates that this output port is not able to label each output branch of a point-to-multipoint tree with a different label. L: Logical Multicast The Logical Multicast flag, if set, indicates that this output port is capable of supporting more than a single branch from any point-to-multipoint connection. This capability is often referred to as logical multicast. If zero, it indicates that this output port can only support a single output branch from each point-to-multipoint connection. R: Label Range The Label Range flag, if set, indicates that this switch port is capable of reallocating its label range and therefore accepts the Label Range message. Else, if zero, it indicates that this port does not accept Label Range messages. Q: QoS The QoS flag, if set, indicates that this switch port is capable of handling the Quality of Service messages defined in section 9 of this specification. Else, if zero, it indicates that this port does not accept the Quality of Service messages. V: Label The Label flag is port type specific. C: Multipoint Capable This flag indicates that the label range may be used for multipoint connections.
Label Range Count The total number of Default Label Range elements contained in the Default Label Range Block. Label Range Length Byte count in the Default Label Range Block. Min Label The specification of the Min Label field for each defined PortType value is given in the subsequent subsections. The default minimum value of a dynamically assigned incoming label that the connection table on the input port supports and that may be controlled by GSMP. This value is not changed as a result of the Label Range message. Max Label The specification of the Max Label field for each defined PortType value is given in the subsequent subsections. The default maximum value of a dynamically assigned incoming label that the connection table on the input port supports and that may be controlled by GSMP. This value is not changed as a result of the Label Range message. Receive Data Rate The maximum rate of data that may arrive at the input port in; cells/s for PortType = ATM bytes/s for PortType = FR bytes/s for PortType = MPLS Transmit Data Rate The maximum rate of data that may depart from the output port in; cells/s for PortType = ATM bytes/s for PortType = FR bytes/s for PortType = MPLS (The transmit data rate of the output port may be changed by the Set Transmit Data Rate function of the Port Management message.) Port Status Gives the administrative state of the port. The defined values of the Port Status field are:
Available: Port Status = 1. The port is available to both send and receive cells or frames. When a port changes to the Available state from any other administrative state, all dynamically assigned connections MUST be cleared and a new Port Session Number MUST be generated. Unavailable: Port Status = 2. The port has intentionally been taken out of service. No cells or frames will be transmitted from this port. No cells or frames will be received by this port. Internal Loopback: Port Status = 3. The port has intentionally been taken out of service and is in internal loopback: cells or frames 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 cells or frames. External Loopback: Port Status = 4. The port has intentionally been taken out of service and is in external loopback: cells or frames 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 cells or frames. Bothway Loopback: Port Status = 5. The port has intentionally been taken out of service and is in both internal and external loopback. The Port Status of the port over which the GSMP session controlling the switch is running MUST be declared Available. The controller will ignore any other Port status for this port. The Port Status of switch ports after power-on initialisation is not defined by GSMP. Line Type The type of physical transmission interface for this port. The values for this field are defined by the IANAifType's specified in [17].
The following values are identified for use in this version of the protocol. PortType = Unknown: other(1) PortType = MPLS: ethernetCsmacd(6), ppp(23) PortType = ATM: atm(37) PortType = FR: frameRelayService(44) Line Status The status of the physical transmission medium connected to the port. The defined values of the Line Status field are: Up: Line Status = 1. The line is able to both send and receive. When the Line Status changes to Up from either the Down or Test states, a new Port Session Number MUST be generated. Down: Line Status = 2. The line is unable either to send or receive or both. Test: Line Status = 3. The port or line is in a test mode, for example, power-on test. Priorities The number of different priority levels that this output port can assign to connections. Zero is invalid in this field. If an output port is able to support "Q" priorities, the highest priority is numbered zero and the lowest priority is numbered "Q-1". 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 may be assumed that for connections that share the same output port, a cell or frame on a connection with a higher priority is much more likely to exit the switch before a cell or frame on a connection with a lower priority if they are both in the switch at the same time. Physical Slot Number The physical location of the slot in which the port is located. It is an unsigned 16-bit integer that can take any value except 0xFFFF. The value 0xFFFF is used to indicate "unknown". The Physical Slot Number is not used by the GSMP protocol. It is provided to assist network management in functions such as logging, port naming, and graphical representation.
Physical Port Number The physical location of the port within the slot in which the port is located. It is an unsigned 16-bit integer that can take any value except 0xFFFF. The value 0xFFFF is used to indicate "unknown". The Physical Port Number is not used by the GSMP protocol. It is provided to assist network management in functions such as logging, port naming, and graphical representation. There MUST be a one to one mapping between the Port Number and the Physical Slot Number and Physical Port Number combination. Two different Port Numbers MUST NOT yield the same Physical Slot Number and Physical Port Number combination. The same Port Number MUST yield the same Physical Slot Number and Physical Port Number within a single GSMP session. If both Physical Slot Number and Physical Port Number indicate "unknown" the physical location of switch ports may be discovered by looking up the product identity in a database to reveal the physical interpretation of the 32-bit Port Number.8.2.1.1 PortType Specific data for PortType=ATM
If PortType=ATM, the Default Label Range Block 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|V|x| ATM Label (0x100) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x| VPI | VCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 The default minimum value of dynamically assigned incoming VPI that the connection table on the input port supports and that may be controlled by GSMP. Max VPI The default maximum value of dynamically assigned incoming VPI that the connection table on the input port supports and that may be controlled by GSMP.
At power-on, after a hardware reset, and after the Reset Input Port function of the Port Management message, the input port MUST handle all values of VPI within the range Min VPI to Max VPI inclusive and GSMP MUST be able to control all values within this range. It should be noted that the range Min VPI to Max VPI refers only to the incoming VPI range that can be supported by the associated port. No restriction is placed on the values of outgoing VPI's that may be written into the cell header. If the switch does not support virtual paths it is acceptable for both Min VPI and Max VPI to specify the same value, most likely zero. Use of the Label Range message allows the range of VPI's supported by the port to be changed. However, the Min VPI and Max VPI fields in the Port Configuration and All Ports Configuration messages always report the same default values regardless of the operation of the Label Range message. Min VCI The default minimum value of a dynamically assigned incoming VCI that the connection table on the input port can support and may be controlled by GSMP. This value is not changed as a result of the Label Range message. Max VCI The default maximum value of a dynamically assigned incoming VCI that the connection table on the input port can support and may be controlled by GSMP. At power-on, after a hardware reset, and after the Reset Input Port function of the Port Management message, the input port MUST handle all values of VCI within the range Min VCI to Max VCI inclusive, for each of the virtual paths in the range Min VPI to Max VPI inclusive, and GSMP MUST be able to control all values within this range. It should be noted that the range Min VCI to Max VCI refers only to the incoming VCI range that can be supported by the associated port on each of the virtual paths in the range Min VPI to Max VPI. No restriction is placed on the values of outgoing VCI's that may be written into the cell header. Use of the Label Range message allows the range of VCI's to be changed on each VPI supported by the port. However, the Min VCI and Max VCI fields in the Port Configuration and All Ports Configuration messages always report the same default values regardless of the operation of the Label Range message.
For a port over which the GSMP protocol is operating, the VCI of the GSMP control channel may or may not be reported as lying within the range Min VCI to Max VCI. A switch should honour a connection request message that specifies the VCI value of the GSMP control channel even if it lies outside the range Min VCI to Max VCI8.2.1.2 PortType Specific data for PortType=FR
If PortType=FR, the Default Label Range Block 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|S|x|x| FR Label (0x101) | Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x|Res|Len| DLCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Res The Res field is reserved in [21], i.e., it is not explicitly reserved by GSMP. Len This 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.
8.2.1.3 PortType Specific data for PortType=MPLS
The Default 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]. Ports of the Type MPLS 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x| MPLS Gen Label (0x102)| Label Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x|x|x|x|x|x|x|x|x|x|x|x| MPLS Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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.8.2.1.4 PortType Specific data for PortType=FEC
The Default Label Range Block for PortTypes using FEC labels is not used. The Label Range Count and Label Range Length fields defined in [8.2.1] should be set to 0.8.3 All Ports Configuration Message
The All Ports Configuration message requests the switch for the configuration information of all of its ports. The All Ports Configuration message is: Message Type = 66 The Port field is not used in the request message.
The All Ports Configuration 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x x x x x x x x x x x x x| Number of Records | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Port 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 gives the total number of Port Records to be returned in response to the All Ports Configuration request message. The number of port records in a single All Ports Configuration success response MUST NOT cause the packet length to exceed the maximum transmission unit defined by the encapsulation. If a switch has more ports than can be sent in a single success response message it MUST send multiple success response messages. All success response messages that are sent in response to the same request message MUST have the same Transaction Identifier as the request message and the same value in the Number of Records field. All success response messages that are sent in response to the same request message, except for the last message, MUST have the result field set to "More". The last message, or a single success response message, MUST have the result field set to "Success". All Port records within a success response message MUST be complete, i.e., a single Port record MUST NOT be split across multiple success response messages.
Port Records Follow in the remainder of the message. Each port record 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Flags | Port Attribute Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PortType |S|x|x|x|x|x|x|x| Data Fields Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ PortType Specific Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x x x x x x x x x x x x x| Number of Service Specs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Service Specs List ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The definition of the fields in the Port Record is exactly the same as that of the Port Configuration message [section 8.2].8.4 Service Configuration Message
The Service Configuration message requests the switch for the configuration information of the Services that are supported. The Service Configuration message is: Message Type = 67
The Service Configuration 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x x x x x x x x x x x x x x| Number of Service Records | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Service 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 Service Records Field gives the total number of Service Records to be returned in the Service Records field. Service Records A sequence of zero or more Service Records. The switch returns one Service Record for each Service that it supports on any of its ports. A Service record contains the configuration data of the specified Service. Each Service Record 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Service ID | Number of Cap. Set. Records | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Capability Set Records ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Service ID The Service ID Field identifies the Service supported by the port. The Services are defined with their Service ID values as described in section 10.2.
Number of Cap. Set. Records Field gives the total number of Capability Set Records to be returned in the Service Record field. Capability Set Records The switch returns one or more Capability Set Records in each Service Record. A Capability Set contains a set of parameters that describe the QoS parameter values and traffic controls that apply to an instance of the Service. Each Capability Set record 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cap. Set ID | Traffic Controls | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CLR | CTD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Frequency | CDV | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Capability Set ID The value in this Field defines a Capability Set ID supported by the switch. The values of a Capability Set ID are assigned by the switch and used in Port Configuration messages to identify Capability Sets supported by individual ports. Each Capability Set Record within a Service Record MUST have a unique Capability Set ID. Traffic Controls Field identifies the availability of Traffic Controls within the Capability Set. Traffic Controls are defined as part of the respective Service definition, see Chapter 10. Some or all of the Traffic Controls may be undefined for a given Service, in which case the corresponding Flag is ignored by the controller. The Traffic Controls field is formatted into Traffic Control Sub-fields as follows: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | U | D | I | E | S | V |x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Traffic Control Sub-fields have the following encoding: 0b00 Indicates that the Traffic Control is not available in the Capability Set.
0b01 Indicates that the Traffic Control is applied to all connections that use the Capability Set. 0b10 Indicates that the Traffic Control is available for application to connections that use the Capability Set on a per connection basis. 0b11 Reserved Traffic Control Sub-fields: U: Usage Parameter Control The Usage Parameter Control sub-field indicates the availability of Usage Parameter Control for the specified Service and Capability Set. D: Packet Discard The Packet Discard sub-field indicates the availability of Packet Discard for the specified Service and Capability Set. I: Ingress Shaping The Ingress Shaping sub-field indicates the availability of Ingress Traffic Shaping to the Peak Cell Rate and Cell Delay Variation Tolerance for the specified Service and Capability Set. E: Egress Shaping, Peak Rate The Egress Shaping, Peak Rate sub-field indicates the availability of Egress Shaping to the Peak Cell Rate and Cell Delay Variation Tolerance for the specified Service and Capability Set. S: Egress Traffic Shaping, Sustainable Rate The Egress Shaping, Sustainable Rate sub-field, if set, indicates that Egress Traffic Shaping to the Sustainable Cell Rate and Maximum Burst Size is available for the specified Service and Capability Set. V: VC Merge The VC Merge sub-field indicates the availability of ATM Virtual Channel Merge (i.e., multipoint to point ATM switching with a traffic control to avoid AAL5 PDU interleaving) capability for the specified Service and Capability Set.
QoS Parameters The remaining four fields in the Capability Set Record contain the values of QoS Parameters. QoS Parameters are defined as part of the respective Service definition, see Chapter 9.6. Some or all of the QoS Parameters may be undefined for a given Service, in which case the corresponding field is ignored by the controller. CLR: Cell Loss Ratio The Cell Loss Ratio parameter indicates the CLR guaranteed by the switch for the specified Service. A cell loss ratio is expressed as an order of magnitude n, where the CLR takes the value of ten raised to the power of -n, i.e., log(CLR)=-n. The value n is coded as a binary integer, having a range of 1 <= n <= 15. In addition, the value 0b1111 1111 indicates that no CLR guarantees are given. Frequency The frequency field is coded as an 8 bit unsigned integer. Frequency applies to the MPLS CR-LDP Service (see Section 10.4.3). Valid values of Frequency are: 0 - Very frequent 1 - Frequent 2 - Unspecified CTD: Cell Transfer Delay The CTD value is expressed in units of microseconds. It is coded as a 24-bit integer. CDV: Peak-to-peak Cell Delay Variation The CDV value is expressed in units of microseconds. It is coded as a 24-bit integer.9. Event Messages
Event messages allow the switch to inform the controller of certain asynchronous events. By default the controller does not acknowledge event messages unless ReturnReceipt is set in the Result field. The Code field is only used in case of Adjacency Update message, otherwise it is not used and SHOULD be set to zero. Event messages are not sent during initialisation. Event 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |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. Event Sequence Number The current value of the Event Sequence Number for the specified port. 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. The Event Sequence Number MUST be incremented each time an event occurs even if the switch is prevented from sending an Event message due to the action of the flow control. Label Field gives the Label to which the event message refers. If this field is not required by the event message it is set to zero. Each switch port MUST maintain an Event Sequence Number and a set of Event Flags, one Event Flag for each type of Event message. When a switch sends an Event message it MUST set the Event Flag for that port corresponding to the Event type. If Flow Control is activated for this Event type for this Port then the switch MUST NOT send another Event message of the same type for that port until the Event Flag has been reset. Event Flags are reset by the "Reset Event Flags" function of the Port Management message. This is a simple flow control preventing the switch from flooding the controller with
event messages. The Event Sequence Number of the port MUST be incremented every time an event is detected on that port even if the port is prevented from reporting the event due to the action of the flow control. This allows the controller to detect that it has not been informed of some events that have occurred on the port due to the action of the flow control.9.1 Port Up Message
The Port Up message informs the controller that the Line Status of a port has changed from, either the Down or Test state to the Up state. When the Line Status of a switch port changes to the Up state from either the Down or Test state a new Port Session Number MUST be generated, preferably using some form of random number. The new Port Session Number is given in the Port Session Number field. The Label field is not used and is set to zero. The Port Up message is: Message Type = 809.2 Port Down Message
The Port Down message informs the controller that the Line Status of a port has changed from the Up state or Test state to the Down state. This message will be sent to report link failure if the switch is capable of detecting link failure. The port session number that was valid before the port went down is reported in the Port Session Number field. The Label field is not used and is set to zero. The Port Down message is: Message Type = 819.3 Invalid Label Message
The Invalid Label message is sent to inform the controller that one or more cells or frames have arrived at an input port with a Label that is currently not allocated to an assigned connection. The input port is indicated in the Port field, and the Label in the Label field. The Invalid Label message is: Message Type = 82
9.4 New Port Message
The New Port message informs the controller that a new port has been added to the switch. The port number of the new port is given in the Port field. A new Port Session Number MUST be assigned, preferably using some form of random number. The new Port Session Number is given in the Port Session Number field. The state of the new port is undefined so the Label field is not used and is set to zero. The New Port message is: Message Type = 839.5 Dead Port Message
The Dead Port message informs the controller that a port has been removed from the switch. The port number of the port is given in the Port field. The Port Session Number that was valid before the port was removed is reported in the Port Session Number field. The Label fields are not used and are set to zero. The Dead Port message is: Message Type = 849.6 Adjacency Update Message
The Adjacency Update message informs the controller when adjacencies, i.e., other controllers controlling a specific partition, are joining or leaving. When a new adjacency has been established, the switch sends an Adjacency Update message to every controller with an established adjacency to that partition. The Adjacency Update message is also sent when adjacency is lost between the partition and a controller, provided that there are any remaining adjacencies with that partition. The Code field is used to indicate the number of adjacencies known by the switch partition. The Label field is not used and SHOULD be set to zero. The Adjacency Update message is: Message Type = 8510. Service Model Definition
10.1 Overview
In the GSMP Service Model a controller may request the switch to establish a connection with a given Service. The requested Service is identified by including a Service ID in the Add Branch message or the Reservation Message. The Service ID refers to a Service Definition provided in this chapter of the GSMP specification.
A switch that implements one or more of the Services, as defined below, advertises the availability of these Services in the Service Configuration message response (see Section 8.4). Details of the switch's implementation of a given Service that are important to the controller (e.g., the value of delay or loss bounds or the availability of traffic controls such as policers or shapers) are reported in the form of a Capability Set in the Service Configuration message response. Thus a switch's implementation of a Service is defined in two parts: the Service Definition, which is part of the GSMP specification, and the Capability Set, which describes attributes of the Service specific to the switch. A switch may support more than one Capability Set for a given Service. For example if a switch supports one Service with two different values of a delay bound it could do this by reporting two Capability Sets for that Service. The Service Definition is identified in GSMP messages by the Service ID, a sixteen-bit identifier. Assigned numbers for the Service ID are given with the Service Definitions in Section 10.4. The Capability Set is identified in GSMP messages by the Capability Set ID, a sixteen-bit identifier. Numbers for the Capability Set ID are assigned by the switch and are advertised in the Service Configuration message response. The switch reports all its supported Services and Capability Sets in the Service Configuration message response. The subset of Services and Capability Sets supported on an individual port is reported in the Port Configuration message response or in the All Ports Configuration message response. In these messages the Services and Capability Sets supported on the specified port are indicated by a list of {Service ID, Capability Set ID} number pairs.10.2 Service Model Definitions
Terms and objects defined for the GSMP Service Model are given in this section.10.2.1 Original Specifications
Services in GSMP are defined largely with reference to Original Specifications, i.e., the standards or implementation agreements published by organisations such as ITU-T, IETF, and ATM Forum that originally defined the Service. This version of GSMP refers to 4 original specifications: [8], [9], [10] and [11].
10.2.2 Service Definitions
Each Service Definition in GSMP includes definition of: Traffic Parameters Traffic Parameter definitions are associated with Services while Traffic Parameter values are associated with connections. Traffic Parameters quantitatively describe a connection's requirements on the Service. For example, Peak Cell Rate is a Traffic Parameter of the Service defined by the ATM Forum Constant Bit Rate Service Category. Some Traffic Parameters are mandatory and some are optional, depending on the Service. Semantics of Traffic Parameters are defined by reference to Original Specifications. QoS Parameters QoS Parameters and their values are associated with Services. QoS Parameters express quantitative characteristics of a switch's support of a Service. They include, for example, quantitative bounds on switch induced loss and delay. Some QoS Parameters will be mandatory and some will be optional. Semantics of QoS Parameters are defined by reference to Original Specifications. Traffic Controls The implementation of some Services may include the use of Traffic Controls. Traffic Controls include, for example functions such as policing, input shaping, output shaping, tagging and marking, frame vs. cell merge, frame vs. cell discard. Switches are not required to support Traffic Controls. Any function that is always required in the implementation of a Service is considered part of the Service and is not considered a Traffic Control. If a switch supports a Traffic Control then the control may be applied either to all connections that use a given Capability Set (see below) or to individual connections.
The definition of a Traffic Control is associated with a Service. Traffic Controls are defined, as far as possible, by reference to Original Specifications.10.2.3 Capability Sets
For each Service that a switch supports the switch MUST also support at least one Capability Set. A Capability Set establishes characteristics of a switch's implementation of a Service. It may be appropriate for a switch to support more than one Capability Set for a given Service. A Capability Set may contain, depending on the Service definition, QoS Parameter values and an indication of availability of Traffic Controls. If a switch reports QoS Parameter values in a Capability Set then these apply to all the connections that use that Capability Set. For each Traffic Control defined for a given Service the switch reports availability of that control as one of the following: Not available in the Capability Set, Applied to all connections that use the Capability Set, or Available for application to connections that use the Capability Set on a per connection basis. In this case, a controller may request application of the Traffic Control in connection management messages.10.3 Service Model Procedures
A switch's Services and Capability Sets are reported to a controller in a Service Configuration message. A Service Configuration message response includes the list of Services defined for GSMP that the switch supports and, for each Service, a specification of the Capability Sets supported for the Service. Services are referred to by numbers standardised in the GSMP specification. Capability Sets are referred to by a numbering system reported by the switch. Each Capability Set within a given Service includes a unique identifying number together with the switch's specification of QoS Parameters and Traffic Controls. A switch need not support all the defined Services and Capability Sets on every port. The supported Services and Capability Sets are reported to the controller on a per port basis in port configuration messages. Port configuration response messages list the supported
Services using the standardised identifying numbers and the Capability Sets by using the identifying numbers established in the switch Service configuration messages. GSMP does not provide a negotiation mechanism by which a controller may establish or modify Capability Sets. When a controller establishes a connection, the connection management message includes indication of the Service and the Capability Set. Depending on these the connection management message may additionally include Traffic Parameter values and Traffic Control flags. A connection with a given Service can only be established if both the requested Service and the requested Capability Set are available on all of the connection's input and output ports. Refresh of an extant connection is permitted but the add branch message requesting the message MUST NOT include indication of Service, Capability Sets or Traffic Parameters. An extant connection's Traffic Parameters may be changed without first deleting the connection. The Service and Capability Sets of an extant connection cannot be changed. Move branch messages may be refused on the grounds of resource depletion.