WO1997004561A1 - Link scheduling - Google Patents

Link scheduling Download PDF

Info

Publication number
WO1997004561A1
WO1997004561A1 PCT/US1996/011919 US9611919W WO9704561A1 WO 1997004561 A1 WO1997004561 A1 WO 1997004561A1 US 9611919 W US9611919 W US 9611919W WO 9704561 A1 WO9704561 A1 WO 9704561A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduling
list
bandwidth
category
queue
Prior art date
Application number
PCT/US1996/011919
Other languages
French (fr)
Inventor
Stephen A. Hauser
Richard G. Bubenik
Stephen A. Caldara
Michael E. Gaddis
Thomas A. Manning
James M. Merideth
Raymond L. Strouble
Original Assignee
Fujitsu Network Communications, Inc.
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Network Communications, Inc., Fujitsu Limited filed Critical Fujitsu Network Communications, Inc.
Priority to JP9506066A priority Critical patent/JP2000501897A/en
Priority to PCT/US1996/011919 priority patent/WO1997004561A1/en
Priority to AU65009/96A priority patent/AU6500996A/en
Priority to EP96924603A priority patent/EP0845181A4/en
Publication of WO1997004561A1 publication Critical patent/WO1997004561A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/4608LAN interconnection over ATM networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/106ATM switching elements using space switching, e.g. crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/107ATM switching elements using shared medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/153ATM switching fabrics having parallel switch planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/256Routing or path finding in ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/45Arrangements for providing or supporting expansion
    • H04L49/455Provisions for supporting expansion in ATM switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/555Error detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0682Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5614User Network Interface
    • H04L2012/5616Terminal equipment, e.g. codecs, synch.
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5625Operations, administration and maintenance [OAM]
    • H04L2012/5627Fault tolerance and recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5628Testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • H04L2012/5634In-call negotiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/5631Resource management and allocation
    • H04L2012/5632Bandwidth allocation
    • H04L2012/5635Backpressure, e.g. for ABR
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/564Connection-oriented
    • H04L2012/5642Multicast/broadcast/point-multipoint, e.g. VOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/564Connection-oriented
    • H04L2012/5643Concast/multipoint-to-point
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5647Cell loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5647Cell loss
    • H04L2012/5648Packet discarding, e.g. EPD, PTD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5649Cell delay or jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5682Threshold; Watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5685Addressing issues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/041Speed or phase control by synchronisation signals using special codes as synchronising signal
    • H04L7/046Speed or phase control by synchronisation signals using special codes as synchronising signal using a dotting sequence

