CA2186449C - Bandwidth management and access control for an atm network - Google Patents

Bandwidth management and access control for an atm network Download PDF

Info

Publication number
CA2186449C
CA2186449C CA002186449A CA2186449A CA2186449C CA 2186449 C CA2186449 C CA 2186449C CA 002186449 A CA002186449 A CA 002186449A CA 2186449 A CA2186449 A CA 2186449A CA 2186449 C CA2186449 C CA 2186449C
Authority
CA
Canada
Prior art keywords
virtual
queue
virtual connections
cells
priority
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.)
Expired - Lifetime
Application number
CA002186449A
Other languages
French (fr)
Other versions
CA2186449A1 (en
Inventor
Wai Chen
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.)
Telcordia Licensing Co LLC
Original Assignee
Telcordia Technologies 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 Telcordia Technologies Inc filed Critical Telcordia Technologies Inc
Publication of CA2186449A1 publication Critical patent/CA2186449A1/en
Application granted granted Critical
Publication of CA2186449C publication Critical patent/CA2186449C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • 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
    • 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
    • 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/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Abstract

A bandwidth management system (120) manages a plurality of virtual data connections within a communications network. The system includes an input (122) for receiving data cells, wherein each cell is associated with a particular one of the virtual connections. The system also includes a cell pool, coupled to the input for storing the cells, fist and second queues (126-128) for ordering the virtual connections, and an output (137) for transmitting cells from the cell pool. The relative position of a virtual connection in the first queue is determined by an eligibility variable that varies according to an anticipated data rate associated with the particular virtual connection and according to an amount of time that the particular virtual connection has been in the first queue. The relative position of a virtual connection in the second queue varies according to a predetermined quality of service that is assigned to each of the virtual connections.

Description

Wo 96124212 ~ 'il ~1~ PCrlUss6101208 .
BANDWIDTH MANA&EMENT AND ACCESS
CONTROL FOR AN AlrM NETWORK
Government Ri~hts This invention was made with Gu~ ... suppon under Contract DABT63-93-C-0013 awarded by the Department of the Army. The Gu.
has certain rights in the invention.
Field of the Inventiûn This invention relates to the field of aDyll~lhlullel~D data . and more y~Li~ul~ to the field of managing the flow rate of data through an aDyll~h.U~lVUD data ~ network.
Related Art The next generation public backbone network capable of supporting voice, video, image, data, ~Dnd I..~did services is envisioned as a broadband Integrated Services Digital Network (ISDN) using an aDy , transfer mode (ATM) to transmit data. The perceived advantages of ATM oechnology include fle~ibility arld simplicity of aD~ LU..VUDI.~ ' g traffic sources with a very broad range of source parameters and service quality r.l..;.l .... ~t` with loss and delay ~ ' ranging from close to that of the D,~ lll ' transfer mode to that of best-effort service in today's packet-switched networks. Broadband
2 0 ISDN is therefore a promising network technology to support emerging needs of high 1 .rO." ~ r computing and ~.~,..." ;. -l;.. ~

