8. Event Messages Event messages allow the switch to inform the controller of certain asynchronous events. Event messages are not acknowledged. The Result field and the Code field in the message header are not used and should be set to zero. Event messages are not sent during initialization. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Event Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | zero | VPI | VCI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 initialized. 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. VPI/VCI Field gives the VPI/VCI 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 port sends an Event message it must set the Event Flag on that port corresponding to the type of the event. The port is not permitted to send another Event message of the same type 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. 8.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 VPI/VCI field is not used and is set to zero. The Port Up message is: Message Type = 80 8.2 Port Down Message The Port Down message informs the controller that the Line Status of a port has changed from the Up 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 VPI/VCI field is not used and is set to zero. The Port Down message is: Message Type = 81 8.3 Invalid VPI/VCI Message The Invalid VPI/VCI message is sent to inform the controller that one or more cells have arrived at an input port with a VPI/VCI that is currently not allocated to an assigned connection. The input port is indicated in the Port field, and the VPI/VCI in the VPI/VCI field. The Invalid VPI/VCI message is: Message Type = 82 8.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 VPI/VCI field is not used and is set to zero. The New Port message is: Message Type = 83 8.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 VPI/VCI fields are not used and are set to zero. The Dead Port message is: Message Type = 84 9. Quality of Service Messages The GSMP Quality of Service (QoS) messages allow a controller to group virtual path connections and virtual channel connections into QoS classes, and to allocate QoS resources to both QoS classes and to individual connections. At initialization, the switch describes its QoS capabilities to the controller, in terms of the abstract switch model, using the QoS Configuration message. The controller issues
Scheduler Establishment messages to configure the scheduler on each switch output port. It also issues QoS Class Establishment messages to configure QoS classes. Connections may be added to, or deleted from, a QoS class using the QoS Connection Management message. QoS resources may also be assigned to individual connections using the QoS Connection Management message. Connections that only require the scheduler may use the simple connection management messages defined in Section 3, "Connection Management Messages." 9.1 Abstract Switch Model The abstract switch model, fig. 1, is the means by which a switch can describe its fundamental QoS capabilities to a controller. It consists of four main functions: a policer, a classifier, a regulator, and a scheduler. The classifier groups multiple connections (VPCs or VCCs) together into a QoS class such that QoS resources may be shared by the QoS class as a whole. Within a QoS class there is no differentiation between members of the class in terms of QoS resources received. However, the ordering of cells within each constituent VPC or VCC must be preserved on exit from the switch. Connections are not required to be aggregated into a QoS class with other connections; they may be allocated individual QoS resources.
VPC/VCCs Policer Classifier Regulator Scheduler +--+ +----+ +--------+ -------->| |---->| | | | +--+ | | | | | | | | +--+ | | +----+ | | -------->| |---->| | | |--------->| | +--+ | | | |conforming| | | |------>| | | | +--+ | | QoS | | | | -------->| |---->| | Class | |--------->| | +--+ | | +----+ excess | | | | | | +--+ | | | | -------->| |---->| | | | +--+ +----+ | | | | | | Output | | Port | |----------> | | | | +--+ +----+ | | -------->| |---->| | | | +--+ | | | | | | | | +--+ | | +----+ | | -------->| |---->| | | |--------->| | +--+ | | | |conforming| | | |------>| | | | +--+ | | QoS | | | | -------->| |---->| | Class | |--------->| | +--+ | | +----+ excess | | | | | | +--+ | | | | -------->| |---->| | | | +--+ +----+ | | +--------+ Fig. 1: Abstract Switch Model The policer is a single input, single output device that can discard or tag cells. A policer may be applied to police each individual connection. A policer may also be applied to police the aggregate traffic of a QoS class. The policer is used to enforce an upper bound on the traffic on a connection or on a QoS class.
The regulator follows the policer and classifier. It offers either a policing function or a shaping function. The policing function evaluates cells as conforming to the rate specified by the regulator parameters or as being in excess of that rate. One of three actions can be specified to be taken for each cell as a result of this evaluation: tagging, discard or differentiated scheduling. Tagging sets the CLP bit of cells deemed to be in excess of the rate defined by the regulator parameters. The discard function discards excess cells. The differentiated scheduling function allows conforming cells and excess cells to be scheduled for service at different points in the scheduler. This would allow conforming cells, for example, to receive service with a QoS guarantee, whereas excess cells receive best-effort service. The implementation of differentiated scheduling, however, is complicated by the requirement not to reorder cells within each connection. The shaping function of the regulator paces cells out, on each QoS class or individual connection, at the rate specified by the regulator parameters. No jitter requirement may be specified, nor is any specific guarantee of jitter given. If traffic arrives on any QoS class or individual connection at a greater rate than the output rate specified, that traffic will be delayed. If the delayed traffic for any QoS class or individual connection exceeds a bound, discard will occur. Differentiated scheduling is supported by the shaper but its application to shaping is somewhat different than its application to policing. Conforming traffic is that traffic which leaves the shaper as a result of the shaping process. The conforming pointer specifies the point in the scheduler structure where such traffic is scheduled for output. (This is typically the highest priority of the scheduler but the GSMP specification permits other priorities to be specified.) If an excess pointer is also enabled for a particular QoS class or individual connection, traffic in excess of the rate specified by the shaper may also be transmitted. The position of the excess pointer in the scheduler structure determines the undefined amount of additional traffic that will be supported. The excess traffic may be tagged if required, if tagging is supported. The excess pointer will receive the same share of bandwidth that a best-effort class or connection would receive at the same location in the scheduler structure. The location of the classifier and regulator functions in the switch is important. If the classifier is located on an input port, only virtual connections that arrive at that input port may be aggregated into a QoS class. If the classifier is centralized, or located on an output port, virtual connections that arrive at any input port may be aggregated into the same QoS class. If the regulator is located on an output port all virtual connections within a QoS class passing through that regulator must exit the switch at that output port.
However, if the regulator is centralized, or located on an input port, virtual connections that are part of the same QoS class may be switched to different output ports. Each switch port must specify the location of its classifier and regulator functions. The scheduler is located on the output port, fig. 2. It distributes the bandwidth of the output link between the QoS classes and individual connections. It is a two-level scheduler: a priority scheduler at one level and a FIFO or a weighted scheduler at the other. Up to 255 strict priority levels may be supported. Traffic in any specific priority level may only be transmitted if no traffic is queued for transmission in any higher priority level. Within each priority level a weighted scheduler may be defined. Each leaf of the scheduler tree is connected to a waiting room. The waiting room has two functions. When it receives service from the scheduler, it must select a QoS class or individual connection for transmission. When it is notified of traffic arrival on a QoS class or connection, it must decide whether there is enough room left in the waiting room to accept the traffic, else that traffic must be discarded. The waiting room has a size parameter indicating how much traffic may be accepted. Other queueing parameters may be attached to the waiting room. Multiple conforming and excess pointers from the regulators may point to each waiting room. Within a waiting room, the scheduling of multiple connections sharing that waiting room may support weighted sharing between the connections.
From Waiting FIFO/Weighted Priority Regulator Room Scheduler Scheduler Net +---+ +------+ Weight | | ---------->| |-%-------->| 0 |------\ +------+ | | \ +---+ \ ---------->+------+ | | |-%--\ +---+ | ---------->+------+ \---->| | | | 1 |---\ | +------+ /---->| | \ \ ---------->| |-%--/ +---+ \ \ +---+ +------+ \ \-->| | \----->| |---------> ---------->+------+ /-->| | Output ---------->| |-%-\ / +---+ Port ---------->+------+ \ / \ +---+ / +------+ \--->| | / ---------->| |-%-------->| 2 |-----/ +------+ /--->| | / +---+ +------+ / ---------->| |-%-/ +------+ Fig. 2: The Scheduler 9.2 QoS Configuration Message The QoS Configuration message permits the controller to discover the QoS capabilities of each switch port in terms of the abstract switch model. The QoS Configuration message is: Message Type = 96 The QoS Configuration 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The QoS 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Scheduler Flags | Regulator Flags | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Excess Capabilities | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hi Sharing | Lo Sharing | Max Classes | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Default Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Default Discard Threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max Buffer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max Shaper Buffer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Scaling Factor | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Port The switch port to which the QoS configuration information refers. QoS configuration information relating to both the input and the output sides of the switch port is given.
Scheduler Flags 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |W|Q|S|G|D|F|M|B|I|x x x x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ W: Weighted Connections Bit 0 of the Scheduler Flags field, if set, indicates that a weighted service algorithm (such as weighted round-robin) is available for allocation of service to individual connections within at least some waiting rooms. It means that a Connection Weight parameter can be attached to a QoS Connection Management message. Not all waiting rooms at all priority levels may be able to support this function. Whether a particular waiting room can support this function will be discovered when a QoS Connection Management message is issued. Q: Weighted QoS Classes Bit 1 of the Scheduler Flags field, if set, indicates that a weighted service algorithm (such as weighted round-robin) is available for allocation of service to QoS classes within at least some waiting rooms. It means that a QoS Class Weight parameter can be attached to a QoS Class Establishment message. Not all waiting rooms at all priority levels may be able to support this function. Whether a particular waiting room can support this function will be discovered when a QoS Class Establishment message is issued. S: Shared Waiting Room Bit 2 of the Scheduler Flags field, if set, indicates that multiple QoS classes and multiple connections may be scheduled within a single waiting room. This is expected to be the normal case. If Bit 2 of the Scheduler Flags field is zero, it indicates that only a single QoS class or a single connection may be directed to any single waiting room. G: Global Max Classes Bit 3 of the Scheduler Flags field, if set, indicates that the Max Classes field gives the maximum number of QoS classes that may be supported by the entire switch. If zero, it indicates that the Max Classes field gives the maximum number of QoS classes that may be supported by this switch port.
D: Packet Discard Bit 4 of the Scheduler Flags field, if set, indicates that the scheduler on this output port is capable of packet discard. Packet discard indicates a discard algorithm that is aware of AAL-5 packet boundaries and attempts to discard whole packets. No specific algorithm is indicated though Early Packet Discard (EPD) is likely to be the most common. Other algorithms such as "push from front" schemes, dynamic threshold, or Random Early Detection (RED) are also examples of possible packet discard algorithms. The only parameters available to the packet discard algorithm, via GSMP, are the Size and Discard Threshold of the waiting room. F: Frame-Based Scheduling Bit 5 of the Scheduler Flags field, if set, indicates that the scheduler on this output port is capable of frame-based scheduling. In frame-based scheduling, a connection is only scheduled for transmission when a complete AAL-5 packet is available. When a connection is scheduled for transmission, all cells belonging to one or more complete packets from that connection will be transmitted without being interleaved with any other cells on that output port (regardless of their priority). Frame-based scheduling is a property of the waiting room and is requested in the Scheduler Establishment message. A QoS class may be routed through a waiting room configured with frame-based scheduling. In this case each component connection of the QoS class will receive frame based scheduling. For correct distribution of bandwidth, each QoS class that requires frame-based scheduling should have its own waiting room. M: VC Merging Bit 6 of the Scheduler Flags field, if set, indicates that the scheduler on this output port is capable of VC merging by a mechanism other than frame-based scheduling. VC merging indicates that the switch is capable of the multipoint-to-point merging of two or more incoming virtual connections onto a single outgoing virtual connection without interleaving cells from different AAL-5 packets that bear the same VPI/VCI. VC merging differs from frame- based scheduling in that cells with a different VPI/VCI may be interleaved with those of a multipoint-to-point VC merging connection. Thus, higher priority cells may be interleaved during the transmission of a packet on a lower priority VC merging connection. Most switches achieve VC merging by using frame-based scheduling. VC merging is a property of the waiting room and is requested in the
Scheduler Establishment message. A QoS class may be routed through a waiting room configured with VC merging. In this case each component connection of the QoS class will receive VC merging. B: Shared Buffer Bit 7 of the Scheduler Flags field, if set, indicates that at least some of the buffer space specified by the Max Buffer field is shared with other ports. If zero, it indicates that the buffer space specified by the Max Buffer field is not shared with other ports. I: Identical Ports Bit 8 of the Scheduler Flags field, if set, indicates that all ports of the switch have identical QoS capabilities. If this bit is set the controller does not have to request the QoS configuration of each port individually as all ports have the same capability. x: Bits 9--15 of the Scheduler Flags field are not used. Regulator Flags 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|Q|I O|P|S|H|M|x x x x x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ C: Connection Policing Bit 0 of the Regulator Flags field indicates that this input port supports the policing of individual incoming connections. The parameters for the policer are specified in the QoS Connection Management message when the connection is established. Q: QoS Class Policing If bit 1 of the Regulator Flags field is set, a policer function is available to police each QoS class on output from the classifier. The parameters for this policer are specified in the QoS Class Establishment message. If this bit is zero, no policer function is available to police a QoS class. IO: QoS Class Location Bits 2 and 3 of the Regulator Flags field specify the location of the classifier and regulator functions. If both
bits 2 and 3 of the Regulator Flags field are zero, no classifier or regulator function is available to this port. If bit 2 of the Regulator Flags field is set and bit 3 is zero, the classifier and regulator functions are available on the input port. This implies that only virtual connections arriving at this input port may be grouped into QoS classes by this classifier. However, connections in a QoS class output from this regulator may be switched to any output port. If bit 2 of the Regulator Flags field is zero and bit 3 is set, the classifier and regulator functions are available on the output port. This implies that virtual connections arriving at any input port may be grouped into QoS classes by this classifier. However, all connections in any QoS class output from this regulator may only be switched to this output port. If both bits 2 and 3 of the Regulator Flags field are set, this switch port has access to centralized classifier and regulator functions. This implies that virtual connections arriving at any input port may be grouped into a QoS class by this classifier. Also, connections in a QoS class output from this regulator may be switched to any output port. Regulator Function P: If bit 4 of the Regulator Flags field is set, the regulator is able to support the policing function. S: If bit 5 of the Regulator Flags field is set, the regulator is able to support the shaping function on all priority levels of the scheduler. H: If bit 5 of the Regulator Flags field is zero and bit 6 is set, the regulator is able to support the shaping function but only on the highest priority level of the scheduler. All connections and QoS classes using this regulator must be routed to a waiting room at the highest priority level of the scheduler. M: QoS Multicast If bit 7 of the Regulator Flags field is set, any point- to-multipoint connection arriving on this input port, with QoS parameters established by the GSMP Quality of Service messages, must use the same QoS parameters for all output branches.
x: Bits 8--15 of the Regulator Flags field are not used. Excess Capabilities 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |D|T|S|A|B|x x x x x x x x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Policer: D: If bit 0 of the Excess Capabilities field is set, the policer function of the regulator is able to support discard. T: If bit 1 of the Excess Capabilities field is set, the policer function of the regulator is able to support tagging. S: If bit 2 of the Excess Capabilities field is set, the policer function of the regulator is able to support differentiated scheduling. Shaper: A: If bit 3 of the Excess Capabilities field is set, the shaper function of the regulator is able to support tagging. B: If bit 4 of the Excess Capabilities field is set, the shaper function of the regulator is able to support differentiated scheduling. x: Bits 5--15 of the Excess Capabilities field are not used. Hi Sharing Lo Sharing Defines a range of priority levels that support weighted sharing. Each priority level in the range Lo Sharing to Hi Sharing inclusive, supports weighted sharing. A priority level that supports weighted sharing offers a weighted sharing algorithm (for example, weighted round-robin) between waiting rooms within that priority level. This permits the output link bandwidth available at that priority level, to be shared between the waiting rooms allocated to that priority level, according to the Net Weight parameter of each waiting room. The value 0xFF for both parameters indicates that this output port does not support weighted sharing in any priority level.
Max Classes If bit 3 of the Scheduler Flags field is zero, Max Classes gives the maximum number of QoS classes that may be supported by this switch port. In this case the maximum number of QoS classes that may be supported by this switch port is not affected by the number of QoS classes in use by other switch ports. If bit 3 of the Scheduler Flags field is set, Max Classes gives the maximum number of QoS classes that may be supported by the entire switch. In this case it is assumed that use of these QoS classes may be distributed among the various switch ports. Default Size The size of waiting room that this output port allocates by default. The actual size of waiting room may be specified in the Scheduler Establishment message. The size of a waiting room specifies the maximum number of cells permitted to wait for transmission via that waiting room. Any further cells arriving at that waiting room beyond this number will be discarded. Default Discard Threshold The value of discard threshold that this output port allocates by default. The actual value of discard threshold may be specified in the Scheduler Establishment message. The discard threshold specifies the number of cells waiting for transmission via a waiting room after which further arriving cells will be subject to a discard mechanism. Max Buffer The maximum amount of buffer space, measured in cells, available to this port. If bit 7 of the Scheduler Flags field is zero this, buffer space is not shared with other ports. If bit 7 of the Scheduler Flags field is set, at least some of this buffer space is shared with other ports. Max Shaper Buffer The maximum amount of buffer space, measured in cells, available to a QoS connection or a QoS class within the shaper function of the regulator. This shaper buffer space is likely to be shared among all QoS classes and QoS connections using the shaper, so there is no guarantee that the amount of buffer space defined by the Max Shaper Buffer field will be available to any particular QoS class or QoS connection.
Scaling Factor The QoS Class Establishment and QoS Connection Management messages require parameters that describe cell rates in cells per second or their reciprocal, cell interarrival periods, in seconds per cell. In order that these parameters may be specified with a 32-bit unsigned integer, the switch defines a Scaling Factor to be used in defining such parameters. By appropriate choice of the Scaling Factor the switch can select the range and granularity of rate or time that can be specified with the 32-bit unsigned integer. Further details are given in the discussion of the UPC Parameters field of the QoS Connection Management message. 9.3 Scheduler Establishment Message The Scheduler Establishment message is used to configure the scheduler on a specified output port. It is used to configure a waiting room, attach it to a leaf of the scheduler tree, and return a Scheduler Identifier to reference the waiting room. The Scheduler Establishment message may also be used to modify the parameters of an already established waiting room. Scheduler Identifiers in the range 0--255 represent default values. They are used for the priority levels that may be specified in the Class of Service field of Connection Management messages without requiring explicit establishment via a Scheduler Establishment message. Each of these default values specifies a single waiting room with default parameters, configured as a FIFO queue, on each of the valid scheduler priority levels. (This permits Connection Management messages to continue to specify QoS requirements as a priority without requiring the use of any of the QoS messages.) The number of priority levels available to the scheduler is specified in the Priorities field of the Port Configuration and All Ports Configuration messages. The Scheduler Establishment Message is: Message Type = 97 The Scheduler Establishment 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Scheduler Identifier | Net Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved |D|F|M|W|x x x x| Priority | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Waiting Room Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discard Threshold | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Scheduler Identifier The Scheduler Identifier is selected by the controller. It is used to identify the waiting room being established or modified in future messages. The Scheduler Identifier is taken from a namespace that is local to the switch port. A Scheduler Identifier in the Scheduler Establishment message must be greater than 0x00FF but less than 0xFFFF. The values 0 -- 0x00FF are reserved for use as default values. The default values of the Scheduler Identifier are used to specify the default settings for the scheduler. Each of the default values maps directly to one of the scheduler priority levels. The value 0xFFFF is reserved for use in the QoS Connection Management message. Net Weight The Net Weight specifies the share of the bandwidth available to the priority level, specified by the Priority field, that should be given to this waiting room. The Net Weight parameter is only valid if the priority level specified by the Priority field supports weighted sharing. The Net Weight is an unsigned 16-bit field specifying a binary fraction. I.e. the bandwidth share, as a fraction of the bandwidth available to the priority level, is given by: Bandwidth share = Net Weight * 2**(-16)
A Net Weight of zero indicates equal sharing between all waiting rooms sharing this priority level that request a Net Weight of zero. While a 16-bit field is used to specify the Net Weight it is understood that the accuracy of the bandwidth sharing is hardware dependent and is not specified. If weighted sharing is not required at a particular priority level, a waiting room with a Net Weight value of 0xFFFF must be specified for that priority level. A priority level that does not support weighted sharing can only support a single waiting room. Flags D: Packet Discard Bit 0 of the Flags field, if set, indicates that packet discard is required on all connections and QoS classes routed through this waiting room. F: Frame-Based Scheduling Bit 1 of the Flags field, if set, indicates that frame- based scheduling is required on all connections and QoS classes routed through this waiting room. In frame-based scheduling, a connection is only scheduled for transmission when a complete AAL-5 packet is available. When a connection is scheduled for transmission, all cells belonging to one or more complete packets from that connection will be transmitted without being interleaved with any other cells on that output port. A QoS class may be routed through a waiting room configured with frame- based scheduling. In this case each component connection of the QoS class will receive frame based scheduling. For correct distribution of bandwidth, each QoS class that requires frame-based scheduling should have its own waiting room. M: VC Merging Bit 2 of the Scheduler Flags field, if set, indicates that VC merging is required on all connections and QoS classes routed through this waiting room. VC merging enables the multipoint-to-point merging of two or more incoming virtual connections onto a single outgoing virtual connection, without interleaving cells from different AAL-5 packets that bear the same VPI/VCI. VC merging differs from frame- based scheduling in that cells with a different VPI/VCI may be interleaved with those of a multipoint-to-point VC merging connection. Most switches achieve VC merging by
using frame-based scheduling. A QoS class may be routed through a waiting room configured with VC merging. In this case each component connection of the QoS class will receive VC merging. W: Weighted Scheduling Bit 3 of the Flags field, if set, indicates that weighted scheduling is required on all connections and QoS classes routed through this waiting room. All connections and QoS classes routed through this waiting room will require a Connection Weight or a QoS Class Weight respectively. The Connection Weight is specified in the QoS Connection Management message. The QoS Class Weight is specified in the QoS Class Establishment message. If weighted scheduling within this waiting room is unavailable, a failure response message must be returned indicating, "Weighted scheduling within this waiting room is unavailable." Bit 3 of the Flags field, if zero, indicates that this waiting room should be configured as a single FIFO queue. All cells arriving at this waiting room will receive first-in-first-out service. If Frame-Based Scheduling or VC Merging are also selected, the strict first-in-first-out service discipline will be modified by the requirement to support Frame-Based Scheduling or VC Merging. x: Bits 4--7 of the Flags field are not used. Priority Specifies the priority level in the scheduler to which the waiting room should be attached. Priorities are numbered from zero, with priority level zero being the highest priority. Waiting Room Size The required size of the waiting room. The size of a waiting room specifies the maximum number of cells permitted to wait for transmission via that waiting room. Any further cells arriving at that waiting room beyond this number will be discarded. If the switch is unable to grant the size requested in the Scheduler Establishment request message it may reply with the actual size allocated to the waiting room in the Waiting Room Size field of the success response message. A value of zero for the Waiting Room Size indicates that the default value should be used.
Discard Threshold The required value of the discard threshold. The discard threshold specifies the number of cells waiting for transmission via a waiting room after which further arriving cells will be subject to a discard mechanism. The value of the Discard Threshold must be less than or equal to the value of the Waiting Room Size parameter for any given waiting room. If the switch is unable to grant the value of discard threshold requested in the Scheduler Establishment request message it may reply with the actual value of discard threshold allocated to the waiting room in the Discard Threshold field of the success response message. A value of zero for the Discard Threshold indicates that the default value should be used. 9.4 QoS Class Establishment Message The QoS Class Establishment message is used to configure a QoS class on a specified port or to modify the parameters of an already established QoS class. It configures the classifier and the regulator functions for the QoS class. It also configures the QoS class policer if a policing function is available for QoS classes. Two styles of QoS class are available. In one style each component connection of the QoS class may be routed independently to an output port and waiting room specified in its connection management message. In this case the Scheduler Identifier, and if required, the Excess Scheduler Id, are specified in the QoS Connection Management message that references this style of QoS class. In the alternative style of QoS class, all component connections in the QoS class are routed to the same waiting room on the same output port. In this case the Output Port, the Scheduler Identifier, and if required, the Excess Scheduler Id, are specified in the QoS Class Establishment message. The classifier and regulator functions must be located together, either on an input port, on an output port, or centralized. Each port declares the location of its classifier and regulator functions at initialization using the QoS Configuration message. If the classifier and regulator functions are located on an input port, only connections that arrive at that input port may join a QoS class established on that port. However, each connection that is part of a QoS class established on that port may be switched to a different output port. If the classifier and regulator functions are located on an output port, connections that arrive at any input port may join a QoS class established on that port. However, all connections within a QoS class established on that port must be switched to that output port. For a centralized classifier and regulator function, there is
no restriction on the input ports on which connections in a QoS class must arrive, or on the output ports to which connections in a QoS class must be switched. (For the case of a centralized classifier and regulator the actual port specified in the QoS Class Establishment message is used only for administrative purposes. Any valid value of Port and Port Session Number, that specifies a centralized classifier and regulator function, may be used.) The QoS Class Establishment message is: Message Type = 98 The QoS Class Establishment 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Regulator | Excess Action | QoS Class Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Scheduler Identifier | Excess Scheduler Id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Output Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ QoS Class Policer Parameters ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ QoS Class Regulator Parameters ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ QoS Class Identifier The QoS Class Identifier is selected by the controller. It is used to identify the QoS class being established or modified, in future QoS Connection Management and QoS Class Establishment messages. It is taken from a namespace that
is global across the entire switch. No two QoS classes may have the same QoS Class Identifier regardless of the switch ports on which they are defined. A QoS Class Identifier in a QoS Class Establishment message must be greater than 0 and less than 0xFFFFFFFF. Regulator The Regulator field specifies which function is required of the regulator. Three possible functions are currently defined: none, policing, and shaping. None: Regulator = 1 Policing: Regulator = 2 Shaping: Regulator = 3 If the Regulator function is specified as none, no operations are performed by the regulator on the cells output from the classifier. Cells output from the classifier are transferred directly to the waiting room specified by the Scheduler Identifier. If policing is specified, a token bucket policer will be applied to the QoS class. The policer determines which cells conform to the specified policer traffic parameters and which do not. Conforming cells are transferred directly to the waiting room specified by the Scheduler Identifier. The action to be taken by the policer on the excess traffic is specified by the Excess Action field. The policer traffic parameters are specified in the QoS Class Regulator Parameters fields. If shaping is specified, traffic shaping will be applied to the QoS class. Cells in a QoS class should leave the regulator spaced evenly apart at a rate defined by the QoS Class Regulator Parameters fields. These cells are transferred directly to the waiting room specified by the Scheduler Identifier. The jitter on the conforming cell stream on exit from the shaping function of the regulator is not specified. Excess Action 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |T|D|S|x x x x x| +-+-+-+-+-+-+-+-+
T: Tagging If bit 0 of the Excess Action field is set, all cells transferred to the waiting room specified by the Excess Scheduler Id will have their CLP bit set. If bit 0 of the Excess Action field is zero, the CLP bit of cells transferred to the waiting room specified by the Excess Scheduler Id will remain unchanged. D: Discard This function is only available if policing is selected as the regulator function. If the Regulator field specifies Policing, and bit 1 of the Excess Action field is set, all cells determined by the policer to be in excess of the traffic parameters must be discarded. In this case the Excess Scheduler Id is not used and bit 0 of the Excess Action field should be ignored. S: Differentiated Scheduling This function operates differently according to whether policing or shaping is selected as the regulator function. If the Regulator field specifies Policing, and bit 1 of the Excess Action field is zero, and bit 2 of the Excess Action field is set, all cells determined by the policer to be in excess of the traffic parameters must be transferred to the waiting room specified by the Excess Scheduler Id. In this case care must be taken in the implementation to ensure that within each virtual path connection or virtual channel connection, cells depart in the same order that they arrived. If the Regulator field specifies Policing, and bit 1 of the Excess Action field is zero, and bit 2 of the Excess Action field is zero, all cells determined by the policer to be in excess of the traffic parameters must be transferred to the waiting room specified by the Scheduler Identifier. In this case the Excess Scheduler Id is not used. If the Regulator field specifies Shaping, and bit 2 of the Excess Action field is zero, cells will be transferred from the QoS class to the waiting room pointed to by the Scheduler Identifier at a rate defined by the QoS Class Regulator Parameters. In this case the Excess Scheduler Id is not used. If the Regulator field specifies Shaping, and bit 2 of the Excess Action field is set, additional cells will be scheduled for transmission by the waiting room pointed to by the Excess Scheduler Id. This permits a minimum cell rate to be allocated to the QoS class using the QoS Class Regulator Parameters and additional bandwidth
to be shared by the QoS class. The additional share of bandwidth is determined according to the parameters of the waiting room pointed to by the Excess Scheduler Id. If the Excess Scheduler Id is specified in the QoS Class Establishment message, the additional bandwidth will be shared by the entire QoS class. If the Excess Scheduler Id is specified in each individual QoS Connection Management message, the additional bandwidth is specific to that connection and not shared by the entire QoS class. Care must be taken in the implementation to ensure that within each virtual path connection or virtual channel connection, cells depart in the same order that they arrived. x: Bits 3--7 of the Excess Action field are not used. QoS Class Weight If bit 1 of the Scheduler Flags field of the QoS Configuration message indicates that weighted service may be applied to a QoS class, the QoS Class Weight parameter specifies the share of the bandwidth available to the waiting room that should be given to this QoS class. The QoS Class Weight is an unsigned 16-bit field specifying a binary fraction. I.e. the bandwidth share, as a fraction of the bandwidth available to the waiting room, is given by: Bandwidth share = QoS Class Weight * 2**(-16) A QoS Class Weight of zero indicates equal sharing between all QoS classes sharing this waiting room that request a QoS Class Weight of zero. While a 16-bit field is used to specify the QoS Class Weight it is understood that the accuracy of the bandwidth sharing is hardware dependent and is not specified. If the Regulator field of the QoS Class Establishment message indicates None, or Policer, the QoS Class Weight should be applied to the waiting room pointed to by the Scheduler Identifier. If the Regulator field of the QoS Class Establishment message indicates Shaper, the QoS Class Weight should be applied to the waiting room pointed to by the Excess Scheduler Id. If the specified waiting room is unable to offer weighted sharing for a QoS class, a failure response message should be returned with the failure code indicating: "This waiting room is unable to offer weighted sharing for a QoS class."
Scheduler Identifier If all conforming traffic from this QoS class is directed to the same waiting room, on the same output port, this field specifies the Scheduler Identifier for the entire QoS class. The Scheduler Identifier points to the waiting room, on the output port specified by the Output Port field, to which all conforming traffic should be sent. If this field is not used it should be set to 0xFFFF. If each component connection of the QoS class specifies its own output port and waiting room, the Scheduler Identifier must be specified in the QoS Connection Management message and this field must be set to 0xFFFF. Excess Scheduler Id If all conforming traffic from this QoS class is directed to the same waiting room, on the same output port, this field specifies the Excess Scheduler Id for the entire QoS class. The Excess Scheduler Id points to the waiting room, on the output port specified by the Output Port field, to which all excess traffic should be sent. If this field is not used it should be set to 0xFFFF. If each component connection of the QoS class specifies its own output port and waiting room, the Excess Scheduler Id must be specified in the QoS Connection Management message and this field must be set to 0xFFFF. If the Scheduler Id is specified in the QoS Class Establishment message, the Excess Scheduler Id must also be specified in the QoS Class Establishment message (or not used). If the Scheduler Id is specified in the QoS Connection Management message, the Excess Scheduler Id must also be specified in the QoS Connection Management message (or not used). The Excess Scheduler Id must not point to the same waiting room on the same output port as the Scheduler Identifier. Output Port If the Scheduler Identifier field in the QoS Establishment message is not 0xFFFF the Output Port field specifies the Output Port to which traffic from this QoS class should be routed. If the Scheduler Identifier field in the QoS Establishment message is 0xFFFF, this field is not used. QoS Class Policer Parameters A policer function may be applied to a QoS class on output from the classifier independently of the regulator function. The QoS class policer function is identical to the connection policer function defined in the QoS
Connection Management message with the exception that it applies to all cells that belong to the QoS class rather than just cells that belong to a single connection. The QoS Class Policer Parameters 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Increment-1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Limit-1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Increment-2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Limit-2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved |C|A|x x x x x x| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The definition of these fields is given in the UPC Parameters section of the QoS Connection Management message. QoS Class Regulator Parameters The QoS class regulator function is identical to the regulator function defined in the QoS Connection Management message with the exception that it applies to all cells that belong to the QoS class rather than just cells that belong to a single connection. The QoS Class Regulator Parameters 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Regulator Increment | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Regulator Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The definition of these fields is given in the Regulator Parameters section of the QoS Connection Management message.
9.5 QoS Release Message The QoS Release message is used to delete a Scheduler Identifier or a QoS Class Identifier and to release all resources associated with it. The QoS Release message is: Message Type = 99 The QoS Release 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transaction Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Session Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Scheduler Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QoS Class Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Port If the QoS Release message contains a Scheduler Identifier, the Port field must contain the Port Number of the switch output port to which the Scheduler Identifier applies. If the QoS Release message contains a QoS Class Identifier, any valid Port number may be used. (The QoS Class Identifier has a global namespace.) Port Session Number The current Port Session Number for the port specified in the Port field. Scheduler Identifier If the Scheduler Identifier contains the value 0xFFFF the QoS Class Identifier specified in the QoS Class Identifier field should be released. Else, if the value of the Scheduler Identifier lies in the range 0x0100 -- 0xFFFE inclusive, the Scheduler Identifier specified by the Scheduler Identifier field should be released. A Scheduler
Identifier with a value less than 0x0100 is invalid in a QoS Release message. (It specifies a default value which may not be released.) QoS Class Identifier If the Scheduler Identifier contains the value 0xFFFF the QoS Class Identifier field specifies the QoS Class Identifier to be released. If the QoS Release message requests that a Scheduler Identifier be released, and the Scheduler Identifier is still in use by one or more established connections, a failure response must be returned with the failure code indicating: "Scheduler Identifier still in use." If the QoS Release message requests that a QoS Class Identifier be released, and the QoS Class Identifier is still in use by one or more established connections, a failure response must be returned with the failure code indicating: "QoS Class Identifier still in use."