Definitions

  • This invention relates generally to networks and, more specifically, to management of link access by an asynchronous transfer mode switch.
  • ATM networks such as asynchronous transfer mode (“ATM”) networks are used for transfer of audio, video and other data.
  • ATM networks deliver data by routing data units such as ATM cells from source to destination through switches.
  • Switches include input/output ("I/O") ports through which ATM cells are received and transmitted. The appropriate output port for transmission of the cell is determined based on the cell header.
  • Such traffic types include the constant bit rate (“CBR”) service class, the variable bit rate (“VBR”) service class, the available bit rate (“ABR”) service class, and the unspecified bit rate (“UBR”) service class.
  • CBR constant bit rate
  • VBR variable bit rate
  • ABR available bit rate
  • URR unspecified bit rate
  • Telecommunications network applications such as teleconferencing require deterministic delay bounds, and are typically assigned to the CBR service class.
  • Transactions processing applications such as automated teller machines require a "tightly bounded" delay specification to provide acceptable response times.
  • Such applications typically are assigned to the VBR service class.
  • File transfer applications such as internetwork traffic merely require a "bounded" delay, and thus, typically employ the ABR service class.
  • the UBR service class normally provides no delay bound.
  • Bandwidth is another consideration in establishing an acceptable switch configuration. Video applications typically have a predictable bandwidth requirement, while file transfer applications are much more aperiodic, or "bursty" .
  • High-delay and line utilization are opposing goals when multiplexing sources.
  • High utilization is achieved by having a set of connections share bandwidth that is unused by connections that need very low delay. This shared bandwidth is known as dynamic bandwidth because it is distributed to connections based on instantaneous operating conditions.
  • VBR, ABR and UBR utilize dynamic bandwidth to achieve high line utilization.
  • the bandwidth used by connections that need very low delay is known as allocated bandwidth because it is dedicated to particular connections.
  • One way of scheduling traffic of different types is to use a priority scheme, in which certain traffic types are given higher transfer priority than others.
  • the problem with such a priority arrangement is that higher priority traffic can prevent the transmission of lower priority traffic with acceptable delays.
  • the link scheduling permits delay requirements associated with different categories of transmission (i.e., scheduling categories) to be guaranteed.
  • a plurality of queues are associated with and contend for access to each link supported by the switch.
  • the queues contain pointers to cells to be transmitted over the link.
  • Lists of queues associated with each link i.e., scheduling lists
  • each link is associated with more than one type of list (with the list type corresponding to a scheduling category) and more than one prioritized list of each type (with the priority of the list corresponding to a quality of service) .
  • the scheduling lists are accessed in a predetermined sequence in order to provide link access to the queue at the top of the respective list.
  • the predetermined sequence with which the scheduling lists are accessed is a function of the scheduling category, priority of the list within the particular scheduling category and whether or not the respective bandwidth requirement (if any) for the scheduling category has been met.
  • the bandwidth provided to the different scheduling categories over a predetermined interval is measured and compared to the respective bandwidth requirement. In this way, it is determined whether or not the respective bandwidth requirement for the scheduling category has been met.
  • the switch includes at least one input port containing input queues of cells received from the network, at least one output port containing queues for buffering cells to be transmitted from the switch and a switch fabric for permitting transmission of the cells from an input queue to one or more output queues.
  • Each output port has a memory associated therewith for storing the lists of queues containing cells to be transmitted over a link ⁇ upported by the port. In particular, a set of lists is stored for each link supported by the output port.
  • Each set of lists includes lists of more than one type, corresponding to different scheduling categories (i.e., allocated, dynamic VBR, dynamic ABR and dynamic UBR) , and different priorities of lists within each scheduling category (i.e., corresponding to a particular quality of service) .
  • the lists are accessed in a predetermined order according to the priority of the respective scheduling categories as compared to other scheduling categories, the priority of the list as compared to other lists within the particular scheduling category, and whether or not the bandwidth requirement (if any) for the respective scheduling category has been met.
  • Each output port maintains a bandwidth table in memory for each output link supported by the port.
  • the bandwidth table contains entries indicating the scheduling category associated with a predetermined number of prior cell transmissions. That is, each time a cell is transmitted, its scheduling category is entered into the bandwidth table for the link over which the cell was transmitted. Counters maintain a count of the number of bandwidth table entries of each scheduling category. The number of entries of a particular scheduling category is compared with the specified bandwidth requirement for that scheduling category in order to determine whether or not the bandwidth requirement has been met. This determination of whether or not the bandwidth requirement has been met is then used as one criteria for sequencing through the lists in order to provide the output queues with access to the respective link.
  • Fig. 1 is a block diagram of a network switch
  • Fig. 2 is a block diagram illustrating switch port scheduling and network link scheduling
  • Fig. 3 illustrates the structure of a queue descriptor associated with an output queue of the switch of Fig. 1;
  • Fig. ' 4 illustrates the scheduling lists and bandwidth measurement table associated with each link of a particular FSPP
  • Fig. 5 illustrates the logical construction of a list
  • Fig. 6 shows a bandwidth measurement table with illustrative entries
  • Fig. 7 shows an implementation of three illustrative lists.
  • the presently disclosed switch 10 includes a plurality of input ports 20, a plurality of output ports 22 and an NxN switch fabric 11, such as a cross point switch fabric, coupled between the input ports 20 and output ports 22.
  • Each input port 20 includes a To Switch Port Processor (“TSPP”) ASIC 14 and each output port 22 includes a From Switch Port Processor (“FSPP”) ASIC 16.
  • TSPP To Switch Port Processor
  • FSPP From Switch Port Processor
  • BA Bandwidth Arbiter
  • each MTC 18 supports up to four TSPPs 14 or FSPPs 16.
  • the switch fabric 11 includes a data crossbar 13 for data cell transport and the bandwidth arbiter 12 and MTCs 18 for control signal transport.
  • the bandwidth arbiter 12 controls, inter alia, transport of data cells from a TSPP 14 to one or more FSPPs 16 through the data crossbar 13 (i.e., switch port scheduling) .
  • Each FSPP 16 receives cells from the data crossbar 13 and schedules transmission of those cells onto network links 30 (i.e., link scheduling) .
  • Each of the input ports 20 and output ports 22 includes a plurality of input buffers 26 and output buffers 28, respectively (Fig. 2) .
  • the buffers 26, 28 are organized into a plurality of input queues 32a-m (referred to herein generally as input queues 32) and a plurality of output queues 34a-m (referred to herein generally as output queues 34) , respectively.
  • each input port 20 includes a plurality of input queues 32 and each output port 22 includes a plurality of output queues 34, as shown.
  • the input queues 32 are stored in a Control RAM and a Pointer RAM of the input port 20 and the output queues 34 are stored in a CRl RAM 61 and a CR2 RAM 63 of the output port 22.
  • a data cell 24 enters the switch through an input port 20 and is enqueued on an input queue 32 at the respective TSPP 14. The cell is then transmitted from the input queue 32 to one or more output queues 34 via the data crossbar 13. Control signals are transmitted from a TSPP 14 to one or more FSPPs 16 via the respective MTC 18 and the bandwidth arbiter 12. In particular, data and control signals may be transmitted from an input queue 32 to a particular one of the output queues 34, in the case of a point to point connection 40. Alternatively, data and control signals may be transmitted from an input queue 32 to a selected set of output queues 34, in the case of a point to multipoint connection 42. From the output queue(s) 34, the data cell 24 is transmitted outside of the switch 10, for example, to another switch 29 via a network link 30.
  • the bandwidth arbiter 12 contains a crossbar controller 15 which includes a probe crossbar, an XOFF crossbar and an XON crossbar, each of which is an NxN switch fabric.
  • a request message, or probe control signal flows through the probe crossbar and is used to query whether or not sufficient space is available at the destination output queue, or queues 34 to enqueue a cell.
  • the request message is considered a "forward" control signal since its direction is from a TSPP 14 to one or more FSPPs 16 (i.e., the same direction as data) .
  • a two bit control signal flows in the reverse direction (from one or more FSPPs to a TSPP) through the XOFF crossbar and responds to the request message query by indicating whether or not the destination output queue, or queues 34 are presently capable of accepting data cells and thus, whether or not the transmitting TSPP can transmit cells via the data crossbar 13.
  • the XOFF control signal indicates that the queried output queue(s) 34 are not presently capable of receiving data
  • another reverse control signal which flows through the XON crossbar, notifies the transmitting TSPP once space becomes available at the destination output queue(s) 34.
  • Each output port 22 contains four memories: a Control RAM 1 (“CRl RAM”) 61, a Control RAM 2 (“CR2 RAM”) 63, a Cell Buffer RAM 35, and a Quantum Flow Control RAM (“QFC RAM”) 67.
  • the Cell Buffer RAM 35 is where the actual cells are buffered while they await transmission.
  • the CRl RAM 61 and the CR2 RAM 63 contain the output queues 34, with each queue 34 containing pointers to cells in the Cell Buffer RAM 35 (i.e., the queues may be described generally as containing cells) .
  • the CRl RAM 61 contains information required to implement scheduling lists used to schedule link access by the output queues 34 associated with each link 30 supported by the FSPP 16, as will be discussed.
  • the QFC RAM 67 stores update information for transfer to another switch 29 via a network link 30. Update cells are generated in response to the update information provided by a TSPP 14 and specify whether the particular TSPP 14 is presently capable of accepting data cells.
  • Each FSPP 16 supports N network links 30. In one example, the number N of network links 30 supported by each FSPP 16 is between one and eight.
  • the FSPP 16 contains up to 16,384 output queues 34 associated with each of the supported links 30 with such output queues contending for access to the link.
  • the process of giving the queues 34 associated with a particular link 30 access to transmit cells over the respective link 30 is referred to as "link scheduling". Link scheduling is performed by a control portion 52 of the FSPP 16 and, in particular, by an enqueue controller 54 and a dequeue controller 56.
  • Cells may be transferred from output queues 34 to links 30 using bandwidth assigned specifically to such connections ("allocated bandwidth”) or using unallocated bandwidth or unused allocated bandwidth (“dynamic bandwidth”) .
  • Dynamic bandwidth is further broken down to be shared among different service classes (i.e., the Variable Bit Rate “VBR” service class, the Available Bit Rate “ABR” service class, and the Unspecified Bit Rate “UBR” service class) .
  • the different service classes are differentiated by delay and cell loss characteristics.
  • the ABR service class guarantees a predetermined minimum transmission bandwidth rate (which can be expressed as a minimum percentage of the particular link 30) with no cell loss
  • the VBR service class guarantees only a predetermined minimum transmission bandwidth rate
  • the UBR service class has neither a minimum bandwidth rate nor a no cell loss guarantee.
  • each scheduling category i.e., allocated, dynamic ABR, dynamic VBR and dynamic UBR
  • priorities which correspond to a particular quality of service. In the illustrative embodiment, the priorities associated with each scheduling category are between zero and three, with zero being the highest priority.
  • the scheduling category associated with a particular cell is determined from the header of a cell 24.
  • An output queue 34 may contain either allocated cells, dynamic cells or both allocated and dynamic cells. However, a queue containing dynamic cells will contain dynamic cells associated with only one service class (i.e., VBR, ABR or UBR) .
  • each output queue 34 has a queue descriptor 100 associated therewith which is stored in the CR2 RAM 63 of the output port 22.
  • the queue descriptor 100 specifies, inter alia, the service class associated with dynamic cells buffered by the queue (i.e., ABR, VBR, or UBR) in a Class field 104.
  • the priority of cells within a scheduling category is specified by a PrfPri field 108 for allocated bandwidth cells and by a DynPri field 112 for dynamic bandwidth cells.
  • a Link field 118 is also contained in the queue descriptor 100 in which the particular link 30 associated with the queue 34 is identified.
  • lists of queues are maintained in the CRl RAM 61 associated with each FSPP 16 for the purpose of link scheduling.
  • a separate set of lists is provided for each link 30 supported by the FSPP 16.
  • the following lists are stored: four priorities of preferred lists 130 (labelled PREFERRED0, PREFERRED1, PREFERRED2 and
  • VBR lists 134 for allocated cells
  • ABR lists 136 for dynamic VBR cells
  • UBR lists 138 for dynamic UBR cells.
  • Also stored for each link 30 supported by the FSPP 16 is a pair of update/check queues 142, 144 for use in scheduling flow control update cells for transmission to other network elements, as will be described.
  • Queue numbers of queues 34 containing allocated bandwidth cells are placed on one of the preferred lists 130 and queue numbers of queues 34 containing dynamic bandwidth cells are placed on one of the dynamic lists 134, 136, or 138. More particularly, an output queue 34 may be scheduled on one or more lists depending on the scheduling category of cells contained therein. An output queue 34 is scheduled on only one list if the queue contains either only allocated cells or only dynamic cells. If an output queue 34 contains both allocated and dynamic cells however, the queue is scheduled on more than one list (i.e., on a preferred list 130 for the allocated cells and on one of the dynamic lists 134, 136 or 138 for the dynamic cells) .
  • a queue 34 containing allocated cells and dynamic VBR cells is serviced using both a preferred list 130 as well as a dynamic VBR list 134.
  • the criteria on which a list is scheduled includes the scheduling category (e.g., entries on the preferred lists are serviced before entries on the dynamic lists) , the priority of the list within the particular scheduling category (e.g., a priority zero list is scheduled before a priority one, two or three list) and whether or not the bandwidth requirement
  • the queue numbers are serviced in order of arrival, with the first queue number added to the list (i.e., the head of the list) being the first to be removed.
  • the dequeue controller 56 (Fig. 1) causes the number of the transmitting queue to be removed from the head of the list and a cell count maintained in the queue descriptor 100 to be decremented.
  • the queue descriptor 100 includes a Dynamic Cell Count field 120 and an Allocated Cell Count field 124.
  • the Allocated Cell Count 124 (Fig. 3) is decremented and, if the transmitted cell is a dynamic cell, then the Dynamic Cell Count 120 is decremented. If the cell count value thereafter is non-zero, then the queue number is returned to the tail of the list since a non-zero cell count value indicates that the particular queue still contains cells of the respective scheduling category and priority. Alternatively, if the decremented cell count value is zero, then the queue is removed from the list, since that queue no longer contains cells of the particular scheduling category and priority associated ' with that list. By servicing the queue number at - li ⁇ the head of the list fir ⁇ t, and returning a serviced queue to the tail of the list, queues within a list are scheduled in round-robin fashion.
  • the lists are implemented as linked lists of queue numbers identifying the queues 34.
  • the queue numbers in a list are "linked" in the ⁇ ense that each queue number points to another queue number on the list using the queue number itself as a pointer, as will be de ⁇ cribed further below in conjunction with Fig. 7.
  • the lists are loaded by the enqueue controller 54 (Fig.
  • the Dynamic Cell Count 120 is incremented and each time a cell having allocated bandwidth is enqueue, the Allocated
  • Cell Count 124 is incremented. Note that each time a cell is dequeued, the respective count (i.e., the Dynamic Cell
  • the queue 34 is enqueued on a queue 34 and the respective count field 120, 124 incremented, it is determined whether the queue should be placed on a scheduling list. In general, if the queue 34 is already on the appropriate list (i.e., the list corresponding to the scheduling category and priority of the just enqueued cell) , then the queue 34 is not placed on the list again. Alternatively, if the queue is not on the appropriate list, then the queue is added to the list.
  • the way in which it is determined whether the queue 34 is already on the appropriate list is by checking the cell count 120, 124 associated with the enqueued cell. For example, before a dynamic bandwidth cell is enqueued on an output queue 34, the Dynamic Cell Count field 120 in the queue descriptor 100 is evaluated to determine if the count is zero. If the count is zero, then the queue 34 did not previously contain any dynamic bandwidth cells and the queue 34 is put on the appropriate dynamic bandwidth list 134, 136, or 138. Similarly, before an allocated cell is enqueued, the Allocated Cell Count is evaluated. An Allocated Cell Count of zero indicates that the queue 34 does not contain any other allocated bandwidth cells causing the queue to be added to the appropriate preferred list 130.
  • the scheduling lists are accessed in a predetermined order by the FSPP 16 based on scheduling category and priority, as well as on the basis of whether the bandwidth requirement associated with the particular scheduling category ha ⁇ been satisfied.
  • the bandwidth provided to each ⁇ cheduling category i ⁇ measured with the use of a bandwidth table 150 (Fig. 4) .
  • the FSPP 16 stores a bandwidth table 150 for each supported link 30.
  • the bandwidth table 150 maintains a "running average" of the scheduling categories transmitted over a predetermined interval (i.e., a predetermined number of cell time ⁇ ) .
  • the entries in the bandwidth table 150 are shifted to the right ⁇ o that, at the end of N cell time ⁇ (where N is the number of location ⁇ in the bandwidth table), the table is full. Thereafter, when a cell i ⁇ tran ⁇ mitted, the fir ⁇ t location 154 in the bandwidth table is overwritten with the ⁇ cheduling category a ⁇ sociated with the presently transmitted cell and the remaining entries are shifted to the right, causing the last entry 158 to be removed from the table 150.
  • Two counter ⁇ 58, 60 are provided in the control portion 52 of the FSPP 16 to count the number of cell ⁇ of each ⁇ cheduling category tran ⁇ mitted within the predetermined interval.
  • one counter 58 count ⁇ the number of ABR cell ⁇ tran ⁇ mitted over the predetermined interval (i.e., the number of ABR entries in the bandwidth table 150) and the other counter 60 counts the number of VBR cells transmitted over the predetermined interval.
  • the respective counter is incremented.
  • its scheduling category is read and the respective counter decremented. In this way, each counter 58, 60 maintains a running tally of the number of entries in the bandwidth table 150 of the respective scheduling category.
  • the FSPP 16 periodically compares the count maintained in each counter 58, 60 with the minimum bandwidth requirement for the respective scheduling category. For example, if ABR traffic is required to have 20% of the link 30 to meet the ABR bandwidth requirement, then the count in the ABR counter 58 i ⁇ compared to the required 20% bandwidth. If the bandwidth from the counter is greater than the required bandwidth, then the bandwidth requirement is met; whereas, if the bandwidth requirement from the counter is less than the required bandwidth, then the bandwidth requirement is not met.
  • Table 1 li ⁇ t ⁇ the order in which the scheduling lists are selected to permit link acces ⁇ to the queues 34 contained therein, with item 1 of Table 1 reflecting the highest priority list access operation and item 18 the lowest.
  • Round-robin 0 VBRO (Low), ABRO (Low) and UBR0
  • ABR flow control con ⁇ i ⁇ ts of feedback messages used for flow control for the ABR traffic type and refers to the update/check queues 142, 144. These queues contain update information for other switches 29. The update information indicates whether or not a particular TSPP 14 has the buffer capacity to presently accept data cells from the other switch.
  • the update information contained in the queues 142, 144 will be transmitted before any other cell trans i ⁇ sion if a predetermined interval has lapsed. Stated differently, an update cell generated from the update information is transmitted at least once during each such predetermined interval.
  • update/check queue 142 is provided. According to item one of the link schedule Table 1, transmission of update information contained in the queue 142 has the highest priority in the event that the timer has expired.
  • an ABR flow control timer in the FSPP 16 is loaded each time an update cell is transmitted and counts down thereafter. When this timer reache ⁇ a count of zero, another update cell i ⁇ tran ⁇ mitted according to item one in Table 1 above.
  • update information will be transmitted with a priority higher than mo ⁇ t of the dynamic bandwidth transmissions.
  • the second update/check queue 144 has a priority after transmissions from the VBRO list when the VBR bandwidth requirement is not met (i.e., item 6 in Table 1 above) but before all other dynamic bandwidth transmissions. This level of priority of the second update/check queue 144 is reflected by item 7 in the link schedule Table 1. It will be appreciated that although update/check queues 142, 144 are provided and scheduled in the manner described above in the illustrative embodiment, alternative schemes are possible for prioritizing the transmis ⁇ ion of update information relative to transmission of other types of cells over a particular link.
  • list selection according to the above Table is performed simultaneously rather than consecutively. In particular, it is simultaneously determined which available list selection item has the highest priority. Considering item ⁇ 8 and 9 in Table 1 a ⁇ an example, it is simultaneously determined whether: (1) there exist ⁇ an entry on the ABRO list and the ABR bandwidth requirement has not been met; and (2) whether there exi ⁇ t ⁇ an entry on the VBR1 li ⁇ t and the VBR bandwidth requirement ha ⁇ not been met. The highe ⁇ t priority one of these conditions which is true corre ⁇ pond ⁇ to the next li ⁇ t selection.
  • the list selection sequence could alternatively be performed consecutively.
  • all the preferred lists with allocated traffic for a link are scheduled with a priority above dynamic lists with dynamic traffic for that link.
  • Newly received cells in a higher priority preferred list are tran ⁇ mitted before previou ⁇ ly received cells in a lower priority preferred li ⁇ t.
  • the VBR service class achieves a preselected percentage of dynamic bandwidth before allowing the lower priority ABR service cla ⁇ s to share in the dynamic bandwidth. Once ABR has achieved its preselected percentage, the remaining dynamic bandwidth is shared among VBR (low priority) , ABR (low priority) and UBR in round-robin fashion.
  • each list contains queue number 11 at the head of the list, followed by queue number 3 and finally queue number 14 at the tail of the list.
  • each queue number on the list pointing to another queue number on the list using the queue number itself as a pointer.
  • As ⁇ ociated with each list are list pointers 168 containing queue numbers and a list descriptor 170 which point ⁇ to the head and tail of the li ⁇ t. Both the list pointers 168 and list descriptors 170 for each li ⁇ t are ⁇ tored in the CRl RAM 61 of the FSPP 16. All of the preferred lists share the same set of list pointers 168. Likewise, all of the dynamic lists, ABR, VBR and UBR, share a common set of list pointers 168.
  • the list descriptor 170 is different for each list and points to the head and tail of the respective list.
  • the queue number at the head of the list is u ⁇ ed to index the li ⁇ t pointer ⁇ 168.
  • the queue number pointed to by the head of the list is the second entry in the list.
  • the queue number of the second entry is used to index the list pointers 168 and the queue number pointed to by this second entry is the third entry and so on until the queue number pointed to is equal to the queue number of the la ⁇ t entry (i.e., the tail of the li ⁇ t a ⁇ specified in the list descriptor 170) .
  • queue number 11 i.e., the head of the list
  • queue number 3 is used to index the li ⁇ t pointers 168 to read the queue number of the third entry on the li ⁇ t, or queue number 14.
  • a queue is added to the list by writing the queue number to the list pointer location indexed by the present tail of the list and replacing the present tail of the list in the list descriptor 170 with the queue number being added.

Abstract

Methods and apparatus for scheduling cell transmission over a network link by a switch. The switch includes a plurality of queues associated with each link. Lists of queues are maintained for each link. In one embodiment, each link is associated with more than one type of list (with the list type corresponding to a scheduling category) (61) and more than one prioritized list of each type (with the priority of the list corresponding to a quality of service). The scheduling lists (61) are accessed to permit cell transmission from a queue (35, 28) contained therein in a predetermined sequence as a function of scheduling category, priority within a particular scheduling category and whether the bandwidth requirement for the particular scheduling category has been met. With this arrangement, maximum permissible delay requirements for each scheduling category are met.

Description

LINK SCHEDULING
RELATED CASE INFORMATION
This application claims benefit of U.S. Provisional Application Serial No. 60/001,498, filed July 19, 1995.
FIELD OF THE INVENTION This invention relates generally to networks and, more specifically, to management of link access by an asynchronous transfer mode switch.
BACKGROUND OF THE INVENTION Networks such as asynchronous transfer mode ("ATM") networks are used for transfer of audio, video and other data. ATM networks deliver data by routing data units such as ATM cells from source to destination through switches. Switches include input/output ("I/O") ports through which ATM cells are received and transmitted. The appropriate output port for transmission of the cell is determined based on the cell header.
In configuring a network element such as a switch for the optimal transfer of various traffic types (sometimes referred to as service classes) supported by ATM networks, multiple factors such as throughput delay and desired bandwidth must be considered. Such traffic types, each having its own delay and bandwidth requirements, include the constant bit rate ("CBR") service class, the variable bit rate ("VBR") service class, the available bit rate ("ABR") service class, and the unspecified bit rate ("UBR") service class.
The primary differentiator between the service classes is delay. Telecommunications network applications such as teleconferencing require deterministic delay bounds, and are typically assigned to the CBR service class. Transactions processing applications such as automated teller machines require a "tightly bounded" delay specification to provide acceptable response times. Such applications typically are assigned to the VBR service class. File transfer applications such as internetwork traffic merely require a "bounded" delay, and thus, typically employ the ABR service class. The UBR service class normally provides no delay bound.
Bandwidth is another consideration in establishing an acceptable switch configuration. Video applications typically have a predictable bandwidth requirement, while file transfer applications are much more aperiodic, or "bursty" .
Low-delay and line utilization are opposing goals when multiplexing sources. High utilization is achieved by having a set of connections share bandwidth that is unused by connections that need very low delay. This shared bandwidth is known as dynamic bandwidth because it is distributed to connections based on instantaneous operating conditions. VBR, ABR and UBR utilize dynamic bandwidth to achieve high line utilization. The bandwidth used by connections that need very low delay is known as allocated bandwidth because it is dedicated to particular connections.
One way of scheduling traffic of different types is to use a priority scheme, in which certain traffic types are given higher transfer priority than others. The problem with such a priority arrangement is that higher priority traffic can prevent the transmission of lower priority traffic with acceptable delays.
SUMMARY OF THE INVENTION
Methods and apparatus for scheduling cell transmission over a link by a switch are described. The link scheduling permits delay requirements associated with different categories of transmission (i.e., scheduling categories) to be guaranteed. A plurality of queues are associated with and contend for access to each link supported by the switch. The queues contain pointers to cells to be transmitted over the link. Lists of queues associated with each link (i.e., scheduling lists) are maintained. More particularly, each link is associated with more than one type of list (with the list type corresponding to a scheduling category) and more than one prioritized list of each type (with the priority of the list corresponding to a quality of service) . The scheduling lists are accessed in a predetermined sequence in order to provide link access to the queue at the top of the respective list. The predetermined sequence with which the scheduling lists are accessed is a function of the scheduling category, priority of the list within the particular scheduling category and whether or not the respective bandwidth requirement (if any) for the scheduling category has been met. The bandwidth provided to the different scheduling categories over a predetermined interval is measured and compared to the respective bandwidth requirement. In this way, it is determined whether or not the respective bandwidth requirement for the scheduling category has been met.
In the present embodiment, the switch includes at least one input port containing input queues of cells received from the network, at least one output port containing queues for buffering cells to be transmitted from the switch and a switch fabric for permitting transmission of the cells from an input queue to one or more output queues. Each output port has a memory associated therewith for storing the lists of queues containing cells to be transmitted over a link εupported by the port. In particular, a set of lists is stored for each link supported by the output port.
Each set of lists includes lists of more than one type, corresponding to different scheduling categories (i.e., allocated, dynamic VBR, dynamic ABR and dynamic UBR) , and different priorities of lists within each scheduling category (i.e., corresponding to a particular quality of service) . The lists are accessed in a predetermined order according to the priority of the respective scheduling categories as compared to other scheduling categories, the priority of the list as compared to other lists within the particular scheduling category, and whether or not the bandwidth requirement (if any) for the respective scheduling category has been met.
Each output port maintains a bandwidth table in memory for each output link supported by the port. The bandwidth table contains entries indicating the scheduling category associated with a predetermined number of prior cell transmissions. That is, each time a cell is transmitted, its scheduling category is entered into the bandwidth table for the link over which the cell was transmitted. Counters maintain a count of the number of bandwidth table entries of each scheduling category. The number of entries of a particular scheduling category is compared with the specified bandwidth requirement for that scheduling category in order to determine whether or not the bandwidth requirement has been met. This determination of whether or not the bandwidth requirement has been met is then used as one criteria for sequencing through the lists in order to provide the output queues with access to the respective link.
BRIEF DESCRIPTION OF THE DRAWINGS The foregoing features of this invention, as well as the invention itself, may be more fully understood from the following detailed description of the drawings in which:
Fig. 1 is a block diagram of a network switch; Fig. 2 is a block diagram illustrating switch port scheduling and network link scheduling;
Fig. 3 illustrates the structure of a queue descriptor associated with an output queue of the switch of Fig. 1;
Fig. '4 illustrates the scheduling lists and bandwidth measurement table associated with each link of a particular FSPP;
Fig. 5 illustrates the logical construction of a list;
Fig. 6 shows a bandwidth measurement table with illustrative entries; and
Fig. 7 shows an implementation of three illustrative lists.
DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring to Figs. 1 and 2, the presently disclosed switch 10 includes a plurality of input ports 20, a plurality of output ports 22 and an NxN switch fabric 11, such as a cross point switch fabric, coupled between the input ports 20 and output ports 22. Each input port 20 includes a To Switch Port Processor ("TSPP") ASIC 14 and each output port 22 includes a From Switch Port Processor ("FSPP") ASIC 16. A Multipoint Topology Controller ("MTC") ASIC 18 is coupled between each TSPP 14 and a Bandwidth Arbiter ("BA") ASIC 12, as well as between the bandwidth arbiter 12 and each FSPP 16, as shown. In one embodiment, each MTC 18 supports up to four TSPPs 14 or FSPPs 16.
The switch fabric 11 includes a data crossbar 13 for data cell transport and the bandwidth arbiter 12 and MTCs 18 for control signal transport. The bandwidth arbiter 12 controls, inter alia, transport of data cells from a TSPP 14 to one or more FSPPs 16 through the data crossbar 13 (i.e., switch port scheduling) . Each FSPP 16 receives cells from the data crossbar 13 and schedules transmission of those cells onto network links 30 (i.e., link scheduling) .
Each of the input ports 20 and output ports 22 includes a plurality of input buffers 26 and output buffers 28, respectively (Fig. 2) . The buffers 26, 28 are organized into a plurality of input queues 32a-m (referred to herein generally as input queues 32) and a plurality of output queues 34a-m (referred to herein generally as output queues 34) , respectively. More particularly, each input port 20 includes a plurality of input queues 32 and each output port 22 includes a plurality of output queues 34, as shown. The input queues 32 are stored in a Control RAM and a Pointer RAM of the input port 20 and the output queues 34 are stored in a CRl RAM 61 and a CR2 RAM 63 of the output port 22.
To traverse the switch 10, a data cell 24 enters the switch through an input port 20 and is enqueued on an input queue 32 at the respective TSPP 14. The cell is then transmitted from the input queue 32 to one or more output queues 34 via the data crossbar 13. Control signals are transmitted from a TSPP 14 to one or more FSPPs 16 via the respective MTC 18 and the bandwidth arbiter 12. In particular, data and control signals may be transmitted from an input queue 32 to a particular one of the output queues 34, in the case of a point to point connection 40. Alternatively, data and control signals may be transmitted from an input queue 32 to a selected set of output queues 34, in the case of a point to multipoint connection 42. From the output queue(s) 34, the data cell 24 is transmitted outside of the switch 10, for example, to another switch 29 via a network link 30.
The bandwidth arbiter 12 contains a crossbar controller 15 which includes a probe crossbar, an XOFF crossbar and an XON crossbar, each of which is an NxN switch fabric. A request message, or probe control signal, flows through the probe crossbar and is used to query whether or not sufficient space is available at the destination output queue, or queues 34 to enqueue a cell. The request message is considered a "forward" control signal since its direction is from a TSPP 14 to one or more FSPPs 16 (i.e., the same direction as data) . A two bit control signal flows in the reverse direction (from one or more FSPPs to a TSPP) through the XOFF crossbar and responds to the request message query by indicating whether or not the destination output queue, or queues 34 are presently capable of accepting data cells and thus, whether or not the transmitting TSPP can transmit cells via the data crossbar 13. In the event that the XOFF control signal indicates that the queried output queue(s) 34 are not presently capable of receiving data, another reverse control signal, which flows through the XON crossbar, notifies the transmitting TSPP once space becomes available at the destination output queue(s) 34.
Each output port 22 contains four memories: a Control RAM 1 ("CRl RAM") 61, a Control RAM 2 ("CR2 RAM") 63, a Cell Buffer RAM 35, and a Quantum Flow Control RAM ("QFC RAM") 67. The Cell Buffer RAM 35 is where the actual cells are buffered while they await transmission. The CRl RAM 61 and the CR2 RAM 63 contain the output queues 34, with each queue 34 containing pointers to cells in the Cell Buffer RAM 35 (i.e., the queues may be described generally as containing cells) . The CRl RAM 61 contains information required to implement scheduling lists used to schedule link access by the output queues 34 associated with each link 30 supported by the FSPP 16, as will be discussed. The QFC RAM 67 stores update information for transfer to another switch 29 via a network link 30. Update cells are generated in response to the update information provided by a TSPP 14 and specify whether the particular TSPP 14 is presently capable of accepting data cells. Each FSPP 16 supports N network links 30. In one example, the number N of network links 30 supported by each FSPP 16 is between one and eight. The FSPP 16 contains up to 16,384 output queues 34 associated with each of the supported links 30 with such output queues contending for access to the link. The process of giving the queues 34 associated with a particular link 30 access to transmit cells over the respective link 30 is referred to as "link scheduling". Link scheduling is performed by a control portion 52 of the FSPP 16 and, in particular, by an enqueue controller 54 and a dequeue controller 56.
Cells may be transferred from output queues 34 to links 30 using bandwidth assigned specifically to such connections ("allocated bandwidth") or using unallocated bandwidth or unused allocated bandwidth ("dynamic bandwidth") . Dynamic bandwidth is further broken down to be shared among different service classes (i.e., the Variable Bit Rate "VBR" service class, the Available Bit Rate "ABR" service class, and the Unspecified Bit Rate "UBR" service class) . The different service classes are differentiated by delay and cell loss characteristics. In particular, the ABR service class guarantees a predetermined minimum transmission bandwidth rate (which can be expressed as a minimum percentage of the particular link 30) with no cell loss, the VBR service class guarantees only a predetermined minimum transmission bandwidth rate and the UBR service class has neither a minimum bandwidth rate nor a no cell loss guarantee.
In the illustrative embodiment, four scheduling categories are supported: one allocated bandwidth scheduling category and three types of dynamic bandwidth scheduling categories. The three types of dynamic bandwidth scheduling categories are used by the three service classes: VBR, ABR and UBR. Also associated with each scheduling category (i.e., allocated, dynamic ABR, dynamic VBR and dynamic UBR) are priorities which correspond to a particular quality of service. In the illustrative embodiment, the priorities associated with each scheduling category are between zero and three, with zero being the highest priority.
The scheduling category associated with a particular cell is determined from the header of a cell 24. An output queue 34 may contain either allocated cells, dynamic cells or both allocated and dynamic cells. However, a queue containing dynamic cells will contain dynamic cells associated with only one service class (i.e., VBR, ABR or UBR) .
Referring also to Fig. 3, each output queue 34 has a queue descriptor 100 associated therewith which is stored in the CR2 RAM 63 of the output port 22. The queue descriptor 100 specifies, inter alia, the service class associated with dynamic cells buffered by the queue (i.e., ABR, VBR, or UBR) in a Class field 104. The priority of cells within a scheduling category is specified by a PrfPri field 108 for allocated bandwidth cells and by a DynPri field 112 for dynamic bandwidth cells. Also contained in the queue descriptor 100 is a Link field 118 in which the particular link 30 associated with the queue 34 is identified.
Referring also to Fig. 4, lists of queues (i.e., scheduling lists) are maintained in the CRl RAM 61 associated with each FSPP 16 for the purpose of link scheduling. In particular, a separate set of lists is provided for each link 30 supported by the FSPP 16. Specifically, for each link 30, the following lists are stored: four priorities of preferred lists 130 (labelled PREFERRED0, PREFERRED1, PREFERRED2 and
PREFERRED3) for allocated cells, four priorities of VBR lists 134 (labelled VBR0, VBR1, VBR2 and VBR3) for dynamic VBR cells, four priorities of ABR lists 136 (labelled ABR0, ABR1, ABR2 and ABR3) for dynamic ABR cells and four priorities of UBR lists 138 (labelled UBR0, UBR1, UBR2 and UBR3) for dynamic UBR cells. Also stored for each link 30 supported by the FSPP 16 is a pair of update/check queues 142, 144 for use in scheduling flow control update cells for transmission to other network elements, as will be described. Queue numbers of queues 34 containing allocated bandwidth cells are placed on one of the preferred lists 130 and queue numbers of queues 34 containing dynamic bandwidth cells are placed on one of the dynamic lists 134, 136, or 138. More particularly, an output queue 34 may be scheduled on one or more lists depending on the scheduling category of cells contained therein. An output queue 34 is scheduled on only one list if the queue contains either only allocated cells or only dynamic cells. If an output queue 34 contains both allocated and dynamic cells however, the queue is scheduled on more than one list (i.e., on a preferred list 130 for the allocated cells and on one of the dynamic lists 134, 136 or 138 for the dynamic cells) . For example, a queue 34 containing allocated cells and dynamic VBR cells is serviced using both a preferred list 130 as well as a dynamic VBR list 134. As will become apparent from the particular sequence with which the lists are scheduled as discussed below, the criteria on which a list is scheduled includes the scheduling category (e.g., entries on the preferred lists are serviced before entries on the dynamic lists) , the priority of the list within the particular scheduling category (e.g., a priority zero list is scheduled before a priority one, two or three list) and whether or not the bandwidth requirement
(if any) for the particular scheduling category has been met.
Referring also to Fig. 5, within each list, the queue numbers are serviced in order of arrival, with the first queue number added to the list (i.e., the head of the list) being the first to be removed. When a queue number reaches the head of the particular list, that queue becomes the next queue within the list from which a cell is transmitted. When the cell is dequeued, or transmitted, the dequeue controller 56 (Fig. 1) causes the number of the transmitting queue to be removed from the head of the list and a cell count maintained in the queue descriptor 100 to be decremented. In particular, the queue descriptor 100 includes a Dynamic Cell Count field 120 and an Allocated Cell Count field 124. If the transmitted cell is an allocated cell, then the Allocated Cell Count 124 (Fig. 3) is decremented and, if the transmitted cell is a dynamic cell, then the Dynamic Cell Count 120 is decremented. If the cell count value thereafter is non-zero, then the queue number is returned to the tail of the list since a non-zero cell count value indicates that the particular queue still contains cells of the respective scheduling category and priority. Alternatively, if the decremented cell count value is zero, then the queue is removed from the list, since that queue no longer contains cells of the particular scheduling category and priority associated' with that list. By servicing the queue number at - li ¬ the head of the list firεt, and returning a serviced queue to the tail of the list, queues within a list are scheduled in round-robin fashion.
The lists are implemented as linked lists of queue numbers identifying the queues 34. The queue numbers in a list are "linked" in the εense that each queue number points to another queue number on the list using the queue number itself as a pointer, as will be deεcribed further below in conjunction with Fig. 7. The lists are loaded by the enqueue controller 54 (Fig.
1) each time a cell is received by the FSPP 16. When a cell is enqueued in an output queue 34, the cell count maintained in the queue descriptor 100 for the cell's scheduling category is incremented and the queue number is placed on the appropriate list (unless the queue is already on that list) .
Thus, each time a cell having dynamic bandwidth is enqueued, the Dynamic Cell Count 120 is incremented and each time a cell having allocated bandwidth is enqueue, the Allocated
Cell Count 124 is incremented. Note that each time a cell is dequeued, the respective count (i.e., the Dynamic Cell
Count 120 or the Allocated Cell Count 124) of the queue descriptor 100 is decremented.
Once the cell is enqueued on a queue 34 and the respective count field 120, 124 incremented, it is determined whether the queue should be placed on a scheduling list. In general, if the queue 34 is already on the appropriate list (i.e., the list corresponding to the scheduling category and priority of the just enqueued cell) , then the queue 34 is not placed on the list again. Alternatively, if the queue is not on the appropriate list, then the queue is added to the list.
The way in which it is determined whether the queue 34 is already on the appropriate list is by checking the cell count 120, 124 associated with the enqueued cell. For example, before a dynamic bandwidth cell is enqueued on an output queue 34, the Dynamic Cell Count field 120 in the queue descriptor 100 is evaluated to determine if the count is zero. If the count is zero, then the queue 34 did not previously contain any dynamic bandwidth cells and the queue 34 is put on the appropriate dynamic bandwidth list 134, 136, or 138. Similarly, before an allocated cell is enqueued, the Allocated Cell Count is evaluated. An Allocated Cell Count of zero indicates that the queue 34 does not contain any other allocated bandwidth cells causing the queue to be added to the appropriate preferred list 130. Alternatively, if the cell count is non-zero, then the queue 34 is not put on any list, since a non-zero cell count indicates that the queue 34 contains other cells of the same category and priority and thus, that the queue is already on the appropriate list. An alternative embodiment may utilize a state bit to indicate whether the queue 34 is on or off a list. As noted above, the scheduling lists are accessed in a predetermined order by the FSPP 16 based on scheduling category and priority, as well as on the basis of whether the bandwidth requirement associated with the particular scheduling category haε been satisfied. To thiε end, the bandwidth provided to each εcheduling category iε measured with the use of a bandwidth table 150 (Fig. 4) . The FSPP 16 stores a bandwidth table 150 for each supported link 30. The bandwidth table 150 maintains a "running average" of the scheduling categories transmitted over a predetermined interval (i.e., a predetermined number of cell timeε) .
Referring alεo to the illustrative bandwidth table 150 of Fig. 6, each time a cell is transmitted by the εwitch 10, the εcheduling category aεεociated with the cell is written to the first location 154 of the bandwidth table 150 for that link. More particularly, when an ABR cell is dequeued, an entry is made in the bandwidth table specifying ABR traffic and, when a VBR cell is dequeued, an entry is made in the bandwidth table specifying VBR traffic. When either an allocated cell or a UBR cell is dequeued, a Not A/VBR or "null" entry is made in the bandwidth table, since it is not necessary to keep count of the number of allocated and UBR cells transmitted. This is because allocated bandwidth is ensured by the order in which the lists are scheduled and there is no particular bandwidth requirement for UBR cells. Upon the transmisεion of εubεequent cells, the entries in the bandwidth table 150 are shifted to the right εo that, at the end of N cell timeε (where N is the number of locationε in the bandwidth table), the table is full. Thereafter, when a cell iε tranεmitted, the firεt location 154 in the bandwidth table is overwritten with the εcheduling category aεsociated with the presently transmitted cell and the remaining entries are shifted to the right, causing the last entry 158 to be removed from the table 150.
Two counterε 58, 60 (Fig. 1) are provided in the control portion 52 of the FSPP 16 to count the number of cellε of each εcheduling category tranεmitted within the predetermined interval. In particular, one counter 58 countε the number of ABR cellε tranεmitted over the predetermined interval (i.e., the number of ABR entries in the bandwidth table 150) and the other counter 60 counts the number of VBR cells transmitted over the predetermined interval. Each time an ABR cell or a VBR cell is dequeued and an entry made in the bandwidth table 150, the respective counter is incremented. When an entry is removed from the table, its scheduling category is read and the respective counter decremented. In this way, each counter 58, 60 maintains a running tally of the number of entries in the bandwidth table 150 of the respective scheduling category.
The FSPP 16 periodically compares the count maintained in each counter 58, 60 with the minimum bandwidth requirement for the respective scheduling category. For example, if ABR traffic is required to have 20% of the link 30 to meet the ABR bandwidth requirement, then the count in the ABR counter 58 iε compared to the required 20% bandwidth. If the bandwidth from the counter is greater than the required bandwidth, then the bandwidth requirement is met; whereas, if the bandwidth requirement from the counter is less than the required bandwidth, then the bandwidth requirement is not met.
The following Table 1 liεtε the order in which the scheduling lists are selected to permit link accesε to the queues 34 contained therein, with item 1 of Table 1 reflecting the highest priority list access operation and item 18 the lowest. Once a list iε selected, all of the queues contained therein are serviced in the manner described above in conjunction with Fig. 5. A εuffix of "high" relative to a list indicates that the bandwidth requirement for the respective scheduling category haε not been met; whereaε, a suffix of "low" indicates that the bandwidth requirement for that scheduling category has been met. For example, a list with a "high" suffix in Table 1 below will only be accesεed if the bandwidth requirement haε not been met.
TABLE 1
1. ABR flow control (High Priority: Timer expired)
2. PREFERRED 0
3. PREFERRED 1
4. PREFERRED 2
5. PREFERRED 3
6. VBRO (High)
7. ABR flow control
8. ABRO (High)
9. VBR1 (High)
10. VBR2 (High)
11. VBR3 (High)
12. ABR1 (High)
13. ABR2 (High)
14. ABR3 (High)
15. Round-robin 0: VBRO (Low), ABRO (Low) and UBR0
16. Round-robin 1: VBR1 (Low), ABR1 (Low) and UBR1
17. Round-robin 2: VBR2 (Low), ABR2 (Low) and UBR2
18. Round-robin 3: VBR2 (Low), ABR3 (Low) and UBR3
ABR flow control conεiεts of feedback messages used for flow control for the ABR traffic type and refers to the update/check queues 142, 144. These queues contain update information for other switches 29. The update information indicates whether or not a particular TSPP 14 has the buffer capacity to presently accept data cells from the other switch.
In the illustrative embodiment, the update information contained in the queues 142, 144 will be transmitted before any other cell trans iεsion if a predetermined interval has lapsed. Stated differently, an update cell generated from the update information is transmitted at least once during each such predetermined interval. To this end, update/check queue 142 is provided. According to item one of the link schedule Table 1, transmission of update information contained in the queue 142 has the highest priority in the event that the timer has expired. In particular, an ABR flow control timer in the FSPP 16 is loaded each time an update cell is transmitted and counts down thereafter. When this timer reacheε a count of zero, another update cell iε tranεmitted according to item one in Table 1 above.
In the event that the ABR flow control timer haε not counted down to zero, update information will be transmitted with a priority higher than moεt of the dynamic bandwidth transmissions. To this end, the second update/check queue 144 has a priority after transmissions from the VBRO list when the VBR bandwidth requirement is not met (i.e., item 6 in Table 1 above) but before all other dynamic bandwidth transmissions. This level of priority of the second update/check queue 144 is reflected by item 7 in the link schedule Table 1. It will be appreciated that although update/check queues 142, 144 are provided and scheduled in the manner described above in the illustrative embodiment, alternative schemes are possible for prioritizing the transmisεion of update information relative to transmission of other types of cells over a particular link.
The listε are given link acceεs in accordance with the order set forth in the above Table 1. In the presently deεcribed ASIC-based switch implementation, list selection according to the above Table is performed simultaneously rather than consecutively. In particular, it is simultaneously determined which available list selection item has the highest priority. Considering itemε 8 and 9 in Table 1 aε an example, it is simultaneously determined whether: (1) there existε an entry on the ABRO list and the ABR bandwidth requirement has not been met; and (2) whether there exiεtε an entry on the VBR1 liεt and the VBR bandwidth requirement haε not been met. The higheεt priority one of these conditions which is true correεpondε to the next liεt selection. It will be appreciated however, that the list selection sequence could alternatively be performed consecutively. In view of the list selection priority specified in Table 1, it is apparent that all the preferred lists with allocated traffic for a link are scheduled with a priority above dynamic lists with dynamic traffic for that link. Newly received cells in a higher priority preferred list are tranεmitted before previouεly received cells in a lower priority preferred liεt. Also, the VBR service class achieves a preselected percentage of dynamic bandwidth before allowing the lower priority ABR service claεs to share in the dynamic bandwidth. Once ABR has achieved its preselected percentage, the remaining dynamic bandwidth is shared among VBR (low priority) , ABR (low priority) and UBR in round-robin fashion.
Referring also to Fig. 7, the way in which the linked listε are implemented will be described in conjunction with three illustrative lists (e.g., PREFERREDO, PREFERRED1 and PREFERRED2) . The logical construction of each list is labelled 172 in Fig. 7. For example, the PREFERREDO list contains queue number 11 at the head of the list, followed by queue number 3 and finally queue number 14 at the tail of the list.
Recall that the lists are linked queue numbers, with each queue number on the list pointing to another queue number on the list using the queue number itself as a pointer. Asεociated with each list are list pointers 168 containing queue numbers and a list descriptor 170 which pointε to the head and tail of the liεt. Both the list pointers 168 and list descriptors 170 for each liεt are εtored in the CRl RAM 61 of the FSPP 16. All of the preferred lists share the same set of list pointers 168. Likewise, all of the dynamic lists, ABR, VBR and UBR, share a common set of list pointers 168. The list descriptor 170, on the other hand, is different for each list and points to the head and tail of the respective list. The queue number at the head of the list is uεed to index the liεt pointerε 168. The queue number pointed to by the head of the list is the second entry in the list. Likewise, the queue number of the second entry is used to index the list pointers 168 and the queue number pointed to by this second entry is the third entry and so on until the queue number pointed to is equal to the queue number of the laεt entry (i.e., the tail of the liεt aε specified in the list descriptor 170) . Referring to the PREFERREDO list for example, queue number 11 (i.e., the head of the list) is used to index the liεt pointerε 168 to read the εecond entry in the list, or queue number 3. Thereafter, queue number 3 is used to index the liεt pointers 168 to read the queue number of the third entry on the liεt, or queue number 14. Queue number 14 iε the laεt entry on the liεt εince it iε equal to the tail of the liεt aε specified by the list deεcriptor 170. A queue is added to the list by writing the queue number to the list pointer location indexed by the present tail of the list and replacing the present tail of the list in the list descriptor 170 with the queue number being added. A queue iε removed from a list by indexing the list pointers 168 to find the queue number of the second list entry and replacing the preεent head of the list in the list descriptor 170 with the queue number of this second queue entry.
Having described preferred embodiments of the invention, it will be apparent to those skilled in the art that other embodiments incorporating the concepts may be used. For example, it will be appreciated that the apparatuε and methodε deεcribed herein in conjunction with link εcheduling may be readily applied to εwitch port scheduling (i.e., the transport of data cells from a TSPP to one or more FSPPs) . In particular, in the case of switch port εcheduling, the liεts would contain input queueε 32 containing cells to be transmitted over the switch fabric 11 to one or more output ports 22 and the "links" become the connections through the switch fabric to which multiple input queues 32 contend for access. It iε felt therefore that these embodiments εhould not b_ limited to the diεcloεed embodiments but rather should be limited only by the spirit and scope of the appended claims.

Claims

CLAIMS We claim:
1. A network switch comprising: an input port operative to receive cells from said networ ; an output port operative to transmit cellε from said switch to said network over a link, said output port containing a plurality of queues associated with said link, wherein each of said plurality of queues contains cells associated with a respective scheduling category; a switch fabric coupled between said input port and said output port; a memory containing a plurality of listε, each of εaid lists associated with a respective scheduling category and adapted for containing queues asεociated with said respective scheduling category; and a controller coupled to said memory and operative to schedule said lists in order to provide the queues contained in said lists with access to said link, wherein said listε are scheduled based on the εcheduling category associated with the respective list and whether a bandwidth requirement associated with said scheduling category has been met.
2. The switch recited in claim 1 wherein said memory further comprises a bandwidth measurement table for storing entrieε indicating the εcheduling category aεsociated with cells tranεmitted over a predetermined interval.
3. The εwitch recited in claim 2 further compriεing a counter to count the number of entries in said bandwidth table for each scheduling category, wherein said counter iε operative to determine whether said bandwidth requirement associated with the respective scheduling category has been met.
A method of resolving contention between plural queues, each belonging to a respective one of plural scheduling lists having a respective εcheduling category aεsociated therewith, comprising the stepε of: measuring the bandwidth provided to each of said scheduling categories over a predetermined interval; and selecting one of said plural scheduling lists based on the measured bandwidth provided to the scheduling category asεociated with εaid liεt.
PCT/US1996/011919 1995-07-19 1996-07-18 Link scheduling WO1997004561A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP9506066A JP2000501897A (en) 1995-07-19 1996-07-18 Link scheduling
PCT/US1996/011919 WO1997004561A1 (en) 1995-07-19 1996-07-18 Link scheduling
AU65009/96A AU6500996A (en) 1995-07-19 1996-07-18 Link scheduling
EP96924603A EP0845181A4 (en) 1995-07-19 1996-07-18 Link scheduling

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US149895P 1995-07-19 1995-07-19
US60/001,498 1995-07-19
PCT/US1996/011919 WO1997004561A1 (en) 1995-07-19 1996-07-18 Link scheduling

Publications (1)

Publication Number Publication Date
WO1997004561A1 true WO1997004561A1 (en) 1997-02-06

Family

ID=38659664

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/011919 WO1997004561A1 (en) 1995-07-19 1996-07-18 Link scheduling

Country Status (4)

Country Link
EP (1) EP0845181A4 (en)
JP (1) JP2000501897A (en)
AU (1) AU6500996A (en)
WO (1) WO1997004561A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999022566A2 (en) 1997-11-04 1999-05-14 Koninklijke Philips Electronics N.V. Communication network using different transmission properties
US6324625B1 (en) 1999-03-16 2001-11-27 Fujitsu Network Communications, Inc. Rotating rationed buffer refresh

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2229917B1 (en) * 2003-07-15 2006-07-01 Diseño De Sistemas En Silicio, S.A. PROCEDURE OF DYNAMIC MANAGEMENT OF RESOURCES OF TELECOMMUNICATIONS SYSTEMS IN FUNCTION OF SERVICE QUALITY AND TYPE OF SERVICE.

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083269A (en) * 1989-01-10 1992-01-21 Kabushiki Kaisha Toshiba Buffer device suitable for asynchronous transfer mode communication
US5491691A (en) * 1994-08-16 1996-02-13 Motorola, Inc. Method and apparatus for pacing asynchronous transfer mode (ATM) data cell transmission
US5521916A (en) * 1994-12-02 1996-05-28 At&T Corp. Implementation of selective pushout for space priorities in a shared memory asynchronous transfer mode switch
US5535197A (en) * 1991-09-26 1996-07-09 Ipc Information Systems, Inc. Shared buffer switching module
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
US5557607A (en) * 1994-04-28 1996-09-17 Network Synthesis, Inc. Methods and apparatus for enqueueing and dequeueing data cells in an ATM switch fabric architecture

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083269A (en) * 1989-01-10 1992-01-21 Kabushiki Kaisha Toshiba Buffer device suitable for asynchronous transfer mode communication
US5535197A (en) * 1991-09-26 1996-07-09 Ipc Information Systems, Inc. Shared buffer switching module
US5557607A (en) * 1994-04-28 1996-09-17 Network Synthesis, Inc. Methods and apparatus for enqueueing and dequeueing data cells in an ATM switch fabric architecture
US5491691A (en) * 1994-08-16 1996-02-13 Motorola, Inc. Method and apparatus for pacing asynchronous transfer mode (ATM) data cell transmission
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
US5521916A (en) * 1994-12-02 1996-05-28 At&T Corp. Implementation of selective pushout for space priorities in a shared memory asynchronous transfer mode switch

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0845181A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999022566A2 (en) 1997-11-04 1999-05-14 Koninklijke Philips Electronics N.V. Communication network using different transmission properties
US6324625B1 (en) 1999-03-16 2001-11-27 Fujitsu Network Communications, Inc. Rotating rationed buffer refresh

Also Published As

Publication number Publication date
EP0845181A4 (en) 2001-07-18
EP0845181A1 (en) 1998-06-03
AU6500996A (en) 1997-02-18
JP2000501897A (en) 2000-02-15

Similar Documents

Publication Publication Date Title
US5996019A (en) Network link access scheduling using a plurality of prioritized lists containing queue identifiers
US5757771A (en) Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch
US6542507B1 (en) Input buffering/output control for a digital traffic switch
US6295295B1 (en) Scheduler for an information packet switch
EP0603916B1 (en) Packet switching system using idle/busy status of output buffers
US6205118B1 (en) Adaptive time slot scheduling apparatus and method for end-points in an ATM network
US6430191B1 (en) Multi-stage queuing discipline
EP0706298A2 (en) Dynamic queue length thresholds in a shared memory ATM switch
EP0789469B1 (en) ATM switch controlling traffic congestion efficiently
JP2000261506A (en) Large capacity rate-controlled packet switch of multi- class
US6005868A (en) Traffic shaping device
US6865156B2 (en) Bandwidth control method, cell receiving apparatus, and traffic control system
EP0839422B1 (en) Linked-list structures for multiple levels of control in an atm switch
EP0839420A1 (en) Allocated and dynamic bandwidth management
WO1997004561A1 (en) Link scheduling
US6647011B1 (en) Method and system for switching using an arbitrator
US7130267B1 (en) System and method for allocating bandwidth in a network node
JP3123537B2 (en) ATM buffer control method and apparatus, and recording medium on which the method is programmed and recorded
KR100381378B1 (en) ATM Cell Scheduler And Scheduling Method
WO1997004565A1 (en) Priority arbitration for point-to-point and multipoint transmission
WO1997004570A1 (en) Controlling bandwidth allocation using a pace counter
WO1997004562A1 (en) Point-to-multipoint arbitration
WO1997004542A2 (en) Multipoint-to-point arbitration in a network switch
WO1997004565A9 (en) Priority arbitration for point-to-point and multipoint transmission

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA

CFP Corrected version of a pamphlet front page

Free format text: REVISED ABSTRACT RECEIVED BY THE INTERNATIONAL BUREAU AFTER COMPLETION OF THE TECHNICAL PREPARATIONS FOR INTERNATIONAL PUBLICATION

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: JP

Ref document number: 1997 506066

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1996924603

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1996924603

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWW Wipo information: withdrawn in national office

Ref document number: 1996924603

Country of ref document: EP