The major technical i~ ' to practical large scale deployment of ATM-based broadband ISDN networks, however, is the lack of practical real-time bandwidth "-~ that will guarantee predictable end-to-end grades of service over a multi-node, multi-carrier network to end application platforms, such as high 1 ~ WUI~ iUIl~ and ~ , In ATM-based broadband ISDN, ;, r~ from the application layer is processed at the ATM Adaptation layer into fixed size ATM cells, which are in turn rn~ rlPypdlswitched at the ATM layer, and transported in payload envelopes at the physical layer. r~.ru~ an~r, ~ caused by congestion due to ;"~.,rr;, .. . network resources at certain parts of the network leads to perceptible r~ Llr~ llll to the end-users~ unless robust bandwidth ll ~
policies are defined and .' ' The overall objecdve of bandwidth and traffic control of broadband ISDN is to provide consistent and predictable end-to-end ~.. r.. -, r, while at the same time optimizing network resource utilization for end-users with a wide range of rPrf( ~ r~P l r~
and traffic flows, including some which are very bursty.

The problem of bandwidth ", .. ,s",.. ,.... and traffic control of broadband ISDN becomes complex due to factors such as the diversity of traffic flow (much of which is unknown even at the time of 11...l~
20 connection ~,~,ru.l..~.~r, lr~ , the impacts of end-to-end IJIup~gaLiul~ delay and the processing delay at the network elements due to increased switching and n speeds. The ve~ high speed of ATM networks coupled with WO 96/24212 2 ~ 8 6 4 4 q P~llu~ S'nl208 .
~u~ gaLiùn delây results in large numbers of ATM cells in rûuoe~ while the (relâtively) large cell processing time at ~ nodes i~nposes severe limitadons on ~ ' node protocol processing. These factors cause exisdng traffic control âpproaches (like the X.25 dala flow control 5 designed for traditionally low-speed networks) to become ineffecdve. Hence new, robust (to cope with unknown and changing traffic ~ -r~ ), lOW-cOSt and scalâble (to ihl~lGa~ higher speeds) traffic control strategies are needed for Broâdband ISDN.
The real-time (typically several ,~ u~ or less) traffic control 0 I r~ of broâdband ISDN is drasdcally different from those of existing networks due to the factors discussed above. According to r ' -~'~0 the real-dme traffic control may consist of well-~uu~ r ' such as âccess control, flow control, reacdve congesdon control, and error control. Access control, including connecdon admission control/bandwidth allocation, traffic 15 shaping, ând bandwidth . . r, ~ ~ . can âchieve user objectives at the user-network inoerfâce. Other controls (flow control, reacdve congestion control, error control) achieve desdnadon buffer protection, network inoernal congesdon hândling, and ;"r.-,. -~;.... inoegrity guarantee, ~
The central goal of access control is to âchieve, at tbe user-network 2 0 interface, objecdves such as predictable ;~ throughput, connecdon blocking probability, cell loss rado, and cell transfer delây/cell delay variadon, among others. In view of uncer~un and changing traffic . I -.~ p~

WO 96124212 ~ ~ 8 ~ ~ ~ 9 PCTIUS96/01208 and increased ~ " ;~: )"lswitching speeds in broadband ISDN, the access control m~r~ c~ should be robust, fast, scalable (from 155 to 622 Mbps, or higher), and low-cost to implement.
There are three related aspects of access control: connection admission control, bandwidth shaping and pacing, and bandwidth .,~ CIII~ . Connection admission control decides connection afC~pt~nre~ given traff1c ~ and (e.g. peak rate, cell loss raoe), based on the current network state. Generally, a decision needs to be made and network resources allocated in no more than a few seconds. Some key issues include what traffic descriptors should be used (i.e., peak data rate, average data rate, priority, burst length, etc), how to determine effective bandwidth of a bursty cnnnPrtinn how topredict p~rfnrrn~ (given underlying traffic ~ dLI~ C~
.". . 1 - .;~ ~), what ac~.pL~ J~L.ol criteria to use, and how fast can algorithms be executed.
Currently, different soludons for connection admission control exist, ranging from pea~ rate allocation (simple to implement, but bandwidth irlefficient for variable bit-rate services) to more s.,~ J algorithms which determine the "admissible acceptance region" in an N-service space. Typically, the connection admission control will be .' ' in software, which makes it possible to start 2 o with a simple and robust i~lgorithm during the early stages of broadband ISDN and yet allows evolution towards more so~ t d (and effective) algorithms as they become available.

WO 96/24212 ~ ``9 r~ 01208 A .li~ feature of access control schemes is their capability to provide statistical ~ for variable bit rau services. A number of factors c~ ly impact the statistical ,~ efficiency including, among others, variable bit-rate I I A I ~ peak rau (relative to the link capacity) and the burst 5 duration ~' ~L' Studies have shown that pure statistical ~ .E of variable bit-rau ~-",-- ~l;1...~ may }esult in a low (e.g. 20-25%) network utilization, if no traffic shaping or resource allocation (such as the fast reservation protocol) techniques are used. By proper " ~ I;r;~ of the cell arrival process (i.e., traffic shaping), higher statistical ,...,1l;~.1. ,;.~g efficiency may be achieved. Such mo~ifir~ n uchniques employed by the pacing mechanism may include cell jitter cmoothin~ peak cell rau reduction, message burst length limiting, and service scheduling of variable bit rau virtual circuit ~ - (VC's), among others.

Further, traffic shaping may possibly be used in ~...j ..1;..,, witb a network bandwidth CllrU~Cll.~.lL mPr~^~icn~ by I ' ' ' ~ a cell's service (in addition to cell discarding or tagging) when a non-compliant cell is observed. For non-delay sensitive but loss sensitivè variable bit rau services, this option is appealing in order to minimiæ the cell loss ratio. However, A~L~;l;Ly of pacing Uchniques to cells with stringent delay Ir~ (such as interactive variable bit rau video) requires further study. From a network operation point of view, source ,~ lg is also desirable to prevent u~lwh~L~ the sysum with more data than the sysum can handle.

The purpose of network bandwidth ~ r~ 1 is to monitor a wo s6n4212 Pcr/uSs6/0120s coMection's bandwidth usage for ~u.upli~cc with appropriate bandwidth limits and to impûse a policing action ûn observed violations of those limits. The c. ru.~,c...~ control works on the time scale of a cell emission time, (i.e., about 2.~ Ilsec for 155 Mb/s service or about 0.~ Ilsec for 622 MB/s service). ~ey issues 5 of bandwidth, c~ include the design of the monitoring algorithm and policing actions to be taken on non-compliant cells. Other issues include handling of traffic parameter value uncertainty, the crrt~ in terms of the percentage of erroneous police actions upon compliant cells and the percentage of non-compliant cells l'n'iPtPr~Pd and the detection time of a given violation.

The bandwidth c--rul, mechanism operates upon network-measured traffic parameter values, which may include a connection's peak cell rate, its average cell rate, and its peak burst length. Currently, a few bandwidth c. 'u-~ ".. algorithms have been proposed using, for example, single or dual leaky buckets, jumping, or sliding windows. Hûwever, some studies have shown 15 that the leaky-bucket algorithms, using l,c~/~ rates and average burst length, may still not be robust enough for various variable bit rate traffic mi~es. The studies also show that the leaky-bucket algorithms also tend to complicate 1~.. r.. ~ ~ prediction at the coMection admission control level. r. ,. ~.. , .. , c:
accurate estimation of average cell rate and burst length by users may be very 2 0 difficult in practice. This suggests the need for the exploration of alternative approaches to this problem, in order to bring about an early deployment of broadband ISDN.

wos6/24212 ;;~ Pcrluss6lol2o8 A number of access control approaches have been proposed, but there is no st~indard consensus among the vendor and research ~ An approach has been proposed that accepts ~J~ based on bandwidth pools dedicated to severai traffic classes ~CD~J~ ly and uses a leaky bucket type aigorithm for m~ iinv connecdon bandwidth udli7adon with immediate cell discarding of non-compliant cells. Another proposai also uses a leaky bucket type monitoring algorithm with tagging of non-compliant cells for possible later cell discarding.
Another proposed approach uses a rate-based dme window approach.

One study has indicated that the leaky bucket algorithm is superior to the dme-window based approaches under certain traffic patterns studies. HoweYer, the same study also reveaied difficultly in its ' - ~, (e.g., the counter limit).
Further, the p r.... ~ ~ ~ of the leaky bucket illgorithm is also found to be far below opdmal, in urins of non-compliant cell detecdon and faise ai~ms (the long oerm probability of declai-ing a bandwidth Yioladon for compliant cells).

1.5 This seems to indicate that c~rul~C.. l.,.li and pacing near the average cell rate for variable bit-rate services are much more complex than that has been generally ir~ogni7~ For example, ~ ~f~ of a variable bit-rate trilffic stream near the average rate generaily leads to enormous buffer .~
(hence "- ~ response dme) in order to keep the false alarm rate to an 20 acceptable level (say 107).

More illlyuli~lLly, the crrc~ of a monitoring algoritbm (such as the wo 96/24212 . PcT/uss6/0120s 2 1 ~ 9 Ieaky bucket) is critically dependent on the source model behavior which is unknown for many ~l }~ c and is difficult to estimate accurately at the time that the connection is made. Other }eservation based schemes are more suitable for data tra,ffic, but their pf r~ C ~ have not been fully evaluated.

SUMMARY OF THE INVENTION

According to the present invention, a bandwidth 11'-11.~,;,, : system manages a plurality of virtual data . within a ~1...1...1..;. 1;~...~ network.
The sysum includes an input for receiving data cells, wherein each cell is associated with a particular one of the virtual i The system also 10 includes a cell pool, coupled to the input, for storing the cells, a first and second queue for ordering the virtual ~ f ~ and an output for i " cells from the cell pool. The relative position of a virtual connection in the first queue is determined by an eligibility variable that varies according to an anticipated data rate associated with the particular virtual connection and according to an amount of lS time that the particular virtual connection has been in the first queue. The relative position of a virtual connection in tbe second queue varies according to a l.. crl ~.. ;.~d quality of service that is assigned to each of the virtual .
The output transmits a cell from the cell pool ~ul-. r ' _ to a virtual connection at the front of the second queue.

2 0 Virtual . having eligibility variables with equal values can be ordered in the first queue according to the I ' ' quality of service. The WO 96124212 ~ uv~ 01208 .
system ean use four different values for qualitSI of service. Virtl~al ~.,,.. Ii,".
having equal quality of serviee values ean be ordered in the seeond queue according to a priority computed for each of the virtual c(~ ;, ,c Credit variables for eaeh virtual eonneetion ean indieate alloeated time slots provided to S eaeh of the virtual c ~ The priority ean vary aeeording to one or more of:
one or more arLtieipated data rates of eaeh of tlle virtual ~... l;.~,.c. the value of one or more of the credit variables, and the number of ~ klngV~d cells that are awaiting ~ The data rates, eredit variables, and baeklog values ean be weighted prior to ~Ptprnlininv the priority. The system ean use a burst bit indieator to determine if virtual ~ associated with cells received at the input should be placed I lS on the second queue.

The bandwidth 1,, system can be one of: a pacing unit and an v~ L unit. A paeing unit receives eells from a data source node and provides eells to a .~. --. ~: -l;.~ link. An ~ v., unit reeeives data from a ~.. , ,: -I;.~l linlc and provides data to a data sink node. A virtual eonnection ean be established by speeifying initially agreed-upon traffie parameters and dropping eells that are reeeived at a rate that exeeeds that speeified by the initial traffic p"'?"lP~PrC

WO 96/24212 ~ PCT/US96/01208 RRTFF DESCRIPTION OF THE DRAWINGS

The invention is better understood by reading the following Detailed Description of the Preferred Fm~ with reference to the ~.U.l.~t~ g drawing figures, in which like reference numerals refer to like elements throughout, 5 and irl which:

FIG. I shows a data network having a plurality of physically ~ù~rl~t~ nodes.

FIG. 2 shows a plurality of, nodes ;~ l by a plurality of virtual .

1 û EIG. 3 is a data flow diagram showing different states of data within a bandwidth m- ~ unit according to the presenl invention.

FlG. 4 is a functional block diagram of a bandwidth l ~ c : unit according to the present invention.

FIG 5 is a state diagram showing operation of a bandwidth 15 unit according to the present invention.

FIG. 6 is a state diagrarn illustrating setting up a virtual cnnnPctil-n WO 96/24212 ~ 1 8 ~ PCr/US96/01208 FIG. 7 is a flow diagram illustrating cell admission for a virtual connection.

FIG. 8 is a flow diagram illustrating initializing the valu~ of an eligibility timer for a virtual cn~nPctinn FIG. 9 is a flow diagram illustrating resetting the value of an eligibility 5 timer for a virtual:

FIG. IO is a flow diagram illustrating updating credit variables of a virtual cnnn~ctinn FIG. l l is a flow diagram illustrating updating an eligibility timer of a virtual .

FIG. 12 is a flow diagram illustrating computing values for credit variables and a priority variable for a virtual cnnn,~ctinn FIG. 13 is a flow diagram illustrating updating a priority variable for virtual .
FIG. 14 is a schematic diagram illustraling hardware ~ ' of a bandwidth ,.. - ,:.g.. ,l unit.

wo 96/24212 Pcrluss6lol2os DETAILED DESCRIPTION OF ~PREFI~RRED EMBODIMENTS
In describing preferred Pmhct1im~n~c of the present invention illustrated in the drawings, specific terminology is employed for the sake of clarity. However, the invention is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner to Arcnmriich a similar purpose.

Referring to FIG. 1, a ~ network 30 comprises a plurality of nodes 32-50 that are physically il.~.~ul~ l. Each of the nodes 32-50 represents Cull~.,.lliulldl ~ equipment for sending and receiving 1~ , data. The lines drawn between the nodes 32-50 represent physical , links for i ~ data between the nodes 32-50. The links can be any one of a plurality of ,UII~,.lLiUl~al mediums for data ~ including fiber optics, twisted pair, ~ u .
links, etc.

It is possible for two nodes to be directly connected to each other, which facilitates ~ between the direci-ly connected nodes. For example, the node 34 is shown in FIG. I as being directly connected to the node 35.
Accordingly, ~ l between the node 34 and the node 35 is facilitated via the direct physical .--.. ,.. ,. Al;~lll Iink.

2 o Of oen, it is desirable to, between two nodes which are not directly connected via a single physical ~,..,.rr...,.;. -~;~... link. For example, it may ;~ 120 e desirable to send data from the node 34 to the node 49 of FIG. 1. ~n that case, is facilitated by passing messages through ' nodes between the node 34 and the node 49. Data from the node 34 to the node 49 can be sent by first L~ ;..,e the data from the node 34 to the node 35, then from the node 35 to the node 36, then from the node 36 to the node 45, and finally from the node 45 to the node 49.
ln the example above, a "virtual connection" between the node 34 and the node 49 is established to facilitate ~ between the nodes 34, 49 and to establish desired quality of service for the A virtual connection is established between two nodes when one of the nodes has data that is to be sent to another node. A virtual connection can be t.~ rminated after all of the data has been sent. For example, if the node 34 represents a user compuoer terminal and the node 49 represents a mainframe computer, tllen a virtual connection can be established between the node 34 (terminal) and the node 49 (mainframe) whenever a user logs on to the computer system. The virtual connection could then be terminated when the user logs off the system.
Referring to ~IG. 2, a schematic diagram 60 shows a plurality of hosts 62-67, a pair of private AT~ transfer mode) mu~c/switches 71. 72, and a public ATM muxlswitch 74. Each of the hosts 62-67 represents one of a 2 0 plurality of possible sources of data, such as a telephone, a fax macbine, a compuoer terminal, a video ~ r~ ~ ~ ter~ninal, etc. The host 62 transmits data to the private ATM mux/switch 71 via a virtual coMection set up beLween the WO 96/24212 , ~ A: 2 ~ 8 ~ ~ ~ 9 PCT/~S96/01208 host 62 and the private ATM muxlswitch 71. The host 63 transmits data to the I ...~/DW" ' 71 via a second virtual connection between the host 63 and the private ATM mux/switch 71. A virtual connection can span a single direct physical link or can span a plurality of .U~lD~.uLA~ physical ~ through -' 5 network nodes, not shown in FIG. 2. Similarly, the host 64, 65 are connected to the lU~,~/DW;hl- 72 via separate virtual ~ Ll~,lcl/~,L~ . The IIIU~IDW;;~ D 71, 72 and the hosts 66, 67 are connected to the public ATM
mux/switch 74 via additional virtual The public ATM mux/swilch 74 provides data to a trunk (not shown).

The diagram 60 shows a general flow of data from the hosts 62-67 to the trunk via the ' devices 71, 72, 74. The virtual c~ . shown in the diagram 60 are set up at the time that the hosts 62-67 begin ~ data. For example, if the host 62 represents a telephone, then a virtual connection between the host 62 and the private ATM /~w;t~,l. 71 can be established by a connection admission procedure when the user picks up the handset of the telephone and begins diaLing. The virtual connection can be terminated when the user hangs up the telephone.

In order to avoid exceeding the fl~A~^ I " ,~ capacity of either the tAunk, the switches 71, 72, 74 or the links Lh~,lc~ , it is desirable to control the 2 0 amount of data that nOws from the hosts 62-67 to the switches 71, 72, 74 and to control the amount of data that flows from the switches 71, 72, 74 to the trunk.
Acc~rdinely, ea~h outpul pon Or ~he ùo~} 62-67 i~ provid~d wiQ~ oI a plu~ d~y WO96124212 ~ b~ PCr/Uss6/0120s of pacing units g2a-87a. The pacing unit 82a is connected to the output port of the host 62, the pacing unit 83a is connected to the output port of the host 63. etc.
The pacing units 82a-87a control the data transmitted Erom the hosts 62-67 by limiting all data transmitted on the associated cnnnPcti~ n For example, the pacing unit 82a limits data transmitted from tlle host 62 to the private ATM
mux/switch 71. Data is first passed from the host 62 to the pacing unit 82a via the output port of the host 62. The pacing unit 82a then provides the data to the link.
The pæing unit 82a provides the data on the ~ Iink at an agreed upon rau, as descdbed in more detail l-PrPinAftPr. Note that the switches71, 72 also transmit data via pacing units 91a. 92a connected to the output ports thereof.
Associated with each of the pacing units 82a-87a, 91a, 92a are ~""~ ~1'~ c~ units 82b-87b, 91b, 92b. The ~ ' units 82b-87b, 91b, 92b are at the receiving ends of the Iinks to ensure that the agreed upon data rate of eæh of the . - is ' The ,ru~ ..lC.l~ units 82b-87b, 91b, 92b are con~ected to input ports of .,ull. r devices so that, for example, the ~I.,UI~c.~ unit 82b is connected to the input port of the Illu~/~w;t~ll 71. If a pæing unit provides data at greater than the agreed 20 upon data rate, the ~ull--r ' " ~"rul- unit discards the excess data.
Pacing units are provided at data source nodes while GII~UI-CII.,~.. units are ~vO 96/24z12 PCTNS96/01208 ; ` ` 21 864~9 provided at data sink (i.e., receiving) nodes.
When a virtual connection is established between two nodes. the pacing unit at the data source node and the t~fu-~c~ unit at the data sink node initially agree upon a data rate and a quality of service. Quality of service relates to avariety of ~ including the acceptable delay between generation and reception of the data, as described in more detail hPrPin~ftpr The requested data rate and quality of service are functions of the type of data being sent. For example, real time voice data may require a different data rate than would real time video data, but both may require a relatively high quality of service. In contrast, an E-Mail message would probably require a relatively low quality of service.
During ;~ of the vinual cnnn~r~inn a pacing unit requests an ~IJ-ulJli~Lk set of traffic parameters (such as data rate, buffer space, etc.) and requests the desired quality of service. The ~ Cllru.~c.AI~.L unit at the other end of the virtual connection can accept or deny the request of the pacingunit. A request is denied if the node to which the . r ' unit is attached is not capable of handling the requested amount of data to meet the requested quality of service. Reasons for denying the request include r~_ ' ' capacity of the data sink node to handle the requested data rate and inc~lffiriPnt capacity of the 20 ,~"~,i. ~li~ link to handle the requested data rate. If the request is denied by the ~. rul~ unit, then the virtual connection is not ,Pct~hlich~d Assuming howeve- dh:l ho requesl i~ ~-c~plod~ h~ nr~u d connocdon be~ween Q~e Dodes is WO96/24212 ~1 ~6~9 PCr/Uss6~Q1208 .
eCt~h~ od Once oc~hli~hP~ the pacing unit operates so as to send data according to the initially agreed upon traffic r~mP~Prc Data is .. ~ ~ over the ~ AC links via packets or fixed-size ATM cells. Each cell contains one or more bytes of digital data along with header ;"r" ~ identifying the virtual connection and other _,u~., r ' ' ;,.r."".~,;.,.. discussed in detail hPrPim~fror Note that. for the network shown inFIG. 2, data raoe limiting all of the ~ between the nodes will, of necessity, limit the total amount of data that is provided to the trunk. Accordingly, the pacing units 82a-87a, 91a, 92a and ~..ru-~ units 82b-87b, 91b, 92b can be 1û used to prevent the trunk, and hence the network, from being overloaded with too much data.

The pacing and ~.~rul~ units receive cells at their respective inputs and transmit cells from their respective outputs. The operation of each is sUbCt~ y identical. Accordingly, the detailed discussioll which follows is equally applicable both types of units which are referred to generically as bandwidth "
units.

Referring to FIG. 3, a data flow diagram 100 illustrates different states of a virtual connection handled by a bandwidth ~ ,. .. unit. Note that a single bandwidth ,~ unit can handle multiple virtual ~u ~ even though 2 o the bandwidth ", A ~-f,~ ~1 11 unit is physically connected to only a single II link. The node to which the bandwidth ,. A~ I- 111 unit is connected wo 96124212 PCr/Uss6/0120s sends or receives cells for the various and the batldwidth m^~
unit outputs the cells in a particular order.
Initially, a cell is provided to the bandwidth m~n~Pmnt unit from either the output port of the associated data source node (fo~ a pacing unit) or from the S ~ link (for an c.. ~ unit). Ihe associated virtual connection (VC) begins in an ~ ' - ' '~' state 102. A cell ~ullc~ g to a VC in the ,1 . . h~ d state 102 is deemed not to be ready to transmit by the bandwidth m ~ l~ unit.
The VC transitions out of the, ' IPd state 102 by becoming eligible and having at least one data cell ready to transmit. Eligibility of a VC is controlled externally by the data node cormect~d to the bandwidth ~, unit in a manner described in more detail hereinafter. A VC which is deemed ~.y eligible by the data node will transfer out of the L ' ' '~~ state 102.
The VC can transition from the I ' ' ' ' state 102 to an eligibility state 104. The eligibility state 104 indicates that the cells associated with the VC are waiting to become eligible for output, but the VC is waiting for particular conditions to be met, wbich are described in nnore detail hPrPin~ftPr When the conditions are met, the VC can transition from the eligibility state 104 to a departure state 106. A VC in the departure state 106 has at least one cell WO96124212 ? 1 8 ~ ~ ~ 9 . ~ 01208 .
associated therewith which is ready to be output by the bandwidth unit. The cells of the VC in the departure state are transmitted by the bandwidth unit in a specific order, as described in more detail hPrPin~ftPr A VC which is in the eligibility sute 104 or in the departure sute 106 can 5 be ~ back to the L ' ~ ' '~' sute 102 when the dau node connected to the bandwidth ~ e ~i ., unit deems the VC to be ineligible or when other conditions, described in more detail hPrpir~ft~r, are met. r...~ l-ul~, it is possible for a VC in the departure sute 106 ID be ~ --- d back to the eligibility state 104 under certain conditions, also described in detail hPrPinrfrPr 10 Under certain other conditions, a VC in the I ' ' '~' state 102 can transition directly to the departure sute 106 without going through the eligibility sute 104.
Transitions between various sutes and the conditions therefor are described in more detail hPrPin~ftPr The ordering of the VC's in a queue ~ssociated with the departure state 106 15 is a function of the Quality of Service (QOS~ of the virtual The QOS
of a virtual connection is esublished when the virtual connection is initialized by tbe dau source node. The source node for the dau can request one of four possible values for the QOS: high level QOS, mid level QOS. Iow level QOS, and best effort QOS. High level QOS is for real time traffic that requires bounded 2 0 delay and virtually no cell loss. Mid level QOS is for real time traffic that requires bounded delay and little cell loss. Low level QOS is for delay-tolerant data traffic having controllable cell loss. Best effort QOS is for data which can be transmitted WO 96124212 PCIIIvS96/01208 ? ~ 8~q at a very low rate that can share available bandwidth not being used by the highlevel, mid level, and low level QOS cells. The ordering of the cells in the queue is based on the QOS associated with the virtual connecdon and upon other patameters which are discussed in detail hP~PinAf~Pr Note that, although the mvention is illustrated herein with four separate levels for the QOS, the invention can be practiced with a different number of levels. The number of levels chosen for the ;, .~ is a design choice based on a variety of functional factors known to one of ordinary skill in the art.
Referring to FIG. 4, a schematic diagram 120 functionally illustrates operation of a bandwidth ~v unit. An input 122 accepts cells from a data node (not shown) connected to the bandwidth ~v unit. The cells that are received are provided to a flPm~ rlP~Pr 124. The ' i,' 124 separaoes the input cells according to the VC associated therewith and places the cells in one of a plurality of appropriate queues 126-128, so that, for example, ceUs associatedwith virtual connection VCj are placed in the queue 126. cells associated with virtual connection VCj are placed in the queue 127 and cells associated the virtual contlection VCI are placed in the queue 128. A cell admission unit 130 controls placing the cells in the queues 126-128 in a manner described in more detail 2 o hPrPin~f~Pr.
Associated with each virtual cnnnPctinn, VCj, VCj, and VC~, is a set of variables 131-133 Ihat controls when the cells for each of the VC's will be transmitted out of the bandwidth v unit. Also when a cell is input to WO 9612~212 2 1 8 6 4 4 9 PC'r/US96101208 the bandwidth _ unit, the cell admission unit 130 examines the variables 131-133, to determine if the cell should be admitted. As shown in FIG. 4, the virtual connection VC, has the variable set 131 associated therewith, the virtual connection VCj has the variable set 132 associated therewith, and the virtual 5 cormection VC" has the variable set 133 associated therewith, The variable sets 131-133 are described in more detail here and after.
The variable sets 131-133 are provided as inputs to a mux control 135 which controls which cell from the head of olle of the queues 126-128 is next to be transmitted out of the bandwidth ~ " unit. A .~ ., 136 is connected to each of the queues 126-128 and, in , with the mux control 135, provides a cell from one of the queues 126-128 to an output 137 for out of the bandwidth ,.,- ,~e....( ... unit.

2~ 9 The table below facilitates the disc~ssion which follows by showing parameters that are used for each virtual connection of the bandwidth ,~ - ~,. ..~ "
unit:

VARIABLE NAME l DESCRIPTION
scdi I state of VC
qosi l quality of service for VC
ei I indicates if l~ for VC
is enabled si l eligibility timer for VC
rjl l first rate variable for VC
ri2 l second rate variable for VC~
cil l first credit variable for VC
c,2 l second credit variable for VC
li I number of h~ d cells for VC
wil l f~rst weight variable for VC
wj2 l second weight variable for VC
wj3 l third weight variable for VC, wj4 l fourth weight variable for VC
WjS l fifth weight variable for VC
2 0 bj l burst bit indicator for VC
Pi l priority variable for VCi Referring to FIG. 5, a state diagram 140 illustrates operation of a bandwidth ~,, unit. Although operation is illustrated with regard to a single VC, VCi, the operation of othèr VC's of the bandwidth ~ ~ unit is identical.

Circles on the diagram 140 show the three possible states of VCi: the ' ' ' state, the eligibility state, and the departure state. A VC is always in one of those three states, although for a bandwidth ~ unit servicing multiple VC's, the state of any one of the VC's is ;"~ of the state of any
3 o of the other VC's. The state diagram 140 also shows rectangles having rounded corners which represent operations performed by the bandwidth " -~.aG. ' ~1 unit WO 96/24212 ~ PC~'IUS96101208 with respect to VCj. Diamonds on the diagram show decision branches where the flOw is ' ' upon a particular variable or variables associated with VC~
being in a particular state or having a particular value or values. The arrows between the various circles, rounded rectangles, and diamonds illustrate the flOw 5 through the staoe diagram. For an arrow havillg an annotation associaoed therewith, the annotation indicates the condition causing the transition from one portion of the state diagram 140 to another. Arrows having no annotation associaoed therewith represent an I ' ' flOw from one portion of the staoe diagram 140 to another.

Flow begins at an initial step 142 where VCj is initialiæd. Tn;~iRii7Rri~n of a VC includes having a pacing unit request a particular set of traffic parameters and quality of service (QOS) from the associated . ..r,..Lr. ~ unit (i.e., the c..ru-l unit at the other end of the link). That is, VC~ is initiali_ed when the pacing unit sends a cor~nand to the associaoed ~ r 15 unit requesting creation of VCi and specifying the set of traffic parameoers and QOS for VC~. As discussed above, the . ~ unit either accepts or rejects the request depending on the existing data loading on both the link and the receiving node. The decision is based on the loading for the node attached to the C~ VILC~ unit. If the request frorn the pacing unit to the e r...~r., .:
2 0 urlit is denied. then VC~ is not initialiæd and no processing (i.e., no data .l.~l~l;`` lll) occurs for VC~

Assuming that the VC~ l;., request is approved by the c.lru-Lc...~...

q unit. then following the ;I''~ step 142, VCj enters an ,~ h ~ state 144.
While VCj is in the ~ r(i state 144. the variable scdj is set to æro. VCi remains in the ~ state 144 until the first cell of data for VCj is received by the bandwidth ~ unit.

When a cell associated with VCj arrives, the bandwidth ll -l~A~ unit transiions from the .---. I.f.l..l, (1 state 144 to a cell admission step 146, where the cell is either accepted or rejected by the bandwidth ~ . unit. The cell admission step 146 is described in more detail hereinafter.

Following the cell admission step 146 is a test step 148 which determines 10 whether the VCi transitions from the L s ~ ' ' ' state 144 to another state. At the test step 148, the variables Ij and ei are examined. The variable Ij represents the backlog, in number of cells, for VCi. That is, 1, equals the number of cells received by the bandwidth ~ c~ unit for VCj that have not been output by the bandwidth _ unit. The variable ej is a variable indicating whether 5 VCj has been enabled by the data node that is being serviced by the bandwidth unit. That is, the data node that is connected to the bandwidth unit can either enable or disable VCj For a virtual, that is not enabled, the bandwidth _ unit receives inputted cells but does not output the cells.

2 o At the test step 148, it is determined if the bæklog of cells for VCj is at least one (i.e., there is at least one cell associated with VCj stored in the bandwidth 2.1 i~
wos6l242l2 PCrrUss6101208 ,., ~,;. ..,i .,- unit) and if VCj is enabled. If one or both of those conditions are not met, then VCi returns to the ~ h ~ ;d state 144.
Nooe also that while in the ' ' ' ' state 144, it is possible for the bandwidt~ unit to receive a signal from the data source node requesting that ej be set. In that case. control transfers from the ' ~ staoe 144 to a soep 150 where ej is set. Following t'ne step 150 is the oest soep 148,discussed above. Nooe, therefore, ti~iat it is possible for the bandwidth, ~ c,r."/
unit to receive one or more cells for VCj prior to VCi being enabled and then for the bandwidth ,, unit to receive an enable signal from the data node so that VCj transitions from the ,~, h ~ ,I;d state 144.
While in the I ' ' ' ' staoe 144, it is possible for ti~ie bandwidth l..~.lA~" ..1: ..; unit to receive a signal from the data node requesting i of VC,. Termination can occur for a variety of reasons, including there being no more data to transmit over the virtual . In that case, control transfers from the, ' ' ' ' staoe 144 to a soep 152 where VC, is i ' ' Once VC, has been oerminaoed, the bandwidth ~ uriit does no further processing for VCi and accepts no more cells for 1.. - ~ via VC,.
It is also possible that, while in the "~ ;1 staoe 144, the bandwidth ,, - ,,.~..., .1l unit receives a request from the data node to updaoe parameoers 2 o associated with VC,. In that case, control transfers from the soep 144 to a soep 154 where the parameoers associaoed with VCi are modified. The parameoers that can wo 96124212 2 1 8 6 ~ 4 9 Pcr/uss6/0120s be associated with VCj are discussed elsewhere herein. Note, however, that onetf the parameters that can be updated aL the step 154 is the quality of service associated with the VCI, qosj. That is, the data node can request that the quality of service associated with VCi be changed to a second value after the VCI has been 5 initiali2ed with a qosj having a first value. Following the update step 154, VC
re~urns to the ~ state 144.

If at the test step 148 it is determined that the baclclog for the VCi is at least one (i.e., lj is Breater than or equal to one) and that VCi is enabled (i.e., ei equals one), then control transfers from the step 148 to a step 156 where scdl is set 0 to one. The scdj variable associated with VC, equals zero when the VCi is in the ' ~ d state and equals one when VCi is in any of the other states.

Following the soep 156 is a step 158 where th~e credit variables associated with VCi, cil and ci2, are updated. The credit variables, cjl and cj2, represent the amount of ~ channel bandwidth "credited" to VCj. The credit variables 15 are described in more det~ail hereinafter.

Following the step 158 is a step 160 where the value of sj is initialized.
The value of si IL~ tl~l the amount of elapsed time that VCj is to spend in the eligibility queue before i _ to the departure queue. That is, after exiting from the " ~ h I--I 1 state, VCj is placed in the eligibility queue until an amount 2 0 of time indicated by sj has elapsed, after which VCj is moved from the eligibility queue to the departure queue for output by the bandwidth, ~ ;.... - .l unit. The ~vo s6n~212 2 1 8 ~ ~ ~ 9 Pcrluss6lol2os initial value of sj is determined by the associated data node and varies according to the initial traffic parameters specified when VCi is initialized.

Following the step 160 is a step 162 where the estimated values of the credits, cll and c12 and the estimated value of the priority, Pj, associated with 5 VCj are computed. The priority. Pj, is used to order the VC's in the departure queue. Computing the priority is described ir, more detail hPr~ir~ftPr Following the step 162 is a test step 164 which determines if s~ was set to zero at the step 160. As discussed above, a VC initializes sj according to values of the initial traffic parameters and the credits. Lf sj is set to zero at the step 160, then VCj is placed i ' 'y on the departure queue. Otherwise, VCj is placed in the eligibility queue for an amount of time ~ by the initial setting of s provided at the step 160.

Lf at the test step 164 it is determirled that sj does not equal zero. tben control passes from the test step 164 to a step 166 where the value of sj is ' by s(t). The quantity s(t) varies according to elapsed system time and is updated every cycle that the bandwidth I ,, unit software is executed.
In other words. the quantity s(t) varies according to the value of a real time system clock. Since s, is set at the step 160 to represent the amount of time VCj remains on the eligibility queue, then adding the present value of s(t) to s sets the value of 2 0 si to the value that s(t) will equal when VCj is to be moved from the eligibility queue to the departure queue. For example, lssume that the bandwidth WO 96/24212 PCT/US96/0~208 ` ?~
I A ~Ac. ..~ unit runs once every ~ c~ol~d and that s(t) is -- - ' once every cycle. Further assume that a cell C~ to a particular VC has been admitted and that the VC is to be moved from the eligibility queue to the departure queue in one hundred lUi~ _ ' Accordingly, the value of si will be set to one hundred at the soep 160. At the step 166, the present value of s(t) is added to one hundred in order to provide a value Of si that is tested against the real time clock so as to determine when to move the VC from the eligibility queue to the departure queue.
Also at the step 166, VCi is placed in the eligibility queue. For purposes of 1~ the state diagram 140, the eligibility queue is referred to as the "A" queue. The VC's in the ellgibility queue are sorted by the value of s for each of the VC's and by the value of the quality of service for each of the VC's. In otber words, the VC
with the lowest value for s is at the head of the queue, the VC with the second lowest value for s is second in the queue, etc. For VC's that have the same value of s, the VC with the highest QOS is first, the VC with the second highest QOS is second, and so forth. If two or more VC's have an identical value for both s andQOS, then the VC's are sorted in the queue in a last in first out order. The i~ - of the order in the cells in the eligibility queue is discussed in detail h~rPinAftPr 2 0 Following the step 166, VCj enters the eligibility state at a step 168. Nooe that scdj is set to one at the step 168.

WO96/24212 ? 1 8~ 4 9 r~l~u,. ~0l20s From the eligibility staoe 168, it is possible for VCj to transition to a sup 170, which sets ej to either one or ~ero according to an enable or disable command provided by the node attached to the bandwidth v unit. Note that afoer setting e, at the soep 170, VCj retums to the eligibility staoe 168 without performing 5 any further oests on the value of ei. The value of ej is oested at a laoer point in the processing (discussed below), at which time VCj is returned to the ' - ' ' - ' staoe if ej does not e4ual one. The bandwidth 1r~ unit can receive a request to updaoe VCj, in which case control transfers from the eligibility staoe 168 to a soep 172 where the VCi parameoers are updaoed. Following the soep 172, the bandwidth v unit returns to the ~ `d staoe 168.
It is also possible for the bandwidth _ unit to receive a command, while in the eligibility staoe 168, to updaoe sj for VCj. When this occurs, VCj transitions to a soep 174 where tlle value of sj is updaoed. Following the soep 174 is a oest soep 176 which deoermines if the updaoe Of si has been ~ accepoed. If not, then control passes fomm the soep 176 back to the eligibility staoe 168. Otberwise, the sysoem transitions from the soep 176 to a soep 180 where thepriority variable, P" is updaoed. Following t~le soep 180, VCj returns to the eligibility staoe 168.
Whenever VCj is in the eligibility staoe 168 and a new cell for VCi arrives, 2 o control transfers to a soep 181 where the priority for VCj, Pj, is updaoed.Calculating and updating P, is described in more detail hereinafoer.
..
4 9 Every cycle that the bandwidth. ~ unit runs, the first N VC's at the head of the queue are tested to determine if s(t) > sl. N is a l~lr~ J
constant value, such as eight. When the value of s(t) is greater than or equal to the value of si, then the system transitions from the eligibility state 168 to a step 182 where VCj is removed from the eligibility queue (i.e., the "A" queue). Following the step 182 is a test step 184 which determines if the backlog for the VCj is at least one (i.e., 1, > one) and if VCj is enabled (i.e., ej = one). Note that it is possible for VCj to have become disabled while in the eligibility state 168 if the bandwidth . ~, ~g~ - 1 unit received a signal to set ej to zero at the step 170, discussed above.

If at the test step 184 it is determined that the backlog does not contain at least one cell or that VCj is disabled, then control passes from the test step 184 to a step 186 where scdj is set to æro. Following the step 186, VCj returns to the ....~. h~A~ I;d state 144, and waits for either a cell admission or a signal to set ej to one, as described above in connection with the description of the steps 146, 150.
If at the step 184 it is determined that the baclclog of cells is at least one and that VC, is enabled, then control passes from the step 184 to a step 190 where VCj is placed in the departure queue, designated as the "B" queue on tbe state diagram 140. Nooe that the step 190 also follows the step 164, discussed above, when it is determined at the test step 164 that sj equals zero.

The VC's in the departure queue are sorted primarily in order of the quillity of service (QOS) for the VC's. That is, VC's with higher requested quality of WO 96/24212 ~ 9 Pcrluss6lol2o8 service are ahead of VC's with lower requesoed qualities of service. VC's in thequeue having the same quality of service are soroed in order of priority, P. VC's having both the same quality of service and the same value for priority are soroed in a first in first out basis. Following the step 190, VCj enters a departure staoe
5 192.
While in the departure staoe 192, VCj can receive signals to set ej and update the parameoers of VCj. Setting ej is perfommed at a step 194 and updatingthe parameoers for VCj is perfommed at a step 196. The soeps 194, 196 are analogous to the steps 170, 172 discussed above in connection with the eligibility staoe 168. Nooe that following either the step 194 or the step 196, VCi retums to the departure staoe 192.
VCj reaches the head of the departure queue when VCj has the highest QOS
and highest priority of all of the VC's in the departure queue. In that case, VCj transitions from the departure staoe 192 to a soep 198 where VCj is removed fromthe departure queue. Following the step 198 is a step 200 where the head of the line cell (i.e., the oldest cell) ~UllL_r ' _ to VCj is output by the bandwidth system. Also at the soep 200, the value of the backlog, Ij, is - ' by one and the credit variables, cjl and cj2, are also Ll~,lG~ .t~l.
Following the soep 200 is a soep 202 where tlle credit variables, cjl and c~2, are 2 0 updaoed. Updating the credit variables is discussed irl more detail hereinafoer.
Following the soep 202 is a soep 204 where the value of sj is reset. Resetting the value of sj is discussed in more detail hereinafter. Following the step 204 is a soep WO96/24212 ` ~,1 8~4~ PCT/US96/01208 206 where the variables cjl, c,2 and Pi, are computed in a manner discussed in more detail hereinafter.

Following the step 206 is a test step 208 where tne value of si is examined.
If the value of s, is not zero, then control transfers from the test step 208 to the 5 step 166, discussed above, where the value of s(t) is added to si and where VCi is added to tbe eligibility queue.

If at t_e step 208 the vaiue of sj is determined to be zero, then control passes from the step 208 to the test step 184, discussed above, where the backlog variable for VC" Ij, and the eligibility variable, ei, are exarnined. If the backlog of 10 VCi is at least one and if VCi is eligible, tnen control passes from the step 184 to the step 190, discussed above. where VCi is placed in the departure queue.
Otherwise, if the backlog number of cells for VCj is not at least one or if VCi is not eligible, then control passes from the step 184 to the step 186, discussed above, where the value of scdi is set to zero. Following the step 186, VCj enters the ".,c. h. .~ state 144. Note that. prior to i ' ~ to the step 184, it is possible to first run the cell admission check to determine if a cell has arrived since the last time the cell admission procedure has been run.

Referring to FIG. 6. a flow diagram 220 illustrates in detail the step 142 of FIG. 5 for setting up VCi. At a first step 222, r, and r2 are set. The variables rl 2 0 and r2 represent data l"~ rates. The variables r, can represent the average data ~ rate for the virtual data connection. The vafiables r2 can w096~242l2 2 1 86~ PCr/uss6/01208 .
represent the burst ~ rate for the data, '~n The burst rate is the maximum bandwidth allowed for sending the data over the virtual cAnnPcti~n. VCj, by the requesting node. The system uses both the average rate and the burst rate in a manner described in more detail hPr!~irlqf~Pr Following the step 222 is a step 223 where the weights, wjl-wj5 are set.
The weights are used in the calculation of the priority, Pj, in a manner which is described in more detail h~rPin:~ftPr Following the step 223 is a step 224 where the quality of service, qosj, is set. The quality of service is provided by the sending node to the bandwidth , unit and depends upon the natule of the data being i ' on the virtual .~ VCj. The different possible values for qosi are discussed above.
Following the step 224 is a step 225 where cjl arld cj2 are set to zero and C~ and Cj ",~ are set. The variables Cjl and c,2 represent bandwidth credits th~at are allocated to VCj. The credit variable cjl ~ --r ~ to the rate variable rjl and the credit variable Cjl -r ' to the rate variable rj2. The variable Cj "" is themaximum value that the variable cll is allowed to reach. The variable cj m~ is t~he maximum value that the variable c 2 is allowed to reach.
The credit variables represent îhe number of cell slots allocated to VCi 2 0 during the operation of the bandwidth 1 unit. The credit variables are WO 96/24212 ~ 1 ~ 6 ~ ~ ~ PCT/IJS96/01208 .
' whenever an amount of time has passed ~ C to the associated rate variable. For example, if rjl equafs a rate ~ L~ to one hundred cells per second. than the credit variable cjl would be i once every one hundredth of a second. Thc credit mechanism controls the amounf of 5 bandwidth used by each of the VC's. Also, note that since ril and ri2 can be different, then the credit variables cjl and c,2 can be ~ at different rates.
Updating the credit variables is described in more detaif hPrPin~ftP-Following the step 225 is a soep 226 where S~ml and s, ",, are set. Thevariables sj ml and s, ,,2 represent the maximum value that s, is allowed to reach.
Following the step 226 is a step 227 where 1" the baclclog of cells for VCj, is set to zero, and the variables l~ m 1~ and lim h~ which relate to 1, in a manner discussed in more detail hPrPin~ftPr, are all set to l~.r~. `~ 1..;. ~ constant values that vary according to the traffic parameters provided when VC~ is initialized. Also at the step 227, the variables admi, nj, and n,m, which are discussed in more detail 15 hPrPin~tPr. are afso set.

Forfowing the step 227 is a soep 228 where the variable e" which deurmines whether VCi is enabled, is set to one, thus enabling VC" at least initially. Following the step 228 is a step 229 where the variable scd, is set to zero, thus indicating t~tat VC, is initially in the I ' ' ' ~ state.

2 o Following the step 229 is a step 230 where the variable t,~ is set to zero.
The variable t,~ indicates the value of the system time clock when the credit WO 96/24212 ~ Pcrluss6lol2o8 variables, cil and cj2, were mosl recently updated.
Following the step 230 is a sLep 231 where the priority valuable, Pj, is set to zero. Following the step 231 is a step 232 where the burst bit indicator, b! is initially set to zero.
Referring the FIG. 7, a diagram 240 illustrates in detail the cell admission step 146 of FIG. 5. The cell admission procedure shown in the diagram 240 is deemed "block mode" admission. Block mode admission involves potentially dropping a block of contiguous cells for a single VC in order to c, cell loss in that VC. That is, whenever a cell arrives for a VC having a full queue. the block mode admission algorithm drops that cell and may also drop a ~ r. . ",;"~ .1 number of cells that follow the first dropped cell. The number of dropped cells is one of tbe initial traffic parameters provided when tne VC is first ~c~r~ h~
Processing for acceptance of cells begins at a current state 241 and \ to a test step 242 when a new cell for VCj is provided to the bandwidth ,, unit by the data node. If nj equals zero at the test step 242, control transfers to another test soep 243. If it is determined at the test step 243 that the number of backlog cells for VCj, Ij, is not less than the maximum allowable backlog of cells, I c, then control transfers from the step 243 to a step 244 to deoermine if CLP equals zero. CLP is a variable indicating the cell loss 2 o priority of a cell. If a cell has a CLP of zero, that indicates that the cell is relatively less loss toleranL (i.e., Lhe ccll sho~ld not be discarded if possible). A

WO 96/Z4212 2 1 ~B 6 ~ ~ q PCT/US96101Z08 cell having a CLP of other than æro is relatively more loss tolerant (i.e., could be discarded if necessary).
If CLP is not æro at the step 244, then control transfers to a step 245 where the newly arrived cell is discarded. Following the step 245, control transfer back to the current state 241. If it is determined at the test step 243 that thenumber of backlogged cells, li, is less than the maximum allowable number of ~^klng~ed cell ~, then control transfers from the step 243 to a step 246 to tesl if the value of CLP is æro.
If CLP equals æro at the step 246, then control transfers from the step 246 to a step 247 where the new cell is added to the cell buffer at the end of a queue of cells for VC,. Following the step 247 is a soep 248 where the variable lr~ the backlog cells for VC~ , is ;, ~ Following the step 248, control transfers back to the current state 241 of VCj.
If at the step 246 it is determined that CLP for the cell does not equal æro, then control transfers from the step 246 to a step 250 where admj is tested. Thevariable admj is used to indicate which lj," variable, lj"" or ~ b~ will be used. If at the test step 250 it is determined that admj equals one, then control transfers from the step 250 to a test step 251 to determine if the number of backlog cells for VC"
1" is less than the first back~og cell limit for VC~ 2, b If so, then control transfers from the step 251 to a step 252 where the new cell is added to the queue for VCj.
Following the step 252 is a step 253 where the variable indicating the number of WO 96/24212 2 1 ~ ~ ~ 4 ~ PCT/US96101208 lng~ cells. Ii is ~ r~ , .1 Following the step 253, control transfers back to the cumnt sute 241.
If it is determined at the step 250 that adm, does not equal one, then control transfers from the step 250 to a step 255 where the number of h~ lng~,od cells for VCi is compared with the second limit for the number of backlog cells for VC"
lir~ r If at the oest step 255 it is ~PtPtTni~od that li is not less tban 1,"l, then control transfers from the step 255 to a step 256 where the newly arrived cell is discarded.
Following the step 256, control transfers back to the cumnt sute 241.
If at the test step 255 it is dPtPtTnin~d that the number of backlog cells for VCi, li, is less than the limit variable li"", thell control transfers from the step 255 to a step 258 where admj is set to one. Following the step 258 is the step 252 where the new cell is added to the queue of cells for VCi. Following the step 25Z, the variable r " _ the number of h~lng~Pd cells for VCi, li, is at the step 253. Following the step 253, control transfers back to current state 241.
If at the test step 251 it is ~' ' that the number of backlog cells for VCi is not less than the limit variable Ir~ b~ then control transfers from t_e step 251 to a slep 260 where admj is set to zero. Following the step 260 is the step 245 where the newly arrived cell is discarded. Following the step 245, control transfers back to the current sute 241.

WO 96124212 " 2 1 ~ 6 4 4 9 PCTIUS96/01208 If at the test step 242 it is determined that nj does not equal æro, or if CLP
does equal æro at the step 244, then control transfers to a step 262, where the newly arrived cell is discarded. Following the step 262 is a step 263 where nj is Following the step 263 is a test step 264. where nj is compared to 5 the limit for nj, njm. If at the step 264 nj is less than or equal to njm, control transfers from the step 264 back to the current state 241. Otherwise, control transfers to step 265, where ni is set to zero. Following the step 265, control transfers back to the current state 241.
Referring to FIG. 8, a flow diagram 280 illustraoes the step 160 of FIG. S
10 where the value of sj is initialized. Flow begins when VCj is in the ~ - 1,. .1.1l. ~1 state 282. At a fLrst test step 284, the values of cil and c,2 are examined. The variable cjl and cj2 represent the credits for VCj. If the values of both of the credit variables, cjl and cj2, are greater than or equal to one, then control passes from the test step 284 to a step 286 where the value of sj is set to æro. Following the step 286, VCj enters a next state 288. Note that, if sl is set to æro at the step 286, then the next state 288 is the departure state 192, as shown on FIG. S. This occurs because at the tes~ step 164 of FIG. 5. the value of sj is checked to see if sj equals æro. If so, then VCj goes from the I ' ~ ' ' ' state 144 directly to the departure state Ig2, as shown in FIG. 5 and as described above.

If at the test step 284 it is determined that either cjl or c,2 is less than one, then control transfers from the step 284 to a step 290 where sj is set to sj ,~1. The variable sj "" is a variable that represents the amount of time between cell WO 96/24212 ~ PCI'IUS96/01208 for cells transmitted at a rate ril.
Following the step 290 is a step 292 where ~c is computed. The variable ~c represents the amount of additional credit that will be added to cj2 after anamount of time ~ ; -,, to sl has passed. The value of ~c is computed by ~ulli~ Sj by rj2.
Following the step 292 is a test step 294 which determines if the existing value of the credit variable, ci2, plus the va~ue of ~c, is less than one. Note that the variable cj2 is not updated at this step. If the sum of ci2 and ~c is not less than one, then control transfers from the step 294 to the next state 288. Note that, in this case, the next state will be the eligibility state 168 shown in FIG. 5 because s will not equal zero at the step 164 of FIG. 5.
If the sum of cj2 and ~c is less than one at the step 294, then control transfers from this sup 294 to a step 296 where the value of sj is set to sj ~2. The variable sj~"2 represents the amount of time between cell i ' for cells ' at a rate rj2. Following the step 296, control transfers to the next state 288, discussed above.
Referring to FIG. 9, a flOw diagram 300 illustrates the reset sj value step 2 o 204 shown in FIG. 5. At a first test step 302, the burst bit variable for VCj, bj, is tested. The burst bit variable, bj, indicates that VC, should transmit in burst mode.
Burst mode is used for a virtual conncction where the cells of a virtual connection WO 96/24212 ;~ ,;9 PCr/uss6l0l20s should be transmitted as close together as possible. That is, the data node sets the virtual connection for burst mode for data traffic that should be transmitted as close together as possible. For example, although an e-mail message may have a low priority, it may be ad~u~L~u~ to transmit the entire e-mail message once the first cell of the e-mail message has been sent.
If the burst bit for VC" bj, is determined to be set at the step 302, control passes from the test step 302 to a test step 304 where the credit variables, cil and ci2, and the backlog variable, lj, for VC, are oested. If the credit variables and the backlog are all greater than or equal to one at the step 304, then control passes from the step 304 to a step 306 where si is set to zero. Following step 306, VCienters the next state 308. Note that, since si is set to uro at the step 306, the next state for VCi will be the departure state 192 shown in FIG. 5.
If the burst bit indicator, bi, is set at the step 302 but VCi does not have enough bandwidth credits or the backlog li is uro at the step 304, then control passes from the step 304 to a step 310 where sj is set equal to si ,,,1. Note that the step 310 is also reached if it is determined at the test step 302 that the burst bit irldicator, bj does not equal one (i.e., VCj is not ~ ; in burst mode).
Following the step 310 is a step 312 where ~c is computed in a manner similar to that illustrated in connection with the step 292 of FIG. 8. Following the step 312 is a step 314 where it is deoermined if sum of the credit variable cj2 and ~c is less than one. If not, then control passes from the step 314 to the next state WO 96124212 2 ~ 9 PCTIUS96101208 308. The test step 314 determines if the credit variable ci2 will be greater than one after an amount of time ~u.l. r g to si has passed (i.e., after the sj counter has timed out). If not, then cj2 plus ~c will be less than one when sj times out andcontrol transfers from the step 314 to a step 316 where sj is set equal to Si G7' 5 Following the soep 316, VCj enters the next state 308.
Referring to FIG. 10, a flow diagram 320 illustrates the steps for updating cjl and c,2, the credit variables for VCj. Updating c l and ci2 occurs at the step 158 and the step 202 shown in FIG. 5. discussed above. Note that the credit variables are set according to current system time but that, for the step 202 of FIG.
S, the time used is the beginning of the next cell time slot in order to account for the amount of time it takes to transmit a cell at the steps preceding the step 202.
Processing begins at a current state 322 which is followed by a step 324 where a value for cil is computed. At the step 324, cil is increased by an amount equal to the product of ril (one of the rate vi~riables for VCi) and the differences between the current system time, t, and the time at which the credit variables, ci1 and c~2, were last updated, t, ~. Following the step 324 is a test step 326 to deter~nine if cjl is greater than ci,G. The variable ci,G is the maximum value that the credit variable cil is allowed to equal and is set up at the time VCi is initialized. If at the test step 326 cil is greater than ci,~, then control transfers 2 0 from the step 326 to a step 328 where cjl is set equal to cilG. The steps 326, 32 effectively sel cjl to the maximum of either c l or CjlG.
6/01208 ,~ Pcr/US9 Following the step 328 or the step 326 if cjl is not greater than cilm is a step 330 where a value for cj2 is compuud in a manner similar to the ...."~,",~
of cjl at the step 324. Following the step 330 are steps 332, 334 which set ci2 to the maximum of either c,2 or cj2", in a manner similar to the steps 326, 328 where S cil is set equal to the maximum of cjl and cjlm.

Following the step 334, or the step 332 if c,2 is not greater than ci~m, is a step 336 where tio is set equal to t, thc current system time. The variable ti~
represents the value of the system time, t, when the credit variables, Cjl and cj2, were last updated. Following the soeps 336 is a step 338 where the VCj enurs the 10 next ~p-~ r ' state.

Referring to FIG. 11, a flow diagram 340 illustrates the step 174 of FIG. S
where sj is updated by ~s. The step 174 of FIG. 5 is executed whenever the data node associated with the bandwidth _ unit requests changing the delay of sending data via VCj by changing the value of sj for VCj.

Processing begins with VCj in an eligibility stau 342. When the data source node provides VCj with a command to update si, control transfers from the step 342 to a test step 344 to deterrnine if the value of ^s, provided by the associated data node, equals ~ero. If so. control transfers from the SKp 344 back to the eligibility state 342 and no processing occurs. Otherwise. if ~s does not equal 2 o zero, then control transfers from the test step 344 to a step 346 where VC, is located in the eligibility queue. Note that, as shown in FIG. 5, the step 174 where WO 96/24212 2 ~ 9 PCT/US96/012(~8 .
si is updated only occurs when VCj is in the eligibility shte.

Following the soep 346 is a test step 348 where it is determined if ~s is greater than zero or less than zero. If ~s is greater than 0, then control transfers from the step 348 to a step 350 where ~s is added to sj. Following the step 350 is 5 a step 352 where VCj is ~ in the eligibility queue according to the new value of si. Note that, as discussed above in connection with FIG. 5, the position of VCi in the eligibility queue is a function of the values of sj and qosj.

If at the test step 348 it is determined that ~s is less than æro, then control transfers from the step 348 to a step 354 where the credit variables, cjl and c,2, are 10 examined. If at the test step 354 it is determined that either cjl or cj2 is less than one, then control transfers from the step 354 back to the eligibility shte 342 and no update Of si is performed. The steps 348, 354 indicate that the value of si is not decreased if either of the ~redit variables i~i less than one.

If at the step 354 it is determined that the credit variables, cil and ci2, are 15 both greater than or equal to one, then control transfers from the step 354 to a step 356 where the value of sj is ' by the amount ~s. Note that, in order to reach the step 356, ~s must be less than zero so that at the step 356, the value of s is in fact decreased.

Following the step 356 is a step 358 where the value of si is compared to 2 0 s(t). If the value of si has been decreased at the step 356 by an amount that would wo 96/24212 : Pcr/Uss6lol2os '9 make s, less than s(t) then control transfers from the step 358 to a step 360 where si is set equal to s~t). The steps 358, 360 serve to set the value of si to the greater of either si or s(t).

Following the step 360 or following the step 358 if si is greaoer than or 5 equal to s(t), control transfers to a step 362 where VCi is Ir~ in the eligibility queue. As discussed above, the position of VCj in the eligibility queue is a function of the values of s; and qosj.. Following the step 362, VCi retums to the eligibility stage 342.

Referring to FIG. 12, a flOw diagram 370 illustrates the compute steps 162, 206 of FIG. 5 where the values of cil, ci2, and Pj are computed. Processing begins at a current state 372 which is followed by a step 374 where the value of cil is computed. The value of cjl equals the value that the credit variables will have when sj times out. That is, cjl equals the future value of the credit variables c~l when VCi is removed from the eligibility queue. Since, as discussed in more 15 detail hPrPi~ftPr, Pi is a function of the credit variables, cjl and c,2, then calculating the future vatues of Cjl and cj2 is useful for . ~ the value of Pj when VCi is removed from the eligibility queue and placed in the departure queue.

The value of the priority variable, Pi, is detemmined using the following equation:

2 0 Pi = w li'cil + wi2~ci2 + wi3~rjl + W,4~ri2 + Wi5~1 WO 96/24Z12 ~ PCTIUS96/0~208 .
Pj is a function of the credit variables, the rate variables, and the number of cells h~lrlng~d in the queue. The node requesting; i~ ", of VCj specifies the weights, wil-w15, for the VC. Accordingly, it is possible for the requestingnode to weight the oerms differently, depending upon the arpli~a~ n For example, 5 if the data is reladvely bursty, then perhaps wj2 and w,4 (the weights for the terms cu..~ r ' ,, to the burst data rau) are made larger than wil and w3 (the weightsfor the urms ~,..,.r~t.~ , to the average data }ate). Similarly, if it is desirable to minimii~e the backlog for the data, then WjS (the weight ~ to the number of h~kl~ePd cells) may be made relatively large. It may be desirable for some A~ to assign zero to some of ihe weights.
At the step 374, the value of cjl is calculated by adding the current value of the credit variables c,l and the product of rjl and sj. Note that, if the credit variables were updated for each iteration while VCj was in the eligibility queue, then cjl would equal cjl when sj equalled zero. Note that cjl is not updaud at the sup 374.
Following the sup 374 is a ust step 376 where cjl is compared to Cj, ",. If cjl is greaur than cjl," (the maximum value that cjl is allowed to ta_e on) thencontrol transfers from the ust step 376 to a step 378 where the value of cjl is set equal to the value of cjl ,~. The sups 376, 378 serve to set the value of cjl to the maximum of cjl and cjl ~,. Note that for the sups 376, 378, cjl is not updated.
Following the step 378 or following tlle sup 376 if cjl is not greater than W0 96/24212 Y~ .'0121~8 ~1B~
Cjl_,~, are soeps 380-382, which set the value of c,2 in a manner similar to setting the value of cil, described above.

Following the soep 382 or following the soep 381 if ct2 is not greaoer than cj2 ~ is a soep 384 where the weights w l, wi2, wj3, wj4, and wj5 are fetched. As 5 discussed above, the weights are used to calculate the priority, Pj.

Following the soep 384 is a soep 386 where the priority for VCj, P" is calculaoed in the manner shown on the flow diagram 370. Nooe that the weights are specified at the time that VCj is initiali~ed and that the importance of each of the oerms used in tbe ~ c of Pi, can be f~ '' .i or 1 . ",I~ ;I by 10 setting the value of the weights. The values of one or more of the weights can be set to .ero, thus causing a oerm not to be used in the calculation of the priority.
Note that Pj is updaoed, P=Pj+wj5, afoer each VCi cell admission while VCj is in the eligibility state, as discussed above. This allows for a piecewise . _ of P
that decreases the amount of ~ . required to compute all of the priorities for i~ll of the VC's within one time slot when the VC's are transferred to the departure queue (the "B" queue).

Referring to FIG. 13, a flow diagrAAm 390 illustraoes in detail the soep 180 of FIG. S where the priority variable, P,. is updaoed. Note that Pj is updaoed only in response to the value of sj being updaoed at the soep 174. Otherwise, the value of 20 Pj remains constant while VCj is in the eligibility staoe. lhat is, since Pj is a function of cjl, ci2, rjl, ri2 and li, and since cjl and c,2 are a function of sj, then P, wo s6/2s212 ~ PCT/USs6/01208 .
only changes when and if sj changes at the step 174 shown in FIG. 5.

Flow begins at a current state 392 which is followed by a step 394 where s is accessed. Following the step 394 are steps 396-398 where cjl is computed in a manner similar to that illustrated in FIG. 12. Note, however, that at the step 396, 5 t,~ is subtracted from si since. at this stage of the processing, s(t) has already been added to si at the step 166 shown in FIG. 5, and since cjl is being predicted when sj times out.

Following the step 398 are steps 400-402 where c 2 is computed in a manner similar to the ~ u~ of cil. Fo~lowing the step 402 or following the step 401 if c,2 is not greater than cj~ m are the steps 404, 405 where the weights are fetched and Pj is compuoed in a manner sirnilar to that illustrated in connection with FIG. 12, described above.

Referring to FIG. 14, a schematic diagram 420 illustrates in detail one possible hardware ' .' for the bandwidth ,, unit. An input 422 connects the bandwidth " unit 420 to the source of the data cells.
The input 422 is connected to a cell pool 424 which is . ' ' using memory.
The cell pool 424 stores all of the cells waiting for departure from the bandwidth ",~ unit. In the em~- ' illustrated herein, the size of the cell pool 424 equals the number of VC's that the system can :Irrr~mm~ ' ' multiplied by the 2 0 maximum allowable baclclog per VC. For example, for a bandwidth ~
urlit designed to handle 4,096 VC's with a maximum bacl;log length of 30 cells, WO 96124212 ` PCT/US96/01208 21 86~9 the size of the cell pool is 4096 x 30 cells.

A cell pool manager 426 handles the cells within the bandwidth m^-~PmPn- unit 420 in a manner described above in connection with the state diagrams of FIG's 5-13.

A parameter buffer 428 is usea to handle all of the variables associated with each of the VC's and is ;, ~ d using memory. The size of the parameter buffer 428 is the number of variables per VC multiplied by the maximum number of VC's handled by the bandwidth ~ unit 420.

A parameter updau unit 430 is connected to the parameter buffer 428 and updates the variables for each of the VC's in a manner described above in coMection with the state diagrams of ~IG.'s 5-13.

A cell clock 432 computes the value of s(t) which, as described above, is used for ~ - g when a VC transitions from the eligibility queue to the departure queue. The cell clock 432 also provides the system time, t.

15 An eligibility queue 431 is ;,.. 1)'.. t.. ~l using memory and stores the VC's that are in the eligibility state. As discussed above in coMection with FTG.'s 5-13, VC's in the eligibility queue are sorted in order of the values of s and qos for each VC.

WO 96124212 2 1 8 6 4 4 9 PCTIUS9610120~
A comparator 434 compares the value of s(t) from the eligibility cell clock 432 with the value of s for each of the VC's and deoermines when a VC should transition from the eligibility staoe to the departure staoe. Nooe that, as discussed above in connection with FlG.'s 5-13, VCj transitions from the eligibility staoe to the departure staoe when sj > s(t).
.

A departure queue 436 is; ~ using memory and stores the VC's that are awaiting departure from the bandwidth _ unit 420. As discussed above in connection with FlG.'s 5-13, the departure queue 436 contains VC's that are sorted in order of quality of service (qos) for each VC and the priority that is compuoed for each VC. A select sequencer unit 433 selects, for each VC, which of the two queues 431, 436 to place each VC according to the algorithm described above and shown in FlG.'s 5-13.

A priority .... ~ unit 438 compuoes the priority for each of the VC's during each ioeration. Nooe that, as discussed above in connection witb FlG.'s 15 5-13, once a VC has enoered the eligibility queue, the priority can be updaoed by simply summing tbe value of the priority variable and the product of the weight W5 after each cell arrival is admitoed.

The device 420 shown in FIG. 14 can be .' ' in a ~L~d~LLru~w~d manner using ~ ..Liu..~l VLSI ~ ;t~Lh,c. The cell pool 424, eligibility queue 20 431, departure queue 436, and parameoer buffer 428 can be ;,.,~ t- I as memories. The cell pool manager 426, the parameoer updaoe unit 430, the select sequencer 433, the priority C~ unit 438 and the O~ J~d~U~ 434 can be ,1.. "t. ~ using VLSI logic to implement the r~ ;n .Al;ly described above in connection with FlG.'s 5-13. A~hat is, one of ordinury skill in the art can implement the bandwidth ~ unit 420 by using the state diagrams and 5 current custom VLSI design techniqucs. Note also that, based on the description contained herein, one of ordinary skill in the art could implement the bandwidth l_ unit 420 in a variety of other manners, including entirely as software on a very f_st processor or as a ull~.lLiollal r~nAilinotinn of hardw~re and software.

Although the invention hds been shown and described with respect to exemplary ~ ~' ~ thereof, it should be understood by those skilled in the art that various changes, omissions and additions may be made therein and thereto, without departing from the spirit and the scope of the invention.

Claims (35)

WHAT IS CLAIMED IS:
1. A bandwidth management system, for managing a plurality of virtual data connections within a communications network, comprising an input for receiving data cells, wherein each cell is associated with a particular one of the virtual connections;
a cell pool, coupled to said input, for storing said cells;
a first queue containing particular ones of the virtual connections, wherein a relative position of a virtual connection in said first queue is determined by an eligibility value that varies according to an anticipated data rate associated with the particular virtual connection and according to an amount of time that the particular virtual connection has been in said first queue;
a second queue, coupled to said first queue and containing particular other ones of the virtual connections, wherein a relative position of a virtual connection in said second queue varies according to a predetermined quality of service that is assigned to each of the virtual connections; and an output, coupled to said second queue and said cell pool, for transmitting a cell from said cell pool corresponding to a virtual connection at the front of said second queue.
2. A bandwidth management system, according to claim 1, wherein virtual connections having equal eligibility values are ordered in said first queue according to said predetermined quality of service.
3. A bandwidth management system, according to claim 1, wherein virtual connections having equal quality of service values are ordered in said second queue according to a priority assigned to each of said virtual connections.
4. A bandwidth management system. according to claim 3, wherein said priority varies according to one or more anticipated data rates of each of the virtual connections.
5. A bandwidth management system, according to claim 3. wherein said priority varies according to one or more credit variables assigned to each of the virtual connections, said credit variables being indicative of allocated time slots provided to each of the virtual connections.
6. A bandwidth management system, according to claim 3, wherein said priority varies according to a backlog of cells for each virtual connection that are awaiting transmission.
7. A bandwidth management system, according to claim 3, wherein said priority varies according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, said credit variables being indicative of allocated time slots provided to each of the virtual connections, and to a backlog of cells for each virtual connection that are awaiting transmission.
8. A bandwidth management system, according to claim 7, wherein said data rates, said credit variables, and said backlog are weighted prior to determining said priority.
9. A bandwidth management system, according to claim 1, wherein said system is one of: a pacing unit and an enforcement unit, wherein said pacing unit receives cells from a data source node and provides cells to a communication link, and wherein an enforcement unit receives data from a communication link and provides data to a data sink node.
10. A bandwidth system, according to claim 1, further comprising:
means for establishing a virtual connection by specifying initial traffic parameters; and means for dropping cells that are received at a rate that exceeds that specified by said initial traffic parameters.
11. A bandwidth management system, according to claim 1, wherein said predetermined quality of service has four possible values.
12. A bandwidth management system, according to claim 11, wherein virtual connections having equal quality of service values are ordered in said second queue according to a priority assigned to each of said virtual connections.
13. A bandwidth management system. according to claim 12, wherein said priority varies according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, said credit variables being indicative of allocated time slots provided to each of the virtual connections, and to a backlog of cells for each virtual connection that are awaiting transmission.
14. A bandwidth management system, according to claim 13, wherein said data rates, said credit variables, and said backlog are weighted prior to determining said priority.
15. A bandwidth management system, according to claim 1, further comprising:
a burst bit indicator for indicating whether a virtual connection associated with a cell that has been received by said input should be placed directly in said second queue.
16. A bandwidth management system, according to claim 15, wherein virtual connections having equal quality of service values are ordered in said second queue according to a priority assigned to each of said virtual connections
17. A bandwidth management system, according to claim 16, wherein said priority varies according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, said credit variables being indicative of allocated time slots provided to each of the virtual connections and to a backlog of cells for each virtual connection that are awaiting transmission.
18. A bandwidth management system, according to claim 17, wherein said data rates, said credit variables, and said backlog are weighted prior to determining said priority.
19. A method of managing a plurality of virtual data, within a communications network, comprising the steps of:
receiving data cells. wherein each cell is associated with a particular one of the virtual connections;
storing the received cells in a cell pool;
providing a first queue containing particular ones of the virtual connections, wherein a relative position of a virtual connection in the first queue is determined by an eligibility value that varies according to an anticipated data rate associated with the particular virtual connection and according to an amount of time that the particular virtual connection has been in the first queue;
providing a second queue. coupled to the first queue and containing particular other ones of the virtual connections wherein a relative position of a virtual connection in the second queue varies according to a predetermined quality of service that is assigned to each of the virtual connections; and transmitting a cell from the cell pool corresponding to a virtual connection at the front of the second queue.
20. A method, according to claim 19, further comprising the step of:
ordering virtual connections having equal eligibility values in the first queue according to the predetermined quality of service.
21. A method, according to claim 19, further comprising the step of:
ordering virtual connections having equal quality of service values in the second queue according to a priority assigned to each of the virtual connections.
22. A method, according to claim 21, further including the step of:
varying the priority according to one or more anticipated data rates of each of the virtual connections.
23. A method, according to claim 21, further including the step of:
varying the priority according to one or more credit variables assigned to each of the virtual wherein the credit variables are indicative of allocated time slots provided to each of the virtual connections.
24. A method, according to claim 21, further including the step of:
varying the priority according to a backlog of cells, for each virtual connection that are awaiting transmission.
25. A method, according to claim 21, further including the step of:
varying the priority according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, wherein the credit variables are indicative of allocated time slots provided to each of the virtual connections, and according to a backlog of cells, for each virtual connection, that are awaiting transmission.
26. A method, according to claim 25, further including the step of:
varying the priority according to weights assigned to the data rates, the credit variables, and the backlog.
27. A method, according to claim 19, further comprising the steps of establishing a virtual connection by specifying initial traffic parameters; and dropping cells that are received at a rate that exceeds that specified by the initial traffic parameters.
28. A method, according to claim 19, further including the step of:
assigning one of four possible values the predetermined quality of service.
29. A method, according to claim 28, further comprising the step of:
ordering virtual connections having equal quality of service values in the second queue according to a priority assigned to each of the virtual connections.
30. A method, according to claim 29, further including the step of:
varying the priority according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, wherein the credit variables are indicative of allocated time slots provided to each of the virtual connections, and according to a backlog of cells, for each virtual that are awaiting transmission.
31. A method, according to claim 30, further including the step of:
varying the priority according to weights assigned to the data rates, the credit variables, and the backlog.
32. A method, according to claim 19, further comprising the step of:

placing a virtual connection associated with an admitted cell directly on the second queue in response to a burst indicator for the virtual connection being set.
33. A method, according to claim 32, further comprising the step of:
ordering virtual connections having equal quality of service values in the second queue according to a priority assigned to each of the virtual connections.
34. A method, according to claim 33, further including the step of:
varying the priority according to one or more anticipated data rates of each of the virtual connections, one or more credit variables assigned to each of the virtual connections, wherein the credit variables are indicative of allocated time slots provided to each of the virtual connections, and according to a backlog of cells, for each virtual connection, that are awaiting transmission.
35. A method, according to claim 34, further including the step of:
varying the priority according to weights assigned to the data rates, the credit variables, and the backlog.
CA002186449A 1995-02-03 1996-01-23 Bandwidth management and access control for an atm network Expired - Lifetime CA2186449C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US383,400 1995-02-03
US08/383,400 US5533009A (en) 1995-02-03 1995-02-03 Bandwidth management and access control for an ATM network
PCT/US1996/001208 WO1996024212A1 (en) 1995-02-03 1996-01-23 Bandwidth management and access control for an atm network

Publications (2)

Publication Number Publication Date
CA2186449A1 CA2186449A1 (en) 1996-08-08
CA2186449C true CA2186449C (en) 2000-06-20

Family

ID=23512968

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002186449A Expired - Lifetime CA2186449C (en) 1995-02-03 1996-01-23 Bandwidth management and access control for an atm network

Country Status (8)

Country Link
US (1) US5533009A (en)
EP (1) EP0754383B1 (en)
JP (1) JP3088464B2 (en)
KR (1) KR100222743B1 (en)
CA (1) CA2186449C (en)
MY (1) MY112027A (en)
TW (1) TW344920B (en)
WO (1) WO1996024212A1 (en)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3211833B2 (en) * 1993-07-21 2001-09-25 富士通株式会社 ATM switch
US5446726A (en) * 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
JPH0823332A (en) * 1994-07-05 1996-01-23 Mitsubishi Electric Corp Access controller for ring type atm node
EP0702472A1 (en) * 1994-09-19 1996-03-20 International Business Machines Corporation A method and an apparatus for shaping the output traffic in a fixed length cell switching network node
JPH08139737A (en) * 1994-11-14 1996-05-31 Nec Corp Congestion control system
EP0717532A1 (en) * 1994-12-13 1996-06-19 International Business Machines Corporation Dynamic fair queuing to support best effort traffic in an ATM network
US5713043A (en) * 1995-01-04 1998-01-27 International Business Machines Corporation Method and system in a data processing system for efficient determination of quality of service parameters
DE19507570C2 (en) * 1995-03-03 1997-08-21 Siemens Ag Method and circuit arrangement for forwarding message cells transmitted via an ATM communication device to a customer line
CA2214839C (en) * 1995-03-08 2007-07-31 Avril Joy Smith Broadband switching system
CA2216171A1 (en) * 1995-03-24 1996-10-03 Ppt Vision, Inc. High speed digital video serial link
US5586121A (en) * 1995-04-21 1996-12-17 Hybrid Networks, Inc. Asymmetric hybrid access system and method
JPH11510008A (en) * 1995-07-19 1999-08-31 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド Minimum guaranteed cell rate method and apparatus
WO1997004554A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Method and system for controlling network service parameters in a cell based communications network
US5956342A (en) 1995-07-19 1999-09-21 Fujitsu Network Communications, Inc. Priority arbitration for point-to-point and multipoint transmission
WO1997004556A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Link buffer sharing method and apparatus
US5898671A (en) 1995-09-14 1999-04-27 Fujitsu Network Communications, Inc. Transmitter controlled flow control for buffer allocation in wide area ATM networks
US6445708B1 (en) * 1995-10-03 2002-09-03 Ahead Communications Systems, Inc. ATM switch with VC priority buffers
US5751708A (en) * 1995-10-25 1998-05-12 Lucent Technologies Inc. Access method for broadband and narrowband networks
WO1997022224A1 (en) * 1995-12-13 1997-06-19 International Business Machines Corporation Connection admission control in high-speed packet switched networks
US6130878A (en) 1995-12-27 2000-10-10 Compaq Computer Corporation Method and apparatus for rate-based scheduling using a relative error approach
US5781531A (en) * 1995-12-27 1998-07-14 Digital Equipment Corporation Method and apparatus for hierarchical relative error scheduling
US5751709A (en) * 1995-12-28 1998-05-12 Lucent Technologies Inc. Adaptive time slot scheduling apparatus and method for end-points in an ATM network
US5991298A (en) 1996-01-16 1999-11-23 Fujitsu Network Communications, Inc. Reliable and flexible multicast mechanism for ATM networks
US5848068A (en) * 1996-03-07 1998-12-08 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5982749A (en) * 1996-03-07 1999-11-09 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5841772A (en) * 1996-03-07 1998-11-24 Lsi Logic Corporation ATM communication system interconnect/termination unit
US5920561A (en) * 1996-03-07 1999-07-06 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6535512B1 (en) * 1996-03-07 2003-03-18 Lsi Logic Corporation ATM communication system interconnect/termination unit
US6373846B1 (en) 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
EP0798897A3 (en) * 1996-03-26 1999-07-14 Digital Equipment Corporation Method and apparatus for relative error scheduling using discrete rates and proportional rate scaling
FR2746992B1 (en) * 1996-03-27 1998-09-04 Quinquis Jean Paul LOCAL MOBILE ACCESS NETWORK
GB9606708D0 (en) * 1996-03-29 1996-06-05 Plessey Telecomm Bandwidth bidding
DK174882B1 (en) * 1996-04-12 2004-01-19 Tellabs Denmark As Method and network element for transmitting data packets in a telephony transmission network
US6058114A (en) * 1996-05-20 2000-05-02 Cisco Systems, Inc. Unified network cell scheduler and flow controller
US5668738A (en) * 1996-05-31 1997-09-16 Intel Corporation Dynamic idle aggregation in digital signal transmission
FR2750283B1 (en) * 1996-06-20 1998-07-31 Quinquis Jean Paul LOCAL MOBILE ACCESS NETWORK PROVIDED WITH MEANS FOR MANAGING RESOURCES IN SUCH A NETWORK
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
JP2882384B2 (en) * 1996-09-27 1999-04-12 日本電気株式会社 Traffic shaping device
EP0935863B1 (en) * 1996-10-31 2002-05-02 Infineon Technologies AG Method of routing asynchronously transferred message cells with a 100 % power capacity utilization
US6335927B1 (en) * 1996-11-18 2002-01-01 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
JP2964968B2 (en) * 1996-12-06 1999-10-18 日本電気株式会社 Shaping processing apparatus and shaping processing method
EP0894380A4 (en) 1996-12-06 2001-05-16 Fujitsu Network Communications Method for flow controlling atm traffic
CH690887A5 (en) * 1996-12-13 2001-02-15 Alcatel Sa Shaper for a stream of data packets
US5850398A (en) * 1996-12-30 1998-12-15 Hyundai Electronics America Method of scheduling data cell transmission in an ATM network
US6084910A (en) * 1997-01-31 2000-07-04 Hughes Electronics Corporation Statistical multiplexer for video signals
US6091455A (en) * 1997-01-31 2000-07-18 Hughes Electronics Corporation Statistical multiplexer for recording video
US6078958A (en) * 1997-01-31 2000-06-20 Hughes Electronics Corporation System for allocating available bandwidth of a concentrated media output
US6188436B1 (en) 1997-01-31 2001-02-13 Hughes Electronics Corporation Video broadcast system with video data shifting
US6097435A (en) * 1997-01-31 2000-08-01 Hughes Electronics Corporation Video system with selectable bit rate reduction
US6005620A (en) * 1997-01-31 1999-12-21 Hughes Electronics Corporation Statistical multiplexer for live and pre-compressed video
US6026075A (en) 1997-02-25 2000-02-15 International Business Machines Corporation Flow control mechanism
US5844890A (en) * 1997-03-25 1998-12-01 International Business Machines Corporation Communications cell scheduler and scheduling method for providing proportional use of network bandwith
US5864540A (en) * 1997-04-04 1999-01-26 At&T Corp/Csi Zeinet(A Cabletron Co.) Method for integrated traffic shaping in a packet-switched network
US7103050B1 (en) * 1997-04-10 2006-09-05 International Business Machines Corporation Method and means for determining the used bandwidth on a connection
JP2865139B2 (en) * 1997-04-18 1999-03-08 日本電気株式会社 ATM cell buffer circuit and arbitrary priority allocation method in ATM exchange
US6014367A (en) * 1997-04-25 2000-01-11 Mmc Networks, Inc Method for weighted fair queuing for ATM cell scheduling
US6041059A (en) * 1997-04-25 2000-03-21 Mmc Networks, Inc. Time-wheel ATM cell scheduling
DE69733129T2 (en) * 1997-06-20 2006-03-09 Alcatel Method and device for transmitting data packets with priorities
GB2327317B (en) 1997-07-11 2002-02-13 Ericsson Telefon Ab L M Access control and resourse reservation in a communications network
US6147998A (en) * 1997-08-26 2000-11-14 Visual Networks Technologies, Inc. Method and apparatus for performing in-service quality of service testing
US6310886B1 (en) * 1997-08-28 2001-10-30 Tivo, Inc. Method and apparatus implementing a multimedia digital network
US6198724B1 (en) 1997-10-02 2001-03-06 Vertex Networks, Inc. ATM cell scheduling method and apparatus
US5999963A (en) * 1997-11-07 1999-12-07 Lucent Technologies, Inc. Move-to-rear list scheduling
US6256308B1 (en) * 1998-01-20 2001-07-03 Telefonaktiebolaget Lm Ericsson Multi-service circuit for telecommunications
US6181684B1 (en) * 1998-02-02 2001-01-30 Motorola, Inc. Air interface statistical multiplexing in communication systems
US6463485B1 (en) 1998-06-03 2002-10-08 Cisco Technology, Inc. System for providing cell bus management in a switch platform including a write port cell count in each of a plurality of unidirectional FIFO for indicating which FIFO be able to accept more cell
US6967961B1 (en) * 1998-06-03 2005-11-22 Cisco Technology, Inc. Method and apparatus for providing programmable memory functions for bi-directional traffic in a switch platform
US6483850B1 (en) 1998-06-03 2002-11-19 Cisco Technology, Inc. Method and apparatus for routing cells having different formats among service modules of a switch platform
US6438102B1 (en) 1998-06-03 2002-08-20 Cisco Technology, Inc. Method and apparatus for providing asynchronous memory functions for bi-directional traffic in a switch platform
US6041048A (en) * 1998-06-12 2000-03-21 Motorola, Inc. Method for providing information packets from a packet switching network to a base site and corresponding communication system
US6446122B1 (en) * 1998-06-24 2002-09-03 Cisco Technology, Inc. Method and apparatus for communicating quality of service information among computer communication devices
US6298071B1 (en) * 1998-09-03 2001-10-02 Diva Systems Corporation Method and apparatus for processing variable bit rate information in an information distribution system
US6498782B1 (en) 1999-02-03 2002-12-24 International Business Machines Corporation Communications methods and gigabit ethernet communications adapter providing quality of service and receiver connection speed differentiation
US6765911B1 (en) 1999-02-03 2004-07-20 International Business Machines Corporation Communications adapter for implementing communications in a network and providing multiple modes of communications
US6477168B1 (en) * 1999-02-03 2002-11-05 International Business Machines Corporation Cell/frame scheduling method and communications cell/frame scheduler
JP2001127762A (en) * 1999-10-25 2001-05-11 Matsushita Electric Ind Co Ltd Communication control method and system
US6820128B1 (en) * 1999-11-04 2004-11-16 Nortel Networks Limited Method and apparatus of processing packets having varying priorities by adjusting their drop functions according to a predefined fairness relationship
US6625122B1 (en) 1999-11-24 2003-09-23 Applied Micro Circuits Corporation Selection of data for network transmission
US7315901B1 (en) * 2000-04-13 2008-01-01 International Business Machines Corporation Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
US7142558B1 (en) * 2000-04-17 2006-11-28 Cisco Technology, Inc. Dynamic queuing control for variable throughput communication channels
JP2004502999A (en) * 2000-06-29 2004-01-29 オブジェクト レザビア, インコーポレイテッド Method and system for solving finite element models using polyphase physics
US6658512B1 (en) * 2000-09-28 2003-12-02 Intel Corporation Admission control method for data communications over peripheral buses
GB2375927B (en) * 2001-05-26 2004-09-29 Cambridge Broadband Ltd Method and apparatus for communications bandwidth allocation
AU2002310411A1 (en) * 2001-06-14 2003-01-02 Cariden Technologies Incorporated Methods and systems to generate and implement a changeover sequence to reconfigure a connection-oriented network
KR100429795B1 (en) * 2001-07-21 2004-05-04 삼성전자주식회사 Method for managing bandwidth of serial bus and apparatus thereof
US7280476B2 (en) * 2002-06-04 2007-10-09 Lucent Technologies Inc. Traffic control at a network node
US7949871B2 (en) * 2002-10-25 2011-05-24 Randle William M Method for creating virtual service connections to provide a secure network
US7477603B1 (en) * 2003-07-08 2009-01-13 Cisco Technology, Inc. Sharing line bandwidth among virtual circuits in an ATM device
US7443857B1 (en) * 2003-07-09 2008-10-28 Cisco Technology Inc. Connection routing based on link utilization
ES2245590B1 (en) * 2004-03-31 2007-03-16 Sgc Telecom - Sgps, S.A. RADIO FREQUENCY COMMUNICATIONS SYSTEM WITH USE OF TWO FREQUENCY BANDS.
US7539176B1 (en) * 2004-04-02 2009-05-26 Cisco Technology Inc. System and method for providing link, node and PG policy based routing in PNNI based ATM networks
JPWO2006093221A1 (en) * 2005-03-04 2008-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Transmission control apparatus and method
CN100452892C (en) * 2005-07-11 2009-01-14 华为技术有限公司 Method for carrying out playback on conversation
US20080165685A1 (en) * 2007-01-09 2008-07-10 Walter Weiss Methods, systems, and computer program products for managing network bandwidth capacity
US10135917B2 (en) 2017-04-20 2018-11-20 At&T Intellectual Property I, L.P. Systems and methods for allocating customers to network elements
CN109582719B (en) * 2018-10-19 2021-08-24 国电南瑞科技股份有限公司 Method and system for automatically linking SCD file of intelligent substation to virtual terminal
JP2021170289A (en) * 2020-04-17 2021-10-28 富士通株式会社 Information processing system, information processing device and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880271B2 (en) * 1990-08-17 1999-04-05 株式会社日立製作所 Band control method and circuit
FR2660818B1 (en) * 1990-04-06 1992-06-19 France Telecom FRAME SWITCHER FOR ASYNCHRONOUS DIGITAL NETWORK.
GB9019340D0 (en) * 1990-09-05 1990-10-17 Plessey Telecomm An asynchronous transfer mode switching arrangement providing broadcast transmission
DK0483397T3 (en) * 1990-10-29 1996-04-09 Siemens Ag Method of monitoring a bit rate from at least one virtual connection
US5313579A (en) * 1992-06-04 1994-05-17 Bell Communications Research, Inc. B-ISDN sequencer chip device
US5278828A (en) * 1992-06-04 1994-01-11 Bell Communications Research, Inc. Method and system for managing queued cells
US5390184A (en) * 1993-09-30 1995-02-14 Northern Telecom Limited Flexible scheduling mechanism for ATM switches

Also Published As

Publication number Publication date
EP0754383A4 (en) 2000-09-27
KR970702642A (en) 1997-05-13
CA2186449A1 (en) 1996-08-08
WO1996024212A1 (en) 1996-08-08
TW344920B (en) 1998-11-11
KR100222743B1 (en) 1999-10-01
MY112027A (en) 2001-03-31
EP0754383B1 (en) 2011-05-25
JPH09505720A (en) 1997-06-03
US5533009A (en) 1996-07-02
EP0754383A1 (en) 1997-01-22
JP3088464B2 (en) 2000-09-18

Similar Documents

Publication Publication Date Title
CA2186449C (en) Bandwidth management and access control for an atm network
US5359593A (en) Dynamic bandwidth estimation and adaptation for packet communications networks
KR960003783B1 (en) Subscriber atm mux for interface to isdn
US6269079B1 (en) Systems, methods and computer program products for distributing connection information between ATM nodes
US5831971A (en) Method for leaky bucket traffic shaping using fair queueing collision arbitration
KR100431191B1 (en) An apparatus and method for scheduling packets by using a round robin based on credit
JP4287157B2 (en) Data traffic transfer management method and network switch
US20020036981A1 (en) Heterogenous traffic connection admission control system for atm networks and a method thereof
US6049526A (en) Enhanced integrated rate based available bit rate scheduler
GB2338372A (en) Packet-switched networks
JPH0744542B2 (en) Bandwidth allocation method of virtual path in asynchronous transfer mode
JP3338000B2 (en) Real-time traffic monitoring and control method in ATM switching node
US6243359B1 (en) Methods and apparatus for managing traffic in an atm network
EP0818098B1 (en) Method for rejecting cells at an overloaded node buffer
Chao et al. A new QoS-guaranteed cell discarding strategy: self-calibrating pushout
USRE42121E1 (en) Method and system for a hierarchical traffic shaper
KR960003782B1 (en) Scheduling controller and its method of subscriber access device of isdn
KR100209352B1 (en) Connection admission control method by limiting maximum cell loss rate
KR100580864B1 (en) A scheduling method for guarantee of CDV and fairness of real- time traffic in ATM networks
JP3044420B2 (en) Policing control circuit
JPH05122242A (en) Band management and call reception control system in atm exchange
Chao et al. Generalized priority queue manager design for ATM switches
KR100523482B1 (en) AAL2 ATM / Packet Link Multiplexing Schemes and Devices Guaranteeing the Delay Requirements of Various Services
JPH0514395A (en) Band operation method and call acceptance control method
Neir et al. Time-to-delivery queuing: a multi-purpose resource allocation and congestion control technique

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20160125