EP0839419A4 - Hierarchical resource management - Google Patents

Hierarchical resource management

Info

Publication number
EP0839419A4
EP0839419A4 EP96924623A EP96924623A EP0839419A4 EP 0839419 A4 EP0839419 A4 EP 0839419A4 EP 96924623 A EP96924623 A EP 96924623A EP 96924623 A EP96924623 A EP 96924623A EP 0839419 A4 EP0839419 A4 EP 0839419A4
Authority
EP
European Patent Office
Prior art keywords
entity
level
resource
variable
hierarchical
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP96924623A
Other languages
German (de)
French (fr)
Other versions
EP0839419A2 (en
Inventor
Stephen A Hauser
Richard G Bubenik
Stephen A Caldara
Thomas A Manning
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Network Communications Inc
Original Assignee
Fujitsu Ltd
Fujitsu Network Communications Inc
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 Ltd, Fujitsu Network Communications Inc filed Critical Fujitsu Ltd
Publication of EP0839419A2 publication Critical patent/EP0839419A2/en
Publication of EP0839419A4 publication Critical patent/EP0839419A4/en
Withdrawn legal-status Critical Current

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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/782Hierarchical allocation of resources, e.g. involving a hierarchy of local and centralised entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage
    • 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

  • the present invention is generally related to resource management techniques and more particularly to resource management techniques which dynamically adjust to conditions at multiple levels to provide efficient use of resources in a telecommunications network.
  • ATM asynchronous transfer mode
  • Such systems do not provide a means to manage the hierarchical resources in a dynamic manner to accommodate changing conditions. Furthermore, such systems do not allow for the maintenance of a pool of resources that may be shared in a controlled manner by all of the requesters at the immediately lower level of the hierarchical resources.
  • the provisioning of resources for hierarchical services under the current state of the art is accomplished by a request from the lower level to the next higher level for a specific amount of resource.
  • the basis of granting this request may be either in terms of a maximum requirement or as a statistical expectation of the resource that will be required. Resources so granted may prove inefficient or may provide unsatisfactory performance. Once granted, however, changes in this assignment of resources may be quite difficult to effect since they will typically involve negotiations and changes to the resources provided by the higher level to the other peer lower level users of the resources.
  • Allocation of resources is governed by resource usage levels associated with resource using entities: a maximum allowed usage level and a minimum guaranteed usage level.
  • a method of hierarchical resource management for allocation of resource units to a level 0 entity from a level N entity and intervening levels, where N is greater than or equal to two includes: assigning a first variable to one or more entities specifying a maximum amount of resource to be allocated to the respective entity; and processing a request from the level 0 entity for a resource unit by: determining whether actual use by the level 0 entity is less than the allocation specified by the assigned first variable, provided a first variable is assigned to the level 0 entity, and denying the request if actual use is not less than the allocation specified by the assigned first variable, otherwise; determining whether actual use at each intervening level is less than the allocation specified by the assigned first variable at such level, provided the first variable is so assigned, and denying the request if actual use is not less than the allocation specified by the assigned first variable at any intervening level, otherwise; providing a resource unit to the level 0 entity.
  • a second variable specifying the minimum guaranteed resource allocation may also be assigned to each respective entity. Requests for resources by an entity are granted if
  • the first and second variables provide a tool for maximizing overall resource utilization by controlling resource utilization by individual entities in a manner which was not previously possible.
  • Efficient, flexible, controlled use of resources is provided by ensuring that each entity has at least its respective minimum guaranteed resource allocation and by allowing entities to use available resources in excess of their respective minimum guaranteed allocations, up to the amount specified by the first variable.
  • a policy can then be implemented to assure availability of the minimum guaranteed resource allocation by ensuring that the minimum guaranteed amount available at one level is greater than or equal to the sum of all minimum provided amounts at the level below.
  • additional available resource may be utilized up to the amount specified by the respective first variable.
  • this invention provides a superior service to that of the previous art.
  • Requests for resources are now made in terms of two variables: one specifying the maximum resource that this requester could use (the maximum allowed) , the other specifying the minimum resource that is required by this requester.
  • the basis of granting a request is the availability of the minimum resource. If additional resources are available, then the requester will be allowed to use up to the maximum allowed.
  • the higher level must be able to provide resources equal to the sum of the minimum resource requirements for the requests that have been granted.
  • the service provided to the lower level users by the higher level may be improved by having resources available up to the sum of the maximum allowed for all the lower level requests that have been granted.
  • the minimum guaranteed resources are statistically shared among resource using entities at higher levels of the resource hierarchy.
  • the method is modified to implement statistical sharing policies. More particularly, if the level 0 entity is operating below the associated minimum guaranteed resource allocation, then the entity can use resources above the respective minimum guaranteed resource allocations at higher levels. This policy allows entities to continue using resources even if the pool of minimum guaranteed resources has been consumed. Additionally, if the level 0 entity is operating above the associated minimum guaranteed resource allocation, the resources at higher levels are granted only if there are minimum guaranteed resources at all higher levels. This policy leaves resources available for other entities that have not consumed their associated minimum guaranteed resources. Such statistical sharing is advantageous when, for example, there are numerous resource users which will not all request resources at the same time.
  • Fig. 1 illustrates bandwidth allocation in a telecommunications network
  • Fig. 2 illustrates multiple level resource management
  • Fig. 3 is a flow chart of a method for consuming a resource
  • Fig. 4 is a flow chart of a method for freeing a resource
  • Fig. 5 is a block diagram which illustrates hierarchical memory management.
  • Fig. 1 illustrates bandwidth allocation in a telecommunications network.
  • the network portion 10 illustrates an entity requiring network bandwidth, such as a company.
  • the network portion 10 may share bandwidth with other network portions 12 on a fibre-optic or other link 14.
  • the network portion 10 by way of example may represent the network portion within a company and in the present example includes a number of other entities requiring access to network bandwidth such as an engineering group 16, a sales and marketing group 18, and administration group 20, a programming department 22, a hardware department 24, a marketing department 26, a sales department 28, an accounting department 30 and a personnel department 32.
  • the link 14 can provide a maximum of 200 million bits per second ("MBPS") of bandwidth. It will be appreciated that if each of the network portions 10, 12 in the network are allowed to appropriate bandwidth without restraint, some users may appropriate much more bandwidth than others, and some users may get too little or no bandwidth.
  • MBPS million bits per second
  • Control of overall bandwidth utilization is provided by controlling bandwidth utilization at the company, group and department levels.
  • the company link portion 34 in the present example is limited to a maximum of 100 MBPS of bandwidth. That is, once 100 MBPS of bandwidth is utilized in the link 34 the network prevents entities within the company from obtaining additional bandwidth through the link 34.
  • the engineering group is limited to 70 MBPS of bandwidth 36 and the hardware department is limited to 30 MBPS of bandwidth 50.
  • the programming department 22 is not directly limited to a bandwidth. However, it is not necessary to impose a bandwidth limitation on every department and/or group. While the programming department has no direct bandwidth limit in this example, the programming department is still limited by the engineering group bandwidth allocation 36.
  • bandwidth use by the departments within a group cannot exceed the bandwidth allocation for the group. It should also be noted that a department is not guaranteed access to the respective maximum bandwidth associated with that department. Further control over bandwidth allocation is provided by assigning a minimum guaranteed amount of bandwidth to be provided to the bandwidth utilizing entities such as companies, groups and departments, etc.
  • the company in the present example has a minimum guaranteed bandwidth in the link 34 of 100 MBPS
  • the engineering group has a minimum guaranteed bandwidth through link 52 of 60 MBPS
  • the hardware department has a minimum guaranteed bandwidth through link 66 of 25 MBPS
  • the programming department has a minimum guaranteed bandwidth through link 68 of 35 MBPS.
  • the system may be structured such that the minimum guaranteed bandwidth provided to the company is equal to the sum of the minimum guaranteed bandwidths of the groups, and the sum of the minimum guaranteed bandwidths of the groups is equal to the sum of the minimum guaranteed bandwidths of the departments. Further, the minimum guaranteed bandwidth provided to some entities may be set to zero.
  • Fig. 2 illustrates resource management on N levels, where
  • Each entity in the architecture may optionally be assigned one or both of two variables which determine resource allocation to that entity: Minimum Guaranteed and Maximum_Allowed.
  • Minimum Guaranteed and Maximum_Allowed For each level illustrated, the area enclosed by dashed lines represents the Minimum_Guaranteed resource allocation which can be supplied to the next lower level.
  • the sum of the Minimum_Guaranteed resource allocations at a given level is equal to the Minimum_Guaranteed resource allocation of that level.
  • the Minimum_Guaranteed resource allocation at level 1 for entity 176 is equal to the sum of allocations 184, 186, 188.
  • Open area at each level represents additional bandwidth available above the Minimum_Guaranteed allocation.
  • the actual current amount of resource utilized ("actual use") by an entity is greater than or equal to zero, and less than or equal to Maximum_Allowed.
  • the basic operational rules of the management system are: (1) an entity may not utilize more resources than the assigned Maximum_Allowed amount; and (2) each entity is assured of being provided with the Minimum_Guaranteed amount, although a Minimum_Guaranteed amount of "0" may be specified.
  • the system advantageously allocates resources to a requesting entity based on availability of resources at the intervening levels. If the resource utilizing entity is utilizing less than the assigned Minimum_Guaranteed resource allocation, the request for resources is granted. However, when a request is made for allocation of resources in excess of Minimum_Guaranteed, resource availability at intervening levels 1 to N is determined based on assigned Minimum_Guaranteed and Maximum_Allowed variables. If a resource unit is not available at an intervening level because the entity at that level has reached the assigned Maximum_Allowed resource allocation, the request for a resource unit at level 0 is denied. If a resource unit is available at each intervening level, the request is granted.
  • Fig. 3 is a flow chart which illustrates enqueuing under the resource management system.
  • a query 302 is made to determine whether actual use by the level 0 entity is less than the respective Minimum_Guaranteed variable. If the actual use is less than Minimum_Guaranteed variable then a resource unit is allocated 304. If the actual use is not less than the respective Minimum_Guaranteed variable, a query 306 is made to determine whether the actual use is less than Maximum_Allowed for that entity. If the actual use i ⁇ greater than or equal to the respective Maximum_Allowed variable then the request is denied 308 and enqueuing terminates 310.
  • a second query 312 is made to determine whether a resource unit is available to the intervening level entities through which the resource unit would be allocated to the level 0 entity. That is, query 312 determines whether actual use is less than the respective Maximum_Allowed variable at each intervening level. If actual use is not les ⁇ than the respective Maximum_Allowed variable at each intervening level then the resource unit request is denied 308. If actual use is less than the respective Maximum_Allowed variable at each intervening level, the resource unit is allocated 304 to the level 0 entity and variables which track resource use are updated accordingly.
  • Min_Limit is used to limit the total Minimum_Guaranteed resources the entity can use.
  • AboveMin_limit is used to limit the total resources which the entity can use in exces ⁇ of Minimum_Guaranteed.
  • the Maximum_Allowed number of resources an entity can use is equal to the sum of Min_Limit and AboveMin_Limit.
  • Min__Counter counts the number of resource units in use by an entity up to Min_Limit.
  • AboveMin_Counter counts the number of resource units in use by an entity in excess of Min_Limit. In practice, Min_Counter is incremented as resource units are taken by the entity until Min_Limit is reached, and AboveMin_Counter is incremented a ⁇ resource units are taken by the entity between Min_Limit and AboveMin_Limit.
  • the management system To update the counters when a resource unit has been allocated the management system first determines whether the level 0 entity Min_Counter variable is less than the Min_Limit variable in a third query 314. If the Min_Counter variable is less than the Min_Limit variable, the Min_Counter variable is incremented 316. If the Min_Counter variable is not less than the Min_Limit variable, the AboveMin_Counter variable is incremented 318. The system then determines whether level N has been reached in query 320. If level N has not been reached then the system examines the next higher level 322 and updates the counter ⁇ accordingly. When level N is reached the program terminates 310. Referring now to Fig. 4, resources which are no longer in use are dequeued.
  • a resource unit is returned in step 326 and the counters are updated.
  • the counter ⁇ are updated by fir ⁇ t decrementing the respective AboveMin_Counter variable to zero and then decrementing the respective Min_Counter variable. More particularly, when a resource unit is returned the management system first determines if the re ⁇ pective AboveMin_Counter variable i ⁇ greater than zero in query 328. If the AboveMin_Counter variable i ⁇ greater than zero then AboveMin_Counter variable is decremented 330, otherwise the respective Min_Counter variable is decremented 332. The system then determines whether level N has been reached in query 334. If level N has not been reached then the system examines the next higher level 327 and update ⁇ the counter ⁇ accordingly. When level N i ⁇ reached the program terminate ⁇ 336.
  • Fig. 5 illu ⁇ trates a memory managed in a hierarchical manner.
  • the actual memory 500 is shown at right.
  • the memory is level 2 of a three level hierarchy.
  • the requesters 502, at level 0 of the hierarchy, are shown at the left.
  • the hierarchical memory management sy ⁇ tem include ⁇ Control
  • Storage 506 to store all the Min_Limit values, AboveMin_Limit values and counters corresponding to all the Min_Counter and AboveMin_Counter values that are required. In each case the number of these values required is defined by the number of levels and the number of peer requesters at each level.
  • the actual memory 500 contains a fixed number of memory locations. These locations are divided into two pools of memory based on the Min_Limit(2) . Memory elements below the Min_Limit represent the minimum guaranteed memory resource available at level 2. The total memory elements shown including those above the Min_Limit represent the maximum allowable memory resource available. Memory elements corresponding to the minimum guaranteed resource available are depicted a ⁇ being adjacent to one another with the dividing line for the Min_Limit being a horizontal line, but there i ⁇ no requirement that thi ⁇ be the case. Memory elements corresponding to the minimum guaranteed resource may be di ⁇ tributed throughout the actual memory 500, with the number of memory elements used in both categories held in corresponding counter ⁇ and the Min_Limit value held in a corre ⁇ ponding control storage location.
  • the maximum allowable memory resource depicted by the outline of the rectangle de ⁇ ignated Memory, i ⁇ equal to the number of memory elements available, which is a fixed predetermined number based on the physical memory it ⁇ elf.
  • the value for Min_Limit may be a ⁇ igned, changed and managed, based upon the requirements of the controlling ⁇ ystem.
  • level 1 the minimum guaranteed memory resource available and the maximum allowable memory resource available for each of the requesters are similarly depicted. Again these values are held in counters and control storage locations. However, at level 1 all values may be assigned, changed and managed, based upon the requirements of the controlling system.
  • the minimum guaranteed memory resource available and the maximum allowable memory resource available for each of the requestor ⁇ are ⁇ imilarly depicted. Again these values are held in counters and control ⁇ torage locations. At level 0 all value ⁇ may be a ⁇ igned, changed and managed, based upon the requirement ⁇ of the controlling system.
  • the memory elements granted to a requester are shown as a contiguous block of memory at level 0, level 1 and level 2, with the Min_Limits aligning with the horizontal line depicting the Min_Limit at the next higher level.
  • the AboveMin_Limit at level 2 AboveMin_Limit(2) , exactly correspond to the total actual memory available less the guaranteed minimum, Min_Limit(2) .
  • AboveMin_Limit(n,c) are ⁇ et ba ⁇ ed both upon the actual memory resources available at level 2 and the requirements of the controlling system.
  • a request for a memory resource by a requester at level 0 is processed based upon the flow provided in Fig. 3, with the current u ⁇ age at level 0, level 1 and level 2 and the flow of Fig. 3 determining whether the reque ⁇ t will be granted or rejected. if granted, the reque ⁇ ter will be allowed to u ⁇ e the requested memory in the actual memory at level 2. The return of the requested memory to available status is controlled by the flow shown in Fig. 4.
  • the sum of the minimum guaranteed memory resource ⁇ for the reque ⁇ ter ⁇ at level 0 belonging to one of the department ⁇ may exactly equal the minimum guaranteed memory resource for that department at level 1.
  • the sum of the minimum guaranteed memory resource ⁇ at level 1 for all of the department ⁇ may exactly equal the minimum guaranteed memory resource at level 2.
  • the sum of the maximum allowable memory resource ⁇ for requesters at level 0 belonging to one of the departments may be greater than the maximum allowable memory resource for that department at level 1.
  • the sum of the maximum allowable memory resources at level 1 for all of the departments may be greater than the maximum allowable memory resource at level 2.
  • the following pseudo code implements a system for managing resources, such as buffers or a memory as de ⁇ cribed above.
  • Thi ⁇ p ⁇ eudo code require ⁇ a policy where the minimum resource is guaranteed.
  • Level 1 ⁇ ervice cla ⁇ e ⁇ with "j" ⁇ ervice cla ⁇ e ⁇ competing level
  • Level N phy ⁇ ical link with no competition above thi ⁇ level
  • an entity request ⁇ re ⁇ ource ⁇ and compete ⁇ again ⁇ t other entitie ⁇ within a level for resources.
  • the "n” variable refers to the level
  • the "c” variable refers to which peer entity at the level is requesting resource ⁇ at the next higher level.
  • Min_Limit (n,c) Limit ⁇ the number of "minimum” type re ⁇ ource the entity can u ⁇ e. It i ⁇ u ⁇ ed to a ⁇ ure that every entity get ⁇ it ⁇ Minimum_Guaranteed amount of the resource.
  • AboveMin_Limit (n,c) Limits the number of "above-minimum” type resource the entity can use.
  • the Maximum_Allowed number of resource an entity can use is equal to the sum of the Min_Limit and the AboveMin_Limit.
  • the pseudo code provides management of resource ⁇ such as buffers, bandwidth, channels and memory according to the method illustrated in Figs. 3 and 4.
  • resource ⁇ such as buffers, bandwidth, channels and memory according to the method illustrated in Figs. 3 and 4.
  • IF ( (Min_Counter(0,i) ⁇ Min_Limit(0,i) ) OR ) determines if the buffer usage by the level 0 entity is less than Min_Provided. If buffer usage is below Minimum_Guaranteed then a buffer is granted, otherwise a buffer is granted only if buffer usage at each intervening level is less than Maximum_Allowed.
  • the Minimum_Guaranteed and Maximum_Allowed variables may be assigned to entities in accordance with specified management policies. For example, an entity could be charged for resource use based on the value ⁇ of the a ⁇ igned Minimum_Guaranteed and Maximum_Allowed variable ⁇ . Further, variables may be as ⁇ igned in ⁇ uch a way a ⁇ to allow a theoretical po ⁇ ibility of over-allocation of re ⁇ ource ⁇ and thereby violate the basic rule ⁇ of the management ⁇ y ⁇ tem.
  • a level 0 entity might possibly be unable to obtain its Minimum_Guaranteed resource level, e.g., if each level 0 entity demands Minimum_Guaranteed and the level 1 entity is reduced to Minimum_Guaranteed due to competition.
  • Such over allocation may be done by the user of the management system in accordance with a policy decision or according to statistical data indicating the unlikely occurrence of each level 0 entity simultaneously demanding Minimum_Guaranteed.
  • the pseudo code above is directed toward a resource management sy ⁇ tem wherein a predetermined policy a ⁇ ure ⁇ that the total Minimum_Guaranteed available at one level i ⁇ equal to the sum of all the Minimum_Guaranteed re ⁇ ources at the level below.
  • the pseudo code thus requires a Min_Counter/Limit only at level 0. If statistical re ⁇ ource sharing is used then the intervening levels may also be assigned a Min_Counter/Limit. Further, the resource management system may be operated without assigning any Minimum_Guaranteed variables.
  • Maximum_Allowed variables could be as ⁇ igned to one or more entitie ⁇ ⁇ uch that the ⁇ y ⁇ tem operates to deny a request for a resource unit if any entity from level 0 to level N is not below Maximum_Allowed, without regard for as ⁇ uring minimum re ⁇ ource allocation.
  • the difference between the "Sum of Min_Limits" at a lower level and the Min_Limit/entity of the next level illustrates the policy which ensure ⁇ that each level 0 entity is provided with the assigned Min_Provided allocation, i.e., the sum of Min_Limits at a lower level i ⁇ les ⁇ than or equal to the Min_Limit of the entity at the next higher level.
  • Table 1 i ⁇ simplified example because the Min_Limit and the AboveMin_Limit are the same for all entities at a given level, and the number of entities are the same at each level.
  • the limits would be different for each entity at each level, and the number of entitie ⁇ at each level would decrease at each increa ⁇ ing level of the hierarchy.
  • a lower co ⁇ t implementation could employ a re ⁇ triction ⁇ uch that all of the limits of a particular entity would have the same value. Such a restriction would obviate the requirement of a per- entity limit storage location. The limits could then be kept on a per level basi ⁇ for example.
  • Table 2 illustrates an exemplary resource management policy where statistical sharing of the minimum guaranteed resource is employed. It will be appreciated that if every level 0 entity were to simultaneously request resources, the sum of the requested minimum resources (200) could not be provided by a level 1 entity (180) .
  • the pseudocode allows stati ⁇ tical sharing policies for resource usage below the minimum guaranteed. Unlike the earlier described pseudocode, this pseudocode requires a Min_Limit and Min_Counter for each entity at each level. If the level 0 entity i ⁇ below the a ⁇ ociated Minimum_Guaranteed resource allocation, then the level 0 entity may use re ⁇ ource ⁇ above the Minimum_Guaranteed allocation ⁇ at higher levels. Thi ⁇ policy allow ⁇ entities to continue using resources even if the Minimum_Guaranteed pool at a higher level in the hierarchy has been consumed.
  • the resource will only be granted if there are "Minimum_Guaranteed" resources at all higher levels, i.e., the Min_Counter must be less than the Min_Limit for each higher level entity. This policy leaves resources available for other entities that have not consumed their minimum.
  • Min_Limit(N) controls the point at which requests for resources above the "Minimum_Guaranteed" pool are denied. Without control at level N, the "Maximum_Allowed” denial point is equal to the sum of the Min_Limit ⁇ at the level below.
  • the techniques described above are equally applicable to management of hierarchical re ⁇ ources other than bandwidth, and may be generalized with entities other than department ⁇ , groups, companies, etc. It should therefore be understood that the invention is not limited to the particular embodiments shown and described herein, and that various changes and modifications may be made without departing from the spirit and ⁇ cope of thi ⁇ novel concept a ⁇ defined by the following claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A system for managing resources such as buffers and bandwidth which are allocated to competing entities (100, 102, 104) through two or more levels (LEVEL 0...LEVEL N) in a telecommunications network is disclosed. The system provides a tool to allocate resources for use by individual entities. Each entity may be assigned a Minimum-Guaranteed variable (302) and a Maximum-Allowed variable (306). When an entity requests resources the system determines if the entity is using its respective minimum guaranteed resource allocation which is specified by the Minimum-Guaranteed variable (302). If the entity is not using its respective minimum guaranteed resource allocation, the system allocates a resource unit to the requesting entity (304). The system also allows a requesting entity to use additional resource units above the resource allocation specified by the Minimum-Guaranteed variable, provided such resource units are available. If the entity has reached its respective minimum guaranteed resource allocation, but has not reached the respective maximum allowed resource allocation specified by the Maximum-Allowed variable (306) and no intervening level is using its respective maximum allowed resource allocation (312), then a resource unit is allocated to the requesting entity.

Description

HIERARCHICAL RESOURCE MANAGEMENT FIELD OF THE INVENTION The present invention is generally related to resource management techniques and more particularly to resource management techniques which dynamically adjust to conditions at multiple levels to provide efficient use of resources in a telecommunications network.
RELATED APPLICATION
A claim of priority is made to provisional application 60/001,498 entitled COMMUNICATION METHOD AND APPARATUS, filed July 19, 1995.
BACKGROUND OF THE INVENTION
Basic techniques for management of finite resources such as bandwidth and buffers in multiple level hierarchical systems such as asynchronous transfer mode ("ATM") networks are generally known. The techniqueε include provision of sufficient resources to satisfy theoretical maximum demands and allocation of resources based on statistically calculated demands.
Trying to provide sufficient resources for theoretical maximum demands is costly and inefficient. The technique is costly because the hardware which comprises the resources is costly. The technique is inefficient because actual use is typically considerably less than the theoretical maximum, and a portion of the provided resources are thus under-utilized.
On the other hand, allocation of resources at one level of a hierarchical system of resources based upon an expectation of how much resource may be required under some given set of conditions may improve efficiency and reduce the cost of resources. The current state of the art for hierarchical systems must attempt this on the basis of requests specifying either a maximum or a nominal resource requirement. Resources are granted based upon some statistical basis. However, this technique lacks the control and flexibility required to manage the resources in an effective manner at the various levels of the hierarchy. Several unsatisfactory modes of operation are experienced. The resources granted may not be sufficient to satisfy the requirements under all conditions and as a result, the required resources may not be available when needed and data is lost. The granting of excess resources, while aiding in the prevention of data loss, nullifies the cost savings that can be realized. Such systems do not provide a means to manage the hierarchical resources in a dynamic manner to accommodate changing conditions. Furthermore, such systems do not allow for the maintenance of a pool of resources that may be shared in a controlled manner by all of the requesters at the immediately lower level of the hierarchical resources.
The provisioning of resources for hierarchical services under the current state of the art is accomplished by a request from the lower level to the next higher level for a specific amount of resource. The basis of granting this request may be either in terms of a maximum requirement or as a statistical expectation of the resource that will be required. Resources so granted may prove inefficient or may provide unsatisfactory performance. Once granted, however, changes in this assignment of resources may be quite difficult to effect since they will typically involve negotiations and changes to the resources provided by the higher level to the other peer lower level users of the resources.
SUMMARY OF THE INVENTION
Allocation of resources is governed by resource usage levels associated with resource using entities: a maximum allowed usage level and a minimum guaranteed usage level.
A method of hierarchical resource management for allocation of resource units to a level 0 entity from a level N entity and intervening levels, where N is greater than or equal to two, includes: assigning a first variable to one or more entities specifying a maximum amount of resource to be allocated to the respective entity; and processing a request from the level 0 entity for a resource unit by: determining whether actual use by the level 0 entity is less than the allocation specified by the assigned first variable, provided a first variable is assigned to the level 0 entity, and denying the request if actual use is not less than the allocation specified by the assigned first variable, otherwise; determining whether actual use at each intervening level is less than the allocation specified by the assigned first variable at such level, provided the first variable is so assigned, and denying the request if actual use is not less than the allocation specified by the assigned first variable at any intervening level, otherwise; providing a resource unit to the level 0 entity. A second variable specifying the minimum guaranteed resource allocation may also be assigned to each respective entity. Requests for resources by an entity are granted if the requested utilization level is less than the minimum guaranteed resource allocation.
The first and second variables provide a tool for maximizing overall resource utilization by controlling resource utilization by individual entities in a manner which was not previously possible. Efficient, flexible, controlled use of resources is provided by ensuring that each entity has at least its respective minimum guaranteed resource allocation and by allowing entities to use available resources in excess of their respective minimum guaranteed allocations, up to the amount specified by the first variable. When a level 0 entity requests a resource unit, that resource unit is provided if actual use by the level 0 entity is less than the assigned minimum guaranteed amount specified by the second variable. A policy can then be implemented to assure availability of the minimum guaranteed resource allocation by ensuring that the minimum guaranteed amount available at one level is greater than or equal to the sum of all minimum provided amounts at the level below. Once the entity has been allocated its respective minimum guaranteed amount of resource, additional available resource may be utilized up to the amount specified by the respective first variable. Hence, overall resource utilization, and thus efficiency, are maximized by controlling resource utilization by individual entities.
With respect to the provisioning of resources in hierarchical structures, this invention provides a superior service to that of the previous art. Requests for resources are now made in terms of two variables: one specifying the maximum resource that this requester could use (the maximum allowed) , the other specifying the minimum resource that is required by this requester. The basis of granting a request is the availability of the minimum resource. If additional resources are available, then the requester will be allowed to use up to the maximum allowed. The higher level must be able to provide resources equal to the sum of the minimum resource requirements for the requests that have been granted. The service provided to the lower level users by the higher level may be improved by having resources available up to the sum of the maximum allowed for all the lower level requests that have been granted. Furthermore, it is also made clear that there is no additional benefit to be gained by supplying resources above the sum of the maximum allowed of all the granted requests. A similar method of requesting and granting of resources would be employed at each level of a hierarchical system of resources. Thus this invention allows resources to be assigned and used more effectively and efficiently at each level of a hierarchical system than would otherwise be possible.
In an alternative embodiment the minimum guaranteed resources are statistically shared among resource using entities at higher levels of the resource hierarchy. When the minimum guaranteed portion is statistically shared, the method is modified to implement statistical sharing policies. More particularly, if the level 0 entity is operating below the associated minimum guaranteed resource allocation, then the entity can use resources above the respective minimum guaranteed resource allocations at higher levels. This policy allows entities to continue using resources even if the pool of minimum guaranteed resources has been consumed. Additionally, if the level 0 entity is operating above the associated minimum guaranteed resource allocation, the resources at higher levels are granted only if there are minimum guaranteed resources at all higher levels. This policy leaves resources available for other entities that have not consumed their associated minimum guaranteed resources. Such statistical sharing is advantageous when, for example, there are numerous resource users which will not all request resources at the same time.
BRIEF DESCRIPTION OF THE DRAWING Other features and advantages will become apparent in light of the following detailed description of the drawing in which:
Fig. 1 illustrates bandwidth allocation in a telecommunications network;
Fig. 2 illustrates multiple level resource management; Fig. 3 is a flow chart of a method for consuming a resource;
Fig. 4 is a flow chart of a method for freeing a resource; and
Fig. 5 is a block diagram which illustrates hierarchical memory management.
DETAILED DESCRIPTION OF THE DRAWING
Fig. 1 illustrates bandwidth allocation in a telecommunications network. The network portion 10 illustrates an entity requiring network bandwidth, such as a company. The network portion 10 may share bandwidth with other network portions 12 on a fibre-optic or other link 14. The network portion 10 by way of example may represent the network portion within a company and in the present example includes a number of other entities requiring access to network bandwidth such as an engineering group 16, a sales and marketing group 18, and administration group 20, a programming department 22, a hardware department 24, a marketing department 26, a sales department 28, an accounting department 30 and a personnel department 32. For explanatory purposes, the link 14 can provide a maximum of 200 million bits per second ("MBPS") of bandwidth. It will be appreciated that if each of the network portions 10, 12 in the network are allowed to appropriate bandwidth without restraint, some users may appropriate much more bandwidth than others, and some users may get too little or no bandwidth.
Control of overall bandwidth utilization is provided by controlling bandwidth utilization at the company, group and department levels. The company link portion 34 in the present example is limited to a maximum of 100 MBPS of bandwidth. That is, once 100 MBPS of bandwidth is utilized in the link 34 the network prevents entities within the company from obtaining additional bandwidth through the link 34. Similarly, in the present example the engineering group is limited to 70 MBPS of bandwidth 36 and the hardware department is limited to 30 MBPS of bandwidth 50. The programming department 22 is not directly limited to a bandwidth. However, it is not necessary to impose a bandwidth limitation on every department and/or group. While the programming department has no direct bandwidth limit in this example, the programming department is still limited by the engineering group bandwidth allocation 36. That is, the bandwidth use by the departments within a group cannot exceed the bandwidth allocation for the group. It should also be noted that a department is not guaranteed access to the respective maximum bandwidth associated with that department. Further control over bandwidth allocation is provided by assigning a minimum guaranteed amount of bandwidth to be provided to the bandwidth utilizing entities such as companies, groups and departments, etc. The company in the present example has a minimum guaranteed bandwidth in the link 34 of 100 MBPS, the engineering group has a minimum guaranteed bandwidth through link 52 of 60 MBPS, the hardware department has a minimum guaranteed bandwidth through link 66 of 25 MBPS, and the programming department has a minimum guaranteed bandwidth through link 68 of 35 MBPS. In order to provide certainty of access to the minimum guaranteed bandwidth for respective entities within the network, the system may be structured such that the minimum guaranteed bandwidth provided to the company is equal to the sum of the minimum guaranteed bandwidths of the groups, and the sum of the minimum guaranteed bandwidths of the groups is equal to the sum of the minimum guaranteed bandwidths of the departments. Further, the minimum guaranteed bandwidth provided to some entities may be set to zero. Fig. 2 illustrates resource management on N levels, where
N>2. Twenty seven basic resource utilizing entities 100-152 exist within level 0 entities. Nine entities 154-172 exist at level 0. The level 0 entities exist within level 1 entities 174, 176, 178, which exist within a level 2 entity 180. The architecture continues to a level N entity 182 in which all lower level entities exist. For example, entity 122 exists within level 0 entity 160, which exists within level 1 entity 176, etc. Resources are allocated to the basic entities through the level N entities and intervening entities. As such, the total amount of resources which can be allocated to the basic entity is limited by the amount of resources which can be provided by the level 0 to level N entities.
Each entity in the architecture may optionally be assigned one or both of two variables which determine resource allocation to that entity: Minimum Guaranteed and Maximum_Allowed. For each level illustrated, the area enclosed by dashed lines represents the Minimum_Guaranteed resource allocation which can be supplied to the next lower level. The sum of the Minimum_Guaranteed resource allocations at a given level is equal to the Minimum_Guaranteed resource allocation of that level. For example, the Minimum_Guaranteed resource allocation at level 1 for entity 176 is equal to the sum of allocations 184, 186, 188. Open area at each level represents additional bandwidth available above the Minimum_Guaranteed allocation. The actual current amount of resource utilized ("actual use") by an entity is greater than or equal to zero, and less than or equal to Maximum_Allowed. The basic operational rules of the management system are: (1) an entity may not utilize more resources than the assigned Maximum_Allowed amount; and (2) each entity is assured of being provided with the Minimum_Guaranteed amount, although a Minimum_Guaranteed amount of "0" may be specified.
The system advantageously allocates resources to a requesting entity based on availability of resources at the intervening levels. If the resource utilizing entity is utilizing less than the assigned Minimum_Guaranteed resource allocation, the request for resources is granted. However, when a request is made for allocation of resources in excess of Minimum_Guaranteed, resource availability at intervening levels 1 to N is determined based on assigned Minimum_Guaranteed and Maximum_Allowed variables. If a resource unit is not available at an intervening level because the entity at that level has reached the assigned Maximum_Allowed resource allocation, the request for a resource unit at level 0 is denied. If a resource unit is available at each intervening level, the request is granted.
Fig. 3 is a flow chart which illustrates enqueuing under the resource management system. When a level 0 entity first requests 300 a resource unit, a query 302 is made to determine whether actual use by the level 0 entity is less than the respective Minimum_Guaranteed variable. If the actual use is less than Minimum_Guaranteed variable then a resource unit is allocated 304. If the actual use is not less than the respective Minimum_Guaranteed variable, a query 306 is made to determine whether the actual use is less than Maximum_Allowed for that entity. If the actual use iε greater than or equal to the respective Maximum_Allowed variable then the request is denied 308 and enqueuing terminates 310. If the actual use is less than the respective Maximum_Allowed variable then a second query 312 is made to determine whether a resource unit is available to the intervening level entities through which the resource unit would be allocated to the level 0 entity. That is, query 312 determines whether actual use is less than the respective Maximum_Allowed variable at each intervening level. If actual use is not lesε than the respective Maximum_Allowed variable at each intervening level then the resource unit request is denied 308. If actual use is less than the respective Maximum_Allowed variable at each intervening level, the resource unit is allocated 304 to the level 0 entity and variables which track resource use are updated accordingly.
In order to track resource use for allocation purposes each entity is assigned a Min_Limit variable, an AboveMin_Limit variable, a Min_Counter and an AboveMin_Counter. Min_Limit is used to limit the total Minimum_Guaranteed resources the entity can use. AboveMin_limit is used to limit the total resources which the entity can use in excesε of Minimum_Guaranteed. The Maximum_Allowed number of resources an entity can use is equal to the sum of Min_Limit and AboveMin_Limit. Min__Counter counts the number of resource units in use by an entity up to Min_Limit. AboveMin_Counter counts the number of resource units in use by an entity in excess of Min_Limit. In practice, Min_Counter is incremented as resource units are taken by the entity until Min_Limit is reached, and AboveMin_Counter is incremented aε resource units are taken by the entity between Min_Limit and AboveMin_Limit.
To update the counters when a resource unit has been allocated the management system first determines whether the level 0 entity Min_Counter variable is less than the Min_Limit variable in a third query 314. If the Min_Counter variable is less than the Min_Limit variable, the Min_Counter variable is incremented 316. If the Min_Counter variable is not less than the Min_Limit variable, the AboveMin_Counter variable is incremented 318. The system then determines whether level N has been reached in query 320. If level N has not been reached then the system examines the next higher level 322 and updates the counterε accordingly. When level N is reached the program terminates 310. Referring now to Fig. 4, resources which are no longer in use are dequeued. In dequeuing, a resource unit is returned in step 326 and the counters are updated. The counterε are updated by firεt decrementing the respective AboveMin_Counter variable to zero and then decrementing the respective Min_Counter variable. More particularly, when a resource unit is returned the management system first determines if the reεpective AboveMin_Counter variable iε greater than zero in query 328. If the AboveMin_Counter variable iε greater than zero then AboveMin_Counter variable is decremented 330, otherwise the respective Min_Counter variable is decremented 332. The system then determines whether level N has been reached in query 334. If level N has not been reached then the system examines the next higher level 327 and updateε the counterε accordingly. When level N iε reached the program terminateε 336.
Fig. 5 illuεtrates a memory managed in a hierarchical manner. The actual memory 500 is shown at right. The memory is level 2 of a three level hierarchy. The requesters 502, at level 0 of the hierarchy, are shown at the left. Requesters are grouped by departments 504 at level 1 of the hierarchy. There may be many requesters per department, but for clarity only two are εhown. Further, when necessary for clarity some levelε are denoted by "n" and requesters are denoted by "c", as in Min_Limit (n,c), which for n=l and c=6 denotes the Min_Limit value for department number 6. The hierarchical memory management syεtem includeε Control
Storage 506 to store all the Min_Limit values, AboveMin_Limit values and counters corresponding to all the Min_Counter and AboveMin_Counter values that are required. In each case the number of these values required is defined by the number of levels and the number of peer requesters at each level.
The actual memory 500 contains a fixed number of memory locations. These locations are divided into two pools of memory based on the Min_Limit(2) . Memory elements below the Min_Limit represent the minimum guaranteed memory resource available at level 2. The total memory elements shown including those above the Min_Limit represent the maximum allowable memory resource available. Memory elements corresponding to the minimum guaranteed resource available are depicted aε being adjacent to one another with the dividing line for the Min_Limit being a horizontal line, but there iε no requirement that thiε be the case. Memory elements corresponding to the minimum guaranteed resource may be diεtributed throughout the actual memory 500, with the number of memory elements used in both categories held in corresponding counterε and the Min_Limit value held in a correεponding control storage location. The maximum allowable memory resource, depicted by the outline of the rectangle deεignated Memory, iε equal to the number of memory elements available, which is a fixed predetermined number based on the physical memory itεelf. The value for Min_Limit may be aεεigned, changed and managed, based upon the requirements of the controlling εystem.
At level 1 the minimum guaranteed memory resource available and the maximum allowable memory resource available for each of the requesters are similarly depicted. Again these values are held in counters and control storage locations. However, at level 1 all values may be assigned, changed and managed, based upon the requirements of the controlling system.
At level 0 the minimum guaranteed memory resource available and the maximum allowable memory resource available for each of the requestorε are εimilarly depicted. Again these values are held in counters and control εtorage locations. At level 0 all valueε may be aεεigned, changed and managed, based upon the requirementε of the controlling system.
As depicted, the memory elements granted to a requester are shown as a contiguous block of memory at level 0, level 1 and level 2, with the Min_Limits aligning with the horizontal line depicting the Min_Limit at the next higher level. However, in actual uεage the memory elements granted could be spread throughout the memory. In all cases, counters and control storage control and track the actual assignment of memory elements to a requester. The AboveMin_Limit at level 2, AboveMin_Limit(2) , exactly correspond to the total actual memory available less the guaranteed minimum, Min_Limit(2) . At levels 0 and 1 each of the values of the maximum memory resources available, AboveMin_Limit(n,c) , are εet baεed both upon the actual memory resources available at level 2 and the requirements of the controlling system.
A request for a memory resource by a requester at level 0 is processed based upon the flow provided in Fig. 3, with the current uεage at level 0, level 1 and level 2 and the flow of Fig. 3 determining whether the requeεt will be granted or rejected. if granted, the requeεter will be allowed to uεe the requested memory in the actual memory at level 2. The return of the requested memory to available status is controlled by the flow shown in Fig. 4.
The sum of the minimum guaranteed memory resourceε for the requeεterε at level 0 belonging to one of the departmentε may exactly equal the minimum guaranteed memory resource for that department at level 1. Similarly, the sum of the minimum guaranteed memory resourceε at level 1 for all of the departmentε may exactly equal the minimum guaranteed memory resource at level 2. The sum of the maximum allowable memory resourceε for requesters at level 0 belonging to one of the departments may be greater than the maximum allowable memory resource for that department at level 1. Similarly, the sum of the maximum allowable memory resources at level 1 for all of the departments may be greater than the maximum allowable memory resource at level 2.
The following pseudo code implements a system for managing resources, such as buffers or a memory as deεcribed above. Thiε pεeudo code requireε a policy where the minimum resource is guaranteed.
Level 0: connection with "i" connections competing at thiε level
Level 1: εervice claεεeε with "j" εervice claεεeε competing level
Level N: phyεical link with no competition above thiε level
In the basic scenario, an entity requestε reεourceε and competeε againεt other entitieε within a level for resources. In the following definitions, the "n" variable refers to the level, and the "c" variable refers to which peer entity at the level is requesting resourceε at the next higher level.
Min_Limit (n,c) : Limitε the number of "minimum" type reεource the entity can uεe. It iε uεed to aεεure that every entity getε itε Minimum_Guaranteed amount of the resource.
AboveMin_Limit (n,c) : Limits the number of "above-minimum" type resource the entity can use. The Maximum_Allowed number of resource an entity can use is equal to the sum of the Min_Limit and the AboveMin_Limit.
Min_Counter (n,c): Countε the number of reεourceε in uεe by an entity until the Min_Limit has been reached.
AboveMin_Counter (n,c): Counts the number of reεources in-use by an entity after the Min_Limit has been reached.
Enqueuing (consume reεource) IF (( (Min_Counter(0,i) < Min_Limit(0,i) ) OR
( (AboveMin_Counter (0,i) < Above-Min_Limit (0,i)) AND (AboveMin_Counter (l,j) < AboveMin_Limit (l,j) AND
• • •
(AboveMin_Counter (N) < AboveMin_Limit(N) ) ) THEN{
Take Resource
IF (Min_Counter(0,i) < Min_Limit(0,i) ) THEN {
Increment Min-Counter(0,i) } ELSE {
Increment AboveMin_Counter(0,i) Increment AboveMin_Counter(1,j)
• • •
Increment AboveMin_Counter (N) }
} ELSE {
No_Action (resource denied)
}
Free Resource: Return Resource
IF (AboveMin_Counter (0,i) > 0)
THEN Decrement AboveMin_Counter(0,i) Decrement AboveMin_Counter(1,j)
• • • • Decrement Min_Counter(N)
} ELSE { Decrement Min_Counter(0,i) }
The pseudo code provides management of resourceε such as buffers, bandwidth, channels and memory according to the method illustrated in Figs. 3 and 4. Referring now to buffers for purposes of illustration, in enqueuing the first IF statement (IF ( ( (Min_Counter(0,i) < Min_Limit(0,i) ) OR ) determines if the buffer usage by the level 0 entity is less than Min_Provided. If buffer usage is below Minimum_Guaranteed then a buffer is granted, otherwise a buffer is granted only if buffer usage at each intervening level is less than Maximum_Allowed. The IF statements following the logical OR ( IF( (AboveMin_Counter (0,i) < Above-Min_Limit (0,i)) AND (AboveMin_Counter (l,j) < AboveMin_Limit (l,j) AND . . . (AboveMin_Counter (N) < AboveMin_Limit(N) ) ) ) determine whether buffer usage by each intervening level is less than Maximum_Allowed. If buffer usage by an intervening level is not leεε than Maximum_Allowed then the request for a buffer iε denied. When a buffer is granted the counterε at level 0 and each intervening level are updated accordingly by the IF-THEN-ELSE εtatements. In dequeuing the AboveMin_Counter is tested at each level and iε decremented if greater than zero, otherwise the Min_Counter is decremented.
The Minimum_Guaranteed and Maximum_Allowed variables may be assigned to entities in accordance with specified management policies. For example, an entity could be charged for resource use based on the valueε of the aεεigned Minimum_Guaranteed and Maximum_Allowed variableε. Further, variables may be asεigned in εuch a way aε to allow a theoretical poεεibility of over-allocation of reεourceε and thereby violate the basic ruleε of the management εyεtem. For example, if the total Minimum_Guaranteed reεourceε at level 0 for all level 0 entitieε exceedε the Minimum Guaranteed reεources for the level 1 entity, a level 0 entity might possibly be unable to obtain its Minimum_Guaranteed resource level, e.g., if each level 0 entity demands Minimum_Guaranteed and the level 1 entity is reduced to Minimum_Guaranteed due to competition. Such over allocation may be done by the user of the management system in accordance with a policy decision or according to statistical data indicating the unlikely occurrence of each level 0 entity simultaneously demanding Minimum_Guaranteed. The pseudo code above is directed toward a resource management syεtem wherein a predetermined policy aεεureε that the total Minimum_Guaranteed available at one level iε equal to the sum of all the Minimum_Guaranteed reεources at the level below. The pseudo code thus requires a Min_Counter/Limit only at level 0. If statistical reεource sharing is used then the intervening levels may also be assigned a Min_Counter/Limit. Further, the resource management system may be operated without assigning any Minimum_Guaranteed variables. For example, Maximum_Allowed variables could be asεigned to one or more entitieε εuch that the εyεtem operates to deny a request for a resource unit if any entity from level 0 to level N is not below Maximum_Allowed, without regard for asεuring minimum reεource allocation.
The following table showε an exemplary reεource management policy:
Table 1
Level Num- Min_Limit/ Sum of AboveMin_ Sum of Entities entity Min_Limits Limit/ AboveMin_ entity Limits
0 10 2 20 10 100
1 10 20 200 60 600
2 10 200 2000 500 5000
3 1 2000 n/a 4000 n/a
The difference between the "Sum of Min_Limits" at a lower level and the Min_Limit/entity of the next level illustrates the policy which ensureε that each level 0 entity is provided with the assigned Min_Provided allocation, i.e., the sum of Min_Limits at a lower level iε lesε than or equal to the Min_Limit of the entity at the next higher level.
It should be noted however that Table 1 iε simplified example because the Min_Limit and the AboveMin_Limit are the same for all entities at a given level, and the number of entities are the same at each level. Typically, the limits would be different for each entity at each level, and the number of entitieε at each level would decrease at each increaεing level of the hierarchy. A lower coεt implementation could employ a reεtriction εuch that all of the limits of a particular entity would have the same value. Such a restriction would obviate the requirement of a per- entity limit storage location. The limits could then be kept on a per level basiε for example.
Under εome circumstances it may be desirable to statistically share the Minimum Guaranteed resources. For example, statistical sharing would be advantageouε in a system having numerous resource users which will not simultaneously request resourceε. Table 2 illustrates an exemplary resource management policy where statistical sharing of the minimum guaranteed resource is employed. It will be appreciated that if every level 0 entity were to simultaneously request resources, the sum of the requested minimum resources (200) could not be provided by a level 1 entity (180) .
Table 2
Num- Min_Limit/ Sum of AboveMin_ Sum of
Level Entities entity Min_Limits Limit/ AboveMin_ entity Limits o 10 2 20 10 100
1 10 18 180 60 600
2 10 144 1440 500 5000
3 1 864 n/a 4000 n/a
When the Minimum_Guaranteed portion is going to be statistically shared, then the pseudocode is modified as follows:
Consume Resource
IF (((Min_Counter(0,i) < Min_Limit(0,i) ) AND
((Min_Counter(l,j) < Min_Limit(1,j) ) OR
(AboveMin Counter(l,j) < AboveMin Limit(1,j) ))AND
((Min_Counter(N) < Min_Limit(N) ) OR
(AboveMin_Counter(N) < AboveMin_Limit(N) ) ) ) THEN {
Take Resource
IF (Min_Counter(0,i) < Min_Limit(0,i) THEN {
Increment Min_Counter(0,i)
} IF (Min_Counter(1,j) < Min_Limit(1,j) THEN {
Increment Min Counter(l,j) } ELSE {
Increment Min_Counter(1,j) }
IF(Min_Counter (N) < Min_Limit(N) )
THEN {
Increment Min_Counter(N) } ELSE {
Increment AboveMin_Counter(N) }
} ELSE IF ( (AboveMin_Counter(0,i) < AboveMin_Limit(0,i) ) AND ((Min_Counter(l,j) < Min_Limit(1,j) ) AND
AboveMin_Counter(1,j) < AboveMin_Limit(1,j) ) ) AND
( (Min_Counter(N) < Min_Limit(N) ) AND
(AboveMin_Counter(N) < AboveMin_Limit (N) ) ) ) THEN {
Take Resource Increment AboveMin_Counter(0,i)
Increment AboveMin Counter(1,j)
Increment AboveMin_Counter(N)
} ELSE {
No_Action (resource denied) }
Free Resource: Return Resource IF (AboveMin_Counter(0,i)>0) THEN {
Decrement AboveMin_Counter(0,i) } ELSE {
Decrement Min_Counter(0,i)
} IF (AboveMin_Counter(l,j)>0) THEN {
Decrement AboveMin_Counter(1,j) } ELSE {
Decrement Min_Counter(1,j) }
IF (AboveMin_Counter(N) >0) THEN {
Decrement AboveMin_Counter(N) } ELSE {
Decrement Min_Counter(N) }
The pseudocode allows statiεtical sharing policies for resource usage below the minimum guaranteed. Unlike the earlier described pseudocode, this pseudocode requires a Min_Limit and Min_Counter for each entity at each level. If the level 0 entity iε below the aεεociated Minimum_Guaranteed resource allocation, then the level 0 entity may use reεourceε above the Minimum_Guaranteed allocationε at higher levels. Thiε policy allowε entities to continue using resources even if the Minimum_Guaranteed pool at a higher level in the hierarchy has been consumed. Additionally, if actual use by the level 0 entity is above the Minimum_Guaranteed allocation, the resource will only be granted if there are "Minimum_Guaranteed" resources at all higher levels, i.e., the Min_Counter must be less than the Min_Limit for each higher level entity. This policy leaves resources available for other entities that have not consumed their minimum.
The Min_Limit at level N is optional. Min_Limit(N) controls the point at which requests for resources above the "Minimum_Guaranteed" pool are denied. Without control at level N, the "Maximum_Allowed" denial point is equal to the sum of the Min_Limitε at the level below. The change to the pεeudocode for such an implementation iε to remove the (Min_Counter(N) < Min_Limit(N) ) co pariεons in the conditional statements. The techniques described above are equally applicable to management of hierarchical reεources other than bandwidth, and may be generalized with entities other than departmentε, groups, companies, etc. It should therefore be understood that the invention is not limited to the particular embodiments shown and described herein, and that various changes and modifications may be made without departing from the spirit and εcope of thiε novel concept aε defined by the following claims.

Claims

CLAIMS What is claimed is:
1. A method of hierarchical resource management for allocation of resource units to a level 0 entity through level 1 to level N entities including intervening levels, where N is greater than or equal to two, comprising: assigning a first variable for at leaεt one entity specifying a maximum resource allocation for the reεpective entity; receiving a request from a level 0 entity for a resource unit; and in response to a request from a level 0 entity for a resource unit, allocating said resource unit to the level 0 entity if: a) actual resource utilization by said level 0 entity is less than the maximum resource allocation specified by the respective first variable; and b) actual resource utilization by each of said level 1 through level N-l entities is less than the maximum resource allocation specified by the reεpective first variable for each of said entities.
2. The method of hierarchical resource management of claim 1 wherein said method further includes the step of asεigning a εecond variable for at leaεt one entity, εaid εecond variable specifying a minimum resource allocation for the respective entity to which the second variable is asεigned.
3. The method of hierarchical reεource management of claim 2 wherein εaid allocating step further includes the step of inquiring whether actual resource utilization by the level 0 entity is less than the resource allocation specified by the respective second variable, and providing a reεource unit to the level 0 entity if the actual resource utilization is less than the maximum resource allocation allowed by the reεpective second variable.
4. The method of hierarchical resource management of claim 3 wherein said method further includes the step of setting the first and second variables εuch that the reεource allocation specified by the second variable at a level X from 1 to at least N-l is equal to or greater than a sum of all the resource allocations specified by the respective second variables at level X-l.
5. The method of hierarchical resource management of claim 3 wherein said method further includes the step of setting the first and second variables such that the resource allocation specified by the first variable at a level X is less than a sum of all the resource allocations specified by the respective first variables at level X-l.
6. The method of hierarchical resource management of claim 3 including a further εtep of tracking reεource utilization by assigning at least one resource utilization counter to each entity.
7. The method of hierarchical resource management of claim
6 wherein said tracking step further includes the step of assigning first and second counters to each entity, the first counter indicating utilization of resource units in excesε of zero and leεε than or equal to the reεource allocation specified by the second variable, the second counter indicating utilization of resource units in excess of the resource allocation specified by the second variable.
8. The method of hierarchical resource management of claim
7 wherein said asεigning step further includes a εtep of assigning a minimum limit variable specifying a minimum number of resource units available to the entity. 9. The method of hierarchical resource management of claim 8 wherein said aεsigning step further includes the step of assigning an above-minimum limit variable specifying a maximum number of resource units available to the entity above said minimum limit variable.
10. The method of hierarchical resource management of claim 1 including the further step of employing the method to manage bandwidth in a telecommunications network.
11. The method of hierarchical reεource management of claim 1 including the further εtep of employing the method to manage a storage resource.
12. The method of hierarchical resource management of claim 11 including the further step of employing the method to manage memory.
13. The method of hierarchical resource management of claim 12 including the further step of employing the method to manage buffers in a telecommunications network.
14. The method of hierarchical resource management of claim 12 including the further step of employing the method to manage memory for storing ATM cells.
15. The method of hierarchical resource management of claim 1 including the further step of employing the method to manage channels.
16. The method of hierarchical resource management of claim 2 including the further step of granting a resource unit to the level 0 entity provided actual resource utilization by the level 0 entity is less than the minimum resource utilization specified by the second variable, said resource unit being granted without regard to any resultant resource utilization in excesε of that specified by the respective second variable at higher levels.
17. The method of hierarchical resource management of claim 2 including the further step of granting a resource unit to the level 0 entity provided actual resource utilization by the level 0 entity is greater than the minimum resource utilization specified by the second variable, and further provided that resultant actual reεource utilization at each of levels 1 through N will not exceed the minimum resource utilization specified by the respective second variable at any of levels 1 through N.
18. The method of hierarchical resource management of claim 2 including a further step of setting the first variable to the same value for each level 0 entity.
19. The method of hierarchical resource management of claim 2 including a further step of setting the first variable to different values for each level 0 entity.
20. The method of hierarchical resource management of claim 2 including a further step of εetting the firεt variable to the same value for each entity at levels 1 through N.
21. The method of hierarchical resource management of claim 2 including a further step of setting the firεt variable to different valueε for each entity at levelε 1 through N.
22. The method of hierarchical reεource management of claim 2 including a further εtep of setting the second variable to the same value for each level 0 entity. 23. The method of hierarchical resource management of claim 2 including a further step of setting the second variable to different values for each level 0 entity.
24. The method of hierarchical resource management of claim 2 including a further step of setting the second variable to the εame value for each entity at levels 1 through N.
25. The method of hierarchical resource management of claim 2 including a further step of setting the second variable to different values for each entity at levels 1 through N.
26. A method of hierarchical resource management for allocating resource units to a level 0 entity through entities at levels 1 to N including intervening levelε, where
N iε greater than or equal to two, compriεing the εteps of: assigning a first variable for at least one entity specifying a maximum resource allocation for the respective entity; assigning a second variable for at leaεt one entity specifying a minimum reεource allocation for the reεpective entity; receiving a requeεt from a level 0 entity for a resource unit; and in response to a request from a level 0 entity for a resource unit, allocating said resource unit to the level 0 entity if actual resource utilization is less than the resource allocation specified by the reεpective second variable, and allocating said resource unit to the level 0 entity if: a) actual resource utilization by said level 0 entity is less than the maximum resource allocation specified by the respective first variable; and b) actual resource utilization by each of said level 1 through said level N-l entities is less than the maximum resource allocation εpecified by the reεpective first variable for each of said entities.
- 5 27. A method of hierarchical resource management for allocation of resource units to a level 0 entity through level 1 to level N entities including intervening levels, where N is greater than or equal to two, comprising the steps of:
10 assigning a first variable for at least one entity specifying a maximum resource allocation for the respective entity; assigning a second variable for at least one entity specifying a minimum resource allocation for the reεpective
15 entity; receiving a request from a level 0 entity for a resource unit; and in response to a request from a level 0 entity for a resource unit:
20 a) allocating said resource unit to the level 0 entity provided actual reεource utilization by the level 0 entity is lesε than the minimum resource utilization specified by the second variable, said reεource unit being granted without regard to any reεultant reεource utilization
25 in excess of that specified by the respective second variable at levels 1 through N; and b) allocating said resource unit to the level 0 entity provided actual reεource utilization by the level 0 entity is greater than the minimum allocation specified by
30 the second variable, and provided resultant actual resource utilization at each of levelε 1 through N will be leεε than the minimum reεource utilization εpecified by the reεpective
* second variable.
35 28. The method of hierarchical resource management of claim 27 wherein said method further includes the step of setting the first and second variables such that the resource allocation specified by the second variable at a level X from 1 to at least N-l is equal to or greater than a sum of all the resource allocations specified by the respective εecond variables at level X-l.
29. The method of hierarchical resource management of claim 27 wherein said method further includes the step of setting the first and second variables such that the resource allocation specified by the first variable at a level X is less than a sum of all the resource allocations specified by the respective first variables at level X-l.
30. The method of hierarchical resource management of claim 27 including a further step of tracking resource utilization by assigning at least one reεource utilization counter to each entity.
31. The method of hierarchical reεource management of claim 30 wherein εaid tracking εtep further includeε the εtep of aεεigning first and second counters to each entity, the first counter indicating utilization of reεource units in exceεε of zero and leεε than or equal to the reεource allocation εpecified by the εecond variable, the εecond counter indicating utilization of reεource unitε in exceεε of the reεource allocation specified by the second variable.
32. The method of hierarchical resource management of claim 31 wherein said aεεigning εtep further includeε a εtep of aεεigning a minimum limit variable specifying a minimum number of resource units available to the entity.
33. The method of hierarchical resource management of claim 32 wherein said assigning step further includes the step of assigning an above-minimum limit variable εpecifying a maximum number of reεource units available to the entity above said minimum limit variable.
34. The method of hierarchical resource management of claim 27 including the further step of employing the method to manage bandwidth in a telecommunications network.
35. The method of hierarchical resource management of claim 27 including the further step of employing the method to manage channels.
36. The method of hierarchical resource management of claim 27 including the further step of employing the method to manage a storage resource.
37. The method of hierarchical resource management of claim 36 including the further step of employing the method to manage memory.
38. The method of hierarchical resource management of claim 37 including the further step of employing the method to manage buffers in a telecommunications network.
39. The method of hierarchical resource management of claim 37 including the further step of employing the method to manage memory for storing ATM cells.
40. The method of hierarchical resource management of claim 27 including a further step of setting the first variable to the same value for each level 0 entity.
41. The method of hierarchical resource management of claim 27 including a further step of setting the first variable to different valueε for each level 0 entity.
42. The method of hierarchical reεource management of claim 27 including a further step of setting the first variable to the same value for each entity at levels 1 through N.
43. The method of hierarchical resource management of claim 27 including a further step of setting the first variable to different values for each entity at levels 1 through N.
44. The method of hierarchical resource management of claim 27 including a further step of setting the second variable to the same value for each level 0 entity.
45. The method of hierarchical resource management of claim 27 including a further step of setting the second variable to different valueε for each level 0 entity.
46. The method of hierarchical resource management of claim 27 including a further step of setting the second variable to the same value for each entity at levels 1 through N.
47. The method of hierarchical resource management of claim 27 including a further step of setting the second variable to different values for each entity at levels 1 through N.
EP96924623A 1995-07-19 1996-07-18 Hierarchical resource management Withdrawn EP0839419A4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US149895P 1995-07-19 1995-07-19
US1498P 1995-07-19
PCT/US1996/011944 WO1997004549A1 (en) 1995-07-19 1996-07-18 Hierarchical resource management

Publications (2)

Publication Number Publication Date
EP0839419A2 EP0839419A2 (en) 1998-05-06
EP0839419A4 true EP0839419A4 (en) 2001-08-08

Family

ID=38659698

Family Applications (1)

Application Number Title Priority Date Filing Date
EP96924623A Withdrawn EP0839419A4 (en) 1995-07-19 1996-07-18 Hierarchical resource management

Country Status (4)

Country Link
EP (1) EP0839419A4 (en)
JP (1) JP2001520817A (en)
AU (1) AU6502596A (en)
WO (1) WO1997004549A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
CN109120555B (en) * 2017-06-26 2022-10-14 中兴通讯股份有限公司 Resource allocation method and system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179556A (en) * 1991-08-02 1993-01-12 Washington University Bandwidth management and congestion control scheme for multicast ATM networks
US5425021A (en) * 1993-01-28 1995-06-13 International Business Machines Corporation Packet switching resource management within nodes
US5446737A (en) * 1994-02-07 1995-08-29 International Business Machines Corporation Method and apparatus for dynamically allocating shared resource access quota
US5461611A (en) * 1994-06-07 1995-10-24 International Business Machines Corporation Quality of service management for source routing multimedia packet networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HLUCHYJ M G ET AL: "QUEUEING DISCIPLINES FOR INTEGRATED FAST PACKET NETWORKS", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMMUNICATIONS,US,NEW YORK, IEEE, vol. -, 14 June 1992 (1992-06-14), pages 990 - 996, XP000326820, ISBN: 0-7803-0599-X *

Also Published As

Publication number Publication date
AU6502596A (en) 1997-02-18
WO1997004549A1 (en) 1997-02-06
EP0839419A2 (en) 1998-05-06
JP2001520817A (en) 2001-10-30

Similar Documents

Publication Publication Date Title
US5889956A (en) Hierarchical resource management with maximum allowable allocation boundaries
US5274644A (en) Efficient, rate-base multiclass access control
US5596576A (en) Systems and methods for sharing of resources
US6130878A (en) Method and apparatus for rate-based scheduling using a relative error approach
US6240066B1 (en) Dynamic bandwidth and buffer management algorithm for multi-service ATM switches
US5455826A (en) Method and apparatus for rate based flow control
US5608727A (en) Method and system for management of frequency spectrum among multiple applications on a shared medium
CN100484095C (en) Method and system for actively managing central queue buffer allocation using a backpressure mechanism
KR100290190B1 (en) Method and apparatus for relative error scheduling using discrete rates and proportional rate scaling
JP3567828B2 (en) ATM switch and dynamic threshold setting method
JPH09200231A (en) Device and method for scheduling adaptive time slot for end point of atm network
WO2003090420A1 (en) Method and system for dynamically allocating bandwidth to a plurality of network elements
US6137779A (en) Transmission rate calculation scheme using table-lookup
US6003062A (en) Iterative algorithm for performing max min fair allocation
US6249819B1 (en) Method for flow controlling ATM traffic
US6999421B1 (en) Adjustable connection admission control method and device for packet-based switch
WO1997004549A1 (en) Hierarchical resource management
KR100251708B1 (en) Link Bandwidth Allocation and Management Method on ATM Switch
Bestavros et al. Load profiling for efficient route selection in multi-class networks
US7400630B1 (en) Call admission control with overbooking support and cell loss ratio and cell delay variation guarantee
Hyman et al. Modeling VC, VP and VN bandwidth assignment strategies in broadband networks
KR0146545B1 (en) Band width control and call admission method in the atm access network with ring structure
KR970002749B1 (en) Adaptive control of bandwidth management
JP2002533997A (en) Connection admission control based on bandwidth and buffer usage
KR100447059B1 (en) Traffic Handling Processor Block Assignment Method of RNC in Wireless Communication System

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19980216

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): DE FR GB

A4 Supplementary search report drawn up and despatched

Effective date: 20010626

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): DE FR GB

RIC1 Information provided on ipc code assigned before grant

Free format text: 7H 04L 12/00 A, 7H 04L 12/56 B

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20050201