idnits 2.17.1 draft-rfced-info-ipsilon-gsmp2-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-18) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 2929 has weird spacing: '...icer is used ...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 1998) is 9559 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'IpsilonMIB' -- Possible downref: Non-RFC (?) normative reference: ref. 'Partridge' Summary: 8 errors (**), 0 flaws (~~), 2 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET DRAFT EXPIRES AUGUST 1998 INTERNET DRAFT 4 Network Working Group P. Newman, Nokia 5 Internet Draft W. Edwards, Sprint 6 Expiration Date: August 1998 R. Hinden, Nokia 7 E. Hoffman, Nokia 8 F. Ching Liaw 9 T. Lyon, Nokia 10 G. Minshall, Fiberlane 11 February 1998 13 Ipsilon's General Switch Management Protocol Specification 14 Version 2.0 15 17 Status of this Memo 19 This document is an Internet-Draft. Internet-Drafts are working 20 documents of the Internet Engineering Task Force (IETF), its areas, 21 and its working groups. Note that other groups may also distribute 22 working documents as Internet-Drafts. 24 Internet-Drafts are draft documents valid for a maximum of six months 25 and may be updated, replaced, or obsoleted by other documents at any 26 time. It is inappropriate to use Internet- Drafts as reference 27 material or to cite them other than as "work in progress." 29 To learn the current status of any Internet-Draft, please check the 30 "1id-abstracts.txt" listing contained in the Internet- Drafts Shadow 31 Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe), 32 munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or 33 ftp.isi.edu (US West Coast). 35 Distribution of this document is unlimited. 37 Abstract 39 This memo specifies enhancements to the General Switch Management 40 Protocol (GSMP) [rfc1987]. The major enhancement is the addition of 41 Quality of Service (QoS) messages. Other improvements have been made 42 to the protocol resulting from operational experience. GSMP is a 43 general purpose protocol to control an ATM switch. It allows a 44 controller to establish and release connections across the switch; 45 add and delete leaves on a multicast connection; manage switch ports; 46 request configuration information; and request statistics. 48 Table of Contents 50 1. Introduction....................................................3 52 2. GSMP Packet Encapsulation.......................................4 53 2.1 ATM Encapsulation...........................................4 54 2.2 Ethernet Encapsulation......................................6 56 3. Common Definitions and Procedures...............................7 57 3.1 GSMP Packet Format..........................................8 58 3.2 Failure Response Messages..................................11 60 4. Connection Management Messages.................................16 61 4.1 Add Branch Message.........................................21 62 4.2 Delete Tree Message........................................23 63 4.3 Verify Tree Message........................................24 64 4.4 Delete All Message.........................................24 65 4.5 Delete Branches Message....................................25 66 4.6 Move Branch Message........................................27 68 5. Port Management Messages.......................................29 69 5.1 Port Management Message....................................29 70 5.2 Label Range Message........................................34 72 6. State and Statistics Messages..................................37 73 6.1 Connection Activity Message................................38 74 6.2 Statistics Messages........................................40 75 6.2.1 Port Statistics Message..............................44 76 6.2.2 Connection Statistics Message........................44 77 6.2.3 QoS Class Statistics Message.........................44 78 6.3 Report Connection State Message............................45 80 7. Configuration Messages.........................................49 81 7.1 Switch Configuration Message...............................50 82 7.2 Port Configuration Message.................................51 83 7.3 All Ports Configuration Message............................57 85 8. Event Messages.................................................59 86 8.1 Port Up Message............................................60 87 8.2 Port Down Message..........................................60 88 8.3 Invalid VPI/VCI Message....................................61 89 8.4 New Port Message...........................................61 90 8.5 Dead Port Message..........................................61 92 9. Quality of Service Messages....................................61 93 9.1 Abstract Switch Model......................................62 94 9.2 QoS Configuration Message..................................66 95 9.3 Scheduler Establishment Message............................74 96 9.4 QoS Class Establishment Message............................78 97 9.5 QoS Release Message........................................84 98 9.6 QoS Connection Management Message..........................86 99 9.7 QoS Failure Response Codes.................................96 101 10. Adjacency Protocol............................................97 102 10.1 Packet Format.............................................97 103 10.2 Procedure.................................................100 104 10.3 Loss of Synchronization...................................103 106 11. Summary of Failure Response Codes.............................103 108 12. Summary of Message Set........................................105 110 References........................................................107 111 Security Considerations...........................................107 112 Authors' Addresses................................................107 114 1. Introduction 116 The General Switch Management Protocol (GSMP), is a general purpose 117 protocol to control an ATM switch. GSMP allows a controller to 118 establish and release connections across the switch; add and delete 119 leaves on a multicast connection; manage switch ports; request 120 configuration information; and request statistics. It also allows the 121 switch to inform the controller of asynchronous events such as a link 122 going down. GSMP runs across an ATM link connecting the controller to 123 the switch, on a control connection (virtual channel) established at 124 initialization. GSMP operation across an Ethernet link is also 125 specified. The GSMP protocol is asymmetric, the controller being the 126 master and the switch being the slave. Multiple switches may be 127 controlled by a single controller using multiple instantiations of 128 the protocol over separate control connections. 130 A switch is assumed to contain multiple "ports". Each port is a 131 combination of one "input port" and one "output port". Some GSMP 132 requests refer to the port as a whole whereas other requests are 133 specific to the input port or the output port. ATM cells arrive at 134 the switch from an external communication link on incoming virtual 135 paths or virtual channels at an input port. ATM cells depart from the 136 switch to an external communication link on outgoing virtual paths or 137 virtual channels from an output port. Virtual paths on a port or link 138 are referenced by their virtual path identifier (VPI). Virtual 139 channels on a port or link are referenced by their virtual path and 140 virtual channel identifiers (VPI/VCI). 142 A virtual channel connection across a switch is formed by connecting 143 an incoming virtual channel to one or more outgoing virtual channels. 144 Virtual channel connections are referenced by the input port on which 145 they arrive and the virtual path and virtual channel identifiers 146 (VPI/VCI) of their incoming virtual channel. A virtual path 147 connection across a switch is formed by connecting an incoming 148 virtual path to one or more outgoing virtual paths. Virtual path 149 connections are referenced by the input port on which they arrive and 150 their virtual path identifier (VPI). In a virtual path connection 151 the value of the VCI in each cell on that, connection is not used by 152 the switch and remains unchanged by the switch. 154 GSMP supports point-to-point and point-to-multipoint connections. A 155 multipoint-to-point connection is specified by establishing multiple 156 point-to-point connections each of them specifying the same output 157 branch. A multipoint-to-multipoint connection is specified by 158 establishing multiple point-to-multipoint trees each of them 159 specifying the same output branches. 161 In general a virtual channel is established with a certain quality of 162 service (QoS). A rich set of QoS messages is introduced in this 163 version of the protocol. However, implementation or operation of GSMP 164 without any of the messages defined in Section 9, "Quality of service 165 messages," is permitted. In this case each virtual channel 166 connection or virtual path connection may be assigned a priority when 167 it is established. It may be assumed that for virtual connections 168 that share the same output port, an ATM cell on a connection with a 169 higher priority is much more likely to exit the switch before an ATM 170 cell on a connection with a lower priority if they are both in the 171 switch at the same time. The number of priorities that each port of 172 the switch supports may be obtained from the port configuration 173 message. 175 GSMP contains an adjacency protocol. The adjacency protocol is used 176 to synchronize state across the link, to negotiate which version of 177 the GSMP protocol to use, to discover the identity of the entity at 178 the other end of a link, and to detect when it changes. 180 2. GSMP Packet Encapsulation 182 2.1 ATM Encapsulation 184 GSMP packets are variable length and for an ATM data link layer they 185 are encapsulated directly in an AAL-5 CPCS-PDU [I.363] with an 186 LLC/SNAP header as illustrated: 188 0 1 2 3 189 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 190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 191 | LLC (0xAA-AA-03) | | 192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 193 | SNAP (0x00-00-00-88-0C) | 194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 195 | | 196 ~ GSMP Message ~ 197 | | 198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 199 | Pad (0 - 47 octets) | 200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 201 | | 202 + AAL-5 CPCS-PDU Trailer (8 octets) + 203 | | 204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 206 (The convention in the documentation of Internet Protocols [rfc1700] 207 is to express numbers in decimal. Numbers in hexadecimal format are 208 specified by prefacing them with the characters "0x". Data is 209 pictured in "big-endian" order. That is, fields are described left to 210 right, with the most significant octet on the left and the least 211 significant octet on the right. Whenever a diagram shows a group of 212 octets, the order of transmission of those octets is the normal order 213 in which they are read in English. Whenever an octet represents a 214 numeric quantity the left most bit in the diagram is the high order 215 or most significant bit. That is, the bit labeled 0 is the most 216 significant bit. Similarly, whenever a multi-octet field represents a 217 numeric quantity the left most bit of the whole field is the most 218 significant bit. When a multi-octet quantity is transmitted, the most 219 significant octet is transmitted first. This is the same coding 220 convention as is used in the ATM layer [I.361] and AAL-5 [I.363].) 222 The LLC/SNAP header contains the octets: 0xAA 0xAA 0x03 0x00 0x00 223 0x00 0x88 0x0C. (0x880C is the assigned Ethertype for GSMP.) 225 The maximum transmission unit (MTU) of the GSMP Message field is 1492 226 octets. 228 The virtual channel over which a GSMP session is established between 229 a controller and the switch it is controlling is called the GSMP 230 control channel. The default VPI and VCI of the GSMP control channel 231 for LLC/SNAP encapsulated GSMP messages on an ATM data link layer is: 233 VPI = 0 234 VCI = 15. 236 2.2 Ethernet Encapsulation 238 GSMP packets may be encapsulated on an Ethernet data link as 239 illustrated: 241 0 1 2 3 242 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 243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 244 | Destination Address | 245 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 246 | | | 247 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 248 | Source Address | 249 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 250 | Ethertype (0x88-0C) | | 251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 252 | | 253 ~ GSMP Message ~ 254 | | 255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 256 | Sender Instance | 257 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 258 | Receiver Instance | 259 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 260 | Pad | 261 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 262 | Frame Check Sequence | 263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 265 Destination Address 266 For the SYN message of the adjacency protocol the 267 Destination Address is the broadcast address 268 0xFFFFFFFFFFFF. (Alternatively, it is also valid to 269 configure the node with the unicast 48-bit IEEE MAC address 270 of the destination. In this case the configured unicast 271 Destination Address is used in the SYN message.) For all 272 other messages the Destination Address is the unicast 273 48-bit IEEE MAC address of the destination. This address 274 may be discovered from the Source Address field of messages 275 received during synchronization of the adjacency protocol. 277 Source Address 278 For all messages the Source Address is the 48-bit IEEE MAC 279 address of the sender. 281 Ethertype 282 The assigned Ethertype for GSMP is 0x880C. 284 GSMP Message 285 The maximum transmission unit (MTU) of the GSMP Message 286 field is 1492 octets. 288 Sender Instance 289 The Sender Instance number for the link obtained from the 290 adjacency protocol. This field is already present in the 291 adjacency protocol message. It is appended to all non- 292 adjacency GSMP messages in the Ethernet encapsulation to 293 offer additional protection against the introduction of 294 corrupt state. 296 Receiver Instance 297 The Receiver Instance number is what the sender believes is 298 the current instance number for the link, allocated by the 299 entity at the far end of the link. This field is already 300 present in the adjacency protocol message. It is appended 301 to all non-adjacency GSMP messages in the Ethernet 302 encapsulation to offer additional protection against the 303 introduction of corrupt state. 305 Pad 306 The minimum length of the data field of an Ethernet packet 307 is 46 octets. If necessary, padding should be added such 308 that it meets the minimum Ethernet frame size. This padding 309 should be octets of zero and it is not considered to be 310 part of the GSMP message. 312 After the adjacency protocol has achieved synchronization, for every 313 GSMP message received with an Ethernet encapsulation, the receiver 314 must check the Source Address from the Ethernet MAC header, the 315 Sender Instance, and the Receiver Instance. The incoming GSMP 316 message must be discarded if the Sender Instance and the Source 317 Address do not match the values of Sender Instance and Sender Name 318 stored by the "Update Peer Verifier" operation of the GSMP adjacency 319 protocol. The incoming GSMP message must also be discarded if it 320 arrives over any port other than the port over which the adjacency 321 protocol has achieved synchronization. In addition, the incoming 322 message must also be discarded if the Receiver Instance field does 323 not match the current value for the Sender Instance of the GSMP 324 adjacency protocol. 326 3. Common Definitions and Procedures 328 GSMP is a master-slave protocol. The controller issues request 329 messages to the switch. Each request message indicates whether a 330 response is required from the switch and contains a transaction 331 identifier to enable the response to be associated with the request. 332 The switch replies with a response message indicating either a 333 successful result or a failure. There are five classes of GSMP 334 request-response message: Connection Management, Port Management, 335 State and Statistics, Configuration, and Quality of Service. The 336 switch may also generate asynchronous Event messages to inform the 337 controller of asynchronous events. Event messages are not 338 acknowledged by the controller. There is also an adjacency protocol 339 message used to establish synchronization across the link and 340 maintain a handshake. 342 For the request-response messages, each message type has a format for 343 the request message and a format for the success response. Unless 344 otherwise specified a failure response message is identical to the 345 request message that caused the failure, with the Code field 346 indicating the nature of the failure. Event messages have only a 347 single format defined as they are not acknowledged by the controller. 349 Switch ports are described by a 32-bit port number. The switch 350 assigns port numbers and it may typically choose to structure the 32 351 bits into subfields that have meaning to the physical structure of 352 the switch (e.g. slot, port). In general, a port in the same physical 353 location on the switch will always have the same port number, even 354 across power cycles. The internal structure of the port number is 355 opaque to the GSMP protocol. However, for the purposes of network 356 management such as logging, port naming, and graphical 357 representation, a switch may declare the physical location (physical 358 slot and port) of each port. Alternatively, this information may be 359 obtained by looking up the product identity in a database. 361 Each switch port also maintains a port session number assigned by the 362 switch. A message, with an incorrect port session number must be 363 rejected. This allows the controller to detect a link failure and to 364 keep state synchronized. 366 Except for the adjacency protocol message, no GSMP messages may be 367 sent across the link until the adjacency protocol has achieved 368 synchronization, and all GSMP messages received on a link that does 369 not currently have state synchronization must be discarded. 371 3.1 GSMP Packet Format 373 All GSMP messages, except the adjacency protocol message, have the 374 following format: 376 0 1 2 3 377 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 378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 379 | Version | Message Type | Result | Code | 380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 381 | Transaction Identifier | 382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 383 | | 384 ~ Message Body ~ 385 | | 386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 388 Version 389 The version number of the GSMP protocol being used in this 390 session. It should be set by the sender of the message to 391 the GSMP protocol version negotiated by the adjacency 392 protocol. 394 Message Type 395 The GSMP message type. GSMP messages fall into six classes: 396 Connection Management, Port Management, State and 397 Statistics, Configuration, Quality of Service, and Events. 398 Each class has a number of different message types. In 399 addition, one Message Type is allocated to the adjacency 400 protocol. 402 Result 403 Field in a Connection Management request message, a Port 404 Management request message, or a Quality of Service request 405 message is used to indicate whether a response is required 406 to the request message if the outcome is successful. A 407 value of "NoSuccessAck" indicates that the request message 408 does not expect a response if the outcome is successful, 409 and a value of "AckAll" indicates that a response is 410 expected if the outcome is successful. In both cases a 411 failure response must be generated if the request fails. 412 For Sate and Statistics, and Configuration request 413 messages, a value of "NoSuccessAck" in the request message 414 is ignored and the request message is handled as if the 415 field were set to "AckAll". (This facility was added to 416 reduce the control traffic in the case where the controller 417 periodically checks that the state in the switch is 418 correct. If the controller does not use this capability, 419 all request messages should be sent with a value of 420 "AckAll.") 422 In a response message the result field can have three 423 values: "Success," "More," and "Failure". The "Success" and 424 "More" results both indicate a success response. The "More" 425 result indicates that the success response exceeds the 426 maximum transmission unit of the data link and that one or 427 more further messages will be sent to complete the success 428 response. All messages that belong to the same success 429 response will have the same Transaction Identifier. The 430 "Success" result indicates a success response that may be 431 contained in a single message or the final message of a 432 success response spanning multiple messages. 434 The encoding of the result field is: 436 NoSuccessAck: Result = 1 437 AckAll: Result = 2 438 Success: Result = 3 439 Failure: Result = 4 440 More: Result = 5. 442 The Result field is not used in an adjacency protocol 443 message. 445 Code 446 Field gives further information concerning the result in a 447 response message. It is mostly used to pass an error code 448 in a failure response but can also be used to give further 449 information in a success response message or an event 450 message. In a request message the code field is not used 451 and is set to zero. In an adjacency protocol message the 452 Code field is used to determine the function of the 453 message. 455 Transaction Identifier 456 Used to associate a request message with its response 457 message. For request messages the controller may select any 458 transaction identifier. For response messages the 459 transaction identifier is set to the value of the 460 transaction identifier from the message to which it is a 461 response. For event messages the transaction identifier 462 should be set to zero. The Transaction Identifier is not 463 used, and the field is not present, in the adjacency 464 protocol. 466 The following fields are frequently found in GSMP messages. They are 467 defined here to avoid repetition. 469 Port 470 Gives the port number of the switch port to which the 471 message applies. 473 Port Session Number 474 Each switch port maintains a Port Session Number assigned 475 by the switch. The port session number of a port remains 476 unchanged while the port is continuously in the Available 477 state and the link status is continuously Up. When a port 478 returns to the Available state after it has been 479 Unavailable or in any of the Loopback states, or when the 480 line status returns to the Up state after it has been Down 481 or in Test, or after a power cycle, a new Port Session 482 Number must be generated. Port session numbers should be 483 assigned using some form of random number. 485 If the Port Session Number in a request message does not 486 match the current Port Session Number for the specified 487 port, a failure response message must be returned with the 488 Code field indicating, "Invalid port session number." The 489 current port session number for a port may be obtained 490 using a Port Configuration or an All Ports Configuration 491 message. 493 Any field in a GSMP message that is unused or defined as "reserved" 494 must be set to zero by the sender and ignored by the receiver. 496 It is not an error for a GSMP message to contain additional data 497 after the end of the Message Body. This is to support development and 498 experimental purposes. However, the maximum transmission unit of the 499 GSMP message, as defined by the data link layer encapsulation, must 500 not be exceeded. 502 A success response message must not be sent until the requested 503 operation has been successfully completed. 505 3.2 Failure Response Messages 507 A failure response message is formed by returning the request message 508 that caused the failure with the Result field in the header 509 indicating failure (Result = 4) and the Code field giving the failure 510 code. The failure code specifies the reason for the switch being 511 unable to satisfy the request message. 513 If the switch issues a failure response in reply to a request 514 message, no change should be made to the state of the switch as a 515 result of the message causing the failure. (For request messages that 516 contain multiple requests, such as the Delete Branches message, the 517 failure response message will specify which requests were successful 518 and which failed. The successful requests may result in changed 519 state.) 521 If the switch issues a failure response it must choose the most 522 specific failure code according to the following precedence: 524 Invalid Message 526 Failure specific to the particular message type (failure code 527 16). (The meaning of this failure is dependent upon the 528 particular message type and is specified in the text defining 529 the message.) 531 A failure response specified in the text defining the message 532 type. 534 Connection Failures 536 Virtual Path Connection Failures 538 Multicast Failures 540 QoS Failures (QoS failures are specified in Section 9.7.) 542 General Failures 544 If multiple failures match in any of the following categories, the 545 one that is listed first should be returned. The following failure 546 response messages and failure codes are defined: 548 Invalid Message 550 3: The specified request is not implemented on this switch. 551 The Message Type field specifies a message that is not 552 implemented on the switch or contains a value that is not 553 defined in the version of the protocol running in this 554 session of GSMP. 556 5: One or more of the specified ports does not exist. 557 At least one of the ports specified in the message is 558 invalid. A port is invalid if it does not exist or if it 559 has been removed from the switch. 561 4: Invalid Port Session Number. 562 The value given in the Port Session Number field does not 563 match the current Port Session Number for the specified 564 port. 566 Connection Failures 568 8: The specified connection does not exist. 569 An operation that expects a connection to be specified, 570 either a virtual channel or a virtual path connection, 571 cannot locate the specified connection. A virtual channel 572 connection is specified by the input port, input VPI, and 573 input VCI on which it arrives. A virtual path connection 574 is specified by the input port and input VPI on which it 575 arrives. 577 9: The specified branch does not exist. 578 An operation that expects a branch of an existing 579 connection to be specified, either a virtual channel or a 580 virtual path connection, cannot locate the specified 581 branch. A branch of a virtual channel connection is 582 specified by the virtual channel connection it belongs to 583 and the output port, output VPI, and output VCI on which 584 it departs. A branch of a virtual path connection is 585 specified by the virtual path connection it belongs to 586 and the output port and output VPI on which it departs. 588 18: One or more of the specified input VPIs is invalid. 590 19: One or more of the specified input VCIs is invalid. 592 20: One or more of the specified output VPIs is invalid. 594 21: One or more of the specified output VCIs is invalid. 596 22: Invalid Class of Service field in a Connection Management 597 message. 598 The value of the Class of Service field is invalid. 600 23: Insufficient resources for QoS Profile. 601 The resources requested by the QoS Profile in the Class 602 of service field are not available. 604 Virtual Path Connections 606 24: Virtual path switching is not supported on this input port. 608 25: Point-to-multipoint virtual path connections are not 609 supported on either the requested input port or the 610 requested output port. 611 One or both of the requested input and output ports is 612 unable to support point-to-multipoint virtual path 613 connections. 615 26: Attempt to add a virtual path connection branch to an 616 existing virtual channel connection. 617 It is invalid to mix branches switched as virtual channel 618 connections with branches switched as virtual path 619 connections on the same point-to-multipoint connection. 621 27: Attempt to add a virtual channel connection branch to an 622 existing virtual path connection. 623 It is invalid to mix branches switched as virtual channel 624 connections with branches switched as virtual path 625 connections on the same point-to-multipoint connection. 627 Multicast Failures 629 10: A branch belonging to the specified point-to-multipoint 630 connection is already established on the specified output 631 port and the switch cannot support more than a single 632 branch of any point-to-multipoint connection on the same 633 output port. 635 11: The limit on the maximum number of point-to-multipoint 636 connections that the switch can support has been reached. 638 12: The limit on the maximum number of branches that the 639 specified point-to-multipoint connection can support has 640 been reached. 642 17: Cannot label each output branch of a point-to-multipoint tree 643 with a different label. 644 Some early designs, and some low-cost ATM switch designs, 645 require all output branches of a multicast connection to 646 use the same value of VPI/VCI. 648 28: Only point-to-point bidirectional connections may be 649 established. 650 It is an error to attempt to add an additional output 651 branch to an existing connection with the bidirectional 652 flag set. 654 13: Unable to assign the requested VPI/VCI value to the requested 655 branch on the specified point-to-multipoint connection. 656 Although the requested VPI and VCI are valid, the switch 657 is unable to support the request using the specified 658 values of VPI and VCI for some reason not covered by the 659 above failure responses. This message implies that a 660 valid value of VPI or VCI exists that the switch could 661 support. For example, some switch designs restrict the 662 number of distinct VPI/VCI values available to a point- 663 to-multipoint connection. (Most switch designs will not 664 require this message.) 666 14: General problem related to the manner in which point-to- 667 multipoint is supported by the switch. 668 Use this message if none of the more specific multicast 669 failure messages apply. (Most switch designs will not 670 require this message.) 672 General Failures 674 2: Invalid request message. 675 There is an error in one of the fields of the message not 676 covered by a more specific failure message. 678 6: One or more of the specified ports is down. 679 A port is down if its Port Status is Unavailable. 680 Connection Management, Connection State, Port Management, 681 and Configuration operations are permitted on a port that 682 is Unavailable. Connection Activity and Statistics 683 operations are not permitted on a port that is 684 Unavailable and will generate this failure response. A 685 Port Management message specifying a Take Down function 686 on a port already in the Unavailable state will also 687 generate this failure response. 689 15: Out of resources. 690 The switch has exhausted a resource not covered by a more 691 specific failure message, for example, running out of 692 memory. 694 1: Unspecified reason not covered by other failure codes. 695 The failure message of last resort. 697 The following failure response messages are only used by the Label 698 Range message. 700 29: Cannot support requested VPI range. 702 30: Cannot support requested VCI range on all requested VPIs. 704 The following failure response messages are only used by the Set 705 Transmit Cell Rate function of the Port Management 706 message. 708 31: The transmit cell rate of this output port cannot be changed. 710 32: Requested transmit cell rate out of range for this output 711 port. 713 4. Connection Management Messages 715 Connection management messages are used by the controller to 716 establish, delete, modify and verify virtual channel connections and 717 virtual path connections across the switch. The Add Branch, Delete 718 Tree, and Delete All connection management messages have the 719 following format for both request and response messages: 721 0 1 2 3 722 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 723 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 724 | Version | Message Type | Result | Code | 725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 726 | Transaction Identifier | 727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 728 | Port Session Number | 729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 730 | Input Port | 731 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 732 |M|Q|B|C| Input VPI | Input VCI | 733 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 734 | Output Port | 735 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 736 |x x x x| Output VPI | Output VCI | 737 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 738 | Number of Branches | Class of Service | 739 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 741 Input Port 742 Identifies a switch input port. 744 Flags 746 M: Multicast 747 The Multicast flag is used as a hint for point-to- 748 multipoint connections in the Add Branch message. It is not 749 used in any other connection management messages and in 750 these messages it should be set to zero. If set, it 751 indicates that the virtual channel connection or the 752 virtual path connection is very likely to be a point-to- 753 multipoint connection. If zero, it indicates that this 754 connection is very likely to be a point-to-point connection 755 or is unknown. 757 The Multicast flag is only used in the Add Branch message 758 when establishing the first branch of a new connection. It 759 is not required to be set when establishing subsequent 760 branches of a point-to-multipoint connection and on such 761 connections it should be ignored by the receiver. (On 762 receipt of the second and subsequent Add Branch messages 763 the receiver knows that this is a point-to-multipoint 764 connection.) If it is known that this is the first branch 765 of a point-to-multipoint connection this flag should be 766 set. If it is unknown, or if it is known that the 767 connection is point-to-point this flag should be zero. The 768 use of this flag is not mandatory. It may be ignored by the 769 switch. If unused the flag should be set to zero. Some 770 switches use a different data structure for point-to- 771 multipoint connections than for point-to-point connections. 772 This flag avoids the switch setting up a point-to-point 773 structure for the first branch of a point-to-multipoint 774 connection which must immediately be deleted and 775 reconfigured as point-to-multipoint when the second branch 776 is established. 778 Q: QoS Profile 779 The QoS Profile flag, if set, indicates that the Class of 780 Service field contains a QoS Profile Identifier. If this 781 flag is zero, it indicates that the Class of Service field 782 contains a Priority or a Scheduler Identifier. 784 B: Bidirectional 785 The Bidirectional flag applies only to the Add Branch 786 message. In all other Connection Management messages it is 787 not used. It may only be used when establishing a point-to- 788 point connection. The Bidirectional flag in an Add Branch 789 message, if set, requests that two unidirectional virtual 790 channels or virtual paths be established, one in the 791 forward direction, and one in the reverse direction. It is 792 equivalent to two Add Branch messages, one specifying the 793 forward direction, and one specifying the reverse 794 direction. The forward direction uses the values of Input 795 Port, Input VPI, Input VCI, Output Port, Output VPI, and 796 Output VCI as specified in the Add Branch message. The 797 reverse direction is derived by exchanging the values 798 specified in the Input Port, Input VPI, and Input VCI 799 fields, with those of the Output Port, Output VPI, and 800 Output VCI fields respectively. Thus, a virtual connection 801 in the reverse direction arrives at the input port 802 specified by the Output Port field, on the VPI/VCI 803 specified by the Output VPI and Output VCI fields. It 804 departs from the output port specified by the Input Port 805 field, on the VPI/VCI specified by the Input VPI and Input 806 VCI fields. 808 The Bidirectional flag is simply a convenience to establish 809 two unidirectional virtual connections in opposite 810 directions between the same two ports, with identical 811 VPI/VCIs, using a single Add Branch message. In all future 812 messages the two unidirectional virtual connections must be 813 handled separately. There is no bidirectional delete 814 message. However, a single Delete Branches message with two 815 Delete Branch Elements, one for the forward connection and 816 one for the reverse, may be used. 818 C: Congestion Indication 819 The Congestion Indication flag, if set, requests that cells 820 on this connection be marked if congestion is experienced. 821 If this connection passes through a queue that the switch 822 considers to be congested, the Congestion Experienced bit 823 will be set in the Payload Type field of the cell header of 824 all cells on the connection. GSMP does not specify the 825 algorithm or any threshold by which the switch decides when 826 a queue is congested. 828 Input VPI 829 Identifies an ATM virtual path arriving at the switch input 830 port indicated by the Input Port field. 832 Input VCI 833 Identifies an ATM virtual channel arriving on the virtual 834 path indicated by the Input VPI field at the switch input 835 port indicated by the Input Port field. For virtual path 836 connections the Input VCI field is not used. 838 Output Port 839 Identifies a switch output port. 841 x: Unused 843 Output VPI 844 Identifies an outgoing virtual path departing from the 845 switch output port indicated in the Output Port field. 847 Output VCI 848 Identifies an outgoing virtual channel departing on the 849 virtual path indicated by the Output VPI field from the 850 switch output port indicated in the Output Port field. For 851 virtual path connections the Output VCI field is not used. 853 Number of Branches 854 In a success response message and a failure response 855 message, gives the number of output branches on a virtual 856 channel connection or a virtual path connection after 857 completion of the requested operation. (A point-to-point 858 connection will have one branch, a point-to-multipoint 859 connection will have two or more branches.) If the switch 860 is unable to keep track of the number of branches on a 861 virtual path connection or a virtual channel connection it 862 must respond with the value 0xFFFF meaning: "number of 863 branches unknown". This field is not used in the request 864 message. 866 Class of Service 867 This field can contain either a QoS Profile Identifier, a 868 Priority, or a Scheduler Identifier. If the QoS Profile 869 flag in the Flags field is set, the Class of Service field 870 contains a QoS Profile. If the QoS Profile flag in the 871 Flags field is zero, and the value of the Class of Service 872 field is greater than or equal to 0x100, the Class of 873 Service field contains a Scheduler Identifier. If the QoS 874 Profile flag in the Flags field is zero, and the value of 875 the Class of Service field is less than 0x100, the Class of 876 Service field contains a Priority. (Values of Scheduler 877 Identifier less than 0x100 are interpreted as priorities.) 878 The Class of Service field is only used in the Add Branch 879 and Move Branch messages. 881 A QoS Profile Identifier is an opaque 16-bit value. It is 882 used to identify a QoS profile in the switch which 883 specifies the Quality of Service required by the 884 connection. QoS profiles are established by a mechanism 885 external to GSMP. 887 A Scheduler Identifier is an alternative method of 888 communicating the QoS requirements of a connection. The 889 Scheduler Identifier is defined in Section 9, "Quality of 890 Service Messages." 892 A Priority specifies the priority of the connection for Add 893 Branch and Move Branch messages that choose not to use a 894 QoS profile, or the QoS capabilities defined in Section 9, 895 "Quality of Service Messages." The highest priority is 896 numbered zero and the lowest priority is numbered "Q-1" 897 where "Q" is the number of priorities that the output port 898 can support. The ability to offer different qualities of 899 service to different connections based upon their priority 900 is assumed to be a property of the output port of the 901 switch. It is assumed that for virtual path connections or 902 virtual channel connections that share the same output 903 port, an ATM cell on a connection with a higher priority is 904 much more likely to exit the switch before an ATM cell on a 905 connection with a lower priority, if they are both in the 906 switch at the same time. The number of priorities that each 907 output port can support is given in the Port Configuration 908 message. 910 For all connection management messages, except the Delete Branches 911 message, the success response message is a copy of the request 912 message returned with the Result field indicating success and the 913 Number of Branches field indicating the number of branches on the 914 connection after completion of the operation. The Code field is not 915 used in a connection management success response message. 917 The failure response message is a copy of the request message 918 returned with a Result field indicating failure and the Number of 919 Branches field indicating the number of branches on the connection. 921 Fundamentally, no distinction is made between point-to-point and 922 point-to-multipoint connections. By default, the first Add Branch 923 message for a particular Input Port, Input VPI, and Input VCI will 924 establish a point-to-point virtual connection. The second Add Branch 925 message with the same Input Port, Input VPI, and Input VCI fields 926 will convert the connection to a point-to-multipoint virtual 927 connection with two branches. (For virtual path connections the Input 928 VCI is not required.) However, to avoid possible inefficiency with 929 some switch designs, the Multicast Flag is provided. If the 930 controller knows that a new connection is point-to-multipoint when 931 establishing the first branch, it may indicate this in the Multicast 932 Flag. Subsequent Add Branch messages with the same Input Port, Input 933 VPI, and Input VCI fields will add further branches to the point-to- 934 multipoint connection. Use of the Delete Branch message on a point- 935 to-multipoint connection with two branches will result in a point-to- 936 point connection. However, the switch may structure this connection 937 as a point-to-multipoint connection with a single output branch if it 938 chooses. (For some switch designs this structure may be more 939 convenient.) Use of the Delete Branch message on a point-to-point 940 connection will delete the point-to-point connection. There is no 941 concept of a connection with zero output branches. All connections 942 are unidirectional, one input virtual path or virtual channel to one 943 or more output virtual paths or virtual channels. 945 GSMP supports point-to-point and point-to-multipoint connections. A 946 multipoint-to-point connection is specified by establishing multiple 947 point-to-point connections each of them specifying the same output 948 branch. (An output branch is specified by an output port and output 949 VPI for a virtual path connection and by an output port, output VPI, 950 and output VCI for a virtual channel connection.) A multipoint-to- 951 multipoint connection is specified by establishing multiple point-to- 952 multipoint trees each of them specifying the same output branches. 954 The connection management messages apply both to virtual channel 955 connections and virtual path connections. The Add Branch and Move 956 Branch connection management messages have two Message Types. One 957 Message Type indicates that a virtual channel connection is required, 958 and the other Message Type indicates that a virtual path connection 959 is required. The Delete Branches, Delete Tree, and Delete All 960 connection management messages have only a single Message Type 961 because they do not need to distinguish between virtual channel 962 connections and virtual path connections. For virtual path 963 connections, neither Input VCI fields nor Output VCI fields are 964 required. They should be set to zero by the sender and ignored by the 965 receiver. Virtual channel branches may not be added to an existing 966 virtual path connection. Conversely, virtual path branches may not 967 be added to an existing virtual channel connection. In the Port 968 Configuration message each switch input port may declare whether it 969 is capable of supporting virtual path switching (i.e. accepting 970 connection management messages requesting virtual path connections). 972 The connection management messages may be issued regardless of the 973 Port Status of the switch port. Connections may be established or 974 deleted when a switch port is in the Available, Unavailable, or any 975 of the Loopback states. However, all connection state on an input 976 port will be deleted when the port returns to the Available state 977 from any other state, i.e. when a Port Management message is received 978 for that port with the Function field indicating either Bring Up, or 979 Reset Input Port. 981 4.1 Add Branch Message 983 The Add Branch message is a connection management message used to 984 establish a virtual channel connection or a virtual path connection 985 or to add an additional branch to an existing virtual channel 986 connection or virtual path connection. It may also be used to check 987 the connection state stored in the switch. The connection is 988 specified by the Input Port, Input VPI, and Input VCI fields. The 989 output branch is specified by the Output Port, Output VPI, and Output 990 VCI fields. The quality of service requirements of the connection are 991 specified by the Class of Service field. To request a virtual channel 992 connection the Virtual Channel Connection (VCC) Add Branch message 993 is: 995 Message Type = 16 997 To request a virtual path connection the Virtual Path Connection 998 (VPC) Add Branch message is: 1000 Message Type = 26 1002 If a VPC Add Branch message is received and the switch input port 1003 specified by the Input Port field does not support virtual path 1004 switching, a failure response message must be returned indicating, 1005 "Virtual path switching is not supported on this input port." 1007 If the virtual channel connection specified by the Input Port, Input 1008 VPI, and Input VCI fields; or the virtual path connection specified 1009 by the Input Port and Input VPI fields; does not already exist, it 1010 must be established with the single output branch specified in the 1011 request message. If the Bidirectional Flag in the Flags field is set, 1012 the reverse connection must also be established. The output branch 1013 should have the QoS attributes specified by the Class of Service 1014 field. 1016 For the VCC Add Branch message, if a virtual path connection already 1017 exists on the virtual path specified by the Input Port and Input VPI 1018 fields, a failure response message must be returned indicating, 1019 "Attempt to add a virtual channel connection branch to an existing 1020 virtual path connection." For the VPC Add Branch message, if a 1021 virtual channel connection already exists on any of the virtual 1022 channels within the virtual path specified by the Input Port and 1023 Input VPI fields, a failure response message must be returned 1024 indicating, "Attempt to add a virtual path connection branch to an 1025 existing virtual channel connection." 1027 If the virtual channel connection specified by the Input Port, Input 1028 VPI, and Input VCI fields; or the virtual path connection specified 1029 by the Input Port and Input VPI fields; already exists, but the 1030 specified output branch does not, the new output branch must be 1031 added. The new output branch should have the QoS attributes 1032 specified by the Class of Service field. 1034 If the virtual channel connection specified by the Input Port, Input 1035 VPI, and Input VCI fields; or the virtual path connection specified 1036 by the Input Port and Input VPI fields; already exists and the 1037 specified output branch also already exists, the QoS attributes of 1038 the connection, specified by the Class of Service field, if different 1039 from the request message, should be changed to that in the request 1040 message. A success response message must be sent if the Result field 1041 of the request message is "AckAll". This allows the controller to 1042 periodically reassert the state of a connection or to change its 1043 priority. If the result field of the request message is 1044 "NoSuccessAck" a success response message should not be returned. 1045 This may be used to reduce the traffic on the control link for 1046 messages that are reasserting previously established state. For 1047 messages that are reasserting previously established state, the 1048 switch must always check that this state is correctly established in 1049 the switch hardware (i.e. the actual connection tables used to 1050 forward cells). 1052 If the output branch specified by the Output Port, Output VPI, and 1053 Output VCI fields for a virtual channel connection; or the output 1054 branch specified by the Output Port and Output VPI fields for a 1055 virtual path connection; is already in use by any connection other 1056 than that specified by the Input Port, Input VPI, and Input VCI 1057 fields, then the resulting output branch will have multiple input 1058 branches. If multiple point-to-point connections share the same 1059 output branch the result will be a multipoint-to-point connection. If 1060 multiple point-to-multipoint trees share the same output branches the 1061 result will be a multipoint-to-multipoint connection. 1063 If the virtual channel connection specified by the Input Port, Input 1064 VPI, and Input VCI fields, or the virtual path connection specified 1065 by the Input Port and Input VPI fields, already exists, and the 1066 Bidirectional Flag in the Flags field is set, a failure response must 1067 be returned indicating: "Only point-to-point bidirectional 1068 connections may be established." 1070 It should be noted that different switches support multicast in 1071 different ways. There will be a limit to the total number of point- 1072 to-multipoint connections any switch can support, and possibly a 1073 limit on the maximum number of branches that a point-to-multipoint 1074 connection may specify. Some switches also impose a limit on the 1075 number of different VPI/VCI values that may be assigned to the output 1076 branches of a point-to-multipoint connection. Many switches are 1077 incapable of supporting more than a single branch of any particular 1078 point-to-multipoint connection on the same output port. Specific 1079 failure codes are defined for some of these conditions. 1081 4.2 Delete Tree Message 1083 The Delete Tree message is a connection management message used to 1084 delete an entire virtual channel connection or an entire virtual path 1085 connection. All remaining branches of the connection are deleted. A 1086 virtual channel connection is specified by the Input Port, Input VPI, 1087 and Input VCI fields. A virtual path connection is specified by the 1088 Input Port and Input VPI fields. The Output Port, Output VPI, and 1089 Output VCI fields are not used in this message. The Delete Tree 1090 message is: 1092 Message Type = 18 1094 If the Result field of the request message is "AckAll" a success 1095 response message must be sent upon successful deletion of the 1096 specified connection. The success message must not be sent until the 1097 delete operation has been completed and if possible, not until all 1098 data on the connection, queued for transmission, has been 1099 transmitted. The Number of Branches field is not used in either the 1100 request or response messages of the Delete Tree message. 1102 4.3 Verify Tree Message 1104 The Verify Tree message has been removed from this version of GSMP. 1105 Its function has been replaced by the Number of Branches field in the 1106 success response to the Add Branch message which contains the number 1107 of branches on a virtual channel connection after successful 1108 completion of an add branch operation. 1110 Message Type = 19 is reserved. 1112 If a request message is received with Message Type = 19 a failure 1113 response must be returned with the Code field indicating: "The 1114 specified request is not implemented in this version of the 1115 protocol." 1117 4.4 Delete All Message 1119 The Delete All message is a connection management message used to 1120 delete all connections on a switch input port. All connections that 1121 arrive at the specified input port must be deleted. On completion of 1122 the operation all dynamically assigned VPI/VCI values for the 1123 specified port must be unassigned, i.e. there must be no virtual 1124 connections established in the VPI/VCI space that GSMP controls on 1125 this port. The Input VPI, Input VCI, Output Port, Output VPI, and 1126 Output VCI fields are not used in this message. The Delete All 1127 message is: 1129 Message Type = 20 1131 If the Result field of the request message is "AckAll" a success 1132 response message must be sent upon completion of the operation. The 1133 Number of Branches field is not used in either the request or 1134 response messages of the Delete All message. The success response 1135 message must not be sent until the operation has been completed. 1137 The following failure response messages may be returned to a Delete 1138 All request. 1140 The specified request is not implemented on this switch. 1142 One or more of the specified ports does not exist. 1144 Invalid Port Session Number. 1146 If any field in a Delete All message not covered by the above failure 1147 codes is invalid, a failure response must be returned indicating: 1148 "Invalid request message." Else, the delete all operation must be 1149 completed successfully and a success message returned. No other 1150 failure messages are permitted. 1152 4.5 Delete Branches Message 1154 The Delete Branches message is a connection management message used 1155 to request one or more delete branch operations. Each delete branch 1156 operation deletes a branch of a virtual channel connection or a 1157 virtual path connection, or in the case of the last branch of a 1158 connection, it deletes the connection. The Delete Branches message 1159 is: 1161 Message Type = 17 1163 The request message has the following format: 1165 0 1 2 3 1166 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 1167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1168 | Version | Message Type | Result | Code | 1169 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1170 | Transaction Identifier | 1171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1172 | Reserved | Number of Elements | 1173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1174 | | 1175 ~ Delete Branch Elements ~ 1176 | | 1177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1179 Number of Elements 1180 Specifies the number of Delete Branch Elements to follow in 1181 the message. The number of Delete Branch Elements in a 1182 Delete Branches message must not cause the packet length to 1183 exceed the maximum transmission unit defined by the 1184 encapsulation. 1186 Each Delete Branch Element specifies an output branch to be deleted 1187 and has the following structure: 1189 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1190 | Port Session Number | 1191 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1192 | Input Port | 1193 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1194 | Error | Input VPI | Input VCI | 1195 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1196 | Output Port | 1197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1198 |x x x x| Output VPI | Output VCI | 1199 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1201 Error 1202 Is used to return a failure code indicating the reason for 1203 the failure of a specific Delete Branch Element in a Delete 1204 Branches failure response message. The Error field is not 1205 used in the request message and must be set to zero. A 1206 value of zero is used to indicate that the delete operation 1207 specified by this Delete Branch Element was successful. 1208 Values for the other failure codes are specified in Section 1209 3.2, "Failure Response Messages." 1211 All other fields of the Delete Branch Element have the same 1212 definition as specified for the other connection management 1213 messages. 1215 In each Delete Branch Element, either a virtual channel connection is 1216 specified by the Input Port, Input VPI, and Input VCI fields; or a 1217 virtual path connection is specified by the Input Port and Input VPI 1218 fields. The specific branch to be deleted is indicated by the Output 1219 Port, Output VPI, and Output VCI fields for virtual channel 1220 connections and by the Output Port and Output VPI for virtual path 1221 connections. 1223 If the Result field of the Delete Branches request message is 1224 "AckAll" a success response message must be sent upon successful 1225 deletion of the branches specified by all of the Delete Branch 1226 Elements. The success response message must not be sent until all of 1227 the delete branch operations have been completed. The success 1228 response message is only sent if all of the requested delete branch 1229 operations were successful. No Delete Branch Elements are returned in 1230 a Delete Branches success response message and the Number of Elements 1231 field must be set to zero. 1233 If there is a failure in any of the Delete Branch Elements a Delete 1234 Branches failure response message must be returned. The Delete 1235 Branches failure response message is a copy of the request message 1236 with the Code field of the entire message set to, "Failure specific 1237 to the particular message type," and the Error field of each Delete 1238 Branch Element indicating the result of each requested delete 1239 operation. A failure in any of the Delete Branch Elements must not 1240 interfere with the processing of any other Delete Branch Elements. 1242 4.6 Move Branch Message 1244 The Move Branch message is used to move a branch of an existing 1245 connection from its current output port VPI/VCI to a new output port 1246 VPI/VCI in a single atomic transaction. This operation occurs 1247 frequently in IP switching, every time a flow is switched from hop- 1248 by-hop forwarding to a dedicated virtual channel. The Move Branch 1249 connection management message has the following format for both 1250 request and response messages: 1252 0 1 2 3 1253 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 1254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1255 | Version | Message Type | Result | Code | 1256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1257 | Transaction Identifier | 1258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1259 | Port Session Number | 1260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1261 | Input Port | 1262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1263 | Flags | Input VPI | Input VCI | 1264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1265 | Old Output Port | 1266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1267 |x x x x| Old Output VPI | Old Output VCI | 1268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1269 | New Output Port | 1270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1271 |x x x x| New Output VPI | New Output VCI | 1272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1273 | Number of Branches | Class of Service | 1274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1276 The VCC Move Branch message is a connection management message used 1277 to move a single output branch of a virtual channel connection from 1278 its current output port, output VPI, and output VCI, to a new output 1279 port, output VPI, and output VCI on the same virtual channel 1280 connection. None of the other output branches are modified. When the 1281 operation is complete the original output VPI/VCI on the original 1282 output port will be deleted from the connection. The VCC Move Branch 1283 message is: 1285 Message Type = 22 1287 For the VCC Move Branch message, if the virtual channel connection 1288 specified by the Input Port, Input VPI, and Input VCI fields already 1289 exists, and the output branch specified by the Old Output Port, Old 1290 Output VPI, and Old Output VCI fields exists as a branch on that 1291 connection, the output branch specified by the New Output Port, New 1292 Output VPI, and New Output VCI fields is added to the connection and 1293 the branch specified by the Old Output Port, Old Output VPI, and Old 1294 Output VCI fields is deleted. If the Result field of the request 1295 message is "AckAll" a success response message must be sent upon 1296 successful completion of the operation. The success response message 1297 must not be sent until the Move Branch operation has been completed. 1299 For the VCC Move Branch message, if the virtual channel connection 1300 specified by the Input Port, Input VPI, and Input VCI fields already 1301 exists, but the output branch specified by the Old Output Port, Old 1302 Output VPI, and Old Output VCI fields does not exist as a branch on 1303 that connection, a failure response must be returned with the Code 1304 field indicating, "The specified branch does not exist." 1306 The VPC Move Branch message is a connection management message used 1307 to move a single output branch of a virtual path connection from its 1308 current output port and output VPI, to a new output port and output 1309 VPI on the same virtual channel connection. None of the other output 1310 branches are modified. When the operation is complete the original 1311 output VPI on the original output port will be deleted from the 1312 connection. The VPC Move Branch message is: 1314 Message Type = 27 1316 For the VPC Move Branch message, if the virtual path connection 1317 specified by the Input Port and Input VPI fields already exists, and 1318 the output branch specified by the Old Output Port and Old Output VPI 1319 fields exists as a branch on that connection, the output branch 1320 specified by the New Output Port and New Output VPI fields is added 1321 to the connection and the branch specified by the Old Output Port and 1322 Old Output VPI fields is deleted. If the Result field of the request 1323 message is "AckAll" a success response message must be sent upon 1324 successful completion of the operation. The success response message 1325 must not be sent until the Move Branch operation has been completed. 1327 For the VPC Move Branch message, if the virtual path connection 1328 specified by the Input Port and Input VPI fields already exists, but 1329 the output branch specified by the Old Output Port and Old Output VPI 1330 fields does not exist as a branch on that connection, a failure 1331 response must be returned with the Code field indicating, "The 1332 specified branch does not exist." 1333 If the virtual channel connection specified by the Input Port, Input 1334 VPI, and Input VCI fields; or the virtual path connection specified 1335 by the Input Port and Input VPI fields; does not exist, a failure 1336 response must be returned with the Code field indicating, "The 1337 specified connection does not exist." 1339 If the output branch specified by the New Output Port, New Output 1340 VPI, and New Output VCI fields for a virtual channel connection; or 1341 the output branch specified by the New Output Port and New Output VPI 1342 fields for a virtual path connection; is already in use by any 1343 connection other than that specified by the Input Port, Input VPI, 1344 and Input VCI fields then the resulting output branch will have 1345 multiple input branches. If multiple point-to-point connections share 1346 the same output branch the result will be a multipoint-to-point 1347 connection. If multiple point-to-multipoint trees share the same 1348 output branches the result will be a multipoint-to-multipoint 1349 connection. 1351 5. Port Management Messages 1353 5.1 Port Management Message 1355 The Port Management message allows a port to be brought into service, 1356 taken out of service, looped back, reset, or the transmit cell rate 1357 changed. Only the Bring Up and the Reset Input Port functions change 1358 the connection state (established connections) on the input port. 1359 Only the Bring Up function changes the value of the Port Session 1360 Number. If the Result field of the request message is "AckAll" a 1361 success response message must be sent upon successful completion of 1362 the operation. The success response message must not be sent until 1363 the operation has been completed. The Port Management Message is: 1365 Message Type = 32 1367 The Port Management message has the following format for the request 1368 and success response messages: 1370 0 1 2 3 1371 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 1372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1373 | Version | Message Type | Result | Code | 1374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1375 | Transaction Identifier | 1376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1377 | Port | 1378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1379 | Port Session Number | 1380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1381 | Event Sequence Number | 1382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1383 | Event Flags | Duration | Function | 1384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1385 | Transmit Cell Rate | 1386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1388 Event Sequence Number 1389 In the success response message gives the current value of 1390 the Event Sequence Number of the switch port indicated by 1391 the Port field. The Event Sequence Number is set to zero 1392 when the port is initialized. It is incremented by one each 1393 time the port detects an asynchronous event that the switch 1394 would normally report via an Event message. If the Event 1395 Sequence Number in the success response differs from the 1396 Event Sequence Number of the most recent Event message 1397 received for that port, events have occurred that were not 1398 reported via an Event message. This is most likely to be 1399 due to the flow control that restricts the rate at which a 1400 switch can send Event messages for each port. In the 1401 request message this field is not used. 1403 Event Flags 1404 Field in the request message is used to reset the Event 1405 Flags in the switch port indicated by the Port field. Each 1406 Event Flag in a switch port corresponds to a type of Event 1407 message. When a switch port sends an Event message it sets 1408 the corresponding Event Flag on that port. The port is not 1409 permitted to send another Event message of the same type 1410 until the Event Flag has been reset. If the Function field 1411 in the request message is set to "Reset Event Flags," for 1412 each bit that is set in the Event Flags field, the 1413 corresponding Event Flag in the switch port is reset. 1415 The Event Flags field is only used in a request message 1416 with the Function field set to "Reset Event Flags." For all 1417 other values of the Function field, the Event Flags field 1418 is not used. In the success response message the Event 1419 Flags field must be set to the current value of the Event 1420 Flags for the port, after the completion of the operation 1421 specified by the request message, for all values of the 1422 Function field. Setting the Event Flags field to all zeros 1423 in a "Reset Event Flags" request message allows the 1424 controller to obtain the current state of the Event Flags 1425 and the current Event Sequence Number of the port without 1426 changing the state of the Event Flags. 1428 The correspondence between the types of Event message and 1429 the bits of the Event Flags field is as follows: 1431 0 1 2 3 4 5 6 7 1432 +-+-+-+-+-+-+-+-+ 1433 |U|D|I|N|Z|x x x| 1434 +-+-+-+-+-+-+-+-+ 1436 U: Port Up Bit 0, (most significant bit) 1437 D: Port Down Bit 1, 1438 I: Invalid VPI/VCI Bit 2, 1439 N: New Port Bit 3, 1440 Z: Dead Port Bit 4, 1441 x: Unused Bits 5--7. 1443 Duration 1444 Is the length of time, in seconds, that any of the loopback 1445 states remain in operation. When the duration has expired 1446 the port will automatically be returned to service. If 1447 another Port Management message is received for the same 1448 port before the duration has expired, the loopback will 1449 continue to remain in operation for the length of time 1450 specified by the Duration field in the new message. The 1451 Duration field is only used in request messages with the 1452 Function field set to Internal Loopback, External Loopback, 1453 or Bothway Loopback. 1455 Function 1456 Specifies the action to be taken. The specified action will 1457 be taken regardless of the current status of the port 1458 (Available, Unavailable, or any Loopback state). If the 1459 specified function requires a new Port Session Number to be 1460 generated, the new Port Session Number must be returned in 1461 the success response message. The defined values of the 1462 Function field are: 1464 Bring Up: 1465 Function = 1. Bring the port into service. All 1466 connections that arrive at the specified input port 1467 must be deleted and a new Port Session Number must be 1468 selected using some form of random number. On 1469 completion of the operation all dynamically assigned 1470 VPI/VCI values for the specified input port must be 1471 unassigned, i.e. no virtual connections will be 1472 established in the VPI/VCI space that GSMP controls on 1473 this input port. The Port Status of the port 1474 afterwards will be Available. 1476 Take Down: 1477 Function = 2. Take the port out of service. Any cells 1478 received at this port will be discarded. No cells will 1479 be transmitted from this port. The Port Status of the 1480 port afterwards will be Unavailable. 1482 The behavior is undefined if the port is taken down 1483 over which the GSMP session that controls the switch 1484 is running. (In this case the most probable behavior 1485 would be for the switch either to ignore the message 1486 or to terminate the current GSMP session and to 1487 initiate another session, possibly with the backup 1488 controller, if any.) The correct method to reset the 1489 link over which GSMP is running is to issue an RSTACK 1490 message in the adjacency protocol. 1492 Internal Loopback: 1493 Function = 3. Cells arriving at the output port from 1494 the switch fabric are looped through to the input port 1495 to return to the switch fabric. All of the ATM 1496 functions of the input port above the physical layer, 1497 e.g. header translation, are performed upon the looped 1498 back cells. The Port Status of the port afterwards 1499 will be Internal Loopback. 1501 External Loopback: 1502 Function = 4. Cells arriving at the input port from 1503 the external communications link are immediately 1504 looped back to the communications link at the physical 1505 layer without entering the input port. None of the ATM 1506 functions of the input port above the physical layer 1507 are performed upon the looped back cells. The Port 1508 Status of the port afterwards will be External 1509 Loopback. 1511 Bothway Loopback: 1512 Function = 5. Both internal and external loopback are 1513 performed. The Port Status of the port afterwards will 1514 be Bothway Loopback. 1516 Reset Input Port: 1517 Function = 6. All connections that arrive at the 1518 specified input port must be deleted and the input and 1519 output port hardware re-initialized. On completion of 1520 the operation all dynamically assigned VPI/VCI values 1521 for the specified input port must be unassigned, i.e. 1522 no virtual connections will be established in the 1523 VPI/VCI space that GSMP controls on this input port. 1524 The range of VPIs and VCIs that may be controlled by 1525 GSMP on this port will be set to the default values 1526 specified in the Port Configuration message. The 1527 transmit cell rate of the output port must be set to 1528 its default value. The Port Session Number is not 1529 changed by the Reset Input Port function. The Port 1530 Status of the port afterwards will be Unavailable. 1532 Reset Event Flags: 1533 Function = 7. For each bit that is set in the Event 1534 Flags field, the corresponding Event Flag in the 1535 switch port must be reset. The Port Status of the port 1536 is not changed by this function. 1538 Set Transmit Cell Rate: 1539 Function = 8. Sets the transmit cell rate of the 1540 output port as close as possible to the rate specified 1541 in the Transmit Cell Rate field. In the success 1542 response message the Transmit Cell Rate must indicate 1543 the actual transmit cell rate of the output port. If 1544 the transmit cell rate of the requested output port 1545 cannot be changed, a failure response must be returned 1546 with the Code field indicating: "The transmit cell 1547 rate of this output port cannot be changed." If the 1548 transmit cell rate of the requested output port can be 1549 changed, but the value of the Transmit Cell Rate field 1550 is beyond the range of acceptable values, a failure 1551 response must be returned with the Code field 1552 indicating: "Requested transmit cell rate out of range 1553 for this output port." In the failure response 1554 message the Transmit Cell Rate must contain the same 1555 value as contained in the request message that caused 1556 the failure. The transmit cell rate of the output port 1557 is not changed by the Bring Up, Take Down, or any of 1558 the Loopback functions. It is returned to the default 1559 value by the Reset Input Port function. 1561 Transmit Cell Rate 1562 This field is only used in request and success response 1563 messages with the Function field set to "Set Transmit Cell 1564 Rate." It is used to set the output cell rate of the output 1565 port. It is specified in cells/s. If the Transmit Cell Rate 1566 field contains the value 0xFFFFFFFF the transmit cell rate 1567 of the output port should be set to the highest valid 1568 value. 1570 5.2. Label Range Message 1572 The default label range, Min VPI to Max VPI and Min VCI to Max VCI, 1573 is specified for each port by the Port Configuration or the All Ports 1574 Configuration messages. When the protocol is initialized, before the 1575 transmission of any Label Range messages, the label range of each 1576 port will be set to the default label range. (The default label range 1577 is dependent upon the switch design and configuration and is not 1578 specified by the GSMP protocol.) The Label Range message allows the 1579 range of VPIs supported by a specified port, or the range of VCIs 1580 supported by a specified VPI on a specified port, to be changed. 1581 Each switch port must declare whether it supports the Label Range 1582 message in the Port Configuration or the All Ports Configuration 1583 messages. The Label Range message is: 1585 Message Type = 33 1587 The Label Range message has the following format for the request and 1588 success response messages: 1590 0 1 2 3 1591 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 1592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1593 | Version | Message Type | Result | Code | 1594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1595 | Transaction Identifier | 1596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1597 | Port | 1598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1599 | Port Session Number | 1600 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1601 |Q|V|x x| Min VPI |x x x x| Max VPI | 1602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1603 | Min VCI | Max VCI | 1604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1605 | Remaining VPIs | Remaining VCIs | 1606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1608 Flags 1609 Q: Query 1610 If the Query flag is set in a request message, the switch 1611 must respond with the current range of valid VPIs, or the 1612 current range of valid VCIs on a specified VPI, according 1613 to the VPI/VCI flag. The current label range is not changed 1614 by a request message with the Query flag set. If the Query 1615 flag is zero, the message is requesting a label change 1616 operation. 1618 V: VPI/VCI 1619 If the VPI/VCI flag is set, the message refers to a range 1620 of VPIs only. The Min VCI and Max VCI fields are unused. If 1621 the VPI/VCI flag is zero the message refers to a range of 1622 VCIs on either one VPI or on a range of VPIs. 1624 x: Unused 1626 Min VPI 1627 Max VPI 1628 Specify a range of VPI values, Min VPI to Max VPI 1629 inclusive. A single VPI may be specified with a Min VPI 1630 and a Max VPI having the same value. In a request message, 1631 if the value of the Max VPI field is less than or equal to 1632 the value of the Min VPI field, the requested range is a 1633 single VPI with a value equal to the Min VPI field. Zero is 1634 a valid value. In a request message, if the Query flag is 1635 set, and the VPI/VCI flag is zero, the Max VPI field 1636 specifies a single VPI and the Min VPI field is not used. 1637 The maximum valid value of these fields for both request 1638 and response messages is 0xFFF. 1640 Min VCI 1641 Max VCI 1642 Specify a range of VCI values, Min VCI to Max VCI 1643 inclusive. A single VCI may be specified with a Min VCI 1644 and a Max VCI having the same value. In a request message, 1645 if the value of the Max VCI field is less than or equal to 1646 the value of the Min VCI field, the requested range is a 1647 single VCI with a value equal to the Min VCI field. Zero is 1648 a valid value. (However, VPI=0, VCI=0 is not available as 1649 a virtual channel connection as it is used as a special 1650 value in ATM to indicate an unassigned cell.) 1652 Remaining VPIs 1653 Remaining VCIs 1654 These fields are unused in the request message. In the 1655 success response message and in the failure response 1656 message these fields give the maximum number of remaining 1657 VPIs and VCIs that could be requested for allocation on the 1658 specified port (after completion of the requested operation 1659 in the case of the success response). It gives the switch 1660 controller an idea of how many VPIs and VCIs it could 1661 request. The number given is the maximum possible given the 1662 constraints of the switch hardware. There is no implication 1663 that this number of VPIs and VCIs is available to every 1664 switch port. 1666 If the Query flag and the VPI/VCI flag are set in the request 1667 message, the switch must reply with a success response message 1668 containing the current range of valid VPIs that are supported by the 1669 port. The Min VPI and Max VPI fields are not used in the request 1670 message. 1672 If the Query flag is set and the VPI/VCI flag is zero in the request 1673 message, the switch must reply with a success response message 1674 containing the current range of valid VCIs that are supported by the 1675 VPI specified by the Max VPI field. If the requested VPI is invalid, 1676 a failure response must be returned indicating: "One or more of the 1677 specified input VPIs is invalid." The Min VPI field is not used in 1678 either the request or success response messages. 1680 If the Query flag is zero and the VPI/VCI flag is set in the request 1681 message, the Min VPI and Max VPI fields specify the new range of VPIs 1682 to be allocated to the input port specified by the Port field. 1683 Whatever the range of VPIs previously allocated to this port it 1684 should be increased or decreased to the specified value. 1686 If the Query flag and the VPI/VCI flag are zero in the request 1687 message, the Min VCI and Max VCI fields specify the range of VCIs to 1688 be allocated to each of the VPIs specified by the VPI range. 1689 Whatever the range of VCIs previously allocated to each of the VPIs 1690 within the specified VPI range on this port, it should be increased 1691 or decreased to the specified value. The allocated VCI range must be 1692 the same on each of the VPIs within the specified VPI range. 1694 The success response to a Label Range message requesting a change of 1695 label range is a copy of the request message with the Remaining VPIs 1696 and Remaining VCIs fields updated to the new values after the Label 1697 Range operation. 1699 If the switch is unable to satisfy a request to change the VPI range, 1700 it must return a failure response message with the Code field set to 1701 "Cannot support requested VPI range." In this failure response 1702 message the switch must use the Min VPI and Max VPI fields to suggest 1703 a VPI range that it would be able to satisfy. 1705 If the switch is unable to satisfy a request to change the VCI range 1706 on all VPIs within the requested VPI range, it must return a failure 1707 response message with the Code field set to "Cannot support requested 1708 VCI range on all requested VPIs." In this failure response message 1709 the switch must use the Min VPI, Max VPI, Min VCI, and Max VCI fields 1710 to suggest a VPI and VCI range that it would be able to satisfy. 1712 In all other failure response messages for the label range operation 1713 the switch must return the values of Min VPI, Max VPI, Min VCI, and 1714 Max VCI from the request message. 1716 While switches can typically support all 256 or 4096 VPIs the VCI 1717 range that can be supported is often more constrained. Often the Min 1718 VCI must be 0 or 32. Typically all VCIs within a particular VPI must 1719 be contiguous. The hint in the failure response message allows the 1720 switch to suggest a label range that it could satisfy in view of its 1721 particular architecture. 1723 While the Label Range message is defined to specify both a range of 1724 VPIs and a range of VCIs within each VPI, the most likely use is to 1725 change either the VPI range or the range of VCIs within a single VPI. 1726 It is possible for a VPI to be valid but to be allocated no valid 1727 VCIs. Such a VPI could be used for a virtual path connection but to 1728 support virtual channel connections it would need to be allocated a 1729 range of VCIs. 1731 A Label Range request message may be issued regardless of the Port 1732 Status or the Line Status of the target switch port. If the Port 1733 field of the request message contains an invalid port (a port that 1734 does not exist or a port that has been removed from the switch) a 1735 failure response message must be returned with the Code field set to, 1736 "One or more of the specified ports does not exist." 1738 6. State and Statistics Messages 1740 The state and statistics messages permit the controller to request 1741 the values of various hardware counters associated with the switch 1742 input and output ports, virtual path connections, virtual channel 1743 connections, and QoS Classes. They also permit the controller to 1744 request the connection state of a switch input port. The Connection 1745 Activity message is used to determine whether one or more specific 1746 virtual channel connections or virtual path connections have recently 1747 been carrying traffic. The Statistics message is used to query the 1748 various port, connection, and QoS class traffic and error counters. 1749 The Report Connection State message is used to request an input port 1750 to report the connection state for a single virtual channel 1751 connection, a single virtual path connection, or for the entire input 1752 port. 1754 6.1 Connection Activity Message 1756 The Connection Activity message is used to determine whether one or 1757 more specific virtual channel connections or virtual path connections 1758 have recently been carrying traffic. The Connection Activity message 1759 contains one or more Activity Records. Each Activity Record is used 1760 to request and return activity information concerning a single 1761 virtual channel connection or virtual path connection. Each virtual 1762 channel connection is specified by its input port, input VPI, and 1763 input VCI. Each virtual path connection is specified by its input 1764 port and input VPI. These are specified in the Input Port, Input VPI, 1765 and Input VCI fields of each Activity Record. Two forms of activity 1766 detection are supported. If the switch supports per connection 1767 traffic accounting, the current value of the traffic counter for each 1768 specified virtual channel connection or virtual path connection must 1769 be returned. The units of traffic counted are not specified but will 1770 typically be either cells or frames. The controller must compare the 1771 traffic counts returned in the message with previous values for each 1772 of the specified connections to determine whether each connection has 1773 been active in the intervening period. If the switch does not 1774 support per connection traffic accounting, but is capable of 1775 detecting per connection activity by some other unspecified means, 1776 the result may be indicated for each connection using the Flags 1777 field. The Connection Activity message is: 1779 Message Type = 48 1781 The Connection Activity request and success response messages have 1782 the following format: 1784 0 1 2 3 1785 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 1786 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1787 | Version | Message Type | Result | Code | 1788 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1789 | Transaction Identifier | 1790 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1791 | Number of Records | Reserved | 1792 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1793 | | 1794 ~ Activity Records ~ 1795 | | 1796 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1798 Number of Records 1799 Field specifies the number of Activity Records to follow. 1801 The number of Connection Activity records in a single 1802 Connection Activity message must not cause the packet 1803 length to exceed the maximum transmission unit defined by 1804 the encapsulation. 1806 Each Activity Record has the following format: 1808 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1809 | Input Port | 1810 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1811 |V|C|A|x| Input VPI | Input VCI | 1812 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1813 | | 1814 + Traffic Count + 1815 | | 1816 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1818 Input Port 1819 Identifies the port number of the input port on which the 1820 connection of interest arrives in order to identify the 1821 connection (regardless of whether the traffic count for the 1822 connection is maintained on the input port or the output 1823 port). 1825 Input VPI 1826 Input VCI 1827 Fields identify the specific virtual path connection or 1828 virtual channel connection for which statistics are being 1829 requested. For a virtual path connection the Input VCI 1830 field is not used. 1832 Flags 1834 V: Valid Record 1835 In the success response message the Valid Record flag is 1836 used to indicate an invalid Activity Record. The flag must 1837 be zero if any of the fields in this Activity Record are 1838 invalid, if the input port specified by the Input Port 1839 field does not exist, or if the specified connection does 1840 not exist. If the Valid Record flag is zero in a success 1841 response message, the Counter flag, the Activity flag, and 1842 the VC Traffic Count field are undefined. If the Valid 1843 Record flag is set, the Activity Record is valid, and the 1844 Counter and Activity flags are valid. The Valid Record flag 1845 is not used in the request message. 1847 C: Counter 1848 In a success response message, if the Valid Record flag is 1849 set, the Counter flag, if zero, indicates that the value in 1850 the VC Traffic Count field is valid. If set, it indicates 1851 that the value in the Activity flag is valid. The Counter 1852 flag is not used in the request message. 1854 A: Activity 1855 In a success response message, if the Valid Record and 1856 Counter flags are set, the Activity flag, if set, indicates 1857 that there has been some activity on this connection since 1858 the last Connection Activity message for this connection. 1859 If zero, it indicates that there has been no activity on 1860 this connection since the last Connection Activity message 1861 for this connection. The Activity flag is not used in the 1862 request message. 1864 x: Unused 1866 Traffic Count 1867 Field is not used in the request message. In the success 1868 response message, if the switch supports per connection 1869 traffic counting, the Traffic Count field must be set to 1870 the value of a free running, connection specific, 64-bit 1871 traffic counter counting traffic flowing across the 1872 specified connection. The value of the traffic counter is 1873 not modified by reading it. If per connection traffic 1874 counting is supported, the switch must report the 1875 Connection Activity result using the traffic count rather 1876 than using the Activity flag. 1878 The format of the failure response is the same as the request message 1879 with the Number of Records field set to zero and no VC Activity 1880 records returned in the message. If the switch is incapable of 1881 detecting per connection activity, a failure response must be 1882 returned indicating, "The specified request is not implemented on 1883 this switch." 1885 6.2 Statistics Messages 1887 The Statistics messages are used to query the various port, 1888 connection, and QoS class traffic and error counters. 1890 The Statistics request messages have the following format: 1892 0 1 2 3 1893 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 1894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1895 | Version | Message Type | Result | Code | 1896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1897 | Transaction Identifier | 1898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1899 | Port | 1900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1901 | zero | VPI | VCI | 1902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1903 | QoS Class Identifier | 1904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1906 VPI 1907 VCI 1908 Fields identify the specific virtual path connection or 1909 virtual channel connection for which statistics are being 1910 requested. For a virtual path connection the Input VCI 1911 field is not used. For requests that do not require a 1912 virtual path connection or virtual channel connection to be 1913 specified, the VPI and VCI fields are not used. 1915 QoS Class Identifier 1916 Field identifies the QoS class for which statistics are 1917 being requested. This field is only used if the QoS Class 1918 Establishment message defined in section 9.4 is 1919 implemented. 1921 The success response for the Statistics message has the following 1922 format: 1924 0 1 2 3 1925 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 1926 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1927 | Version | Message Type | Result | Code | 1928 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1929 | Transaction Identifier | 1930 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1931 | Port | 1932 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1933 | zero | VPI | VCI | 1934 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1935 | QoS Class Identifier | 1936 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1937 | | 1938 + Input Cell Count + 1939 | | 1940 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1941 | | 1942 + Input Frame Count + 1943 | | 1944 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1945 | | 1946 + Input Cell Discard Count + 1947 | | 1948 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1949 | | 1950 + Input Frame Discard Count + 1951 | | 1952 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1953 | | 1954 + Input HEC Error Count + 1955 | | 1956 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1957 | | 1958 + Input Invalid VPI/VCI Count + 1959 | | 1960 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1961 | | 1962 + Output Cell Count + 1963 | | 1964 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1965 | | 1966 + Output Frame Count + 1967 | | 1968 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1969 | | 1970 + Output Cell Discard Count + 1971 | | 1972 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1973 | | 1974 + Output Frame Discard Count + 1975 | | 1976 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1978 Port 1979 VPI/VCI 1980 QoS Class Identifier 1981 Fields are the same as those of the request message. 1983 Input Cell Count 1984 Output Cell Count 1985 Give the value of a free running 64-bit counter counting 1986 cells arriving at the input or departing from the output 1987 respectively. 1989 Input Frame Count 1990 Output Frame Count 1991 Give the value of a free running 64-bit counter counting 1992 frames (packets) arriving at the input or departing from 1993 the output respectively. 1995 Input Cell Discard Count 1996 Output Cell Discard Count 1997 Give the value of a free running 64-bit counter counting 1998 cells discarded due to queue overflow on an input port or 1999 on an output port respectively. 2001 Input Frame Discard Count 2002 Output Frame Discard Count 2003 Give the value of a free running 64-bit counter counting 2004 frames discarded due to congestion on an input port or on 2005 an output port respectively. 2007 HEC Error Count 2008 Gives the value of a free running 64-bit counter counting 2009 cells discarded due to header checksum errors on arrival at 2010 an input port. 2012 Invalid VPI/VCI Count 2013 Gives the value of a free running 64-bit counter counting 2014 cells discarded because their VPI/VCI is invalid on arrival 2015 at an input port. For a virtual channel connection an 2016 incoming VPI/VCI is invalid if no connection is currently 2017 established having that value of VPI/VCI. For a virtual 2018 path connection an incoming VPI is invalid if no connection 2019 is currently established having that value of VPI. 2021 6.2.1 Port Statistics Message 2023 The Port Statistics message requests the statistics for the switch 2024 port specified in the Port field. The contents of the VPI/VCI and the 2025 QoS Class Identifier fields in the Port Statistics request message 2026 are ignored. All of the count fields in the success response message 2027 refer to per-port counts regardless of the connection or QoS class to 2028 which the cells belong. Any of the count fields in the success 2029 response message not supported by the port must be set to zero. The 2030 Port Statistics message is: 2032 Message Type = 49 2034 6.2.2 Connection Statistics Message 2036 The Connection Statistics message requests the statistics for the 2037 virtual channel connection specified in the VPI/VCI field, or the 2038 virtual path connection specified in the VPI field, that arrives on 2039 the switch input port specified in the Port field, regardless of the 2040 QoS class to which the cells belong. All of the count fields in the 2041 success response message refer only to the specified connection. The 2042 HEC Error Count and Invalid VPI/VCI Count fields are not connection 2043 specific and must be set to zero. Any of the other count fields not 2044 supported on a per connection basis must be set to zero in the 2045 success response message. The Connection Statistics message is: 2047 Message Type = 50 2049 6.2.3 QoS Class Statistics Message 2051 The QoS Class Statistics message requests the statistics for the QoS 2052 class specified by the QoS Class Identifier field that arrives on the 2053 switch input port specified in the Port field, regardless of the 2054 connection to which the cells belong. The QoS Statistics message is 2055 only used if the QoS Class Establishment message defined in section 2056 9.4 is implemented. The contents of the VPI/VCI fields in the QoS 2057 Class Statistics request message are ignored. All of the count fields 2058 in the success response message refer only to the specified QoS 2059 class. The HEC Error Count and Invalid VPI/VCI Count fields are not 2060 specific to a QoS class and must be set to zero. Any of the other 2061 count fields not supported on a per QoS class basis must be set to 2062 zero in the success response message. The QoS Class Statistics 2063 message is: 2065 Message Type = 51 2067 6.3 Report Connection State Message 2069 The Report Connection State message is used to request an input port 2070 to report the connection state for a single virtual channel 2071 connection, a single virtual path connection, or for the entire input 2072 port. The Report Connection State message is: 2074 Message Type = 52 2076 The Report Connection State request message has the following format: 2078 0 1 2 3 2079 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 2080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2081 | Version | Message Type | Result | Code | 2082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2083 | Transaction Identifier | 2084 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2085 | Input Port | 2086 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2087 |A|V|x x| Input VPI | Input VCI | 2088 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2090 Input Port 2091 Identifies the port number of the input port for which the 2092 connection state is being requested. 2094 Flags 2096 A: All Connections 2097 If the All Connections flag is set, the message requests 2098 the connection state for all virtual path connections and 2099 virtual channel connections that arrive at the input port 2100 specified by the Input Port field. In this case the Input 2101 VPI and Input VCI fields and the VPI/VCI flag are unused. 2103 V: VPI/VCI 2104 If the All Connections flag is zero and the VPI/VCI flag is 2105 set, the message requests the connection state for the 2106 virtual path connection that arrives at the input port 2107 specified by the Input Port and Input VPI fields. If the 2108 specified Input VPI identifies a virtual path connection 2109 (i.e. a single switched virtual path) the state for that 2110 connection is requested. If the specified Input VPI 2111 identifies a virtual path containing virtual channel 2112 connections, the message requests the connection state for 2113 all virtual channel connections that belong to the 2114 specified virtual path. The Input VCI field is not used. 2116 If the All Connections flag is zero and the VPI/VCI flag is 2117 also zero, the message requests the connection state for 2118 the virtual channel connection that arrives at the input 2119 port specified by the Port, Input VPI and Input VCI fields. 2121 x: Unused. 2123 Input VPI 2124 Input VCI 2125 Fields identify the specific virtual path connection, the 2126 specific virtual path, or the specific virtual channel 2127 connection for which connection state is being requested. 2128 For a virtual path connection (switched as a single virtual 2129 path connection) or a virtual path (switched as one or more 2130 virtual channel connections within the virtual path) the 2131 Input VCI field is not used. For requests that do not 2132 require a virtual path connection or virtual channel 2133 connection to be specified, the Input VPI and Input VCI 2134 fields are not used. 2136 The Report Connection State success response message has the 2137 following format: 2139 0 1 2 3 2140 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 2141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2142 | Version | Message Type | Result | Code | 2143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2144 | Transaction Identifier | 2145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2146 | Input Port | 2147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2148 | Sequence Number | 2149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2150 | | 2151 ~ Connection Records ~ 2152 | | 2153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2155 Input Port 2156 Is the same as the Input Port field in the request message. 2157 It identifies the port number of the input port for which 2158 the connection state is being reported. 2160 Sequence Number 2161 In the case that the requested connection state cannot be 2162 reported in a single success response message, each 2163 successive success response message in reply to the same 2164 request message must increment the Sequence Number. The 2165 Sequence Number of the first success response message, in 2166 response to a new request message, must be zero. 2168 Connection Records 2169 Each success response message must contain one or more 2170 Connection Records. Each Connection Record specifies a 2171 single point-to-point or point-to-multipoint virtual path 2172 connection or virtual channel connection. The number of 2173 Connection Records in a single Report Connection State 2174 success response must not cause the packet length to exceed 2175 the maximum transmission unit defined by the encapsulation. 2176 If the requested connection state cannot be reported in a 2177 single success response message, multiple success response 2178 messages must be sent. All success response messages that 2179 are sent in response to the same request message must have 2180 the same Input Port and Transaction Identifier fields as 2181 the request message. A single Connection Record must not be 2182 split across multiple success response messages. The More 2183 flag of the last Connection Record in a success response 2184 message indicates whether the response to the request has 2185 been completed or whether one or more further success 2186 response messages should be expected in response to the 2187 same request message. 2189 Each Connection Record has the following format: 2191 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2192 |A|V|P|M| Input VPI | Input VCI | 2193 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2194 | | 2195 ~ Output Branch Records ~ 2196 | | 2197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2199 Flags 2201 A: All Connections 2202 V: VPI/VCI 2203 For the first Connection Record in each success response 2204 message the All Connections and the VPI/VCI flags must be 2205 the same as those of the request message. For successive 2206 Connection Records in the same success response message 2207 these flags are not used. 2209 P: VPC 2210 The VPC flag, if set, indicates that the Connection Record 2211 refers to a virtual path connection. If zero, it indicates 2212 that the Connection Record refers to a virtual channel 2213 connection. 2215 M: More 2216 If the More flag is set, it indicates that another 2217 Connection Record, in response to the same request message, 2218 will follow either in the same success response message or 2219 in a successive success response message. If the More flag 2220 is zero it indicates that this is the last Connection 2221 record in this success response message and that no further 2222 success response messages will be sent in response to the 2223 current request message. It indicates that the response to 2224 the request message is now complete. 2226 Input VPI 2227 Input VCI 2228 The input VPI and VCI of the connection specified in this 2229 Connection Record. If this Connection Record specifies a 2230 virtual path connection (the VPC flag is set) the Input VCI 2231 field is unused. 2233 Output Branch Records 2234 Each Connection Record must contain one or more Output 2235 Branch Records. Each Output Branch Record specifies a 2236 single output branch belonging to the connection identified 2237 by the Input VPI and Input VCI fields of the Connection 2238 Record. A point-to-point connection will require only a 2239 single Output Branch Record. A point-to-multipoint 2240 connection will require multiple Output Branch Records. The 2241 last Output Branch Record of each Connection Record is 2242 indicated by the Last Branch flag of the Output Branch 2243 Record. If a point-to-multipoint connection has more output 2244 branches than can fit in a single Connection Record 2245 contained within a single success response message, that 2246 connection may be reported using multiple Connection 2247 Records in multiple success response messages. 2249 Each Output Branch Record has the following format: 2251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2252 | Output Port | 2253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2254 |L|x x x| Output VPI | Output VCI | 2255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2257 Output Port 2258 The output port of the switch to which this output branch 2259 is routed. 2261 Flags 2263 L: Last Branch 2264 The Last Branch flag, if set, indicates that this is the 2265 last Output Branch Record of this Connection Record. If 2266 zero, it indicates that one or more further Output Branch 2267 Records are to follow. If this is the last Output Branch 2268 Record in the message and the Last Branch flag is zero, 2269 further output branches belonging to the same connection 2270 will be given in another Connection Record. This Connection 2271 Record will be the first Connection Record in the next 2272 success response message. This Connection Record must have 2273 the same Input VPI and Input VCI values as the current 2274 Connection Record. 2276 x: Unused. 2278 Output VPI 2279 Output VCI 2280 The output VPI and VCI of the output branch specified in 2281 this Output Branch Record. If this Output Branch Record is 2282 part of a Connection Record that specifies a virtual path 2283 connection (the VPC flag is set) the Output VCI field is 2284 unused. 2286 A Report Connection State request message may be issued regardless of 2287 the Port Status or the Line Status of the target switch port. 2289 If the Input Port of the request message is valid, and the All 2290 Connections flag is set, but there are no connections established on 2291 that port, a failure response message must be returned with the code 2292 field set to, "Failure specific to the particular message type." For 2293 the Report Connection State message, this failure code indicates that 2294 no connections matching the request message were found. This failure 2295 message should also be returned if the Input Port of the request 2296 message is valid, the All Connections flag is zero, and no 2297 connections are found on that port matching the specified virtual 2298 path connection, virtual path, or virtual channel connection. 2300 7. Configuration Messages 2302 The configuration messages permit the controller to discover the 2303 capabilities of the switch. Three configuration request messages have 2304 been defined: Switch, Port, and All Ports. 2306 All configuration request messages have the following format: 2308 0 1 2 3 2309 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 2310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2311 | Version | Message Type | Result | Code | 2312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2313 | Transaction Identifier | 2314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2315 | Port | 2316 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2318 7.1 Switch Configuration Message 2320 The Switch Configuration message requests the global (non port- 2321 specific) configuration for the switch. The Switch Configuration 2322 message is: 2324 Message Type = 64 2326 The Port field is not used in the request message. 2328 The Switch Configuration success response message has the following 2329 format: 2331 0 1 2 3 2332 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 2333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2334 | Version | Message Type | Result | Code | 2335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2336 | Transaction Identifier | 2337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2338 | Firmware Version Number | Window Size | 2339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2340 | Switch Type | | 2341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 2342 | Switch Name | 2343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2345 Firmware Version Number 2346 The version number of the switch control firmware 2347 installed. 2349 Window Size 2350 The maximum number of unacknowledged request messages that 2351 may be transmitted by the controller without the 2352 possibility of loss. This field is used to prevent request 2353 messages being lost in the switch because of overflow in 2354 the receive buffer. The field is a hint to the controller. 2355 If desired, the controller may experiment with higher and 2356 lower window sizes to determine heuristically the best 2357 window size. 2359 Switch Type 2360 A 16-bit field allocated by the manufacturer of the switch. 2361 (For these purposes the manufacturer of the switch is 2362 assumed to be the organization identified by the OUI in the 2363 Switch Name field.) The Switch Type identifies the product. 2364 When the Switch Type is combined with the OUI from the 2365 Switch Name the product is uniquely identified. Network 2366 Management may use this identification to obtain product 2367 related information from a database. 2369 Switch Name 2370 A 48-bit quantity that is unique within the operational 2371 context of the device. A 48-bit IEEE 802 MAC address, if 2372 available, may be used as the Switch Name. The most 2373 significant 24 bits of the Switch Name must be an 2374 Organizationally Unique Identifier (OUI) that identifies 2375 the manufacturer of the switch. 2377 7.2 Port Configuration Message 2379 The Port Configuration message requests the switch for the 2380 configuration information of a single switch port. The Port field in 2381 the request message specifies the port for which the configuration is 2382 requested. The Port Configuration message is: 2384 Message Type = 65. 2386 The Port Configuration success response message has the following 2387 format: 2389 0 1 2 3 2390 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 2391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2392 | Version | Message Type | Result | Code | 2393 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2394 | Transaction Identifier | 2395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2396 | Port | 2397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2398 | Port Session Number | 2399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2400 |V|M|L|R| Min VPI |Q|x x x| Max VPI | 2401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2402 | Min VCI | Max VCI | 2403 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2404 | Receive Cell Rate | 2405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2406 | Transmit Cell Rate | 2407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2408 | Port Status | Port Type | Line Status | Priorities | 2409 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2410 | Physical Slot Number | Physical Port Number | 2411 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2413 Port 2414 The switch port to which the configuration information 2415 refers. Configuration information relating to both the 2416 input and the output sides of the switch port is given. 2417 Port numbers are 32 bits wide and allocated by the switch. 2418 The switch may choose to structure the 32 bits into 2419 subfields that have meaning to the physical structure of 2420 the switch hardware (e.g. physical slot and port). This 2421 structure may be indicated in the Physical Slot Number and 2422 Physical Port Number fields. 2424 Flags 2426 V: VP Switching 2427 The VP Switching flag, if set, indicates that this input 2428 port is capable of supporting virtual path switching. Else, 2429 if zero, it indicates that this input port is only capable 2430 of virtual channel switching. 2432 M: Multicast Labels 2433 The Multicast Labels flag, if set, indicates that this 2434 output port is capable of labelling each output branch of a 2435 point-to-multipoint tree with a different label. If zero, 2436 it indicates that this output port is not able to label 2437 each output branch of a point-to-multipoint tree with a 2438 different label. 2440 L: Logical Multicast 2441 The Logical Multicast flag, if set, indicates that this 2442 output port is capable of supporting more than a single 2443 branch from any point-to-multipoint connection. This 2444 capability is often referred to as logical multicast. If 2445 zero, it indicates that this output port can only support a 2446 single output branch from each point-to-multipoint 2447 connection. 2449 R: Label Range 2450 The Label Range flag, if set, indicates that this switch 2451 port is capable of reallocating its VPI label range or its 2452 VCI label range and therefore accepts the Label Range 2453 message. Else, if zero, it indicates that this port does 2454 not accept Label Range messages. 2456 Q: QoS 2457 The QoS flag, if set, indicates that this switch port is 2458 capable of handling the Quality of Service messages defined 2459 in section 9 of this specification. Else, if zero, it 2460 indicates that this port does not accept the Quality of 2461 Service messages. 2463 x: Unused 2465 Min VPI 2466 The default minimum value of dynamically assigned incoming 2467 VPI that the connection table on the input port supports 2468 and that may be controlled by GSMP. This value is not 2469 changed as a result of the Label Range message. 2471 Max VPI 2472 The default maximum value of dynamically assigned incoming 2473 VPI that the connection table on the input port supports 2474 and that may be controlled by GSMP. This value is not 2475 changed as a result of the Label Range message. 2477 At power-on, after a hardware reset, and after the Reset 2478 Input Port function of the Port Management message, the 2479 input port must handle all values of VPI within the range 2480 Min VPI to Max VPI inclusive and GSMP must be able to 2481 control all values within this range. It should be noted 2482 that the range Min VPI to Max VPI refers only to the 2483 incoming VPI range that can be supported by the associated 2484 port. No restriction is placed on the values of outgoing 2485 VPIs that may be written into the cell header. If the 2486 switch does not support virtual paths it is acceptable for 2487 both Min VPI and Max VPI to specify the same value, most 2488 likely zero. 2490 Use of the Label Range message allows the range of VPIs 2491 supported by the port to be changed. However, the Min VPI 2492 and Max VPI fields in the Port Configuration and All Ports 2493 Configuration messages always report the same default 2494 values regardless of the operation of the Label Range 2495 message. 2497 Min VCI 2498 The default minimum value of dynamically assigned incoming 2499 VCI that the connection table on the input port can support 2500 and may be controlled by GSMP. This value is not changed as 2501 a result of the Label Range message. 2503 Max VCI 2504 The default maximum value of dynamically assigned incoming 2505 VCI that the connection table on the input port can support 2506 and may be controlled by GSMP. This value is not changed as 2507 a result of the Label Range message. 2509 At power-on, after a hardware reset, and after the Reset 2510 Input Port function of the Port Management message, the 2511 input port must handle all values of VCI within the range 2512 Min VCI to Max VCI inclusive, for each of the virtual paths 2513 in the range Min VPI to Max VPI inclusive, and GSMP must be 2514 able to control all values within this range. It should be 2515 noted that the range Min VCI to Max VCI refers only to the 2516 incoming VCI range that can be supported by the associated 2517 port on each of the virtual paths in the range Min VPI to 2518 Max VPI. No restriction is placed on the values of outgoing 2519 VCIs that may be written into the cell header. 2521 Use of the Label Range message allows the range of VCIs to 2522 be changed on each VPI supported by the port. However, the 2523 Min VCI and Max VCI fields in the Port Configuration and 2524 All Ports Configuration messages always report the same 2525 default values regardless of the operation of the Label 2526 Range message. 2528 For a port over which the GSMP protocol is operating, the 2529 VCI of the GSMP control channel may or may not be reported 2530 as lying within the range Min VCI to Max VCI. A switch 2531 should honor a connection request message that specifies 2532 the VCI value of the GSMP control channel even if it lies 2533 outside the range Min VCI to Max VCI. 2535 Receive Cell Rate 2536 The maximum rate of cells that may arrive at the input port 2537 in cells/s. 2539 Transmit Cell Rate 2540 The maximum rate of cells that may depart from the output 2541 port in cells/s. (The transmit cell rate of the output port 2542 may be changed by the Set Transmit Cell Rate function of 2543 the Port Management message.) 2545 Port Status 2546 Gives the administrative state of the port. The defined 2547 values of the Port Status field are: 2549 Available: 2550 Port Status = 1. The port is available to both send 2551 and receive cells. When a port changes to the 2552 Available state from any other administrative state, 2553 all dynamically assigned virtual connections must be 2554 cleared and a new Port Session Number must be 2555 generated. 2557 Unavailable: 2558 Port Status = 2. The port has intentionally been taken 2559 out of service. No cells will be transmitted from this 2560 port. No cells will be received by this port. 2562 Internal Loopback: 2563 Port Status = 3. The port has intentionally been taken 2564 out of service and is in internal loopback: cells 2565 arriving at the output port from the switch fabric are 2566 looped through to the input port to return to the 2567 switch fabric. All of the ATM functions of the input 2568 port above the physical layer, e.g. header 2569 translation, are performed upon the looped back cells. 2571 External Loopback: 2572 Port Status = 4. The port has intentionally been taken 2573 out of service and is in external loopback: cells 2574 arriving at the input port from the external 2575 communications link are immediately looped back to the 2576 communications link at the physical layer without 2577 entering the input port. None of the ATM functions of 2578 the input port above the physical layer are performed 2579 upon the looped back cells. 2581 Bothway Loopback: 2582 Port Status = 5. The port has intentionally been taken 2583 out of service and is in both internal and external 2584 loopback. 2586 The Port Status of the port over which the GSMP session 2587 controlling the switch is running, must be declared 2588 Available. The controller will ignore any other Port status 2589 for this port. The Port Status of switch ports after power- 2590 on initialization is not defined by GSMP. 2592 Port Type 2593 The type of physical transmission interface for this port. 2594 The values for this field are defined by the atmIfType 2595 object specified in the Ipsilon IP Switch MIB [IpsilonMIB]. 2597 Line Status 2598 The status of the physical transmission medium connected to 2599 the port. The defined values of the Line Status field are: 2601 Up: 2602 Line Status = 1. The line is able to both send and 2603 receive cells. When the Line Status changes to Up 2604 from either the Down or Test states, a new Port 2605 Session Number must be generated. 2607 Down: 2608 Line Status = 2. The line is unable either to send or 2609 receive cells or both. 2611 Test: 2612 Line Status = 3. The port or line is in a test mode, 2613 for example, power-on test. 2615 Priorities 2616 The number of different priority levels that this output 2617 port can assign to virtual connections. Zero is invalid in 2618 this field. If an output port is able to support "Q" 2619 priorities, the highest priority is numbered zero and the 2620 lowest priority is numbered "Q-1". The ability to offer 2621 different qualities of service to different connections 2622 based upon their priority is assumed to be a property of 2623 the output port of the switch. It may be assumed that for 2624 connections that share the same output port, an ATM cell on 2625 a connection with a higher priority is much more likely to 2626 exit the switch before an ATM cell on a connection with a 2627 lower priority if they are both in the switch at the same 2628 time. 2630 Physical Slot Number 2631 The physical location of the slot in which the port is 2632 located. It is an unsigned 16-bit integer that can take any 2633 value except 0xFFFF. The value 0xFFFF is used to indicate 2634 "unknown." The Physical Slot Number is not used by the GSMP 2635 protocol. It is provided to assist network management in 2636 functions such as logging, port naming, and graphical 2637 representation. 2639 Physical Port Number 2640 The physical location of the port within the slot in which 2641 the port is located. It is an unsigned 16-bit integer that 2642 can take any value except 0xFFFF. The value 0xFFFF is used 2643 to indicate "unknown." The Physical Port Number is not used 2644 by the GSMP protocol. It is provided to assist network 2645 management in functions such as logging, port naming, and 2646 graphical representation. 2648 There must be a one to one mapping between Port Number and 2649 the Physical Slot Number and Physical Port Number 2650 combination. Two different Port Numbers must not yield the 2651 same Physical Slot Number and Physical Port Number 2652 combination. The same Port Number must yield the same 2653 Physical Slot Number and Physical Port Number within a 2654 single GSMP session. If both Physical Slot Number and 2655 Physical Port Number indicate "unknown" the physical 2656 location of switch ports may be discovered by looking up 2657 the product identity in a database to reveal the physical 2658 interpretation of the 32-bit Port Number. 2660 7.3 All Ports Configuration Message 2662 The All Ports Configuration message requests the switch for the 2663 configuration information of all of its ports. The All Ports 2664 Configuration message is: 2666 Message Type = 66 2668 The Port field is not used in the request message. 2670 The All Ports Configuration success response message has the 2671 following format: 2673 0 1 2 3 2674 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 2675 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2676 | Version | Message Type | Result | Code | 2677 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2678 | Transaction Identifier | 2679 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2680 | Number of Records | Port Record Length | 2681 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2682 | | 2683 ~ Port Records ~ 2684 | | 2685 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2687 Number of Records 2688 Field gives the total number of Port Records to be returned 2689 in response to the All Ports Configuration request message. 2690 The number of port records in a single All Ports 2691 Configuration success response must not cause the packet 2692 length to exceed the maximum transmission unit defined by 2693 the encapsulation. If a switch has more ports than can be 2694 sent in a single success response message it must send 2695 multiple success response messages. All success response 2696 messages that are sent in response to the same request 2697 message must have the same Transaction Identifier as the 2698 request message and the same value in the Number of Records 2699 field. All success response messages that are sent in 2700 response to the same request message, except for the last 2701 message, must have the result field set to "More." The last 2702 message, or a single success response message, must have 2703 the result field set to "Success." All Port records within 2704 a success response message must be complete, i.e. a single 2705 Port record must not be split across multiple success 2706 response messages. 2708 Port Record Length 2709 Field gives the length of each port record in bytes. This 2710 is currently 32 but the Port Record Length field allows for 2711 the future definition of further fields at the end of the 2712 port record while preserving compatibility with earlier 2713 versions of the protocol. 2715 Port Records 2716 Follow in the remainder of the message. Each port record 2717 has the following format: 2719 0 1 2 3 2720 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 2721 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2722 | Port | 2723 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2724 | Port Session Number | 2725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2726 |V|M|L|R| Min VPI |Q|x x x| Max VPI | 2727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2728 | Min VCI | Max VCI | 2729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2730 | Receive Cell Rate | 2731 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2732 | Transmit Cell Rate | 2733 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2734 | Port Status | Port Type | Line Status | Priorities | 2735 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2736 | Physical Slot Number | Physical Port Number | 2737 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2739 The definition of the fields in the Port Record is exactly the same 2740 as that of the Port Configuration message. 2742 8. Event Messages 2744 Event messages allow the switch to inform the controller of certain 2745 asynchronous events. Event messages are not acknowledged. The Result 2746 field and the Code field in the message header are not used and 2747 should be set to zero. Event messages are not sent during 2748 initialization. Event messages have the following format: 2750 0 1 2 3 2751 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 2752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2753 | Version | Message Type | Result | Code | 2754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2755 | Transaction Identifier | 2756 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2757 | Port | 2758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2759 | Port Session Number | 2760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2761 | Event Sequence Number | 2762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2763 | zero | VPI | VCI | 2764 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2765 Event Sequence Number 2766 The current value of the Event Sequence Number for the 2767 specified port. The Event Sequence Number is set to zero 2768 when the port is initialized. It is incremented by one each 2769 time the port detects an asynchronous event that the switch 2770 would normally report via an Event message. The Event 2771 Sequence Number must be incremented each time an event 2772 occurs even if the switch is prevented from sending an 2773 Event message due to the action of the flow control. 2775 VPI/VCI 2776 Field gives the VPI/VCI to which the event message refers. 2777 If this field is not required by the event message it is 2778 set to zero. 2780 Each switch port must maintain an Event Sequence Number and a set of 2781 Event Flags, one Event Flag for each type of Event message. When a 2782 switch port sends an Event message it must set the Event Flag on that 2783 port corresponding to the type of the event. The port is not 2784 permitted to send another Event message of the same type until the 2785 Event Flag has been reset. Event Flags are reset by the "Reset Event 2786 Flags" function of the Port Management message. This is a simple flow 2787 control preventing the switch from flooding the controller with event 2788 messages. The Event Sequence Number of the port must be incremented 2789 every time an event is detected on that port even if the port is 2790 prevented from reporting the event due to the action of the flow 2791 control. This allows the controller to detect that it has not been 2792 informed of some events that have occurred on the port due to the 2793 action of the flow control. 2795 8.1 Port Up Message 2797 The Port Up message informs the controller that the Line Status of a 2798 port has changed from either the Down or Test state to the Up state. 2799 When the Line Status of a switch port changes to the Up state from 2800 either the Down or Test state a new Port Session Number must be 2801 generated, preferably using some form of random number. The new Port 2802 Session Number is given in the Port Session Number field. The VPI/VCI 2803 field is not used and is set to zero. The Port Up message is: 2805 Message Type = 80 2807 8.2 Port Down Message 2809 The Port Down message informs the controller that the Line Status of 2810 a port has changed from the Up state to the Down state. This message 2811 will be sent to report link failure if the switch is capable of 2812 detecting link failure. The port session number that was valid before 2813 the port went down is reported in the Port Session Number field. The 2814 VPI/VCI field is not used and is set to zero. The Port Down message 2815 is: 2817 Message Type = 81 2819 8.3 Invalid VPI/VCI Message 2821 The Invalid VPI/VCI message is sent to inform the controller that one 2822 or more cells have arrived at an input port with a VPI/VCI that is 2823 currently not allocated to an assigned connection. The input port is 2824 indicated in the Port field, and the VPI/VCI in the VPI/VCI field. 2825 The Invalid VPI/VCI message is: 2827 Message Type = 82 2829 8.4 New Port Message 2831 The New Port message informs the controller that a new port has been 2832 added to the switch. The port number of the new port is given in the 2833 Port field. A new Port Session Number must be assigned, preferably 2834 using some form of random number. The new Port Session Number is 2835 given in the Port Session Number field. The state of the new port is 2836 undefined so the VPI/VCI field is not used and is set to zero. The 2837 New Port message is: 2839 Message Type = 83 2841 8.5 Dead Port Message 2843 The Dead Port message informs the controller that a port has been 2844 removed from the switch. The port number of the port is given in the 2845 Port field. The Port Session Number that was valid before the port 2846 was removed is reported in the Port Session Number field. The 2847 VPI/VCI fields are not used and are set to zero. The Dead Port 2848 message is: 2850 Message Type = 84 2852 9. Quality of Service Messages 2854 The GSMP Quality of Service (QoS) messages allow a controller to 2855 group virtual path connections and virtual channel connections into 2856 QoS classes, and to allocate QoS resources to both QoS classes and to 2857 individual connections. At initialization, the switch describes its 2858 QoS capabilities to the controller, in terms of the abstract switch 2859 model, using the QoS Configuration message. The controller issues 2860 Scheduler Establishment messages to configure the scheduler on each 2861 switch output port. It also issues QoS Class Establishment messages 2862 to configure QoS classes. Connections may be added to, or deleted 2863 from, a QoS class using the QoS Connection Management message. QoS 2864 resources may also be assigned to individual connections using the 2865 QoS Connection Management message. Connections that only require the 2866 scheduler may use the simple connection management messages defined 2867 in Section 3, "Connection Management Messages." 2869 9.1 Abstract Switch Model 2871 The abstract switch model, fig. 1, is the means by which a switch can 2872 describe its fundamental QoS capabilities to a controller. It 2873 consists of four main functions: a policer, a classifier, a 2874 regulator, and a scheduler. The classifier groups multiple 2875 connections (VPCs or VCCs) together into a QoS class such that QoS 2876 resources may be shared by the QoS class as a whole. Within a QoS 2877 class there is no differentiation between members of the class in 2878 terms of QoS resources received. However, the ordering of cells 2879 within each constituent VPC or VCC must be preserved on exit from the 2880 switch. Connections are not required to be aggregated into a QoS 2881 class with other connections; they may be allocated individual QoS 2882 resources. 2884 VPC/VCCs Policer Classifier Regulator Scheduler 2886 +--+ +----+ +--------+ 2887 -------->| |---->| | | | 2888 +--+ | | | | 2889 | | | | 2890 +--+ | | +----+ | | 2891 -------->| |---->| | | |--------->| | 2892 +--+ | | | |conforming| | 2893 | |------>| | | | 2894 +--+ | | QoS | | | | 2895 -------->| |---->| | Class | |--------->| | 2896 +--+ | | +----+ excess | | 2897 | | | | 2898 +--+ | | | | 2899 -------->| |---->| | | | 2900 +--+ +----+ | | 2901 | | 2902 | | Output 2903 | | Port 2904 | |----------> 2905 | | 2906 | | 2907 +--+ +----+ | | 2908 -------->| |---->| | | | 2909 +--+ | | | | 2910 | | | | 2911 +--+ | | +----+ | | 2912 -------->| |---->| | | |--------->| | 2913 +--+ | | | |conforming| | 2914 | |------>| | | | 2915 +--+ | | QoS | | | | 2916 -------->| |---->| | Class | |--------->| | 2917 +--+ | | +----+ excess | | 2918 | | | | 2919 +--+ | | | | 2920 -------->| |---->| | | | 2921 +--+ +----+ | | 2922 +--------+ 2924 Fig. 1: Abstract Switch Model 2926 The policer is a single input, single output device that can discard 2927 or tag cells. A policer may be applied to police each individual 2928 connection. A policer may also be applied to police the aggregate 2929 traffic of a QoS class. The policer is used to enforce an upper 2930 bound on the traffic on a connection or on a QoS class. 2932 The regulator follows the policer and classifier. It offers either a 2933 policing function or a shaping function. The policing function 2934 evaluates cells as conforming to the rate specified by the regulator 2935 parameters or as being in excess of that rate. One of three actions 2936 can be specified to be taken for each cell as a result of this 2937 evaluation: tagging, discard or differentiated scheduling. Tagging 2938 sets the CLP bit of cells deemed to be in excess of the rate defined 2939 by the regulator parameters. The discard function discards excess 2940 cells. The differentiated scheduling function allows conforming cells 2941 and excess cells to be scheduled for service at different points in 2942 the scheduler. This would allow conforming cells, for example, to 2943 receive service with a QoS guarantee, whereas excess cells receive 2944 best-effort service. The implementation of differentiated 2945 scheduling, however, is complicated by the requirement not to reorder 2946 cells within each connection. 2948 The shaping function of the regulator paces cells out, on each QoS 2949 class or individual connection, at the rate specified by the 2950 regulator parameters. No jitter requirement may be specified, nor is 2951 any specific guarantee of jitter given. If traffic arrives on any QoS 2952 class or individual connection at a greater rate than the output rate 2953 specified, that traffic will be delayed. If the delayed traffic for 2954 any QoS class or individual connection exceeds a bound, discard will 2955 occur. Differentiated scheduling is supported by the shaper but its 2956 application to shaping is somewhat different than its application to 2957 policing. Conforming traffic is that traffic which leaves the shaper 2958 as a result of the shaping process. The conforming pointer specifies 2959 the point in the scheduler structure where such traffic is scheduled 2960 for output. (This is typically the highest priority of the scheduler 2961 but the GSMP specification permits other priorities to be specified.) 2962 If an excess pointer is also enabled for a particular QoS class or 2963 individual connection, traffic in excess of the rate specified by the 2964 shaper may also be transmitted. The position of the excess pointer 2965 in the scheduler structure determines the undefined amount of 2966 additional traffic that will be supported. The excess traffic may be 2967 tagged if required, if tagging is supported. The excess pointer will 2968 receive the same share of bandwidth that a best-effort class or 2969 connection would receive at the same location in the scheduler 2970 structure. 2972 The location of the classifier and regulator functions in the switch 2973 is important. If the classifier is located on an input port, only 2974 virtual connections that arrive at that input port may be aggregated 2975 into a QoS class. If the classifier is centralized, or located on an 2976 output port, virtual connections that arrive at any input port may be 2977 aggregated into the same QoS class. If the regulator is located on an 2978 output port all virtual connections within a QoS class passing 2979 through that regulator must exit the switch at that output port. 2981 However, if the regulator is centralized, or located on an input 2982 port, virtual connections that are part of the same QoS class may be 2983 switched to different output ports. Each switch port must specify 2984 the location of its classifier and regulator functions. 2986 The scheduler is located on the output port, fig. 2. It distributes 2987 the bandwidth of the output link between the QoS classes and 2988 individual connections. It is a two-level scheduler: a priority 2989 scheduler at one level and a FIFO or a weighted scheduler at the 2990 other. Up to 255 strict priority levels may be supported. Traffic in 2991 any specific priority level may only be transmitted if no traffic is 2992 queued for transmission in any higher priority level. Within each 2993 priority level a weighted scheduler may be defined. Each leaf of the 2994 scheduler tree is connected to a waiting room. The waiting room has 2995 two functions. When it receives service from the scheduler, it must 2996 select a QoS class or individual connection for transmission. When it 2997 is notified of traffic arrival on a QoS class or connection, it must 2998 decide whether there is enough room left in the waiting room to 2999 accept the traffic, else that traffic must be discarded. The waiting 3000 room has a size parameter indicating how much traffic may be 3001 accepted. Other queueing parameters may be attached to the waiting 3002 room. Multiple conforming and excess pointers from the regulators may 3003 point to each waiting room. Within a waiting room, the scheduling of 3004 multiple connections sharing that waiting room may support weighted 3005 sharing between the connections. 3007 From Waiting FIFO/Weighted Priority 3008 Regulator Room Scheduler Scheduler 3010 Net +---+ 3011 +------+ Weight | | 3012 ---------->| |-%-------->| 0 |------\ 3013 +------+ | | \ 3014 +---+ \ 3015 ---------->+------+ | 3016 | |-%--\ +---+ | 3017 ---------->+------+ \---->| | | 3018 | 1 |---\ | 3019 +------+ /---->| | \ \ 3020 ---------->| |-%--/ +---+ \ \ +---+ 3021 +------+ \ \-->| | 3022 \----->| |---------> 3023 ---------->+------+ /-->| | Output 3024 ---------->| |-%-\ / +---+ Port 3025 ---------->+------+ \ / 3026 \ +---+ / 3027 +------+ \--->| | / 3028 ---------->| |-%-------->| 2 |-----/ 3029 +------+ /--->| | 3030 / +---+ 3031 +------+ / 3032 ---------->| |-%-/ 3033 +------+ 3035 Fig. 2: The Scheduler 3037 9.2 QoS Configuration Message 3039 The QoS Configuration message permits the controller to discover the 3040 QoS capabilities of each switch port in terms of the abstract switch 3041 model. The QoS Configuration message is: 3043 Message Type = 96 3045 The QoS Configuration request message has the following format: 3047 0 1 2 3 3048 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 3049 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3050 | Version | Message Type | Result | Code | 3051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3052 | Transaction Identifier | 3053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3054 | Port | 3055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3057 The QoS Configuration success response message has the following 3058 format: 3060 0 1 2 3 3061 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 3062 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3063 | Version | Message Type | Result | Code | 3064 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3065 | Transaction Identifier | 3066 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3067 | Port | 3068 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3069 | Port Session Number | 3070 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3071 | Scheduler Flags | Regulator Flags | 3072 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3073 | Excess Capabilities | Reserved | 3074 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3075 | Hi Sharing | Lo Sharing | Max Classes | 3076 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3077 | Default Size | 3078 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3079 | Default Discard Threshold | 3080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3081 | Max Buffer | 3082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3083 | Max Shaper Buffer | 3084 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3085 | Scaling Factor | 3086 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3088 Port 3089 The switch port to which the QoS configuration information 3090 refers. QoS configuration information relating to both the 3091 input and the output sides of the switch port is given. 3093 Scheduler Flags 3095 0 1 3096 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 3097 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3098 |W|Q|S|G|D|F|M|B|I|x x x x x x x| 3099 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3101 W: Weighted Connections 3102 Bit 0 of the Scheduler Flags field, if set, indicates that 3103 a weighted service algorithm (such as weighted round-robin) 3104 is available for allocation of service to individual 3105 connections within at least some waiting rooms. It means 3106 that a Connection Weight parameter can be attached to a QoS 3107 Connection Management message. Not all waiting rooms at 3108 all priority levels may be able to support this function. 3109 Whether a particular waiting room can support this function 3110 will be discovered when a QoS Connection Management message 3111 is issued. 3113 Q: Weighted QoS Classes 3114 Bit 1 of the Scheduler Flags field, if set, indicates that 3115 a weighted service algorithm (such as weighted round-robin) 3116 is available for allocation of service to QoS classes 3117 within at least some waiting rooms. It means that a QoS 3118 Class Weight parameter can be attached to a QoS Class 3119 Establishment message. Not all waiting rooms at all 3120 priority levels may be able to support this function. 3121 Whether a particular waiting room can support this function 3122 will be discovered when a QoS Class Establishment message 3123 is issued. 3125 S: Shared Waiting Room 3126 Bit 2 of the Scheduler Flags field, if set, indicates that 3127 multiple QoS classes and multiple connections may be 3128 scheduled within a single waiting room. This is expected to 3129 be the normal case. If Bit 2 of the Scheduler Flags field 3130 is zero, it indicates that only a single QoS class or a 3131 single connection may be directed to any single waiting 3132 room. 3134 G: Global Max Classes 3135 Bit 3 of the Scheduler Flags field, if set, indicates that 3136 the Max Classes field gives the maximum number of QoS 3137 classes that may be supported by the entire switch. If 3138 zero, it indicates that the Max Classes field gives the 3139 maximum number of QoS classes that may be supported by this 3140 switch port. 3142 D: Packet Discard 3143 Bit 4 of the Scheduler Flags field, if set, indicates that 3144 the scheduler on this output port is capable of packet 3145 discard. Packet discard indicates a discard algorithm that 3146 is aware of AAL-5 packet boundaries and attempts to discard 3147 whole packets. No specific algorithm is indicated though 3148 Early Packet Discard (EPD) is likely to be the most common. 3149 Other algorithms such as "push from front" schemes, dynamic 3150 threshold, or Random Early Detection (RED) are also 3151 examples of possible packet discard algorithms. The only 3152 parameters available to the packet discard algorithm, via 3153 GSMP, are the Size and Discard Threshold of the waiting 3154 room. 3156 F: Frame-Based Scheduling 3157 Bit 5 of the Scheduler Flags field, if set, indicates that 3158 the scheduler on this output port is capable of frame-based 3159 scheduling. In frame-based scheduling, a connection is only 3160 scheduled for transmission when a complete AAL-5 packet is 3161 available. When a connection is scheduled for 3162 transmission, all cells belonging to one or more complete 3163 packets from that connection will be transmitted without 3164 being interleaved with any other cells on that output port 3165 (regardless of their priority). Frame-based scheduling is 3166 a property of the waiting room and is requested in the 3167 Scheduler Establishment message. A QoS class may be routed 3168 through a waiting room configured with frame-based 3169 scheduling. In this case each component connection of the 3170 QoS class will receive frame based scheduling. For correct 3171 distribution of bandwidth, each QoS class that requires 3172 frame-based scheduling should have its own waiting room. 3174 M: VC Merging 3175 Bit 6 of the Scheduler Flags field, if set, indicates that 3176 the scheduler on this output port is capable of VC merging 3177 by a mechanism other than frame-based scheduling. VC 3178 merging indicates that the switch is capable of the 3179 multipoint-to-point merging of two or more incoming virtual 3180 connections onto a single outgoing virtual connection 3181 without interleaving cells from different AAL-5 packets 3182 that bear the same VPI/VCI. VC merging differs from frame- 3183 based scheduling in that cells with a different VPI/VCI may 3184 be interleaved with those of a multipoint-to-point VC 3185 merging connection. Thus, higher priority cells may be 3186 interleaved during the transmission of a packet on a lower 3187 priority VC merging connection. Most switches achieve VC 3188 merging by using frame-based scheduling. VC merging is a 3189 property of the waiting room and is requested in the 3190 Scheduler Establishment message. A QoS class may be routed 3191 through a waiting room configured with VC merging. In this 3192 case each component connection of the QoS class will 3193 receive VC merging. 3195 B: Shared Buffer 3196 Bit 7 of the Scheduler Flags field, if set, indicates that 3197 at least some of the buffer space specified by the Max 3198 Buffer field is shared with other ports. If zero, it 3199 indicates that the buffer space specified by the Max Buffer 3200 field is not shared with other ports. 3202 I: Identical Ports 3203 Bit 8 of the Scheduler Flags field, if set, indicates that 3204 all ports of the switch have identical QoS capabilities. If 3205 this bit is set the controller does not have to request the 3206 QoS configuration of each port individually as all ports 3207 have the same capability. 3209 x: Bits 9--15 of the Scheduler Flags field are not used. 3211 Regulator Flags 3213 0 1 3214 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 3215 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3216 |C|Q|I O|P|S|H|M|x x x x x x x x| 3217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3219 C: Connection Policing 3220 Bit 0 of the Regulator Flags field indicates that this 3221 input port supports the policing of individual incoming 3222 connections. The parameters for the policer are specified 3223 in the QoS Connection Management message when the 3224 connection is established. 3226 Q: QoS Class Policing 3227 If bit 1 of the Regulator Flags field is set, a policer 3228 function is available to police each QoS class on output 3229 from the classifier. The parameters for this policer are 3230 specified in the QoS Class Establishment message. If this 3231 bit is zero, no policer function is available to police a 3232 QoS class. 3234 IO: QoS Class Location 3235 Bits 2 and 3 of the Regulator Flags field specify the 3236 location of the classifier and regulator functions. If both 3237 bits 2 and 3 of the Regulator Flags field are zero, no 3238 classifier or regulator function is available to this port. 3240 If bit 2 of the Regulator Flags field is set and bit 3 is 3241 zero, the classifier and regulator functions are available 3242 on the input port. This implies that only virtual 3243 connections arriving at this input port may be grouped into 3244 QoS classes by this classifier. However, connections in a 3245 QoS class output from this regulator may be switched to any 3246 output port. 3248 If bit 2 of the Regulator Flags field is zero and bit 3 is 3249 set, the classifier and regulator functions are available 3250 on the output port. This implies that virtual connections 3251 arriving at any input port may be grouped into QoS classes 3252 by this classifier. However, all connections in any QoS 3253 class output from this regulator may only be switched to 3254 this output port. 3256 If both bits 2 and 3 of the Regulator Flags field are set, 3257 this switch port has access to centralized classifier and 3258 regulator functions. This implies that virtual connections 3259 arriving at any input port may be grouped into a QoS class 3260 by this classifier. Also, connections in a QoS class output 3261 from this regulator may be switched to any output port. 3263 Regulator Function 3265 P: If bit 4 of the Regulator Flags field is set, the regulator 3266 is able to support the policing function. 3268 S: If bit 5 of the Regulator Flags field is set, the regulator 3269 is able to support the shaping function on all priority 3270 levels of the scheduler. 3272 H: If bit 5 of the Regulator Flags field is zero and bit 6 is 3273 set, the regulator is able to support the shaping function 3274 but only on the highest priority level of the scheduler. 3275 All connections and QoS classes using this regulator must 3276 be routed to a waiting room at the highest priority level 3277 of the scheduler. 3279 M: QoS Multicast 3280 If bit 7 of the Regulator Flags field is set, any point-to- 3281 multipoint connection arriving on this input port, with QoS 3282 parameters established by the GSMP Quality of Service 3283 messages, must use the same QoS parameters for all output 3284 branches. 3286 x: Bits 8--15 of the Regulator Flags field are not used. 3288 Excess Capabilities 3290 0 1 3291 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 3292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3293 |D|T|S|A|B|x x x x x x x x x x x| 3294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3296 Policer: 3298 D: If bit 0 of the Excess Capabilities field is set, the policer 3299 function of the regulator is able to support discard. 3301 T: If bit 1 of the Excess Capabilities field is set, the policer 3302 function of the regulator is able to support tagging. 3304 S: If bit 2 of the Excess Capabilities field is set, the policer 3305 function of the regulator is able to support differentiated 3306 scheduling. 3308 Shaper: 3310 A: If bit 3 of the Excess Capabilities field is set, the shaper 3311 function of the regulator is able to support tagging. 3313 B: If bit 4 of the Excess Capabilities field is set, the shaper 3314 function of the regulator is able to support differentiated 3315 scheduling. 3317 x: Bits 5--15 of the Excess Capabilities field are not used. 3319 Hi Sharing 3320 Lo Sharing 3321 Defines a range of priority levels that support weighted 3322 sharing. Each priority level in the range Lo Sharing to Hi 3323 Sharing inclusive, supports weighted sharing. A priority 3324 level that supports weighted sharing offers a weighted 3325 sharing algorithm (for example, weighted round-robin) 3326 between waiting rooms within that priority level. This 3327 permits the output link bandwidth available at that 3328 priority level, to be shared between the waiting rooms 3329 allocated to that priority level, according to the Net 3330 Weight parameter of each waiting room. The value 0xFF for 3331 both parameters indicates that this output port does not 3332 support weighted sharing in any priority level. 3334 Max Classes 3335 If bit 3 of the Scheduler Flags field is zero, Max Classes 3336 gives the maximum number of QoS classes that may be 3337 supported by this switch port. In this case the maximum 3338 number of QoS classes that may be supported by this switch 3339 port is not affected by the number of QoS classes in use by 3340 other switch ports. If bit 3 of the Scheduler Flags field 3341 is set, Max Classes gives the maximum number of QoS classes 3342 that may be supported by the entire switch. In this case it 3343 is assumed that use of these QoS classes may be distributed 3344 among the various switch ports. 3346 Default Size 3347 The size of waiting room that this output port allocates by 3348 default. The actual size of waiting room may be specified 3349 in the Scheduler Establishment message. The size of a 3350 waiting room specifies the maximum number of cells 3351 permitted to wait for transmission via that waiting room. 3352 Any further cells arriving at that waiting room beyond this 3353 number will be discarded. 3355 Default Discard Threshold 3356 The value of discard threshold that this output port 3357 allocates by default. The actual value of discard threshold 3358 may be specified in the Scheduler Establishment message. 3359 The discard threshold specifies the number of cells waiting 3360 for transmission via a waiting room after which further 3361 arriving cells will be subject to a discard mechanism. 3363 Max Buffer 3364 The maximum amount of buffer space, measured in cells, 3365 available to this port. If bit 7 of the Scheduler Flags 3366 field is zero this, buffer space is not shared with other 3367 ports. If bit 7 of the Scheduler Flags field is set, at 3368 least some of this buffer space is shared with other ports. 3370 Max Shaper Buffer 3371 The maximum amount of buffer space, measured in cells, 3372 available to a QoS connection or a QoS class within the 3373 shaper function of the regulator. This shaper buffer space 3374 is likely to be shared among all QoS classes and QoS 3375 connections using the shaper, so there is no guarantee that 3376 the amount of buffer space defined by the Max Shaper Buffer 3377 field will be available to any particular QoS class or QoS 3378 connection. 3380 Scaling Factor 3381 The QoS Class Establishment and QoS Connection Management 3382 messages require parameters that describe cell rates in 3383 cells per second or their reciprocal, cell interarrival 3384 periods, in seconds per cell. In order that these 3385 parameters may be specified with a 32-bit unsigned integer, 3386 the switch defines a Scaling Factor to be used in defining 3387 such parameters. By appropriate choice of the Scaling 3388 Factor the switch can select the range and granularity of 3389 rate or time that can be specified with the 32-bit unsigned 3390 integer. Further details are given in the discussion of 3391 the UPC Parameters field of the QoS Connection Management 3392 message. 3394 9.3 Scheduler Establishment Message 3396 The Scheduler Establishment message is used to configure the 3397 scheduler on a specified output port. It is used to configure a 3398 waiting room, attach it to a leaf of the scheduler tree, and return a 3399 Scheduler Identifier to reference the waiting room. The Scheduler 3400 Establishment message may also be used to modify the parameters of an 3401 already established waiting room. 3403 Scheduler Identifiers in the range 0--255 represent default values. 3404 They are used for the priority levels that may be specified in the 3405 Class of Service field of Connection Management messages without 3406 requiring explicit establishment via a Scheduler Establishment 3407 message. Each of these default values specifies a single waiting 3408 room with default parameters, configured as a FIFO queue, on each of 3409 the valid scheduler priority levels. (This permits Connection 3410 Management messages to continue to specify QoS requirements as a 3411 priority without requiring the use of any of the QoS messages.) The 3412 number of priority levels available to the scheduler is specified in 3413 the Priorities field of the Port Configuration and All Ports 3414 Configuration messages. 3416 The Scheduler Establishment Message is: 3418 Message Type = 97 3420 The Scheduler Establishment request and success response messages 3421 have the following format: 3423 0 1 2 3 3424 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 3425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3426 | Version | Message Type | Result | Code | 3427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3428 | Transaction Identifier | 3429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3430 | Port | 3431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3432 | Port Session Number | 3433 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3434 | Scheduler Identifier | Net Weight | 3435 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3436 | Reserved |D|F|M|W|x x x x| Priority | 3437 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3438 | Waiting Room Size | 3439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3440 | Discard Threshold | 3441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3443 Scheduler Identifier 3444 The Scheduler Identifier is selected by the controller. It 3445 is used to identify the waiting room being established or 3446 modified in future messages. The Scheduler Identifier is 3447 taken from a namespace that is local to the switch port. A 3448 Scheduler Identifier in the Scheduler Establishment message 3449 must be greater than 0x00FF but less than 0xFFFF. The 3450 values 0 -- 0x00FF are reserved for use as default values. 3451 The default values of the Scheduler Identifier are used to 3452 specify the default settings for the scheduler. Each of the 3453 default values maps directly to one of the scheduler 3454 priority levels. The value 0xFFFF is reserved for use in 3455 the QoS Connection Management message. 3457 Net Weight 3458 The Net Weight specifies the share of the bandwidth 3459 available to the priority level, specified by the Priority 3460 field, that should be given to this waiting room. The Net 3461 Weight parameter is only valid if the priority level 3462 specified by the Priority field supports weighted sharing. 3464 The Net Weight is an unsigned 16-bit field specifying a 3465 binary fraction. I.e. the bandwidth share, as a fraction 3466 of the bandwidth available to the priority level, is given 3467 by: 3469 Bandwidth share = Net Weight * 2**(-16) 3471 A Net Weight of zero indicates equal sharing between all 3472 waiting rooms sharing this priority level that request a 3473 Net Weight of zero. While a 16-bit field is used to 3474 specify the Net Weight it is understood that the accuracy 3475 of the bandwidth sharing is hardware dependent and is not 3476 specified. 3478 If weighted sharing is not required at a particular 3479 priority level, a waiting room with a Net Weight value of 3480 0xFFFF must be specified for that priority level. A 3481 priority level that does not support weighted sharing can 3482 only support a single waiting room. 3484 Flags 3486 D: Packet Discard 3487 Bit 0 of the Flags field, if set, indicates that packet 3488 discard is required on all connections and QoS classes 3489 routed through this waiting room. 3491 F: Frame-Based Scheduling 3492 Bit 1 of the Flags field, if set, indicates that frame- 3493 based scheduling is required on all connections and QoS 3494 classes routed through this waiting room. In frame-based 3495 scheduling, a connection is only scheduled for transmission 3496 when a complete AAL-5 packet is available. When a 3497 connection is scheduled for transmission, all cells 3498 belonging to one or more complete packets from that 3499 connection will be transmitted without being interleaved 3500 with any other cells on that output port. A QoS class may 3501 be routed through a waiting room configured with frame- 3502 based scheduling. In this case each component connection 3503 of the QoS class will receive frame based scheduling. For 3504 correct distribution of bandwidth, each QoS class that 3505 requires frame-based scheduling should have its own waiting 3506 room. 3508 M: VC Merging 3509 Bit 2 of the Scheduler Flags field, if set, indicates that 3510 VC merging is required on all connections and QoS classes 3511 routed through this waiting room. VC merging enables the 3512 multipoint-to-point merging of two or more incoming virtual 3513 connections onto a single outgoing virtual connection, 3514 without interleaving cells from different AAL-5 packets 3515 that bear the same VPI/VCI. VC merging differs from frame- 3516 based scheduling in that cells with a different VPI/VCI may 3517 be interleaved with those of a multipoint-to-point VC 3518 merging connection. Most switches achieve VC merging by 3519 using frame-based scheduling. A QoS class may be routed 3520 through a waiting room configured with VC merging. In this 3521 case each component connection of the QoS class will 3522 receive VC merging. 3524 W: Weighted Scheduling 3525 Bit 3 of the Flags field, if set, indicates that weighted 3526 scheduling is required on all connections and QoS classes 3527 routed through this waiting room. All connections and QoS 3528 classes routed through this waiting room will require a 3529 Connection Weight or a QoS Class Weight respectively. The 3530 Connection Weight is specified in the QoS Connection 3531 Management message. The QoS Class Weight is specified in 3532 the QoS Class Establishment message. If weighted scheduling 3533 within this waiting room is unavailable, a failure response 3534 message must be returned indicating, "Weighted scheduling 3535 within this waiting room is unavailable." 3537 Bit 3 of the Flags field, if zero, indicates that this 3538 waiting room should be configured as a single FIFO queue. 3539 All cells arriving at this waiting room will receive first- 3540 in-first-out service. If Frame-Based Scheduling or VC 3541 Merging are also selected, the strict first-in-first-out 3542 service discipline will be modified by the requirement to 3543 support Frame-Based Scheduling or VC Merging. 3545 x: Bits 4--7 of the Flags field are not used. 3547 Priority 3548 Specifies the priority level in the scheduler to which the 3549 waiting room should be attached. Priorities are numbered 3550 from zero, with priority level zero being the highest 3551 priority. 3553 Waiting Room Size 3554 The required size of the waiting room. The size of a 3555 waiting room specifies the maximum number of cells 3556 permitted to wait for transmission via that waiting room. 3557 Any further cells arriving at that waiting room beyond this 3558 number will be discarded. If the switch is unable to grant 3559 the size requested in the Scheduler Establishment request 3560 message it may reply with the actual size allocated to the 3561 waiting room in the Waiting Room Size field of the success 3562 response message. A value of zero for the Waiting Room 3563 Size indicates that the default value should be used. 3565 Discard Threshold 3566 The required value of the discard threshold. The discard 3567 threshold specifies the number of cells waiting for 3568 transmission via a waiting room after which further 3569 arriving cells will be subject to a discard mechanism. The 3570 value of the Discard Threshold must be less than or equal 3571 to the value of the Waiting Room Size parameter for any 3572 given waiting room. If the switch is unable to grant the 3573 value of discard threshold requested in the Scheduler 3574 Establishment request message it may reply with the actual 3575 value of discard threshold allocated to the waiting room in 3576 the Discard Threshold field of the success response 3577 message. A value of zero for the Discard Threshold 3578 indicates that the default value should be used. 3580 9.4 QoS Class Establishment Message 3582 The QoS Class Establishment message is used to configure a QoS class 3583 on a specified port or to modify the parameters of an already 3584 established QoS class. It configures the classifier and the 3585 regulator functions for the QoS class. It also configures the QoS 3586 class policer if a policing function is available for QoS classes. 3588 Two styles of QoS class are available. In one style each component 3589 connection of the QoS class may be routed independently to an output 3590 port and waiting room specified in its connection management message. 3591 In this case the Scheduler Identifier, and if required, the Excess 3592 Scheduler Id, are specified in the QoS Connection Management message 3593 that references this style of QoS class. In the alternative style of 3594 QoS class, all component connections in the QoS class are routed to 3595 the same waiting room on the same output port. In this case the 3596 Output Port, the Scheduler Identifier, and if required, the Excess 3597 Scheduler Id, are specified in the QoS Class Establishment message. 3599 The classifier and regulator functions must be located together, 3600 either on an input port, on an output port, or centralized. Each port 3601 declares the location of its classifier and regulator functions at 3602 initialization using the QoS Configuration message. If the classifier 3603 and regulator functions are located on an input port, only 3604 connections that arrive at that input port may join a QoS class 3605 established on that port. However, each connection that is part of a 3606 QoS class established on that port may be switched to a different 3607 output port. If the classifier and regulator functions are located 3608 on an output port, connections that arrive at any input port may join 3609 a QoS class established on that port. However, all connections within 3610 a QoS class established on that port must be switched to that output 3611 port. For a centralized classifier and regulator function, there is 3612 no restriction on the input ports on which connections in a QoS class 3613 must arrive, or on the output ports to which connections in a QoS 3614 class must be switched. (For the case of a centralized classifier 3615 and regulator the actual port specified in the QoS Class 3616 Establishment message is used only for administrative purposes. Any 3617 valid value of Port and Port Session Number, that specifies a 3618 centralized classifier and regulator function, may be used.) 3620 The QoS Class Establishment message is: 3622 Message Type = 98 3624 The QoS Class Establishment request and success response messages 3625 have the following format: 3627 0 1 2 3 3628 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 3629 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3630 | Version | Message Type | Result | Code | 3631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3632 | Transaction Identifier | 3633 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3634 | Port | 3635 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3636 | Port Session Number | 3637 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3638 | QoS Class Identifier | 3639 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3640 | Regulator | Excess Action | QoS Class Weight | 3641 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3642 | Scheduler Identifier | Excess Scheduler Id | 3643 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3644 | Output Port | 3645 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3646 | | 3647 ~ QoS Class Policer Parameters ~ 3648 | | 3649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3650 | | 3651 ~ QoS Class Regulator Parameters ~ 3652 | | 3653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3655 QoS Class Identifier 3656 The QoS Class Identifier is selected by the controller. It 3657 is used to identify the QoS class being established or 3658 modified, in future QoS Connection Management and QoS Class 3659 Establishment messages. It is taken from a namespace that 3660 is global across the entire switch. No two QoS classes may 3661 have the same QoS Class Identifier regardless of the switch 3662 ports on which they are defined. A QoS Class Identifier in 3663 a QoS Class Establishment message must be greater than 0 3664 and less than 0xFFFFFFFF. 3666 Regulator 3667 The Regulator field specifies which function is required of 3668 the regulator. Three possible functions are currently 3669 defined: none, policing, and shaping. 3671 None: Regulator = 1 3672 Policing: Regulator = 2 3673 Shaping: Regulator = 3 3675 If the Regulator function is specified as none, no 3676 operations are performed by the regulator on the cells 3677 output from the classifier. Cells output from the 3678 classifier are transferred directly to the waiting room 3679 specified by the Scheduler Identifier. 3681 If policing is specified, a token bucket policer will be 3682 applied to the QoS class. The policer determines which 3683 cells conform to the specified policer traffic parameters 3684 and which do not. Conforming cells are transferred directly 3685 to the waiting room specified by the Scheduler Identifier. 3686 The action to be taken by the policer on the excess traffic 3687 is specified by the Excess Action field. The policer 3688 traffic parameters are specified in the QoS Class Regulator 3689 Parameters fields. 3691 If shaping is specified, traffic shaping will be applied to 3692 the QoS class. Cells in a QoS class should leave the 3693 regulator spaced evenly apart at a rate defined by the QoS 3694 Class Regulator Parameters fields. These cells are 3695 transferred directly to the waiting room specified by the 3696 Scheduler Identifier. The jitter on the conforming cell 3697 stream on exit from the shaping function of the regulator 3698 is not specified. 3700 Excess Action 3702 0 1 2 3 4 5 6 7 3703 +-+-+-+-+-+-+-+-+ 3704 |T|D|S|x x x x x| 3705 +-+-+-+-+-+-+-+-+ 3707 T: Tagging 3708 If bit 0 of the Excess Action field is set, all cells 3709 transferred to the waiting room specified by the Excess 3710 Scheduler Id will have their CLP bit set. If bit 0 of the 3711 Excess Action field is zero, the CLP bit of cells 3712 transferred to the waiting room specified by the Excess 3713 Scheduler Id will remain unchanged. 3715 D: Discard 3716 This function is only available if policing is selected as 3717 the regulator function. If the Regulator field specifies 3718 Policing, and bit 1 of the Excess Action field is set, all 3719 cells determined by the policer to be in excess of the 3720 traffic parameters must be discarded. In this case the 3721 Excess Scheduler Id is not used and bit 0 of the Excess 3722 Action field should be ignored. 3724 S: Differentiated Scheduling 3725 This function operates differently according to whether 3726 policing or shaping is selected as the regulator function. 3728 If the Regulator field specifies Policing, and bit 1 of the 3729 Excess Action field is zero, and bit 2 of the Excess Action 3730 field is set, all cells determined by the policer to be in 3731 excess of the traffic parameters must be transferred to the 3732 waiting room specified by the Excess Scheduler Id. In this 3733 case care must be taken in the implementation to ensure 3734 that within each virtual path connection or virtual channel 3735 connection, cells depart in the same order that they 3736 arrived. If the Regulator field specifies Policing, and 3737 bit 1 of the Excess Action field is zero, and bit 2 of the 3738 Excess Action field is zero, all cells determined by the 3739 policer to be in excess of the traffic parameters must be 3740 transferred to the waiting room specified by the Scheduler 3741 Identifier. In this case the Excess Scheduler Id is not 3742 used. 3744 If the Regulator field specifies Shaping, and bit 2 of the 3745 Excess Action field is zero, cells will be transferred from 3746 the QoS class to the waiting room pointed to by the 3747 Scheduler Identifier at a rate defined by the QoS Class 3748 Regulator Parameters. In this case the Excess Scheduler Id 3749 is not used. If the Regulator field specifies Shaping, and 3750 bit 2 of the Excess Action field is set, additional cells 3751 will be scheduled for transmission by the waiting room 3752 pointed to by the Excess Scheduler Id. This permits a 3753 minimum cell rate to be allocated to the QoS class using 3754 the QoS Class Regulator Parameters and additional bandwidth 3755 to be shared by the QoS class. The additional share of 3756 bandwidth is determined according to the parameters of the 3757 waiting room pointed to by the Excess Scheduler Id. If the 3758 Excess Scheduler Id is specified in the QoS Class 3759 Establishment message, the additional bandwidth will be 3760 shared by the entire QoS class. If the Excess Scheduler Id 3761 is specified in each individual QoS Connection Management 3762 message, the additional bandwidth is specific to that 3763 connection and not shared by the entire QoS class. Care 3764 must be taken in the implementation to ensure that within 3765 each virtual path connection or virtual channel connection, 3766 cells depart in the same order that they arrived. 3768 x: Bits 3--7 of the Excess Action field are not used. 3770 QoS Class Weight 3771 If bit 1 of the Scheduler Flags field of the QoS 3772 Configuration message indicates that weighted service may 3773 be applied to a QoS class, the QoS Class Weight parameter 3774 specifies the share of the bandwidth available to the 3775 waiting room that should be given to this QoS class. 3777 The QoS Class Weight is an unsigned 16-bit field specifying 3778 a binary fraction. I.e. the bandwidth share, as a fraction 3779 of the bandwidth available to the waiting room, is given 3780 by: 3782 Bandwidth share = QoS Class Weight * 2**(-16) 3784 A QoS Class Weight of zero indicates equal sharing between 3785 all QoS classes sharing this waiting room that request a 3786 QoS Class Weight of zero. While a 16-bit field is used to 3787 specify the QoS Class Weight it is understood that the 3788 accuracy of the bandwidth sharing is hardware dependent and 3789 is not specified. 3791 If the Regulator field of the QoS Class Establishment 3792 message indicates None, or Policer, the QoS Class Weight 3793 should be applied to the waiting room pointed to by the 3794 Scheduler Identifier. If the Regulator field of the QoS 3795 Class Establishment message indicates Shaper, the QoS Class 3796 Weight should be applied to the waiting room pointed to by 3797 the Excess Scheduler Id. 3799 If the specified waiting room is unable to offer weighted 3800 sharing for a QoS class, a failure response message should 3801 be returned with the failure code indicating: "This waiting 3802 room is unable to offer weighted sharing for a QoS class." 3804 Scheduler Identifier 3805 If all conforming traffic from this QoS class is directed 3806 to the same waiting room, on the same output port, this 3807 field specifies the Scheduler Identifier for the entire QoS 3808 class. The Scheduler Identifier points to the waiting room, 3809 on the output port specified by the Output Port field, to 3810 which all conforming traffic should be sent. If this field 3811 is not used it should be set to 0xFFFF. If each component 3812 connection of the QoS class specifies its own output port 3813 and waiting room, the Scheduler Identifier must be 3814 specified in the QoS Connection Management message and this 3815 field must be set to 0xFFFF. 3817 Excess Scheduler Id 3818 If all conforming traffic from this QoS class is directed 3819 to the same waiting room, on the same output port, this 3820 field specifies the Excess Scheduler Id for the entire QoS 3821 class. The Excess Scheduler Id points to the waiting room, 3822 on the output port specified by the Output Port field, to 3823 which all excess traffic should be sent. If this field is 3824 not used it should be set to 0xFFFF. If each component 3825 connection of the QoS class specifies its own output port 3826 and waiting room, the Excess Scheduler Id must be specified 3827 in the QoS Connection Management message and this field 3828 must be set to 0xFFFF. If the Scheduler Id is specified in 3829 the QoS Class Establishment message, the Excess Scheduler 3830 Id must also be specified in the QoS Class Establishment 3831 message (or not used). If the Scheduler Id is specified in 3832 the QoS Connection Management message, the Excess Scheduler 3833 Id must also be specified in the QoS Connection Management 3834 message (or not used). The Excess Scheduler Id must not 3835 point to the same waiting room on the same output port as 3836 the Scheduler Identifier. 3838 Output Port 3839 If the Scheduler Identifier field in the QoS Establishment 3840 message is not 0xFFFF the Output Port field specifies the 3841 Output Port to which traffic from this QoS class should be 3842 routed. If the Scheduler Identifier field in the QoS 3843 Establishment message is 0xFFFF, this field is not used. 3845 QoS Class Policer Parameters 3846 A policer function may be applied to a QoS class on output 3847 from the classifier independently of the regulator 3848 function. The QoS class policer function is identical to 3849 the connection policer function defined in the QoS 3850 Connection Management message with the exception that it 3851 applies to all cells that belong to the QoS class rather 3852 than just cells that belong to a single connection. 3854 The QoS Class Policer Parameters have the following format: 3856 0 1 2 3 3857 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 3858 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3859 | QoS Class Increment-1 | 3860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3861 | QoS Class Limit-1 | 3862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3863 | QoS Class Increment-2 | 3864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3865 | QoS Class Limit-2 | 3866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3867 | Reserved |C|A|x x x x x x| 3868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3870 The definition of these fields is given in the UPC 3871 Parameters section of the QoS Connection Management 3872 message. 3874 QoS Class Regulator Parameters 3875 The QoS class regulator function is identical to the 3876 regulator function defined in the QoS Connection Management 3877 message with the exception that it applies to all cells 3878 that belong to the QoS class rather than just cells that 3879 belong to a single connection. 3881 The QoS Class Regulator Parameters have the following 3882 format: 3884 0 1 2 3 3885 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 3886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3887 | QoS Class Regulator Increment | 3888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3889 | QoS Class Regulator Limit | 3890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3892 The definition of these fields is given in the Regulator 3893 Parameters section of the QoS Connection Management 3894 message. 3896 9.5 QoS Release Message 3898 The QoS Release message is used to delete a Scheduler Identifier or a 3899 QoS Class Identifier and to release all resources associated with it. 3901 The QoS Release message is: 3903 Message Type = 99 3905 The QoS Release request and success response messages have the 3906 following format: 3908 0 1 2 3 3909 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 3910 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3911 | Version | Message Type | Result | Code | 3912 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3913 | Transaction Identifier | 3914 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3915 | Port | 3916 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3917 | Port Session Number | 3918 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3919 | Reserved | Scheduler Identifier | 3920 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3921 | QoS Class Identifier | 3922 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3924 Port 3925 If the QoS Release message contains a Scheduler Identifier, 3926 the Port field must contain the Port Number of the switch 3927 output port to which the Scheduler Identifier applies. If 3928 the QoS Release message contains a QoS Class Identifier, 3929 any valid Port number may be used. (The QoS Class 3930 Identifier has a global namespace.) 3932 Port Session Number 3933 The current Port Session Number for the port specified in 3934 the Port field. 3936 Scheduler Identifier 3937 If the Scheduler Identifier contains the value 0xFFFF the 3938 QoS Class Identifier specified in the QoS Class Identifier 3939 field should be released. Else, if the value of the 3940 Scheduler Identifier lies in the range 0x0100 -- 0xFFFE 3941 inclusive, the Scheduler Identifier specified by the 3942 Scheduler Identifier field should be released. A Scheduler 3943 Identifier with a value less than 0x0100 is invalid in a 3944 QoS Release message. (It specifies a default value which 3945 may not be released.) 3947 QoS Class Identifier 3948 If the Scheduler Identifier contains the value 0xFFFF the 3949 QoS Class Identifier field specifies the QoS Class 3950 Identifier to be released. 3952 If the QoS Release message requests that a Scheduler Identifier be 3953 released, and the Scheduler Identifier is still in use by one or more 3954 established connections, a failure response must be returned with the 3955 failure code indicating: "Scheduler Identifier still in use." If the 3956 QoS Release message requests that a QoS Class Identifier be released, 3957 and the QoS Class Identifier is still in use by one or more 3958 established connections, a failure response must be returned with the 3959 failure code indicating: "QoS Class Identifier still in use." 3961 9.6 QoS Connection Management Message 3963 The QoS Connection Management message is used by the controller to 3964 establish and modify virtual channel connections and virtual path 3965 connections across the switch which require QoS parameters to be 3966 specified. The functionality of the QoS Connection Management message 3967 is identical to that of the Add Branch connection management message 3968 with the additional specification of QoS parameters. No specific QoS 3969 connection release messages are defined. QoS connections may be 3970 released with the Delete Tree, Delete All, and Delete Branches 3971 messages defined in Section 4, "Connection Management Messages." When 3972 a QoS connection is released, all associated QoS resources are 3973 released. 3975 There are three styles of connection with specified QoS parameters: 3977 QoS Connection: 3978 This connection style specifies its own individual QoS parameters 3979 and is routed independently to the waiting room and output port 3980 specified in the QoS Connection Management message. It is not a 3981 member of a QoS class. Each output branch of a point-to-multipoint 3982 QoS connection may specify its own QoS parameters which may be 3983 different from all other output branches of that point-to- 3984 multipoint QoS connection, if the switch supports this capability. 3985 However, all output branches must specify identical connection 3986 policer parameters. A QoS Connection Management message requesting 3987 this style of connection is identified by a QoS Class Identifier 3988 with the value 0xFFFFFFFF. 3990 QoS Class Connection: 3991 This connection style does not specify its own individual QoS 3992 parameters. It is a member of a QoS class, and the QoS parameters 3993 are specified by the QoS class. It is, however, routed 3994 independently to the waiting room and output port specified in the 3995 QoS Connection Management message. Each output branch of a point- 3996 to-multipoint QoS Class Connection must use the same QoS 3997 parameters. A QoS Connection Management message requesting this 3998 style of connection will have a valid QoS Class Identifier and a 3999 valid Scheduler Identifier. 4001 QoS Class Member: 4002 This connection style does not specify its own individual QoS 4003 parameters. It is a member of a QoS class, and the QoS parameters 4004 are specified by the QoS class. The QoS class also specifies the 4005 waiting room and output port to which all members of the class are 4006 routed. This style of connection does not support point-to- 4007 multipoint connections. A QoS Connection Management message 4008 requesting this style of connection will have a valid QoS Class 4009 Identifier and a Scheduler Identifier with the value 0xFFFF. 4011 To request a virtual channel connection with specified QoS 4012 parameters, the Virtual Channel Connection (VCC) QoS Connection 4013 Management message is: 4015 Message Type = 100. 4017 To request a virtual path connection with specified QoS parameters, 4018 the Virtual Path Connection (VPC) QoS Connection Management message 4019 is: 4021 Message Type = 101. 4023 The QoS Connection Management message has the following format for 4024 both request and response messages: 4026 0 1 2 3 4027 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 4028 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4029 | Version | Message Type | Result | Code | 4030 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4031 | Transaction Identifier | 4032 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4033 | Port Session Number | 4034 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4035 | Input Port | 4036 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4037 |M|Q|B|C| Input VPI | Input VCI | 4038 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4039 | Output Port | 4040 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4041 |x x x x| Output VPI | Output VCI | 4042 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4043 | Number of Branches | Scheduler Identifier | 4044 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4045 | QoS Class Identifier | 4046 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4047 | Regulator | Excess Action | Connection Weight | 4048 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4049 |S|A|x x x x x x| Reserved | Excess Scheduler Id | 4050 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4051 | | 4052 ~ UPC Parameters ~ 4053 | | 4054 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4055 | | 4056 ~ Regulator Parameters ~ 4057 | | 4058 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4060 Port Session Number 4061 Input Port 4062 Input VPI 4063 Input VCI 4064 Output Port 4065 Output VPI 4066 Output VCI 4067 Number of Branches 4068 The definition of these fields is exactly the same as 4069 defined for the Add Branch message in Section 4.1, 4070 "Connection Management Messages." 4072 M B C Flags 4073 The definition of the M, B, and C flags is exactly the same 4074 as defined in Section 4, "Connection Management Messages." 4075 They apply to the QoS Connection Management message exactly 4076 as defined for the Add Branch message. 4078 Q: QoS Profile Flag The QoS Profile flag is not used in the QoS 4079 Connection Management message. 4081 Scheduler Identifier 4082 For QoS Connection and QoS Class Connection styles, the 4083 Scheduler Identifier points to the waiting room, on the 4084 output port specified by the Output Port field, to which 4085 all conforming traffic on the connection should be routed. 4086 The values 0 -- 255 specify the default settings for the 4087 scheduler. Each of the default values maps directly to one 4088 of the scheduler priority levels. A Scheduler Identifier in 4089 the range 0 -- 255 may be used without first being 4090 established by a Scheduler Establishment message. All 4091 Scheduler Identifiers in the range 0x0100 to 0xFFFE must 4092 first be established by a Scheduler Establishment message. 4094 A Scheduler Identifier with a value of 0xFFFF indicates 4095 that a QoS Class Member connection style is being 4096 requested. In this connection style, the waiting room and 4097 output port are specified by reference to the QoS class 4098 specified by the QoS Class Identifier field. In this case 4099 the QoS Class Identifier field must contain a valid QoS 4100 Class Identifier. 4102 QoS Class Identifier 4103 For QoS Class Connection and QoS Class Member connection 4104 styles, the QoS Class Identifier specifies the QoS Class to 4105 which the connection belongs. It must first be established 4106 by a QoS Class Establishment message and must have a value 4107 greater than 0 and less than 0xFFFFFFFF. 4109 A QoS Class Identifier with a value of 0xFFFFFFFF indicates 4110 that a connection of style "QoS Connection" is being 4111 requested. In this connection style, the connection does 4112 not belong to a QoS class. All QoS parameters are specified 4113 by the QoS Connection Management message and apply only to 4114 the specified connection. 4116 Regulator 4117 Excess Action 4118 The Regulator and Excess Action parameters are only used in 4119 connection requests of style "QoS Connection." The 4120 definition of these fields in the QoS Connection Management 4121 message is exactly the same as defined for the QoS Class 4122 Establishment message with the exception that they apply to 4123 an individual connection rather than to an entire QoS 4124 class. 4126 Connection Weight 4127 This field is only used in connections of style "QoS 4128 Connection" and "QoS Class Connection." For QoS Class 4129 Member style connections, the QoS Class Weight parameter of 4130 the QoS Class Establishment message should be used to 4131 assign a weight to the QoS Class. 4133 If bit 0 of the Scheduler Flags field of the QoS 4134 Configuration message indicates that weighted service may 4135 be applied to a connection, the Connection Weight parameter 4136 specifies the share of the bandwidth available to the 4137 waiting room that should be given to this connection. 4139 The Connection Weight is an unsigned 16-bit field 4140 specifying a binary fraction. I.e. the bandwidth share, as 4141 a fraction of the bandwidth available to the waiting room, 4142 is given by: 4144 Bandwidth share = Connection Weight * 2**(-16) 4146 A Connection Weight of zero indicates equal sharing between 4147 all connections in this waiting room that request a 4148 Connection Weight of zero. While a 16-bit field is used to 4149 specify the Connection Weight it is understood that the 4150 accuracy of the bandwidth sharing is hardware dependent and 4151 is not specified. 4153 For connections of style "QoS Class Connection," if the 4154 Regulator function of the QoS Class is specified as None, 4155 or Policer, the Connection Weight should be applied to the 4156 waiting room pointed to by the Scheduler Identifier field 4157 in the QoS Connection Management message. If the Regulator 4158 function of the QoS Class is specified as Shaper, the 4159 Connection Weight should be applied to the waiting room 4160 pointed to by the Excess Scheduler Id field in the QoS 4161 Connection Management message. 4163 For connections of style "QoS Connection," if the Regulator 4164 field of the QoS Connection Management message specifies 4165 None, or Policer, the Connection Weight should be applied 4166 to the waiting room pointed to by the Scheduler Identifier 4167 field. If the Regulator field of the QoS Connection 4168 Management message specifies Shaper, the Connection Weight 4169 should be applied to the waiting room pointed to by the 4170 Excess Scheduler Id field. 4172 If the specified waiting room is unable to offer weighted 4173 sharing for a connection, a failure response message should 4174 be returned with the failure code indicating: "this waiting 4175 room is unable to offer weighted sharing for a connection." 4177 QoS Flags 4179 S: Selective Discard 4180 If the Selective Discard flag is set, only cells with the 4181 Cell Loss Priority (CLP) bit set will be subject to the 4182 discard mechanism when the number of cells in the waiting 4183 room exceeds the Discard Threshold. If the Selective 4184 Discard flag is zero, all cells (CLP=0 and CLP=1) will be 4185 subject to the discard mechanism when the number of cells 4186 in the waiting room exceeds the Discard Threshold. 4187 Selective discard can be combined with packet discard. In 4188 this case only packets in which at least one cell has the 4189 CLP bit set will be subject to the discard mechanism. 4191 A: All Branches 4192 For a QoS Connection Management message that specifies a 4193 point-to-multipoint connection, if the All Branches flag is 4194 set, all branches of the point-to-multipoint connection 4195 must be set to the QoS parameters specified in the message. 4196 If the All Branches flag is zero, only the single output 4197 branch specified in the message should be set to the QoS 4198 parameters specified in the message. For a QoS Connection 4199 Management message that specifies a point-to-point 4200 connection, the All Branches flag is not used. 4202 x: Unused 4204 Excess Scheduler Id 4205 For connections of style "QoS Connection" and "QoS Class 4206 Connection," the Excess Scheduler Id points to the waiting 4207 room, on the output port specified by the Output Port 4208 field, to which all excess traffic should be routed. The 4209 values 0 -- 255 specify the default settings for the 4210 scheduler. Each of the default values maps directly to one 4211 of the scheduler priority levels. An Excess Scheduler Id in 4212 the range 0 -- 255 may be used without first being 4213 established by a Scheduler Establishment message. All 4214 values of Excess Scheduler Id in the range 0x0100 to 0xFFFE 4215 must first be established by a Scheduler Establishment 4216 message. 4218 If this field is not used it should be set to 0xFFFF. The 4219 Excess Scheduler Id must not point to the same waiting room 4220 on the same output port as the Scheduler Identifier. 4222 UPC Parameters 4223 All connection styles may be subject to a Usage Parameter 4224 Control (UPC) function, also known as a connection policer. 4225 The policing function is applied to each individual 4226 connection before it is combined with other connections 4227 into a QoS class by the classifier function. A policing 4228 function applied to an entire QoS class is defined in the 4229 QoS Class Establishment message. 4231 The connection policer is defined by reference to the 4232 Generic Cell Rate Algorithm (GCRA) defined by the ATM Forum 4233 [af-tm-0056], although any equivalent policing algorithm 4234 may be used. The GCRA takes two parameters, the increment 4235 (I) and the limit (L). The reciprocal of the increment 4236 (1/I) specifies the rate being policed. The limit specifies 4237 the burst tolerance. (For comparison with the token bucket 4238 policer discussed in [Partridge], the size of the token 4239 bucket is given by L/I.) 4241 Two policers in series may be specified to permit the 4242 policing of both peak rate and average rate (also called 4243 sustainable rate). The parameters for the first policer are 4244 Increment-1 and Limit-1. For comparison with the ATM Forum 4245 specification these would be used to police the Peak Cell 4246 Rate (PCR) and Cell Delay Variation Tolerance (CDVT) 4247 respectively. The parameters for the second policer are 4248 Increment-2 and Limit-2. For comparison with the ATM Forum 4249 specification these would be used to police the Sustainable 4250 Cell Rate (SCR), and Burst Tolerance. (The Burst Tolerance 4251 may be computed from the Maximum Burst Size [af-tm-0056].) 4253 There are two configurations in which the two policers may 4254 be connected in series. In the All Cells configuration, 4255 all cells (cells with the Cell Loss Priority (CLP) bit set 4256 to zero and cells with the CLP bit set to one) are subject 4257 to the policing action of both policers in series. In the 4258 CLP Selective configuration, all cells, both CLP=0 and 4259 CLP=1, are policed by the first policer; but only cells 4260 with CLP=0 are subject to policing by the second policer. 4261 Either tagging or discard may be specified for each of the 4262 policer configurations. 4264 The values of the parameters Increment and Limit in the UPC 4265 Parameters fields are given in terms of a time unit 4266 specified by the switch in the QoS Configuration Parameters 4267 message. The time unit is specified by the switch as a 4268 rate, the Scaling Factor, which gives the rate in cells per 4269 second that would result from an Increment parameter value 4270 of one. Thus to determine the value of the Increment 4271 parameter from the desired policed rate given in cells per 4272 second: 4274 Increment parameter = (Scaling_Factor)/(policed_rate) 4276 To determine the value of the Limit parameter from the 4277 desired Cell Delay Variation Tolerance (CDVT) given in 4278 seconds: 4280 Limit parameter = CDVT * Scaling_Factor 4282 To determine the value of the Limit parameter from the 4283 desired Burst Tolerance (BT) given in seconds: 4285 Limit parameter = BT * Scaling_Factor 4287 The Increment and Limit parameters are specified as 32-bit 4288 unsigned integers; so the choice of the Scaling Factor 4289 allows the switch to select the range and granularity of 4290 the policer parameters with respect to the line rate of the 4291 switch port. For example, a SONET STS-3c (155.52 Mbps) 4292 switch port has a line rate of approximately 353 kcells/s. 4293 With a Scaling Factor value of 353,000,000 we can specify a 4294 policed rate slightly less than the line rate with a 4295 granularity of 0.1%. For a policed rate of 1 kbps we can 4296 still support a bucket size of 31 cells. 4298 The UPC Parameters have the following format: 4300 0 1 2 3 4301 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 4302 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4303 | Increment-1 | 4304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4305 | Limit-1 | 4306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4307 | Increment-2 | 4308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4309 | Limit-2 | 4310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4311 | Reserved |C|A|x x x x x x| 4312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4313 Increment-1 4314 The increment parameter for the first policer, specified as 4315 a 32-bit unsigned integer. A value of zero for the 4316 Increment-1 parameter is used to disable the first policer. 4317 In this case all cells will be considered to conform to the 4318 traffic parameters of the first policer. 4320 Limit-1 4321 The limit parameter for the first policer, specified as a 4322 32-bit unsigned integer. 4324 Increment-2 4325 The increment parameter for the second policer, specified 4326 as a 32-bit unsigned integer. A value of zero for the 4327 Increment-2 parameter is used to disable the second 4328 policer. In this case all cells will be considered to 4329 conform to the traffic parameters of the second policer. 4331 Limit-2 4332 The limit parameter for the second policer, specified as a 4333 32-bit unsigned integer. 4335 Flags 4337 C: Configuration 4338 If the Configuration flag is set, the policer should be set 4339 to the All Cells configuration. If the Configuration flag 4340 is zero, the policer should be set to the CLP Selective 4341 configuration. 4343 In the All Cells configuration, all cells (both CLP=0 and 4344 CLP=1) are subject to the policing action of both policers 4345 in series. In the CLP Selective configuration, all cells, 4346 both CLP=0 and CLP=1, are policed by the first policer; but 4347 only cells with CLP=0 are subject to policing by the second 4348 policer. Either tagging or discard may be specified for 4349 each of the policer configurations. 4351 A: Action 4352 If the Action flag is zero, discard is required as the 4353 policing action. If the Action flag is set, tagging is 4354 required as the policing action. 4356 If tagging is selected in the All Cells configuration, any 4357 cell with CLP=0 in either policer, that the policer 4358 determines to be in excess of the specified policer 4359 parameters, will be changed to CLP=1. If discard is 4360 selected in the All Cells configuration, any cell (CLP=0 or 4361 CLP=1) in either policer, that the policer determines to be 4362 in excess of the specified policer parameters, will be 4363 discarded. 4365 In the CLP Selective configuration, the first policer is 4366 always set to discard any cell (CLP=0 or CLP=1) that it 4367 determines to be in excess of its specified policer 4368 parameters. If tagging is selected in the CLP Selective 4369 configuration, the second policer will change the CLP bit 4370 to CLP=1 of any cell that it determines to be in excess of 4371 its specified parameters. If discard is selected in the CLP 4372 Selective configuration, the second policer will discard 4373 any cell that it determines to be in excess of its 4374 specified parameters. 4376 To configure the policer for the conformance definitions 4377 specified by the ATM Forum [af-tm-0056] the following 4378 configurations are suggested: 4380 CBR.1: One policer, All Cells, Discard 4381 VBR.1: Two policers, All Cells, Discard 4382 VBR.2: Two policers, CLP Selective, Discard 4383 VBR.3: Two policers, CLP Selective, Tagging 4384 UBR.1: One policer, All Cells, Discard 4385 UBR.2: One policer, All Cells, Tagging. 4387 x: Unused 4389 Regulator Parameters 4390 Only connections of style "QoS Connection" require the 4391 Regulator Parameters to be specified in the QoS Connection 4392 Management message. For connections of style "QoS Class 4393 Connection" and "QoS Class Member" the Regulator Parameters 4394 are specified in the QoS Class Establishment message. 4396 The Regulator Parameters are specified in a similar manner 4397 to the UPC parameters. If the regulator function is 4398 specified as Policing, a single GCRA policer is applied to 4399 all cells (both CLP=0 and CLP=1) on the connection. The 4400 policer takes two parameters: an increment, the Regulator 4401 Increment, and a limit, the Regulator Limit. The reciprocal 4402 of the increment (1/I) specifies the rate being policed. 4403 The limit (L) specifies the burst tolerance. (For 4404 comparison with the token bucket policer discussed in 4405 [Partridge], the size of the token bucket is given by L/I.) 4407 The Regulator Increment and Regulator Limit parameters are 4408 32-bit unsigned integers. Their values are determined in 4409 terms of the Scaling Factor specified by the switch in the 4410 QoS Configuration Parameters message. To determine the 4411 value of the Regulator Increment parameter from the desired 4412 policed rate given in cells per second: 4414 Regulator Increment = (Scaling_Factor)/(policed_rate) 4416 For a policed rate (r) the GCRA policer guarantees that 4417 over any time period T the amount of traffic determined by 4418 the policer to be conforming to the traffic parameters does 4419 not exceed: 4421 rT + L/I 4423 The value of the Regulator Limit may be determined from 4424 this relation. 4426 If the regulator function is specified as Shaping, only the 4427 Regulator Increment parameter is used. The Regulator Limit 4428 parameter is not used. The value of the Regulator Increment 4429 parameter is determined in terms of the Scaling Factor 4430 specified by the switch in the QoS Configuration Parameters 4431 message. To determine the value of the Regulator Increment 4432 parameter from the desired shaper rate, given in cells per 4433 second, on output from the shaper: 4435 Regulator Increment = (Scaling_Factor)/(shaper_rate) 4437 An Increment value of zero is used to disable the policer. 4438 In this case all cells on that connection will be 4439 considered to conform to the policer traffic parameters. A 4440 shaper given a Regulator Increment parameter of zero will 4441 perform no shaping function on that connection. 4443 The Regulator Parameters have the following format: 4445 0 1 2 3 4446 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 4447 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4448 | Regulator Increment | 4449 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4450 | Regulator Limit | 4451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4453 9.7 QoS Failure Response Codes 4455 A failure response message is formed by returning the request message 4456 that caused the failure with the Result field in the header 4457 indicating failure (Result = 4) and the Code field giving the failure 4458 code. The failure code specifies the reason for the switch being 4459 unable to satisfy the request message. The following additional 4460 failure codes are defined for use in response to QoS messages. 4461 General failure codes are specified in Section 3.2, Failure Response 4462 Messages. 4464 128: Weighted scheduling within this waiting room is unavailable. 4465 129: This waiting room is unable to offer weighted sharing for a 4466 QoS class. 4467 130: This waiting room is unable to offer weighted sharing for a 4468 connection. 4469 131: Scheduler Identifier still in use. 4470 132: QoS Class Identifier still in use. 4471 133: Invalid QoS parameter. 4472 134: Insufficient QoS resources. 4473 135: Any point-to-multipoint connection arriving on this input 4474 port must use the same QoS parameters for all output 4475 branches. 4477 10. Adjacency Protocol 4479 The adjacency protocol is used to synchronize state across the link, 4480 to agree on which version of the protocol to use, to discover the 4481 identity of the entity at the other end of a link, and to detect when 4482 it changes. GSMP is a hard state protocol. It is therefore important 4483 to detect loss of contact between switch and controller, and to 4484 detect any change of identity of switch or controller. No GSMP 4485 messages other than those of the adjacency protocol may be sent 4486 across the link until the adjacency protocol has achieved 4487 synchronization. 4489 10.1 Packet Format 4491 All GSMP messages belonging to the adjacency protocol have the 4492 following structure: 4494 0 1 2 3 4495 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 4496 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4497 | Version | Message Type | Timer |M| Code | 4498 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4499 | Sender Name | 4500 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4501 | | | 4502 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 4503 | Receiver Name | 4504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4505 | Sender Port | 4506 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4507 | Receiver Port | 4508 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4509 | Sender Instance | 4510 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4511 | Receiver Instance | 4512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4514 Version 4515 In the adjacency protocol the Version field is used for 4516 version negotiation. In a SYN message the Version field 4517 always contains the highest version understood by the 4518 sender. A receiver receiving a SYN message with a version 4519 higher than understood will ignore that message. A 4520 receiver receiving a SYN message with a version lower than 4521 its own highest version, but a version that it understands, 4522 will reply with a SYNACK with the version from the received 4523 SYN in its GSMP Version field. This defines the version of 4524 the GSMP protocol to be used while the adjacency protocol 4525 remains synchronized. All other messages will use the 4526 agreed version in the Version field. 4528 The version number for the version of the GSMP protocol 4529 defined by this specification is Version = 2. 4531 Message Type 4532 The adjacency protocol is: 4534 Message Type = 10 4536 Timer 4537 The Timer field is used to inform the receiver of the timer 4538 value used in the adjacency protocol of the sender. The 4539 timer specifies the nominal time between periodic adjacency 4540 protocol messages. It is a constant for the duration of a 4541 GSMP session. The timer field is specified in units of 4542 100ms. 4544 M-Flag 4545 The M-Flag is used in the SYN message to indicate whether 4546 the sender is a master or a slave. If the M-Flag is set in 4547 the SYN message, the sender is a master. If zero, the 4548 sender is a slave. The GSMP protocol is asymmetric, the 4549 controller being the master and the switch being the slave. 4550 The M-Flag prevents a master from synchronizing with 4551 another master, or a slave with another slave. If a slave 4552 receives a SYN message with a zero M-Flag, it must ignore 4553 that SYN message. If a master receives a SYN message with 4554 the M-Flag set, it must ignore that SYN message. In all 4555 other messages the M-Flag is not used. 4557 Code 4558 Field specifies the function of the message. Four Codes are 4559 defined for the adjacency protocol: 4561 SYN: Code = 1 4562 SYNACK: Code = 2 4563 ACK: Code = 3 4564 RSTACK: Code = 4. 4566 Sender Name 4567 For the SYN, SYNACK, and ACK messages, is the name of the 4568 entity sending the message. The Sender Name is a 48-bit 4569 quantity that is unique within the operational context of 4570 the device. A 48-bit IEEE 802 MAC address, if available, 4571 may be used for the Sender Name. If the Ethernet 4572 encapsulation is used the Sender Name must be the Source 4573 Address from the MAC header. For the RSTACK message, the 4574 Sender Name field is set to the value of the Receiver Name 4575 field from the incoming message that caused the RSTACK 4576 message to be generated. 4578 Receiver Name 4579 For the SYN, SYNACK, and ACK messages, is the name of the 4580 entity that the sender of the message believes is at the 4581 far end of the link. If the sender of the message does not 4582 know the name of the entity at the far end of the link, 4583 this field should be set to zero. For the RSTACK message, 4584 the Receiver Name field is set to the value of the Sender 4585 Name field from the incoming message that caused the RSTACK 4586 message to be generated. 4588 Sender Port 4589 For the SYN, SYNACK, and ACK messages, is the local port 4590 number of the link across which the message is being sent. 4591 For the RSTACK message, the Sender Port field is set to the 4592 value of the Receiver Port field from the incoming message 4593 that caused the RSTACK message to be generated. 4595 Receiver Port 4596 For the SYN, SYNACK, and ACK messages, is what the sender 4597 believes is the local port number for the link, allocated 4598 by the entity at the far end of the link. If the sender of 4599 the message does not know the port number at the far end of 4600 the link, this field should be set to zero. For the RSTACK 4601 message, the Receiver Port field is set to the value of the 4602 Sender Port field from the incoming message that caused the 4603 RSTACK message to be generated. 4605 Sender Instance 4606 For the SYN, SYNACK, and ACK messages, is the sender's 4607 instance number for the link. It is used to detect when the 4608 link comes back up after going down or when the identity of 4609 the entity at the other end of the link changes. The 4610 instance number is a 32-bit number that is guaranteed to be 4611 unique within the recent past and to change when the link 4612 or node comes back up after going down. Zero is not a valid 4613 instance number. For the RSTACK message, the Sender 4614 Instance field is set to the value of the Receiver Instance 4615 field from the incoming message that caused the RSTACK 4616 message to be generated. 4618 Receiver Instance 4619 For the SYN, SYNACK, and ACK messages, is what the sender 4620 believes is the current instance number for the link, 4621 allocated by the entity at the far end of the link. If the 4622 sender of the message does not know the current instance 4623 number at the far end of the link, this field should be set 4624 to zero. For the RSTACK message, the Receiver Instance 4625 field is set to the value of the Sender Instance field from 4626 the incoming message that caused the RSTACK message to be 4627 generated. 4629 10.2 Procedure 4631 The adjacency protocol is described by the following rules and state 4632 tables. 4634 The rules and state tables use the following operations: 4636 o The "Update Peer Verifier" operation is defined as storing the 4637 values of the Sender Instance, Sender Port, and Sender Name fields 4638 from a SYN or SYNACK message received from the entity at the far 4639 end of the link. 4641 o The procedure "Reset the link" is defined as: 4643 1. Generate a new instance number for the link 4644 2. Delete the peer verifier (set to zero the values of Sender 4645 Instance, Sender Port, and Sender Name previously stored by 4646 the Update Peer Verifier operation) 4647 3. Send a SYN message 4648 4. Enter the SYNSENT state. 4650 o The state tables use the following Boolean terms and operators: 4652 A The Sender Instance in the incoming message matches the 4653 value stored from a previous message by the "Update Peer 4654 Verifier" operation. 4656 B The Sender Instance, Sender Port, and Sender Name fields in 4657 the incoming message match the values stored from a 4658 previous message by the "Update Peer Verifier" operation. 4660 C The Receiver Instance, Receiver Port, and Receiver Name 4661 fields in the incoming message match the values of the 4662 Sender Instance, Sender Port, and Sender Name currently 4663 sent in outgoing SYN, SYNACK, and ACK messages. 4665 "&&" Represents the logical AND operation 4667 "||" Represents the logical OR operation 4669 "!" Represents the logical negation (NOT) operation. 4671 o A timer is required for the periodic generation of SYN, SYNACK, 4672 and ACK messages. The value of the timer is announced in the Timer 4673 field. The period of the timer is unspecified but a value of one 4674 second is suggested. 4676 There are two independent events: the timer expires, and a packet 4677 arrives. The processing rules for these events are: 4679 Timer Expires: Reset Timer 4680 If state = SYNSENT Send SYN 4681 If state = SYNRCVD Send SYNACK 4682 If state = ESTAB Send ACK 4684 Packet Arrives: 4685 If incoming message is an RSTACK: 4687 If (A && C && !SYNSENT) Reset the link 4688 Else Discard the message. 4689 If incoming message is a SYN, SYNACK, or ACK: 4690 Response defined by the following State Tables. 4691 If incoming message is any other GSMP message and state != 4692 ESTAB: 4693 Discard incoming message. 4694 If state = SYNSENT Send SYN (Note 1) 4695 If state = SYNRCVD Send SYNACK (Note 1) 4697 Note 1: No more than two SYN or SYNACK messages should be 4698 sent within any time period of length defined by the 4699 timer. 4701 o State synchronization across a link is considered to be achieved 4702 when the protocol reaches the ESTAB state. All GSMP messages, 4703 other than adjacency protocol messages, that are received before 4704 synchronization is achieved will be discarded. 4706 State Tables 4708 State: SYNSENT 4710 +======================================================================+ 4711 | Condition | Action | New State | 4712 +====================+=====================================+===========+ 4713 | SYNACK && C | Update Peer Verifier; Send ACK | ESTAB | 4714 +--------------------+-------------------------------------+-----------+ 4715 | SYNACK && !C | Send RSTACK | SYNSENT | 4716 +--------------------+-------------------------------------+-----------+ 4717 | SYN | Update Peer Verifier; Send SYNACK | SYNRCVD | 4718 +--------------------+-------------------------------------+-----------+ 4719 | ACK | Send RSTACK | SYNSENT | 4720 +======================================================================+ 4721 State: SYNRCVD 4723 +======================================================================+ 4724 | Condition | Action | New State | 4725 +====================+=====================================+===========+ 4726 | SYNACK && C | Update Peer Verifier; Send ACK | ESTAB | 4727 +--------------------+-------------------------------------+-----------+ 4728 | SYNACK && !C | Send RSTACK | SYNRCVD | 4729 +--------------------+-------------------------------------+-----------+ 4730 | SYN | Update Peer Verifier; Send SYNACK | SYNRCVD | 4731 +--------------------+-------------------------------------+-----------+ 4732 | ACK && B && C | Send ACK | ESTAB | 4733 +--------------------+-------------------------------------+-----------+ 4734 | ACK && !(B && C) | Send RSTACK | SYNRCVD | 4735 +======================================================================+ 4737 State: ESTAB 4739 +======================================================================+ 4740 | Condition | Action | New State | 4741 +====================+=====================================+===========+ 4742 | SYN || SYNACK | Send ACK (note 2) | ESTAB | 4743 +--------------------+-------------------------------------+-----------+ 4744 | ACK && B && C | Send ACK (note 3) | ESTAB | 4745 +--------------------+-------------------------------------+-----------+ 4746 | ACK && !(B && C) | Send RSTACK | ESTAB | 4747 +======================================================================+ 4749 Note 2: No more than two ACKs should be sent within any time period 4750 of length defined by the timer. Thus, one ACK must be sent every time 4751 the timer expires. In addition, one further ACK may be sent between 4752 timer expirations if the incoming message is a SYN or SYNACK. This 4753 additional ACK allows the adjacency protocol to reach synchronization 4754 more quickly. 4756 Note 3: No more than one ACK should be sent within any time period of 4757 length defined by the timer. 4759 10.3 Loss of Synchronization 4761 If after synchronization is achieved, no valid GSMP messages are 4762 received in any period of time in excess of three times the value of 4763 the Timer field announced in the incoming adjacency protocol 4764 messages, loss of synchronization may be declared. 4766 The preferred procedure for a switch to use when it looses 4767 synchronization with its active controller is to attempt to establish 4768 synchronization with (one of) its backup controller(s). However, in 4769 this preferred approach, it must not reset its state until it 4770 achieves synchronization with a backup controller. This means that 4771 if, before achieving synchronization with a backup controller, it 4772 regains synchronization with its original controller, it may continue 4773 the original session (and cease attempting to establish 4774 synchronization with a backup controller). If synchronization with 4775 the original session is regained it is the responsibility of the 4776 controller to ensure consistent state between the switch and 4777 controller. 4779 While the above is the preferred procedure, it is also the case that 4780 the simplest procedure when declaring loss of synchronization with 4781 the active controller is to reset the switch state, and start 4782 searching for a controller. This simple procedure is legitimate. 4784 11. Summary of Failure Response Codes 4786 The following list gives a summary of the failure codes defined for 4787 failure response messages: 4789 1: Unspecified reason not covered by other failure codes. 4790 2: Invalid request message. 4791 3: The specified request is not implemented on this switch. 4792 4: Invalid Port Session Number. 4793 5: One or more of the specified ports does not exist. 4794 6: One or more of the specified ports is down. 4795 7: Unused. (This failure code has been replaced by failure codes 4796 18--21.) 4797 8: The specified connection does not exist. 4798 9: The specified branch does not exist. 4799 10: A branch belonging to the specified point-to-multipoint 4800 connection is already established on the specified output 4801 port and the switch cannot support more than a single 4802 branch of any point-to-multipoint connection on the same 4803 output port. 4804 11: The limit on the maximum number of point-to-multipoint 4805 connections that the switch can support has been reached. 4806 12: The limit on the maximum number of branches that the 4807 specified point-to-multipoint connection can support has 4808 been reached. 4809 13: Unable to assign the requested VPI/VCI value to the requested 4810 branch on the specified point-to-multipoint connection. 4811 14: General problem related to the manner in which point-to- 4812 multipoint is supported by the switch. 4813 15: Out of resources (e.g. memory exhausted, etc.). 4814 16: Failure specific to the particular message type. (The meaning 4815 of this failure code depends upon the Message Type. It is 4816 defined within the description of any message that uses 4817 it.) 4818 17: Cannot label each output branch of a point-to-multipoint tree 4819 with a different label. 4820 18: One or more of the specified input VPIs is invalid. 4821 19: One or more of the specified input VCIs is invalid. 4822 20: One or more of the specified output VPIs is invalid. 4823 21: One or more of the specified output VCIs is invalid. 4824 22: Invalid Class of Service field in a Connection Management 4825 message. 4826 23: Insufficient resources for QoS Profile. 4827 24: Virtual path switching is not supported on this input port. 4828 25: Point-to-multipoint virtual path connections are not 4829 supported on either the requested input port or the 4830 requested output port. 4831 26: Attempt to add a virtual path connection branch to an 4832 existing virtual channel connection. 4833 27: Attempt to add a virtual channel connection branch to an 4834 existing virtual path connection. 4835 28: Only point-to-point bidirectional connections may be 4836 established. 4837 29: Cannot support requested VPI range. 4838 30: Cannot support requested VCI range on all requested VPIs. 4839 31: The transmit cell rate of this output port cannot be changed. 4840 32: Requested transmit cell rate out of range for this output 4841 port. 4842 128: Weighted scheduling within this waiting room is unavailable. 4843 129: This waiting room is unable to offer weighted sharing for a 4844 QoS class. 4845 130: This waiting room is unable to offer weighted sharing for a 4846 connection. 4847 131: Scheduler Identifier still in use. 4848 132: QoS Class Identifier still in use. 4849 133: Invalid QoS parameter. 4850 134: Insufficient QoS resources. 4851 135: Any point-to-multipoint connection arriving on this input 4852 port must use the same QoS parameters for all output 4853 branches. 4855 12. Summary of Message Set 4857 The following table gives a summary of the messages defined in this 4858 version of the specification. It also indicates which messages must 4859 be supported in a minimal implementation of the protocol. Those 4860 messages marked as "Required" must be supported by the switch for an 4861 implementation to be considered to conform to this specification. 4862 (While the controller should also implement those messages marked 4863 "Required," conformance cannot be tested for the controller due to 4864 the Master-Slave nature of the protocol.) 4866 Message Name Message Type Status 4868 Connection Management Messages 4869 Add Branch VCC....................16 Required 4870 VPC....................26 4871 Delete Tree.......................18 4872 Delete All........................20 4873 Delete Branches...................17 Required 4874 Move Branch VCC...................22 4875 VPC...................27 4877 Port Management Messages 4878 Port Management...................32 Required 4879 Label Range.......................33 4881 State and Statistics Messages 4882 Connection Activity...............48 4883 Port Statistics...................49 Required 4884 Connection Statistics.............50 4885 QoS Class Statistics..............51 4886 Report Connection State...........52 4888 Configuration Messages 4889 Switch Configuration..............64 Required 4890 Port Configuration................65 Required 4891 All Ports Configuration...........66 Required 4893 Event Messages 4894 Port Up...........................80 4895 Port Down.........................81 4896 Invalid VPI/VCI...................82 4897 New Port..........................83 4898 Dead Port.........................84 4900 Quality of Service Messages 4901 QoS Configuration.................96 4902 Scheduler Establishment...........97 4903 QoS Class Establishment...........98 4904 QoS Release.......................99 4905 QoS Connection Management VCC....100 4906 VPC....101 4908 Adjacency Protocol....................10 Required 4910 REFERENCES 4912 [af-tm-0056] ATM Forum Traffic Management Specification 4.0, af- 4913 tm-0056.000, April 1996. 4915 [I.361] "B-ISDN ATM Layer Specification," International 4916 Telecommunication Union, ITU-T Recommendation I.361, 4917 Mar. 1993. 4919 [I.363] "B-ISDN ATM Adaptation Layer (AAL) Specification," 4920 International Telecommunication Union, ITU-T 4921 Recommendation I.363, Mar. 1993. 4923 [IpsilonMIB] Ipsilon IP Switch MIB, 4924 http://www.ipsilon.com/products/ips.mib 4926 [Partridge] C. Partridge, "Gigabit Networking," Addison-Wesley, 4927 1994. 4929 [rfc1700] "Assigned Numbers," STD 2, RFC 1700, October 1994. 4931 [rfc1987] "Ipsilon's General Switch Management Protocol 4932 Specification," Version 1.1, RFC 1987, August 1996. 4934 SECURITY CONSIDERATIONS 4936 Physical security on the control link connecting the controller to 4937 the switch is assumed. Security issues are not discussed in this 4938 document. 4940 AUTHORS' ADDRESSES 4942 Peter Newman Phone: +1 (408) 990 2003 4943 Nokia Email: pn@ipsilon.com 4945 W. L. Edwards, Chief Scientist Phone: +1 (913) 534 5334 4946 Sprint Email: texas@sprintcorp.com 4948 Robert M. Hinden Phone: +1 (408) 990 2004 4949 Nokia Email: hinden@ipsilon.com 4951 Eric Hoffman Phone: +1 (408) 990 2010 4952 Nokia Email: hoffman@ipsilon.com 4954 Fong Ching Liaw Phone: +1 (408) 873 2688 4955 Coppercom Email: fong@coppercom.com 4956 Tom Lyon Phone: +1 (408) 990 2001 4957 Nokia Email: pugs@ipsilon.com 4959 Greg Minshall Phone: +1 (650) 237 3164 4960 Fiberlane Communications Email: minshall@fiberlane.com 4962 Nokia (Sunnyvale) is located at: 4964 232 Java Drive 4965 Sunnyvale, CA 94089 4966 USA 4968 Sprint is located at: 4970 Sprint 4971 Sprint Technology Services - Long Distance Division 4972 9300 Metcalf Avenue 4973 Mailstop KSOPKB0802 4974 Overland Park, KS 66212-6333 4975 USA 4977 Fiberlane Communications is located at: 4979 1399 Charleston Road 4980 Mountain View, CA 94043 4981 USA