CA2112361A1 - Device and method for implementing queueing disciplines at high speeds - Google Patents
Device and method for implementing queueing disciplines at high speedsInfo
- Publication number
- CA2112361A1 CA2112361A1 CA002112361A CA2112361A CA2112361A1 CA 2112361 A1 CA2112361 A1 CA 2112361A1 CA 002112361 A CA002112361 A CA 002112361A CA 2112361 A CA2112361 A CA 2112361A CA 2112361 A1 CA2112361 A1 CA 2112361A1
- Authority
- CA
- Canada
- Prior art keywords
- prioritizer
- scan table
- traffic class
- information
- packets
- 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.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
- H04L49/505—Corrective measures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/104—Asynchronous transfer mode [ATM] switching fabrics
- H04L49/105—ATM switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
- H04L2012/6464—Priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
- H04L2012/6489—Buffer Management, Threshold setting, Scheduling, Shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S370/00—Multiplex communications
- Y10S370/901—Wide area network
- Y10S370/902—Packet switching
Abstract
A device (800) and method (900) are included for providing a high-rate queueing discipline in an information network system having a plurality of traffic classes. The high-rate queueing discipline is based on a scan table-based dequeueing scheme having a scan table (522) that is precomputed and stored in memory, thus facilitating rapid processing of different traffic class information.
The device and method are paraticularly useful in a fast packet-system.
The device and method are paraticularly useful in a fast packet-system.
Description
WO 93/01670 ~ 3 ~ 1 PCI'/US92/04563 DEVICE AND METHOD FOF~ IMPLEMENTING QUEUEING
DISCIPLINES AT HIGH SPEEDS
Cross-Reference to Retated Application -This application is related to the pendin~ application:
Method for Prioritizing Selectively Djscarding and Multi~lexing Differing Traffio Ty~e Fast Packets; Bhargava, Amit, Hluchyj, Michael G., and Yin, Nanying, Inventors; Codex Corporation, Assignee; Filed July 11, 1990.
Fietd of the Invention The present ~inventîon relates generally to integrated packet~ networks,:~ and ~more particularly to prioritization, at a network trunk ~node,: of: packets of ~ different traffic classes and discarding o f selected packets.
:: Background ~ of :.~the Invention 20: Increasing~ use~of ~data communications has furthered development of-~techniques~:that provide::n~ore cost-effective means-::of ~uti~lizing~:existing channels of communication nehvorks.; ~ :~ One~ sùch~ technique ~ is packetization of traffic information ~and transmission of the packets between end 2:5~ systéms~in ~an~efficient~ manner~ A~packet is typically a group o f binary~di~its,-~includjng~at;least~data~and control .~.~
information,: that.~ib~.~switched~ as:~ a~ whole: unit. ~FIG. 1, numeral 00:,..~ illu ra~tés. a;~plcal~integrated~commun as-is known:in the:~art.:i~Before the:~flowl-of packets between end 3 0 ~ systems beglns,-.a ~ connection ~ or-~ virtua I -circuit is .~ established between~them,~determining.an:;end-to-end.path with~selected nodes~ and interaoda!~ trunk(s)~ :~through ~which the ~packets will follow. ~ FIG.;~ ustrates~-a typical integrated communications ne~wo~rk~ having~ an:~integrated~:services digital network : :
::
WO 93/01670 ` . . PCI'/US92/W563 "ll J~361 2 (ISDN)~102) that allows packet-switching among a private branch e%chan~e ~PBX)(104), a public-switched telephone network/integrated services digital network (PSTN/ISDN)(106) having V.32 modems ~V.32)(108), a data-5 phone di~ital service (DDS~(110), and an ISDN basic rateinter~ace ~BRI)(112), an image source (Image)(114), a video source, (Video)(116), two local area ne~Norks (LAN)(118A, 118B), and a packet data nehHork (X.25 PDN)(120). Where desired, a host computer ~Host)~122) may be utilized. A
10 network manager (Net Mgr)(124) provides network control along three nodes (1 26A, 1 26B, 1 26C).
Generally integrated packet networks (typically fast packet networks) are utilized to carry at least two classes of traffic. Classes of traffic may include, for example, 15 continuous bit-rate (CBO), speech (Packet Voice), data (Framed Data), image,~ and so forth. T~pical bandwidth characteristics and requirements of selected traffic classes are described below.
CBO: Packets from individualized sources are fairly 20 well-behaved and arrive at internodal queues more or less periodically. The peak rate (Rpeak) of multiplexed CBO sources is substantially the same as the average rate (RaVe), and a trunk rate required (Rreqd) is somewhat larger to keep queueing delays~small. Since Rpeak ~ Rreqd, no statistical 25 gain is obtained in this case. CBO streams are sensitive to severe fluctuations in queueing delay and to packet losses since ~both of these cause a loss in synchronization at the - ~ receiver.~ Packets from CBO sources~with large packetization - times have large delays when multiplexed together, as opposed 30- to packets from sources with small packetization times. When - -~, - multiplexed together, the delays are dominated by the large - packetizatio n time sources.
Packet Yoice ~with speech activity detection): The rate of multiplexed voice depends on a number of sources WO 93/0~670 2 ~ ~ 2 3 ~ 1 P~/US92/04s63 .
simultaneously in talk spurt, and fluctuates between the maximum rate (Rpeak) and zero~ The average rate (RaVe) is less than half of Rp~ak for conversational speech. The required rate (Rreqd) can be made to lie between thes-e two 5 rates rather than being made equal to Rpeak, makin~
statistical gain (i.e., Rpeak/Rreqd) possible. Rreqd is selected to keep maximum delay and a packet loss rate under predetermined limits. A small loss is acceptable, causing only limited degradation in voice quality, Packets of multiplexed voice with excessive delays, for example, delays of a few hundrsd milliseconds, are also dropped at a destination based o~i an end-to-end delay limit, since voice is delay-sensitive, This type of dropping provides a high probability that several packets will be lost 15 consecutively from a same voice call, causing serious degradation of fidelity of the received voice signal, Framed data: T his type of traffic can have large fluctuations in rate and in a dmerence between Rpeak and RaVe~ Rreqd is selected to maintain end-to-end average frame 20 delays below a predetermined low level, Loss of a single fast packet r~sults in ~ loss of an entire frame, Thus, it is not desirable to drop packets, However, the bursty nature of data traffic generally results in some ~degree of packet loss, Further, quality~ of 'service (QOS) varies for data traffic from 25 different sources, for example, data file transfers being less delay~ sensitive~ than interactive data traffic, intermediate; nodes typically utilize a switch (201), as illustrated' in~ FIG,~;2, ~numeral 200, wherein fast packets received ~from an input trunk (202, 2W, ,.,) are switched 30 (209"..211) to an output trunk (210, ...,212), Packets that come in on an internodal trunk from each connection have a unique packet header~field ca!led a Logical Channel Number (LCN)(302), corresponding to a logical channel on that trur~k (FIG. 3A, numeral 300). Upon connection of the virtual circuit, W~ g3/01670 , . . PCr/US92/04563 21~ '3~1 a table is updated at each node such that the table contains entries for an output Port number, a Queue ID ~QID) of the output queue, and a new LCN. Utilizing the table, the LCN of each incoming packet is translated to a new Port number 5 (306), a QID (308) for an output routing queue, and a new LCN
(31û) for a next internodal trunk (FIG. 3B, numeral 350). A
discard priority ~304) typically remains unchanged. Packets from various output queues are transmitted or discarded according to a~preselected queueing system.
The simplest technique for queueing packets for transmission on an internodal trunk of a fast packet network is using a first-in-first-out ~FIFO) queue. However, utilizing the FIFO queueing technique allows overload periods for digitized speech packets and for framed data packets, 15 providing a greater share of bandwidth to one at the expense of the other, an undesirable result.
Another techniqlse, Head-Of-Line-Priority (HOLP) may give data priority over speech, but does not solve the problem of data and speech queues affecting the quality of service of 20 each other and of continuous bit-rate data fast packets under overload conditions. In HOLP, where speech fast packets are given a high priority, speech fast packets may affect the quality of service of lower priority queues.
- Movable boundary schemes for multiplexing speech and 25 data traffic classes~of fast packets often have undesirable deby jitter~and~;underutilize bandwidth allocated to queues having no traffic.
- Queueing schemes for data only do not focus on problems of integrating~ other traffic types, ~such as speech and - 3 0 continuous bit-rate data. ~
^~ ~ While packet discarding schemes relieve congestion in an integrated speech/data network, important fast packets may be discarded when queues become filled. Also, when queues are ~ull, arriving fast packets may be dropped. There is a need WO 93/01670 2 1 1 ~ 3 6 ~ PCI~/US92/04563 . . .
for a method and device that provide multiple levels of cnngestion thresholds for determining selective packet discarding and that avoid dropping arriving fast packets.when a queue is full, alleviating the above problems and providing 5 for queueing at a higher rate to allow a higher speed, more efficient operation of integrated communication networks.
Summary of the Invention A device and method are included for implementing 10 queueing disciplines at high speeds for a network having different traffic class information, comprising: at least a first input receiver, operably :coupled to a network, for receiving first traffie class information from a plurality of first sources; at least a first prioritizer, operably coupled to 15 the at least first input receiver, for prioritizing at least some of the first traffic class information pursuant to a first prioritization~ method for~ transmission; at least a second input receiver, operably:~coupled to the information network, for ' ~ receiving second ;traffi c ciass information from a plurality of ' ~ . 20 ~ second sourcès, which second traffic class is different from , , ~
the first:traffic~ciass;~at~lèast a~:~seeond prioritizer, operably coupled to the at least~ seeond input receiver, for prioritizing at least some~of the: second~:traffic ~class information for transmission pursuant~to a:second prioritization method that 25~ îs: different from~the~ ~first prioritization method; a scan table-based; dequeuer, :operably coupled: :at least to the first prioritizer~and:~the~second :prioritizer, for sean table-based n~ dequeueing -and transmission:~ of: at :least the :first and second traffic class information. ~
In one embodiment, the information network may be seleeted:to be a~fast~;packet:nehHork. /:~Also, where desired, the sean table-based~ dequeuer~may be selected to comprise one of:
: ~ a preeomputed ~head-o~-line queueing based scan table; a weighted round robin;queueing based scan table; and a scan WO 93/01670 . PCl'/USg2/04563 table based on a combination of precomputed head-of-line queueing and weighted round robin qu~ueing; at least a precomputed head-of-line-priority and weighted round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer, for substantially determining bandwidth allocation for queues.
Brief Description of the Drawings FIG. 1 illustrates a typical integrated communications network as is known in the art.
FIG. 2 illustrates a prior art fast packet switch with input analysis and output queueing.
FIG. 3A and 3B illustrate a prior art depiction of a packet information header as initially r~ceived and as subsequently processed by an ~analysis block for the prior art switch.
FIG. 4 depicts general enqueueing and dequeueing - processes. ~ ~
FIG. S illustrates~ a first embodiment of a trunk queueing - discipline in accordance with the present invention.-FIG. 6 depicts an embodiment of the present invention wherein the~scan table based trunk queueing discipline - , services~ n queues. ~ , ~ ,FlG. 7 ,illus,trates~a relationship~ of a normalized service for a first queue~(QO)'~and a normalized service for a second ,.".!qU~ue~(0~
FIG. 8 illustrates a~block diagram of one embodiment of a hardware implementation in accordance with the present 30 ~ invention.~ ~J ~
;~ FIG., 9 is ~a flow diagram illustrating the~steps executed in ~ accordance ~;wlth, the method of the present invention.
: : ::
.
~: :
WO !~3/01670 ~ L ~ 2 3 ~J ~ PCr/USg2/04563 Detailed Description of a Preferred Embodiment '~ 'The present invention alleviates the problems described above, prevents any class of traffic from using more than a 5 predetermined share of bandwidth via a scan table oriented, scan table-based dequeueing technique, and offers quality of service matching. For example, in a selected embodiment, a scan table may be selected to be based on one of: a HOLP
technique, a weighted round-robin technique, and a 10 combination of HOLP and weighted round robin techniques Other dequeueing techniques may be utilized without departing from the invention, and utilization of alternate scan table-based dequeueing techniques is a modification included within the spirit and scope of the present invention.
FIG. 4, numeral 400, ~ depicts general enqueueing and dequeueing processes modified in the present invention, as set forth below, to ~provide a high-rate queueing discipline in a packet network,~ typically a fast packet network, in accordance with~;the present invention. Uporo enqueueing (401), 20 traffic cîasses ~of fas t packets ~are separated into traffic classes for ~buffering, for exampîe,'~roup 1 (403) for buffering CBO fast packets, group 2 (404)~ for buffering digitized specch fast packets~(also known as packet voice), and group 3 (405) for buffering framed~ data ~fast packets. Enqueueing 25 substantially mows ~fast packets'from a switch output port to output queues, ~a'nd~dequeueing -substantially moves fast packets ~from~output queues to an~output trunk -; -A number~of;~ queues~ for each ;~traffic class is selectable,depending~at least~on grade of servi'ce-desired in-terms of ' 30 ~ deiay, throughput,~and æcuracy. I n~one embodiment, as illustrated in FlG.`;-~5,~n~umeral 500, a-~nominal'configuration of queues for an internodal trunk may comprise seven queues: high 507), medium~ (508),~ and low (509) ~ grade of service queues for CBO fast packets; one queue for digitized speech fast packets WO 93/01670 PCI'/US92/04563 2 11i'~313:1 8 (506); and high (511), medium (512), and low (513) grade of service queues for framed data fast packets. The present invention includes a device and method for achieving a high-rate queueing discipline for scan table-based dequeueing 5 utilizing, for example, a pre-computed Head-Of-Line-Priority (HOLP)(514) and weighted round-robin (WRR)(522) based scan table for at Icast h~o different traffic classes, for example, CBO, speech, and data. Further, a packet discarding protocol (in the discarder, 515) is utilized for digitized speech fast 10 packets prior to invoking the WRR technique in the scan table-based dequeuer (522) FIG. 6, numeral 600, FIG. 6 depicts an embodiment of the present invention wherein the scan table based trunk queueing discipline services n queues. n queues (602, 604, ...) 15 are served according to a selected queueing discipline (608);
for HOLP, where, for example, Q1 (602) has a highest priority and Qn (606) has a lowest priority, each time the trunk is ready to accept~ a packet, a server examines Q1, Q2,.~.Qn (602, 604, ...606) until a packet is found; for WRR, the server 20 examines queues cyclically in a prescribed order. New traffic classes may be added. ~ ~
A typical ~discarding mechanism packet select discarder includes a discard priority selector for comparing a discard priority for a~sel~cted fast packet; of a selected fast packet 25 ~ qu~ue~with queue~depth of at least one fast packet queue. In a selected diæarding mechanism, ~water-marks corresponding to selected discard; priorities are provided in different traffic ; - class queues.~;All~arriving packets are put into a queue until the ~queue is~ filled ~(i.e., the last water-mark is exceeded), and 30 the packet in the front of the queue is dropped. If a queue is not full, packets-can ~be~discarded from the front of the queue -at the instant of packet~ departure (departure time discarding) from the queue or at the instant of packet arrival (arrival time discarding) to the queue.
WO 93/0~670 PCl'/US92/04563 2 li ,~t)1 An exemplary embodiment of a weighted round-robin (WRR) based scan table in accordance with the present invention, wherein the scan ~able is typically precomputed and stored in memory is illustrated below.
5 ¦ Index ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ S ¦ 6 ¦ 7 ¦ 8 aueue ID QID-2 CND 3 OID 1 QID-1 QID-2 OID~3 OID-1 QID-1 Jump Index 3 3 4 5 7 7 8 In this exemplary embodiment a scan table is precomputed and stored in memory, typically a RAM, such that each entry of the scan tabie contains three rows: a first row for an index of that entry; a second row for the identifier of a 10 queue (QID) to be examined in dequeueing during processing;
and a third row for an index to jump to next if a packet is found in the queue just examined. Utilization of the scan table is illustrated as follows: where dequeueing bsgins by attempting to pull ou~ a packet from QID-2 first and a packet 15 is not available, the dequeue process examines QID-3 next.
Otherwise, if a packet is available, it is transmitted on the trunk and the next queue to be examined (queue Ql~1) is found by jumping to Index 3 in the scan table, thc value of the Jump Index in the first~column. Thus, where a packet is not found, 20 the Index is incremented by one modulo a length of the table, and if a packet is found, the dequeueing process jumps to the index contained~ in the jump index for that entry. In the above exemplary embodiment, queues QID~2 and alD-3 belong to a first queue group, with~queue QID-2 having a higher priority 25 than alD-3. alD-1~ comprises a second queue group. Thus, a weighted round-robin technique is~ established between the two queue groups wherein the first queue group is allocated one-third of the trunk bandwidth and the second queue group is ~; ;allocated two-thir~ds of the trunk bandwidth. Clearly, any 30 ~ desired scan table-based of the WRR and HOLP may be implemented by proper selection of table entries. The construction of a scan table is typically influenced by the following factors, among others: consideration of fractions of W(:~ 93/01670 PCr/USg2/04563 21~ 2~6:L 10 physical bandwidth desired to be utilized for each traffic class; differing size packets for queues; a smallest removable unit of information being a fast packet; amount of memory available for storing the scan table; determination of a desired scan number limit for the dequeueing process to employ for scanning queues, typically N scans for a physical channsl having N queues (i.e., within N scans, one may find a fast pack~t; alternatively, within N scans one may determine that all queues are empty); and maximizing interleaving of differing traffic class fast packets to minimize delay jitter for- each queue group.
In one embodiment the scan table utilized in dequeueing is constructed by:
1) constructing an intermediate WRR table to correspond to a WRR discipline between queue groups, wherein the WRR
table is typically a linear table that contains entries corresponding to each of the differing traffic class groups such as CBO, speech, and data queue groups;
2) augmenUng the WRR table by adding an additional row and more entries, where desired, to ensure that a number of scans needed~ to ~flnd a pack:et is bounded and minimum; and 3) subsUtuting actual queue IDs (QID) in a desired order, typically in accordance with a HOLP technique.
One example~of construction of an intermediate WRR
table includes~ the~ fol!owing steps:
~ ~ A)~ determination of a number of entries per queue group; and ~
B);~ distribution of queue~ group en~ries in the intermediate ~WRR ~table. - ~
- Determination of a~number of entries per queue group in an intermediate WRR table is generally determined utilizing the following ~
M = number of queue groups (e.g., CBO, speech, and data) :
WO 93/01670 . . 2 1 1 2 3 6 1 PCI~/US92/04563 11 ' ' ' fre fraction of trunk bandwidth to be allocated to queue ~roup r Lr - average packet length in queue group r T . desired len~th of the intermediate WRR table Nr - number of entries from queue ~roup r to be put in the intermediate WRR table.
Since a fraction fr Of the trunk bandwidth is allocated to queue group r, Ns, for example, may be determined:
Ns M-1 frLs .~ ~ fsLr : rzO
1 0 and . Nr frLs Ns ~ fsLr ~ for 0 5 r S M-1, 0 5 s 5 M-1 may be utilized to : determine remaining Nr's~ The Nr's are floating point ~: 1 5 ` numbers, rounded~ off as Nr ~ max (1 ,~t~ Nr 1 0.5 l) where the notation ~ ~x] refers~ to a largest- integer~ less than or equal to x.
~- ~ Rounding mayi result in a diff*rent value of T than that selected as desired. However, ~where ~a difference between a rounded value~:of T and a~ desired~ value of T is~ îimited to M, and, 20 :~where T is~much~ larger than M/2, ~percentage error is small.
An~:exemplary~determination~ of:T is as follows:
T~e~ F~ 2, where Ts is a::selected desired length of the scan~table~and~NQ is~a total`:number of queues to be served :: by the ~queueing discipline.:: :
~: ' 25 . ~ . Distribution:-~of queue group . entries in ~the intermediate WRR.: tab!e is~selected:~to minimize~delay jitter for all queues.
For example,~if~:there~:~were~ o:~queues~ with No~ = 3, N1 = 2, a selected order o~ sen~ice; is Qo, Q1. Q0. Q1, Qo, .. rather than aOQ o, Qo, Q1, 01:, .... ~For~a~ larger number of queues, to :~
W O 93/01670 PC~r/US92/04563 2iL~3~ 1 2 determine orderings of groups, a normalized service received by a queue group is defined to be a ratio of a number of bytes r~moved from the queue group until some time t ~where t is less than a time taken for a complete scan cycle) to a number 5 of bytes removed from the queue group in a complete cycle. At the end of a cycle the normalized service received by each queue will be 1, and will be incremented by 1/Nr each time queue group r is served FIG. 7, numeral 700, depicts a relationship of a normalized service for an ideal case and for 10 an actual case for two queues (Qo, Q1)(No z 3, N1 = 2)r To establish an ordering of queue groups for the intermediate WRR
table such that a normalized service curve tracks an ideal line as closely as:possible at each instant in a scan cyc~e, a minimum distance, min Dj is determined as follows:
Let a current vector of normalized service be given by X ' (Xo, X1, ..., XM-1) where xj is the normalized service received by group j at the current time. For ail groups :i, a minimum distance metric, Dj, 20 is determined as:
Dj c ~f (yoi -z~i)2 + (Y1 i zi)2 + .-- ~ (YM-1 i zi) where (yQi~,Y1~ YM-1i).(xo, x1,...,xj+Nj~ xM-yOi ~ y 1 i + ... + YM- 1 and ~ Z~ : M
:
A group chosen for service next is a group with a smallest Dj To limit a :nurnber:of scans to find a packet, each entry in 30 an original WRR table Is replaced by a set of new entries that correspond to the IDs of all queue groups in order`of `
appearance in the original table relative to the entry being ~ : :
WO 93/01670 i ~ 2 3 ~ 1 PCI/US92/04563 .
, .
replaced, and an intermediate WRR table is constructed. For example, for a WRR table containing entries for CBO, speech, and data queus groups ~C, S, and D resp~ctively), if an original WRR table is SSSDSC, then a first S entry is replaced by SDC
5 since D and C follow this particular entry in that order in the ori~inal table. After doing this, the following table is obtained:
¦ 0 1 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ 6 ¦ 7 ¦ 8 ¦ 9 110¦11 112¦13¦14¦15¦16¦17¦
I S ID IC IS ID IC IS ID IC ID IS IC IS IC ID IC IS ID I
Another row is added to the above table to indicate an entry at which the dequeueing should begin scanning the next time it scans queues if it does find a packet in the queue group during the current scan. If no packet is found in a queue group, the 1~ next queue group is scanned in this table until a packet is found, or alternatively, until each queue group has been scanned once. The entries~ in the new row indicate how far the dequeueing would have scanned in the original table before finding a packet, thus allowing jumping over repeated scans in 20 the original table~; The new table is set forth below:
1 0 1 1 1 2 1 3 1 ~4~l S I 6 1 7 1 8 1 9 l10l1~12l13l~15l16l17 S D C S~: D: ~C S D C ID S C IS IC~
~: ~ _12 __12 _9 12 3~5 ~1~1 Note that bottom ~row~ entries correspond to jumps to columns that correspond ~to ~entries in the original table. A formula relating the last row entries to searched indices is substantially J c [(1+1)'Ml mod N where I is an original table index found by a search, J is a corresponding bottom row entry, M is a number~of queue~groups, and N is a length of the new table (M times a length of the original table).
An exemplary pseudocode for computing WRR table entries is set forth below:
WO g3/01670 ; ;~ ~ ; ; PCI'/US92/04563 ~
, . .
2 L1~''3l~1 14 Compute~ Entries:
Ihi~ rou~ne oompu~, Ni, ~ numb~r of 0ntrie~ for queue group i in 1 he WRR T~
lnput~ T D~siredlengthot'WRRT~BLE
M Number of queue group~
fEi] fi. ~I fr~ction of b~ndwidth to allocate to group i . L. li] L;, an Bver0~ p~ckot length in group;
Outpu~ T Length of teble ~er integer round-off~
NEi] 05i 5M-1 -' bog~n , I
j . O Can be ch~en arbi~r~y 1 5 sum . O
for(i~0) to (i~M-1) do :: ~um.~n~(f[i]~L~l)/(fl~l~Lli]) Nd Ej] .~T/wm :~:
: : 20 : ~ forti~ to ff.M-l) do : ~
Nd Ei] . Nd tjl ~ ~f [i3 * L[jl )/~f ~] ~ L Ei] ) Nowroundo~t)~ gpointNlil's,andreoompu~e Tmus~
bc rocompu~cd for(i.O);to (l~M-l :: :
N bl:. (i~t) (Nd [il + a-5~
: :~: , , : : :
:
WO 93tO1670 2 1 i 2 3 6 1 P~/US92/04563 ~nd An exemplary pseudocode for distributing the WRR table S entries is set torth below:
Di~ibu~WM-Ent~
Ihi~ routi~ did;ribut~ the ontn in tl WRR T~BLE. It a~umo~ ~t the quoue group~ are num~eret from 0 toM - 1.
Inpu~ M Numbor of quouo group~
1 0 ~ : Nlil Numbor of e~tnos for group i T Longth of ~ TABLE
Outpu~ W~ 1 1 b~ :
for~i~0) to (i.M-l) W~li~e~
: Cu~oint[i] . 0 : ;NmSorvico lil . l.0/N (i]
~ Sr(j.0) to (j=T-l) doji~t~kW~Tl~kin<~
MiliDid~ ny;n ~ 1 , for(i.0) ~ ~i.M-l) do N~ t~l~ . ~DtPWntli]
~:u ~:~ 25: ~ for:ac.O): to:(k.M-l)do~u~hcqueuc~roupin~
: ~ ~ 3 0 : ~ Ne~ . O
N~tPL . No ~e tPt + Ne~ctPojn~i]
: Ne~t = Neare~M
WO 93/01670 ~ PCI'/US92/04563 ' 123~1 16 r(i~ 1) do di~t . di~t ~ (NextPbint lil - Ne~*t) ~ 2 , ~i~
Ne~ueueGroup . k 0 At ~ stage th6 next queue group i~ found N [Neo~tQueueGroup] . N [NextQueueGro~p~ - 1 Wrrl~ble l.j] e NextQueueGroup CurrentPobnt INextQueue{~roup] ~Y
Current Point lN~xtQueuaGroup] ~
1 5 ffP~intlNgxtQueueGroup]
+ N~i~ INex~p]
) e~d 2~) Th~ scan :table of the~ present invention is constructed from the intermediate WRR table by~substituting ~ntries for the actual queues to be~served, aceording to the HOLP
discipline in the present exemplary embodiment, for entries 2:5 cor~spQndin~ to~queue ~roups. In the prefer~d embodiment, the~ intermediate~ WRR: table construction is not needed xpli~itly; it may: ~be ~ombined, wh~re ~desired, with cQnstruction of~:the scan table. In thi~ embodiment, for each : entry in the WRR table (t~gged entry), Qll:~s of:~that queue group 30 are substituted in a HOLP order, and:then ~he QlDs of all r~maining queue groups in an order of the queue group's appearance in the~ WRR table. Last row entries are determined utilizing :J ~: [(1+1)-No]mod~ Ts~ where I is the index of the u~ue group in the~ WRR ~table :~that the: de~ueueing process 35~ ~ should serve next if no packet is f~und in the tagged queue :
WO 93/01670 2 1 1 2 3 ~ 1 PCI`/US92/04563 ~
group, and J is the last row entry in the scan table. This process is repeated for each entry of the intermediate WRR
table. An exemplary pseudocode for computing a scan table in accordance with the present invention based on an 5 intermediate WRR table is set forth below:
S~
Comput~ the ~n table fro~n tJ WM TABLE. 'rne ~n t~ble i~ umed to be ~ n ~y of en~ ~t h-v~ two fieldl~ e0ch - the QID ~nd l~e index f~r the next ~cl n.
1 0 InputJ T Lengt~ofWE~RT~
Wnl~ble[ 1 M Totel number of queue group~
- NumOfQueued 1 Number of queues in group 1 ]
Nq Totd number of queue~
QID [ 1 t ] Qmlillld ~ ID of ~h queue in group i Ou~pub ~ Salffl~e t 1 : ~ We first define a function that is used by the routine to ~: insert QlDs of a ~queue~ group into the scan table once the inde~c for the nest scan i8 computed. The routine itself follows the function 2 0 def~nition.
p: ~ (GroupId, group to insert N-~nlnd, :; ~ Curr~n, ptr. to alrr. po~n. in &anT~ble 2 5 ; ~ , NumOfQueue~, Q~, Groupln~ert~
: for~ to:Ij~NumOfQueuefltGroupIdl ) do &anT~le lCurrPo~nl . QIl) ~ Q~ lGroupIdl tj]
n~ ~ . Na~nlndex ~NextScanlndex ~: ~ : 3 0 0~ . C~
~, Grouplnerte~ tC~iupItl = true - ~sumc~ ~ num~ered 1, . . ., M
~nd ~ ~ :
W~ 93/01670 ~ '-' PCr/US92/04563 21.1.fJ3~3~1 18 ~nCo~puto~nT bl~
1~ . T s Nq C~TPo~m ~ O We begin with the IJt Jcan tobleen~ry for(i cO) to ~i~T-1) dd iJ the WrrTablein~
f~r (k.0) to (ks~M~1) do Gloupln~0rted lk] 0 KoepJ trach of gr~upa inJerted 1 0 Now inJert the queue group in Wrrrable [il NextS~nIndex . ( (i~ Nq) modTs ~Group ( WrrT~le ti], NextScanlndex, Cu~TPo~n, S~nTa~le, NumOf~ueue~, QID, GroupIn~d) 1 5 NumOf~rpdn~erted ~ 1 Cour~s numberofqueue~roups inJerted for WrrTable [i]
+1) ~odT 5~h Wrrra~le)';om next entry o ~wards NumOfarpl~In~erted ~ M) NextGroupFound~0 ~hilonot(N~ pFoDnd) i if (~rT~o tj] ~: W*Ta~le W ) 2~5 ~ j . (j+1) o~lTS~upouerrepea~ofqueuegr~up NextGroupFound=true : ~ ~ NextS~nlndex~ 1) t'Nq) ~odT~
: ~: ::
. .
WO ~3/01670 J ~i l 2 1 1 2 3 ~ ~ PCl~/US92/04563 ~ , In-ertG~>up ( WnTable li], Nex~tex, Cu~TPa~n, 8~snlbb~e, NlunOfQueues, ~D, ~p~ ) ,, ) NumOf~rpsIn~erted = NumOf~rpdn~rtet ~1 1 0 Go on to the next entry in the WrrTable ~d 1 S , ~ :
The dequeueing process utilizes the scanning table to implement a:queueing discipline. The foliowing exemplary embodiment :~mploys~ an exemplary pseudooode~ provlding for the scan table~:~to~bs stored as:an array (ScanTable) of entries,' : ~ 20 typical!y in a~RAM,; where each~ entry has two fields~ A first fi~ld of the entry is, a:~alD snd a second~ fi~1d is; an ind~x of the entry in the array~the~dequeue process should~begin scanning from in a :next~scan~ it~:a packet~ is ~found in that QID ~next scan .index ~or~: jump~ Index).: I t: is assumed that the dequeue process 25 ~gets~a signal~whenever a buffer on an output port is available, at:~which~ time~ :the:~ d~queue process: ~moves a packet from the output~ queues,~to~ the~ buffer and:~ executes: the fQIIOWjn9 ps~u~ocode.: '~ ~Assume~::that, the variable~ Curre~ntEntry contains ' the' ~ array ~i~x':~ of: the ScanTablê if rom ~ which:~ the scan must ,, 30 begln,~ the variable QueueLan (QlDj contains the currént'qu~ue len~gth of ~thè`~qûéue~with~:lD'~QlD: and watermarh~ (qid,dp) returns 'the threshold::~for:'idiscarding a~ packet with discard priority dp when dequ~ued~ ~trom~a queue with ID OID. Departure time : discarding is utilized~ in this exemplary~:description.
WO ~3/0~670 ! . PCI/US92/04563 ' 3 ~ ~
~ 1 20 An exemplary pseudocode for utilizing a scan table is set forth below:
b~
.
Cun~ntEnt~y . O
dofor~ver ( ~n _dCu~entEntryl.QID
~tQueueEmpt3~(QID) (Cun~tEntry - lCurr~ntEnely ~ 1]) modl~ -d~
' ' I
~ ~ ~ FetchP~cket~QID,OutputBuffor) cremontQu~uel.ength(QII)) QuowLon(QIDhl > wd~ rk(QID,dp)) Di~c~rd P~cket ~i~D(QIDhl ~ ark(QID,dp i: a case~of very~high-speed trunks, :a pac~et transmlsslon 3 0 time may be ~mall enough: that interleaving pad~ets may not be an i mp rtant consideration.~ Thus, a larger number of packets may be ~d~-out of:~e~:~qùeues~thout ca~ing~ex~ssive~ Jitter. In such e~, it jB desir~a~ble~to pull out as~many packets as possible (up to a ~determined upper limit) when a~ q~e is~ visited so 1 hat the per 3 5 ~ ~ packet~ number of visits to a quelfe ma~y be~ decreased.
~: : : : : ::
:: : :
:
WO 93~'01670 `~ PCI'/US92/04563 2 1 ~ ,J 3 ~ ~
To implement ~uch an embodiment of the pre~ent inven~on, t~e ~ table compn~es a simple list of the queue group8 with a li6t of QIDB and a ma~imum number of packets that can be pulled out from the queue group. ThU8, the dequeue proce86 Vl8it8 ea~h group in 5 turn and pulls out at mo~t Ni packets f~om queue group i, startin~ from a hi~hest priority queue and successively examinin~ a next lower priority queue in a case where there a~ no packets in a current queue being examined. In implementing this exemplary embodiment, N~'s are computed 10 as described above. Then, Jj is selected to be a ma~unum jitter in units of bits that may be removed from service of queue group i. Where Nj violates a selected constraint:
Nj C~Jj 1fifj L
all Ni'S must be multiplied by a number Aj where AJ - Ji 1 i f j Lj Exemplary pseudocode for a very high-speed dequeueing embodiment of the present invention is outlined as follows:
b-~lln i, O Queue Group Index doforever ~ ~ :
: TransmittedPackets . 0 : ~ for(QlD~thighest priority: queue in group i) to (alD~bwest priority queue in group i)) whlle((packet in:queue QID) ~nd (TransmittedPackets S N[i~)) : FetchPacket(OlD, OutputBuffer) :DecrementaueueLength(QlD) - lt(QueueLen(CllD)~1 ~ watermark(lD,dp)) .-.
DiscardPacket : 3 5 TransmilPacket TransminedPacke~s ~ TransmittedPacke~s ~ 1 ) ~ ~ 4 0 .
WO 93/01670 PCI/US92/~4563 211,,3~1 22 ) . .
~nd Clearly, in one embodiment, illustrated in FIG. 8, numeral 800, the device of the present invention for implementing a high-rate queueing discipline in a fast packet network may be 10 selected to be used with a digital computer, and comprises at least a computer storage medium, for example, a memory (RAM) for a fast packet queue, having a computer program to be executed by the digital computer stored thereon, the computer comprising at least one of: a fast packet receiver and 1 5 ~ enqueuer (802j, ~operably coupled to~the receiver and a bus (804) enqueueing received ~fast packets; a fast packet dequeuer (810), operably coupled to~computer memory (806, 812) and a :: transmitter (808j, where desired, for determining at least a :: : first prioritization~ of fast packets: of at least two different ~: ~ 20 traffic classes~and~for~ generating a high-rate queueing discipline::(FAST PACKET DEQUEUER)(810) in a fast packet network,: typioally:~utilizing:: a precomputéd head-of-line-` priority and~ WRR based~ scan~ table stor~d in RAM (SCAN TABLE
RAM)-:(81:2),~wherein~that~high-rate queueing substantially 25 ~ determines~a~:scan~ table-based ~bandwWth allocated for each traffi¢ class,~:~that~high-rate queueing~ being obtained substàntially: as~;described~ above.~ It~ is:also clear that the entir~ method of~:thè~present invention~may be embodied in a computer;~progràm~:stored on:a computer storage medium (not 30 shown),~;to~ exèc~d~by:: a; digital computer, the computer program 'comp~rising~ at 'least~ a`first un~it for receiving at least '~ two different traffic~ classès; and a second unit, operably coupled~ to ~the~first~unit,; for determining at least a first `
: priorltization~:of~fàst~ packets~:~of at least two different traffic 35 ~classes~and~for~genèrating:~a~high-rate~queuein~disciplineir)a fast packet network utilizing,~ for example, one of: a ~:::: : :
WO 93/0~670 2 :1 1 2 3 ~ 1 Pcr/usg2/o4s63 precomputed head-of-line-priority scan table, weighted round-robin scan table, and a combined precomputed head-of-line-priority and weighted round-robin based scan table stored in RAM, wherein that high-rate queueing substantiall~
S determines a scan table-based bandwidth allocated for each traffic class. Where desired, a transmitter may be operably coupled to the second unit for transmitting prioritized traffic class fast packets in allocated bandwidths. The at least first prioritization may be selected to comprise, for example, a 10 head-of-line prioritization.
In one embodiment, a device for performing a high-rate trunk queueing discipline for a fast packet network having different traffic classes in accordance with the present invention, described more particularly above, comprises: at 15 least a first input receiver, operably coupled to a fast packet network, for receiving first traffic class fast packets from a plurality of first sources; at least a first prioritizer, operably coupled to th~ at least first input receiver, for prioritizing at least some of the first traffic class fast packets pursuant to a - 20 first prioritization method fof transmission; at least a second - input receiver,~operably coupled to the fast packet network, ~for receiving second traffic class fast packets from a plurality of second sources, which second traffic class is different from the ~first traffic class; at least a second 25 prioritizer, operably coupled to the at least second input receiver, for prioritizing at least some of the second traffic class fast packets for trahsmission pursuant to a second prioritization method~that is~ different from the first --r~i ~ prioritization ~method;~and~a~ scan table-based dequ~uer, 30 operably coupled at least to the first prioritizer and the second prioritizer, ~ for ~ scan table-based dequeueing and transmission of at least the~first and second traffic class fast :~ packets. The scan table-based dequeuer typically comprises at least a precomputed head-of-line-priority and weighted WO 93/01670 ` ` PCr/US92/04563 1 ~ 3 t31 1 r round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially deterrnining bandwidth allocation for queues as set forth more particularly above.
The device may ~urther include at least a third input receiver, operabl~ coupled to the fast packet network, for receiving third traffic class fast packets from a plurality of third sources, which third traffic class is differont from the first and second traffic classes; and at least a third prioritizer, operably eoupled to the at least third input receiver, for prioritizing at least some of the third traffic class fast packets for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods. The scan table-based dequeuer is then further coupled to the at least third prioritizer, for scan table-based~ dequeueing:and transmission of at least the first, second, and third traffic class fast packets. The first prioritizer may be:selected to comprise a head-of-line :prioritizer. Also the second prioritizer may be selected to :: 20 include a packet select discarder, wherein the packet seleetdiscarder typically: includes a~discard priority selector for comparing a discard: priority for a selected fast packet of a selected fast packet queue with queue depth of at least one :: fast packet queue.: The third prioritizer may be selected to 2 5 comprise a head-of-line prioritizer.
In~another~embodiment, the scan table-based dequeuer may ~function~at least~ ~as. a scan table-based bandwidth .
::: allocator,::.operably~ eoupled to at least the first.:prioritizer and second prioritizer, ;~ for~: substantially obtaining . a ~ scan table-based bandwidth. allocation for prioritized traffic ctass fast packets, wherein~ typically;:the scan table-based bandwidth allocator compnses. at least- a precomputed head-of-line-: priority and weighted~ round-robin based scan table, operably : coupled at least to ~the first prioritizer and the second W O 93/01670, ; PC~r/US92/04563 2~ 123~1 prioritiz~r for substantially determining bandwidth allocation for selected queues. A transmitter may be operably coupled to the scan table-based bandwidth allocator for transmitting prioritized traffic class fast packets in allocated b~ndwidths. :
S The device of the present invention may be incorporated in a multiplexer, if desired. Alternatively, the device of the present invention may be incorporated in a packet switch, if desired.
In one embodiment the present invention may be utilized in one of: a multiplexer and a packet switch, wherein CBO, digitized speech, and framed data packets are processed, the device comprising at least: a:first receiver, operably coupled to the fast packet network, for receiving substantially continuous bit-rate fast packets from a plurality of first sources; a first prioritizer, operably coupled to the first receiver, tor prioritizing at least some of the substantially continuous bit-rate fast packets~ pursuant to a first prioritization method: for transmission;~ a second receiver, operably coupled~ to:the fast packet ~network, for receiving sp~ech fast packets from a plurality of:second sources; a second prioritizer, operably coupled ~to the second receiver, for prioritizing at least some of: the speech fast packets pursuant :: to a second prioritization~: method~for transmission; a t hird - :recèiver, operably coupled:to:the:fast~packet network, for 2 5 ~ receiving fram*d data:~ fàst packets~ from. plurality of third sources;~a~third:prioritizer,~operably coupled to the third receiver, for. prioritizing at least som=e of the~ framed data fast packets~ pursuant to a-third ~prioritization method for - transmission;and:a;~:scan~table-based~dequeuerj operably 30 coupled at least to;-first~ prioritizer,-the second prioritizer, and the-third~prioritizer,~to provide scan table-based ~ dequeueing and transmission of: the ~prioritized~ fast ~ packets. As above, the ~ scan table-based~ dequeuer :typically comprises at least a ;. precomputed head-of-iine-priority and weighted round-robin ~:
:
WO 93/01670 P~/US92/04563 ~ 5 1 ~ 3 ~
based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues. Also, the first prioritizer may be selected to comprise a head-of-lin~
5 prioritizer, and the third prioritizer to comprise a head-of-line prioritizer, as desired. Typically at least some of the di~itized speech fast packets include discard priority information, and the second prioritizer includes at least a packet discarding protocol to utilize the discard priority 10 information to identify packets to discard.
In one embodiment the device of the present invention may be utilized, for example, in on~e of: a multiplexer and a packet switch, to ~process at ~east two of: substantially continuous bit-rate fast packets from a plurality of first 15 sources, framed data fast packets from plurality of second sources, and digitized speech fast packets from a plurality of third sources.
In an altered embodiment, the device of the present invention may be selected to comprise at least: a first 20 receiver, operably~coupled to the fast packet network, for recoiving continuous~ bit-rate fast packets from a plurality of first sources; first storaç~e meansj operably coupled to the first receiver, for~ ~ storing at least some of the substantially continuous bit-rata~ fast packets in at least a first queue and a 25 second queue; a~ first prioritizer, operably eoupled to the first storage means, for;prioritizing at least some of the substantially continuous~bit-rate fast packets as stored in the at least first and second~queues ~pursuant to a first prioritization method~ ~for transmission; a~ second receiver, 30 - operably coupled-to the~ fast packet network, for receiving digitized speech fast packets from a plurality of third sources;
a second prioritizer,~ ~operably coupled~ to the second receiver, for discarding at least sorne of the digitized speech fast packets from time to time pursuant to a packet discarding WO 93/0~670 - PCr/US92/04563 protocol, to provide digitized speech fast packets for transmission; a third receiver, operably coupled to the fast packet network, for receiving data fast packets from a plurality of second sources; second storage means, operably 5 coupled to the third receiver, for storing at least some of the framed data fast packets in at least a third queue and a fourth queue; a third prioritizer, operably coupled to the second storage means, tor prioritizing at least some of the framed data fast packets as stored in the at least third and fourth 10 queues pursuant to a third prioritization method for -transmission; and a scan table-based dequeuer, operably coupled at least to first prioritizer, the second prioritizer, and the third prioritizer, to provide scan table-based dequeueing and transmission of at least substantially continuous bit-rate 15 fast packets, digitized speech:fast packets, and framed data fast packets utilizing ;at least: a precomputed head-of-line-priority and weighted round-robin based scan table scan table-based bandwidth allocation. The scan table-based dequeuer includes a precomputed~ head-of-lin~-priority and weighted 20 round-robin based scan ~table stored in a memory ~RAM) device.
In this embodiment the substantially continuous bit-rate fast packets are stored in the: first queue and the second queue as a function in part of a ~packetization time of CBO sources, the substantially continuous .bit-rate :fast packets from 25 :sources having a relativ~ly: small packetization time are stored in the first queue, and the fast packets having a relatively large.packetization time are stored in the second : queue. The -substantially: continuous bit-rate fast packets from sources with relativelg: medium packetization times are 30 typically stored in additional queues that are served via HOLP
with the first and: second queues. For the framed data fast packets, the third queue and the fourth queue for storage are determined as a function,. at least: in part, of the burst size of Lne framed da~a sources, the third queue beîng utilized for Wo 93/01670 Pcr/uss2/o~s63 21123~1 ~8 storage of fast packets from sources having a relatively small burst size, and the fourth queue being utilized for storage of fast packets from sources having a relatively lar~e burst size.
Relatively medium burst sizes are typically stored in 5 additional queues that are served via HOLP with the third and fourth queues.
The method of the present invention, illustrated in FIG. 9, numeral 900, comprises steps for performing a high-rate trunk queueing discipline for a fast packet network having 10 different traffic classes. The method includes steps of:
receiving first traffic class fast packets from a plurality of first sources (902); prioritizing at least some of the first traffic class fast packets pursuant to a first prioritization method for transmission (904); receiving second traffic class 15 fast packets from a plurality of second sources, which second traffic class is different from the first traffic class (906);
prinritizing at least some of the second traffic class fast packets for transmission pursuant to a second prioritization method that is different from the first prioritization method 20 (908); and scan table-based dequeueing and transmitting, - wt~ere desired, at least the first and second traffic class fast packets (910). Hybrid queueing includes at least a step of utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantia!ly determining 25 ~bandwidth allocation~for queues, described more fully above.
The scan table-based dequeuer may be selectèd, where -desired, to include~ a precomputed~ head-of-line-priority and :
weighted round-robin based scan~table stored in a memory (RAM)~ device.~
The method may be; selected such that at least the first ~prioritization method includes a head-of-line prioritization - method and the second prioritization method includes a packet discarding protocol. Typically, as above, the packet discarding protocol includes the step of comparing a discard priority for a :
WO 93/01670 2 1 1 ~ 3 '~ 1 PCl'/US92/04563 selected fast packet of a selected fast packet queue with queue depth of at least one fast packet queue.
The method clearly may be implemented, with variations as desired, for any selected number of different traffic 5 classes, as is apparent from the above description of the device of the present invention, without departing from the invention. Although fast packets are described more fully above, it is clear that other information packets may be utilized in the present invention. Also, although exemplary 10 embodiments of the invention and of pseudocode in accordance with the present invention are described above, it will be obvious to those skilled in the art that many alterations and modifications may be made without departing from the invention. Such modifications may include different 15 prioritization methods to gain speed and other advantages.
Accordingly, it is intended that all such alterations and modifications be included within the spirit and scope of the invention as defined in the appended claims.
.
: ~ :
::
~i':.. ~.?'' '
DISCIPLINES AT HIGH SPEEDS
Cross-Reference to Retated Application -This application is related to the pendin~ application:
Method for Prioritizing Selectively Djscarding and Multi~lexing Differing Traffio Ty~e Fast Packets; Bhargava, Amit, Hluchyj, Michael G., and Yin, Nanying, Inventors; Codex Corporation, Assignee; Filed July 11, 1990.
Fietd of the Invention The present ~inventîon relates generally to integrated packet~ networks,:~ and ~more particularly to prioritization, at a network trunk ~node,: of: packets of ~ different traffic classes and discarding o f selected packets.
:: Background ~ of :.~the Invention 20: Increasing~ use~of ~data communications has furthered development of-~techniques~:that provide::n~ore cost-effective means-::of ~uti~lizing~:existing channels of communication nehvorks.; ~ :~ One~ sùch~ technique ~ is packetization of traffic information ~and transmission of the packets between end 2:5~ systéms~in ~an~efficient~ manner~ A~packet is typically a group o f binary~di~its,-~includjng~at;least~data~and control .~.~
information,: that.~ib~.~switched~ as:~ a~ whole: unit. ~FIG. 1, numeral 00:,..~ illu ra~tés. a;~plcal~integrated~commun as-is known:in the:~art.:i~Before the:~flowl-of packets between end 3 0 ~ systems beglns,-.a ~ connection ~ or-~ virtua I -circuit is .~ established between~them,~determining.an:;end-to-end.path with~selected nodes~ and interaoda!~ trunk(s)~ :~through ~which the ~packets will follow. ~ FIG.;~ ustrates~-a typical integrated communications ne~wo~rk~ having~ an:~integrated~:services digital network : :
::
WO 93/01670 ` . . PCI'/US92/W563 "ll J~361 2 (ISDN)~102) that allows packet-switching among a private branch e%chan~e ~PBX)(104), a public-switched telephone network/integrated services digital network (PSTN/ISDN)(106) having V.32 modems ~V.32)(108), a data-5 phone di~ital service (DDS~(110), and an ISDN basic rateinter~ace ~BRI)(112), an image source (Image)(114), a video source, (Video)(116), two local area ne~Norks (LAN)(118A, 118B), and a packet data nehHork (X.25 PDN)(120). Where desired, a host computer ~Host)~122) may be utilized. A
10 network manager (Net Mgr)(124) provides network control along three nodes (1 26A, 1 26B, 1 26C).
Generally integrated packet networks (typically fast packet networks) are utilized to carry at least two classes of traffic. Classes of traffic may include, for example, 15 continuous bit-rate (CBO), speech (Packet Voice), data (Framed Data), image,~ and so forth. T~pical bandwidth characteristics and requirements of selected traffic classes are described below.
CBO: Packets from individualized sources are fairly 20 well-behaved and arrive at internodal queues more or less periodically. The peak rate (Rpeak) of multiplexed CBO sources is substantially the same as the average rate (RaVe), and a trunk rate required (Rreqd) is somewhat larger to keep queueing delays~small. Since Rpeak ~ Rreqd, no statistical 25 gain is obtained in this case. CBO streams are sensitive to severe fluctuations in queueing delay and to packet losses since ~both of these cause a loss in synchronization at the - ~ receiver.~ Packets from CBO sources~with large packetization - times have large delays when multiplexed together, as opposed 30- to packets from sources with small packetization times. When - -~, - multiplexed together, the delays are dominated by the large - packetizatio n time sources.
Packet Yoice ~with speech activity detection): The rate of multiplexed voice depends on a number of sources WO 93/0~670 2 ~ ~ 2 3 ~ 1 P~/US92/04s63 .
simultaneously in talk spurt, and fluctuates between the maximum rate (Rpeak) and zero~ The average rate (RaVe) is less than half of Rp~ak for conversational speech. The required rate (Rreqd) can be made to lie between thes-e two 5 rates rather than being made equal to Rpeak, makin~
statistical gain (i.e., Rpeak/Rreqd) possible. Rreqd is selected to keep maximum delay and a packet loss rate under predetermined limits. A small loss is acceptable, causing only limited degradation in voice quality, Packets of multiplexed voice with excessive delays, for example, delays of a few hundrsd milliseconds, are also dropped at a destination based o~i an end-to-end delay limit, since voice is delay-sensitive, This type of dropping provides a high probability that several packets will be lost 15 consecutively from a same voice call, causing serious degradation of fidelity of the received voice signal, Framed data: T his type of traffic can have large fluctuations in rate and in a dmerence between Rpeak and RaVe~ Rreqd is selected to maintain end-to-end average frame 20 delays below a predetermined low level, Loss of a single fast packet r~sults in ~ loss of an entire frame, Thus, it is not desirable to drop packets, However, the bursty nature of data traffic generally results in some ~degree of packet loss, Further, quality~ of 'service (QOS) varies for data traffic from 25 different sources, for example, data file transfers being less delay~ sensitive~ than interactive data traffic, intermediate; nodes typically utilize a switch (201), as illustrated' in~ FIG,~;2, ~numeral 200, wherein fast packets received ~from an input trunk (202, 2W, ,.,) are switched 30 (209"..211) to an output trunk (210, ...,212), Packets that come in on an internodal trunk from each connection have a unique packet header~field ca!led a Logical Channel Number (LCN)(302), corresponding to a logical channel on that trur~k (FIG. 3A, numeral 300). Upon connection of the virtual circuit, W~ g3/01670 , . . PCr/US92/04563 21~ '3~1 a table is updated at each node such that the table contains entries for an output Port number, a Queue ID ~QID) of the output queue, and a new LCN. Utilizing the table, the LCN of each incoming packet is translated to a new Port number 5 (306), a QID (308) for an output routing queue, and a new LCN
(31û) for a next internodal trunk (FIG. 3B, numeral 350). A
discard priority ~304) typically remains unchanged. Packets from various output queues are transmitted or discarded according to a~preselected queueing system.
The simplest technique for queueing packets for transmission on an internodal trunk of a fast packet network is using a first-in-first-out ~FIFO) queue. However, utilizing the FIFO queueing technique allows overload periods for digitized speech packets and for framed data packets, 15 providing a greater share of bandwidth to one at the expense of the other, an undesirable result.
Another techniqlse, Head-Of-Line-Priority (HOLP) may give data priority over speech, but does not solve the problem of data and speech queues affecting the quality of service of 20 each other and of continuous bit-rate data fast packets under overload conditions. In HOLP, where speech fast packets are given a high priority, speech fast packets may affect the quality of service of lower priority queues.
- Movable boundary schemes for multiplexing speech and 25 data traffic classes~of fast packets often have undesirable deby jitter~and~;underutilize bandwidth allocated to queues having no traffic.
- Queueing schemes for data only do not focus on problems of integrating~ other traffic types, ~such as speech and - 3 0 continuous bit-rate data. ~
^~ ~ While packet discarding schemes relieve congestion in an integrated speech/data network, important fast packets may be discarded when queues become filled. Also, when queues are ~ull, arriving fast packets may be dropped. There is a need WO 93/01670 2 1 1 ~ 3 6 ~ PCI~/US92/04563 . . .
for a method and device that provide multiple levels of cnngestion thresholds for determining selective packet discarding and that avoid dropping arriving fast packets.when a queue is full, alleviating the above problems and providing 5 for queueing at a higher rate to allow a higher speed, more efficient operation of integrated communication networks.
Summary of the Invention A device and method are included for implementing 10 queueing disciplines at high speeds for a network having different traffic class information, comprising: at least a first input receiver, operably :coupled to a network, for receiving first traffie class information from a plurality of first sources; at least a first prioritizer, operably coupled to 15 the at least first input receiver, for prioritizing at least some of the first traffic class information pursuant to a first prioritization~ method for~ transmission; at least a second input receiver, operably:~coupled to the information network, for ' ~ receiving second ;traffi c ciass information from a plurality of ' ~ . 20 ~ second sourcès, which second traffic class is different from , , ~
the first:traffic~ciass;~at~lèast a~:~seeond prioritizer, operably coupled to the at least~ seeond input receiver, for prioritizing at least some~of the: second~:traffic ~class information for transmission pursuant~to a:second prioritization method that 25~ îs: different from~the~ ~first prioritization method; a scan table-based; dequeuer, :operably coupled: :at least to the first prioritizer~and:~the~second :prioritizer, for sean table-based n~ dequeueing -and transmission:~ of: at :least the :first and second traffic class information. ~
In one embodiment, the information network may be seleeted:to be a~fast~;packet:nehHork. /:~Also, where desired, the sean table-based~ dequeuer~may be selected to comprise one of:
: ~ a preeomputed ~head-o~-line queueing based scan table; a weighted round robin;queueing based scan table; and a scan WO 93/01670 . PCl'/USg2/04563 table based on a combination of precomputed head-of-line queueing and weighted round robin qu~ueing; at least a precomputed head-of-line-priority and weighted round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer, for substantially determining bandwidth allocation for queues.
Brief Description of the Drawings FIG. 1 illustrates a typical integrated communications network as is known in the art.
FIG. 2 illustrates a prior art fast packet switch with input analysis and output queueing.
FIG. 3A and 3B illustrate a prior art depiction of a packet information header as initially r~ceived and as subsequently processed by an ~analysis block for the prior art switch.
FIG. 4 depicts general enqueueing and dequeueing - processes. ~ ~
FIG. S illustrates~ a first embodiment of a trunk queueing - discipline in accordance with the present invention.-FIG. 6 depicts an embodiment of the present invention wherein the~scan table based trunk queueing discipline - , services~ n queues. ~ , ~ ,FlG. 7 ,illus,trates~a relationship~ of a normalized service for a first queue~(QO)'~and a normalized service for a second ,.".!qU~ue~(0~
FIG. 8 illustrates a~block diagram of one embodiment of a hardware implementation in accordance with the present 30 ~ invention.~ ~J ~
;~ FIG., 9 is ~a flow diagram illustrating the~steps executed in ~ accordance ~;wlth, the method of the present invention.
: : ::
.
~: :
WO !~3/01670 ~ L ~ 2 3 ~J ~ PCr/USg2/04563 Detailed Description of a Preferred Embodiment '~ 'The present invention alleviates the problems described above, prevents any class of traffic from using more than a 5 predetermined share of bandwidth via a scan table oriented, scan table-based dequeueing technique, and offers quality of service matching. For example, in a selected embodiment, a scan table may be selected to be based on one of: a HOLP
technique, a weighted round-robin technique, and a 10 combination of HOLP and weighted round robin techniques Other dequeueing techniques may be utilized without departing from the invention, and utilization of alternate scan table-based dequeueing techniques is a modification included within the spirit and scope of the present invention.
FIG. 4, numeral 400, ~ depicts general enqueueing and dequeueing processes modified in the present invention, as set forth below, to ~provide a high-rate queueing discipline in a packet network,~ typically a fast packet network, in accordance with~;the present invention. Uporo enqueueing (401), 20 traffic cîasses ~of fas t packets ~are separated into traffic classes for ~buffering, for exampîe,'~roup 1 (403) for buffering CBO fast packets, group 2 (404)~ for buffering digitized specch fast packets~(also known as packet voice), and group 3 (405) for buffering framed~ data ~fast packets. Enqueueing 25 substantially mows ~fast packets'from a switch output port to output queues, ~a'nd~dequeueing -substantially moves fast packets ~from~output queues to an~output trunk -; -A number~of;~ queues~ for each ;~traffic class is selectable,depending~at least~on grade of servi'ce-desired in-terms of ' 30 ~ deiay, throughput,~and æcuracy. I n~one embodiment, as illustrated in FlG.`;-~5,~n~umeral 500, a-~nominal'configuration of queues for an internodal trunk may comprise seven queues: high 507), medium~ (508),~ and low (509) ~ grade of service queues for CBO fast packets; one queue for digitized speech fast packets WO 93/01670 PCI'/US92/04563 2 11i'~313:1 8 (506); and high (511), medium (512), and low (513) grade of service queues for framed data fast packets. The present invention includes a device and method for achieving a high-rate queueing discipline for scan table-based dequeueing 5 utilizing, for example, a pre-computed Head-Of-Line-Priority (HOLP)(514) and weighted round-robin (WRR)(522) based scan table for at Icast h~o different traffic classes, for example, CBO, speech, and data. Further, a packet discarding protocol (in the discarder, 515) is utilized for digitized speech fast 10 packets prior to invoking the WRR technique in the scan table-based dequeuer (522) FIG. 6, numeral 600, FIG. 6 depicts an embodiment of the present invention wherein the scan table based trunk queueing discipline services n queues. n queues (602, 604, ...) 15 are served according to a selected queueing discipline (608);
for HOLP, where, for example, Q1 (602) has a highest priority and Qn (606) has a lowest priority, each time the trunk is ready to accept~ a packet, a server examines Q1, Q2,.~.Qn (602, 604, ...606) until a packet is found; for WRR, the server 20 examines queues cyclically in a prescribed order. New traffic classes may be added. ~ ~
A typical ~discarding mechanism packet select discarder includes a discard priority selector for comparing a discard priority for a~sel~cted fast packet; of a selected fast packet 25 ~ qu~ue~with queue~depth of at least one fast packet queue. In a selected diæarding mechanism, ~water-marks corresponding to selected discard; priorities are provided in different traffic ; - class queues.~;All~arriving packets are put into a queue until the ~queue is~ filled ~(i.e., the last water-mark is exceeded), and 30 the packet in the front of the queue is dropped. If a queue is not full, packets-can ~be~discarded from the front of the queue -at the instant of packet~ departure (departure time discarding) from the queue or at the instant of packet arrival (arrival time discarding) to the queue.
WO 93/0~670 PCl'/US92/04563 2 li ,~t)1 An exemplary embodiment of a weighted round-robin (WRR) based scan table in accordance with the present invention, wherein the scan ~able is typically precomputed and stored in memory is illustrated below.
5 ¦ Index ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦ S ¦ 6 ¦ 7 ¦ 8 aueue ID QID-2 CND 3 OID 1 QID-1 QID-2 OID~3 OID-1 QID-1 Jump Index 3 3 4 5 7 7 8 In this exemplary embodiment a scan table is precomputed and stored in memory, typically a RAM, such that each entry of the scan tabie contains three rows: a first row for an index of that entry; a second row for the identifier of a 10 queue (QID) to be examined in dequeueing during processing;
and a third row for an index to jump to next if a packet is found in the queue just examined. Utilization of the scan table is illustrated as follows: where dequeueing bsgins by attempting to pull ou~ a packet from QID-2 first and a packet 15 is not available, the dequeue process examines QID-3 next.
Otherwise, if a packet is available, it is transmitted on the trunk and the next queue to be examined (queue Ql~1) is found by jumping to Index 3 in the scan table, thc value of the Jump Index in the first~column. Thus, where a packet is not found, 20 the Index is incremented by one modulo a length of the table, and if a packet is found, the dequeueing process jumps to the index contained~ in the jump index for that entry. In the above exemplary embodiment, queues QID~2 and alD-3 belong to a first queue group, with~queue QID-2 having a higher priority 25 than alD-3. alD-1~ comprises a second queue group. Thus, a weighted round-robin technique is~ established between the two queue groups wherein the first queue group is allocated one-third of the trunk bandwidth and the second queue group is ~; ;allocated two-thir~ds of the trunk bandwidth. Clearly, any 30 ~ desired scan table-based of the WRR and HOLP may be implemented by proper selection of table entries. The construction of a scan table is typically influenced by the following factors, among others: consideration of fractions of W(:~ 93/01670 PCr/USg2/04563 21~ 2~6:L 10 physical bandwidth desired to be utilized for each traffic class; differing size packets for queues; a smallest removable unit of information being a fast packet; amount of memory available for storing the scan table; determination of a desired scan number limit for the dequeueing process to employ for scanning queues, typically N scans for a physical channsl having N queues (i.e., within N scans, one may find a fast pack~t; alternatively, within N scans one may determine that all queues are empty); and maximizing interleaving of differing traffic class fast packets to minimize delay jitter for- each queue group.
In one embodiment the scan table utilized in dequeueing is constructed by:
1) constructing an intermediate WRR table to correspond to a WRR discipline between queue groups, wherein the WRR
table is typically a linear table that contains entries corresponding to each of the differing traffic class groups such as CBO, speech, and data queue groups;
2) augmenUng the WRR table by adding an additional row and more entries, where desired, to ensure that a number of scans needed~ to ~flnd a pack:et is bounded and minimum; and 3) subsUtuting actual queue IDs (QID) in a desired order, typically in accordance with a HOLP technique.
One example~of construction of an intermediate WRR
table includes~ the~ fol!owing steps:
~ ~ A)~ determination of a number of entries per queue group; and ~
B);~ distribution of queue~ group en~ries in the intermediate ~WRR ~table. - ~
- Determination of a~number of entries per queue group in an intermediate WRR table is generally determined utilizing the following ~
M = number of queue groups (e.g., CBO, speech, and data) :
WO 93/01670 . . 2 1 1 2 3 6 1 PCI~/US92/04563 11 ' ' ' fre fraction of trunk bandwidth to be allocated to queue ~roup r Lr - average packet length in queue group r T . desired len~th of the intermediate WRR table Nr - number of entries from queue ~roup r to be put in the intermediate WRR table.
Since a fraction fr Of the trunk bandwidth is allocated to queue group r, Ns, for example, may be determined:
Ns M-1 frLs .~ ~ fsLr : rzO
1 0 and . Nr frLs Ns ~ fsLr ~ for 0 5 r S M-1, 0 5 s 5 M-1 may be utilized to : determine remaining Nr's~ The Nr's are floating point ~: 1 5 ` numbers, rounded~ off as Nr ~ max (1 ,~t~ Nr 1 0.5 l) where the notation ~ ~x] refers~ to a largest- integer~ less than or equal to x.
~- ~ Rounding mayi result in a diff*rent value of T than that selected as desired. However, ~where ~a difference between a rounded value~:of T and a~ desired~ value of T is~ îimited to M, and, 20 :~where T is~much~ larger than M/2, ~percentage error is small.
An~:exemplary~determination~ of:T is as follows:
T~e~ F~ 2, where Ts is a::selected desired length of the scan~table~and~NQ is~a total`:number of queues to be served :: by the ~queueing discipline.:: :
~: ' 25 . ~ . Distribution:-~of queue group . entries in ~the intermediate WRR.: tab!e is~selected:~to minimize~delay jitter for all queues.
For example,~if~:there~:~were~ o:~queues~ with No~ = 3, N1 = 2, a selected order o~ sen~ice; is Qo, Q1. Q0. Q1, Qo, .. rather than aOQ o, Qo, Q1, 01:, .... ~For~a~ larger number of queues, to :~
W O 93/01670 PC~r/US92/04563 2iL~3~ 1 2 determine orderings of groups, a normalized service received by a queue group is defined to be a ratio of a number of bytes r~moved from the queue group until some time t ~where t is less than a time taken for a complete scan cycle) to a number 5 of bytes removed from the queue group in a complete cycle. At the end of a cycle the normalized service received by each queue will be 1, and will be incremented by 1/Nr each time queue group r is served FIG. 7, numeral 700, depicts a relationship of a normalized service for an ideal case and for 10 an actual case for two queues (Qo, Q1)(No z 3, N1 = 2)r To establish an ordering of queue groups for the intermediate WRR
table such that a normalized service curve tracks an ideal line as closely as:possible at each instant in a scan cyc~e, a minimum distance, min Dj is determined as follows:
Let a current vector of normalized service be given by X ' (Xo, X1, ..., XM-1) where xj is the normalized service received by group j at the current time. For ail groups :i, a minimum distance metric, Dj, 20 is determined as:
Dj c ~f (yoi -z~i)2 + (Y1 i zi)2 + .-- ~ (YM-1 i zi) where (yQi~,Y1~ YM-1i).(xo, x1,...,xj+Nj~ xM-yOi ~ y 1 i + ... + YM- 1 and ~ Z~ : M
:
A group chosen for service next is a group with a smallest Dj To limit a :nurnber:of scans to find a packet, each entry in 30 an original WRR table Is replaced by a set of new entries that correspond to the IDs of all queue groups in order`of `
appearance in the original table relative to the entry being ~ : :
WO 93/01670 i ~ 2 3 ~ 1 PCI/US92/04563 .
, .
replaced, and an intermediate WRR table is constructed. For example, for a WRR table containing entries for CBO, speech, and data queus groups ~C, S, and D resp~ctively), if an original WRR table is SSSDSC, then a first S entry is replaced by SDC
5 since D and C follow this particular entry in that order in the ori~inal table. After doing this, the following table is obtained:
¦ 0 1 1 ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ 6 ¦ 7 ¦ 8 ¦ 9 110¦11 112¦13¦14¦15¦16¦17¦
I S ID IC IS ID IC IS ID IC ID IS IC IS IC ID IC IS ID I
Another row is added to the above table to indicate an entry at which the dequeueing should begin scanning the next time it scans queues if it does find a packet in the queue group during the current scan. If no packet is found in a queue group, the 1~ next queue group is scanned in this table until a packet is found, or alternatively, until each queue group has been scanned once. The entries~ in the new row indicate how far the dequeueing would have scanned in the original table before finding a packet, thus allowing jumping over repeated scans in 20 the original table~; The new table is set forth below:
1 0 1 1 1 2 1 3 1 ~4~l S I 6 1 7 1 8 1 9 l10l1~12l13l~15l16l17 S D C S~: D: ~C S D C ID S C IS IC~
~: ~ _12 __12 _9 12 3~5 ~1~1 Note that bottom ~row~ entries correspond to jumps to columns that correspond ~to ~entries in the original table. A formula relating the last row entries to searched indices is substantially J c [(1+1)'Ml mod N where I is an original table index found by a search, J is a corresponding bottom row entry, M is a number~of queue~groups, and N is a length of the new table (M times a length of the original table).
An exemplary pseudocode for computing WRR table entries is set forth below:
WO g3/01670 ; ;~ ~ ; ; PCI'/US92/04563 ~
, . .
2 L1~''3l~1 14 Compute~ Entries:
Ihi~ rou~ne oompu~, Ni, ~ numb~r of 0ntrie~ for queue group i in 1 he WRR T~
lnput~ T D~siredlengthot'WRRT~BLE
M Number of queue group~
fEi] fi. ~I fr~ction of b~ndwidth to allocate to group i . L. li] L;, an Bver0~ p~ckot length in group;
Outpu~ T Length of teble ~er integer round-off~
NEi] 05i 5M-1 -' bog~n , I
j . O Can be ch~en arbi~r~y 1 5 sum . O
for(i~0) to (i~M-1) do :: ~um.~n~(f[i]~L~l)/(fl~l~Lli]) Nd Ej] .~T/wm :~:
: : 20 : ~ forti~ to ff.M-l) do : ~
Nd Ei] . Nd tjl ~ ~f [i3 * L[jl )/~f ~] ~ L Ei] ) Nowroundo~t)~ gpointNlil's,andreoompu~e Tmus~
bc rocompu~cd for(i.O);to (l~M-l :: :
N bl:. (i~t) (Nd [il + a-5~
: :~: , , : : :
:
WO 93tO1670 2 1 i 2 3 6 1 P~/US92/04563 ~nd An exemplary pseudocode for distributing the WRR table S entries is set torth below:
Di~ibu~WM-Ent~
Ihi~ routi~ did;ribut~ the ontn in tl WRR T~BLE. It a~umo~ ~t the quoue group~ are num~eret from 0 toM - 1.
Inpu~ M Numbor of quouo group~
1 0 ~ : Nlil Numbor of e~tnos for group i T Longth of ~ TABLE
Outpu~ W~ 1 1 b~ :
for~i~0) to (i.M-l) W~li~e~
: Cu~oint[i] . 0 : ;NmSorvico lil . l.0/N (i]
~ Sr(j.0) to (j=T-l) doji~t~kW~Tl~kin<~
MiliDid~ ny;n ~ 1 , for(i.0) ~ ~i.M-l) do N~ t~l~ . ~DtPWntli]
~:u ~:~ 25: ~ for:ac.O): to:(k.M-l)do~u~hcqueuc~roupin~
: ~ ~ 3 0 : ~ Ne~ . O
N~tPL . No ~e tPt + Ne~ctPojn~i]
: Ne~t = Neare~M
WO 93/01670 ~ PCI'/US92/04563 ' 123~1 16 r(i~ 1) do di~t . di~t ~ (NextPbint lil - Ne~*t) ~ 2 , ~i~
Ne~ueueGroup . k 0 At ~ stage th6 next queue group i~ found N [Neo~tQueueGroup] . N [NextQueueGro~p~ - 1 Wrrl~ble l.j] e NextQueueGroup CurrentPobnt INextQueue{~roup] ~Y
Current Point lN~xtQueuaGroup] ~
1 5 ffP~intlNgxtQueueGroup]
+ N~i~ INex~p]
) e~d 2~) Th~ scan :table of the~ present invention is constructed from the intermediate WRR table by~substituting ~ntries for the actual queues to be~served, aceording to the HOLP
discipline in the present exemplary embodiment, for entries 2:5 cor~spQndin~ to~queue ~roups. In the prefer~d embodiment, the~ intermediate~ WRR: table construction is not needed xpli~itly; it may: ~be ~ombined, wh~re ~desired, with cQnstruction of~:the scan table. In thi~ embodiment, for each : entry in the WRR table (t~gged entry), Qll:~s of:~that queue group 30 are substituted in a HOLP order, and:then ~he QlDs of all r~maining queue groups in an order of the queue group's appearance in the~ WRR table. Last row entries are determined utilizing :J ~: [(1+1)-No]mod~ Ts~ where I is the index of the u~ue group in the~ WRR ~table :~that the: de~ueueing process 35~ ~ should serve next if no packet is f~und in the tagged queue :
WO 93/01670 2 1 1 2 3 ~ 1 PCI`/US92/04563 ~
group, and J is the last row entry in the scan table. This process is repeated for each entry of the intermediate WRR
table. An exemplary pseudocode for computing a scan table in accordance with the present invention based on an 5 intermediate WRR table is set forth below:
S~
Comput~ the ~n table fro~n tJ WM TABLE. 'rne ~n t~ble i~ umed to be ~ n ~y of en~ ~t h-v~ two fieldl~ e0ch - the QID ~nd l~e index f~r the next ~cl n.
1 0 InputJ T Lengt~ofWE~RT~
Wnl~ble[ 1 M Totel number of queue group~
- NumOfQueued 1 Number of queues in group 1 ]
Nq Totd number of queue~
QID [ 1 t ] Qmlillld ~ ID of ~h queue in group i Ou~pub ~ Salffl~e t 1 : ~ We first define a function that is used by the routine to ~: insert QlDs of a ~queue~ group into the scan table once the inde~c for the nest scan i8 computed. The routine itself follows the function 2 0 def~nition.
p: ~ (GroupId, group to insert N-~nlnd, :; ~ Curr~n, ptr. to alrr. po~n. in &anT~ble 2 5 ; ~ , NumOfQueue~, Q~, Groupln~ert~
: for~ to:Ij~NumOfQueuefltGroupIdl ) do &anT~le lCurrPo~nl . QIl) ~ Q~ lGroupIdl tj]
n~ ~ . Na~nlndex ~NextScanlndex ~: ~ : 3 0 0~ . C~
~, Grouplnerte~ tC~iupItl = true - ~sumc~ ~ num~ered 1, . . ., M
~nd ~ ~ :
W~ 93/01670 ~ '-' PCr/US92/04563 21.1.fJ3~3~1 18 ~nCo~puto~nT bl~
1~ . T s Nq C~TPo~m ~ O We begin with the IJt Jcan tobleen~ry for(i cO) to ~i~T-1) dd iJ the WrrTablein~
f~r (k.0) to (ks~M~1) do Gloupln~0rted lk] 0 KoepJ trach of gr~upa inJerted 1 0 Now inJert the queue group in Wrrrable [il NextS~nIndex . ( (i~ Nq) modTs ~Group ( WrrT~le ti], NextScanlndex, Cu~TPo~n, S~nTa~le, NumOf~ueue~, QID, GroupIn~d) 1 5 NumOf~rpdn~erted ~ 1 Cour~s numberofqueue~roups inJerted for WrrTable [i]
+1) ~odT 5~h Wrrra~le)';om next entry o ~wards NumOfarpl~In~erted ~ M) NextGroupFound~0 ~hilonot(N~ pFoDnd) i if (~rT~o tj] ~: W*Ta~le W ) 2~5 ~ j . (j+1) o~lTS~upouerrepea~ofqueuegr~up NextGroupFound=true : ~ ~ NextS~nlndex~ 1) t'Nq) ~odT~
: ~: ::
. .
WO ~3/01670 J ~i l 2 1 1 2 3 ~ ~ PCl~/US92/04563 ~ , In-ertG~>up ( WnTable li], Nex~tex, Cu~TPa~n, 8~snlbb~e, NlunOfQueues, ~D, ~p~ ) ,, ) NumOf~rpsIn~erted = NumOf~rpdn~rtet ~1 1 0 Go on to the next entry in the WrrTable ~d 1 S , ~ :
The dequeueing process utilizes the scanning table to implement a:queueing discipline. The foliowing exemplary embodiment :~mploys~ an exemplary pseudooode~ provlding for the scan table~:~to~bs stored as:an array (ScanTable) of entries,' : ~ 20 typical!y in a~RAM,; where each~ entry has two fields~ A first fi~ld of the entry is, a:~alD snd a second~ fi~1d is; an ind~x of the entry in the array~the~dequeue process should~begin scanning from in a :next~scan~ it~:a packet~ is ~found in that QID ~next scan .index ~or~: jump~ Index).: I t: is assumed that the dequeue process 25 ~gets~a signal~whenever a buffer on an output port is available, at:~which~ time~ :the:~ d~queue process: ~moves a packet from the output~ queues,~to~ the~ buffer and:~ executes: the fQIIOWjn9 ps~u~ocode.: '~ ~Assume~::that, the variable~ Curre~ntEntry contains ' the' ~ array ~i~x':~ of: the ScanTablê if rom ~ which:~ the scan must ,, 30 begln,~ the variable QueueLan (QlDj contains the currént'qu~ue len~gth of ~thè`~qûéue~with~:lD'~QlD: and watermarh~ (qid,dp) returns 'the threshold::~for:'idiscarding a~ packet with discard priority dp when dequ~ued~ ~trom~a queue with ID OID. Departure time : discarding is utilized~ in this exemplary~:description.
WO ~3/0~670 ! . PCI/US92/04563 ' 3 ~ ~
~ 1 20 An exemplary pseudocode for utilizing a scan table is set forth below:
b~
.
Cun~ntEnt~y . O
dofor~ver ( ~n _dCu~entEntryl.QID
~tQueueEmpt3~(QID) (Cun~tEntry - lCurr~ntEnely ~ 1]) modl~ -d~
' ' I
~ ~ ~ FetchP~cket~QID,OutputBuffor) cremontQu~uel.ength(QII)) QuowLon(QIDhl > wd~ rk(QID,dp)) Di~c~rd P~cket ~i~D(QIDhl ~ ark(QID,dp i: a case~of very~high-speed trunks, :a pac~et transmlsslon 3 0 time may be ~mall enough: that interleaving pad~ets may not be an i mp rtant consideration.~ Thus, a larger number of packets may be ~d~-out of:~e~:~qùeues~thout ca~ing~ex~ssive~ Jitter. In such e~, it jB desir~a~ble~to pull out as~many packets as possible (up to a ~determined upper limit) when a~ q~e is~ visited so 1 hat the per 3 5 ~ ~ packet~ number of visits to a quelfe ma~y be~ decreased.
~: : : : : ::
:: : :
:
WO 93~'01670 `~ PCI'/US92/04563 2 1 ~ ,J 3 ~ ~
To implement ~uch an embodiment of the pre~ent inven~on, t~e ~ table compn~es a simple list of the queue group8 with a li6t of QIDB and a ma~imum number of packets that can be pulled out from the queue group. ThU8, the dequeue proce86 Vl8it8 ea~h group in 5 turn and pulls out at mo~t Ni packets f~om queue group i, startin~ from a hi~hest priority queue and successively examinin~ a next lower priority queue in a case where there a~ no packets in a current queue being examined. In implementing this exemplary embodiment, N~'s are computed 10 as described above. Then, Jj is selected to be a ma~unum jitter in units of bits that may be removed from service of queue group i. Where Nj violates a selected constraint:
Nj C~Jj 1fifj L
all Ni'S must be multiplied by a number Aj where AJ - Ji 1 i f j Lj Exemplary pseudocode for a very high-speed dequeueing embodiment of the present invention is outlined as follows:
b-~lln i, O Queue Group Index doforever ~ ~ :
: TransmittedPackets . 0 : ~ for(QlD~thighest priority: queue in group i) to (alD~bwest priority queue in group i)) whlle((packet in:queue QID) ~nd (TransmittedPackets S N[i~)) : FetchPacket(OlD, OutputBuffer) :DecrementaueueLength(QlD) - lt(QueueLen(CllD)~1 ~ watermark(lD,dp)) .-.
DiscardPacket : 3 5 TransmilPacket TransminedPacke~s ~ TransmittedPacke~s ~ 1 ) ~ ~ 4 0 .
WO 93/01670 PCI/US92/~4563 211,,3~1 22 ) . .
~nd Clearly, in one embodiment, illustrated in FIG. 8, numeral 800, the device of the present invention for implementing a high-rate queueing discipline in a fast packet network may be 10 selected to be used with a digital computer, and comprises at least a computer storage medium, for example, a memory (RAM) for a fast packet queue, having a computer program to be executed by the digital computer stored thereon, the computer comprising at least one of: a fast packet receiver and 1 5 ~ enqueuer (802j, ~operably coupled to~the receiver and a bus (804) enqueueing received ~fast packets; a fast packet dequeuer (810), operably coupled to~computer memory (806, 812) and a :: transmitter (808j, where desired, for determining at least a :: : first prioritization~ of fast packets: of at least two different ~: ~ 20 traffic classes~and~for~ generating a high-rate queueing discipline::(FAST PACKET DEQUEUER)(810) in a fast packet network,: typioally:~utilizing:: a precomputéd head-of-line-` priority and~ WRR based~ scan~ table stor~d in RAM (SCAN TABLE
RAM)-:(81:2),~wherein~that~high-rate queueing substantially 25 ~ determines~a~:scan~ table-based ~bandwWth allocated for each traffi¢ class,~:~that~high-rate queueing~ being obtained substàntially: as~;described~ above.~ It~ is:also clear that the entir~ method of~:thè~present invention~may be embodied in a computer;~progràm~:stored on:a computer storage medium (not 30 shown),~;to~ exèc~d~by:: a; digital computer, the computer program 'comp~rising~ at 'least~ a`first un~it for receiving at least '~ two different traffic~ classès; and a second unit, operably coupled~ to ~the~first~unit,; for determining at least a first `
: priorltization~:of~fàst~ packets~:~of at least two different traffic 35 ~classes~and~for~genèrating:~a~high-rate~queuein~disciplineir)a fast packet network utilizing,~ for example, one of: a ~:::: : :
WO 93/0~670 2 :1 1 2 3 ~ 1 Pcr/usg2/o4s63 precomputed head-of-line-priority scan table, weighted round-robin scan table, and a combined precomputed head-of-line-priority and weighted round-robin based scan table stored in RAM, wherein that high-rate queueing substantiall~
S determines a scan table-based bandwidth allocated for each traffic class. Where desired, a transmitter may be operably coupled to the second unit for transmitting prioritized traffic class fast packets in allocated bandwidths. The at least first prioritization may be selected to comprise, for example, a 10 head-of-line prioritization.
In one embodiment, a device for performing a high-rate trunk queueing discipline for a fast packet network having different traffic classes in accordance with the present invention, described more particularly above, comprises: at 15 least a first input receiver, operably coupled to a fast packet network, for receiving first traffic class fast packets from a plurality of first sources; at least a first prioritizer, operably coupled to th~ at least first input receiver, for prioritizing at least some of the first traffic class fast packets pursuant to a - 20 first prioritization method fof transmission; at least a second - input receiver,~operably coupled to the fast packet network, ~for receiving second traffic class fast packets from a plurality of second sources, which second traffic class is different from the ~first traffic class; at least a second 25 prioritizer, operably coupled to the at least second input receiver, for prioritizing at least some of the second traffic class fast packets for trahsmission pursuant to a second prioritization method~that is~ different from the first --r~i ~ prioritization ~method;~and~a~ scan table-based dequ~uer, 30 operably coupled at least to the first prioritizer and the second prioritizer, ~ for ~ scan table-based dequeueing and transmission of at least the~first and second traffic class fast :~ packets. The scan table-based dequeuer typically comprises at least a precomputed head-of-line-priority and weighted WO 93/01670 ` ` PCr/US92/04563 1 ~ 3 t31 1 r round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially deterrnining bandwidth allocation for queues as set forth more particularly above.
The device may ~urther include at least a third input receiver, operabl~ coupled to the fast packet network, for receiving third traffic class fast packets from a plurality of third sources, which third traffic class is differont from the first and second traffic classes; and at least a third prioritizer, operably eoupled to the at least third input receiver, for prioritizing at least some of the third traffic class fast packets for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods. The scan table-based dequeuer is then further coupled to the at least third prioritizer, for scan table-based~ dequeueing:and transmission of at least the first, second, and third traffic class fast packets. The first prioritizer may be:selected to comprise a head-of-line :prioritizer. Also the second prioritizer may be selected to :: 20 include a packet select discarder, wherein the packet seleetdiscarder typically: includes a~discard priority selector for comparing a discard: priority for a selected fast packet of a selected fast packet queue with queue depth of at least one :: fast packet queue.: The third prioritizer may be selected to 2 5 comprise a head-of-line prioritizer.
In~another~embodiment, the scan table-based dequeuer may ~function~at least~ ~as. a scan table-based bandwidth .
::: allocator,::.operably~ eoupled to at least the first.:prioritizer and second prioritizer, ;~ for~: substantially obtaining . a ~ scan table-based bandwidth. allocation for prioritized traffic ctass fast packets, wherein~ typically;:the scan table-based bandwidth allocator compnses. at least- a precomputed head-of-line-: priority and weighted~ round-robin based scan table, operably : coupled at least to ~the first prioritizer and the second W O 93/01670, ; PC~r/US92/04563 2~ 123~1 prioritiz~r for substantially determining bandwidth allocation for selected queues. A transmitter may be operably coupled to the scan table-based bandwidth allocator for transmitting prioritized traffic class fast packets in allocated b~ndwidths. :
S The device of the present invention may be incorporated in a multiplexer, if desired. Alternatively, the device of the present invention may be incorporated in a packet switch, if desired.
In one embodiment the present invention may be utilized in one of: a multiplexer and a packet switch, wherein CBO, digitized speech, and framed data packets are processed, the device comprising at least: a:first receiver, operably coupled to the fast packet network, for receiving substantially continuous bit-rate fast packets from a plurality of first sources; a first prioritizer, operably coupled to the first receiver, tor prioritizing at least some of the substantially continuous bit-rate fast packets~ pursuant to a first prioritization method: for transmission;~ a second receiver, operably coupled~ to:the fast packet ~network, for receiving sp~ech fast packets from a plurality of:second sources; a second prioritizer, operably coupled ~to the second receiver, for prioritizing at least some of: the speech fast packets pursuant :: to a second prioritization~: method~for transmission; a t hird - :recèiver, operably coupled:to:the:fast~packet network, for 2 5 ~ receiving fram*d data:~ fàst packets~ from. plurality of third sources;~a~third:prioritizer,~operably coupled to the third receiver, for. prioritizing at least som=e of the~ framed data fast packets~ pursuant to a-third ~prioritization method for - transmission;and:a;~:scan~table-based~dequeuerj operably 30 coupled at least to;-first~ prioritizer,-the second prioritizer, and the-third~prioritizer,~to provide scan table-based ~ dequeueing and transmission of: the ~prioritized~ fast ~ packets. As above, the ~ scan table-based~ dequeuer :typically comprises at least a ;. precomputed head-of-iine-priority and weighted round-robin ~:
:
WO 93/01670 P~/US92/04563 ~ 5 1 ~ 3 ~
based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues. Also, the first prioritizer may be selected to comprise a head-of-lin~
5 prioritizer, and the third prioritizer to comprise a head-of-line prioritizer, as desired. Typically at least some of the di~itized speech fast packets include discard priority information, and the second prioritizer includes at least a packet discarding protocol to utilize the discard priority 10 information to identify packets to discard.
In one embodiment the device of the present invention may be utilized, for example, in on~e of: a multiplexer and a packet switch, to ~process at ~east two of: substantially continuous bit-rate fast packets from a plurality of first 15 sources, framed data fast packets from plurality of second sources, and digitized speech fast packets from a plurality of third sources.
In an altered embodiment, the device of the present invention may be selected to comprise at least: a first 20 receiver, operably~coupled to the fast packet network, for recoiving continuous~ bit-rate fast packets from a plurality of first sources; first storaç~e meansj operably coupled to the first receiver, for~ ~ storing at least some of the substantially continuous bit-rata~ fast packets in at least a first queue and a 25 second queue; a~ first prioritizer, operably eoupled to the first storage means, for;prioritizing at least some of the substantially continuous~bit-rate fast packets as stored in the at least first and second~queues ~pursuant to a first prioritization method~ ~for transmission; a~ second receiver, 30 - operably coupled-to the~ fast packet network, for receiving digitized speech fast packets from a plurality of third sources;
a second prioritizer,~ ~operably coupled~ to the second receiver, for discarding at least sorne of the digitized speech fast packets from time to time pursuant to a packet discarding WO 93/0~670 - PCr/US92/04563 protocol, to provide digitized speech fast packets for transmission; a third receiver, operably coupled to the fast packet network, for receiving data fast packets from a plurality of second sources; second storage means, operably 5 coupled to the third receiver, for storing at least some of the framed data fast packets in at least a third queue and a fourth queue; a third prioritizer, operably coupled to the second storage means, tor prioritizing at least some of the framed data fast packets as stored in the at least third and fourth 10 queues pursuant to a third prioritization method for -transmission; and a scan table-based dequeuer, operably coupled at least to first prioritizer, the second prioritizer, and the third prioritizer, to provide scan table-based dequeueing and transmission of at least substantially continuous bit-rate 15 fast packets, digitized speech:fast packets, and framed data fast packets utilizing ;at least: a precomputed head-of-line-priority and weighted round-robin based scan table scan table-based bandwidth allocation. The scan table-based dequeuer includes a precomputed~ head-of-lin~-priority and weighted 20 round-robin based scan ~table stored in a memory ~RAM) device.
In this embodiment the substantially continuous bit-rate fast packets are stored in the: first queue and the second queue as a function in part of a ~packetization time of CBO sources, the substantially continuous .bit-rate :fast packets from 25 :sources having a relativ~ly: small packetization time are stored in the first queue, and the fast packets having a relatively large.packetization time are stored in the second : queue. The -substantially: continuous bit-rate fast packets from sources with relativelg: medium packetization times are 30 typically stored in additional queues that are served via HOLP
with the first and: second queues. For the framed data fast packets, the third queue and the fourth queue for storage are determined as a function,. at least: in part, of the burst size of Lne framed da~a sources, the third queue beîng utilized for Wo 93/01670 Pcr/uss2/o~s63 21123~1 ~8 storage of fast packets from sources having a relatively small burst size, and the fourth queue being utilized for storage of fast packets from sources having a relatively lar~e burst size.
Relatively medium burst sizes are typically stored in 5 additional queues that are served via HOLP with the third and fourth queues.
The method of the present invention, illustrated in FIG. 9, numeral 900, comprises steps for performing a high-rate trunk queueing discipline for a fast packet network having 10 different traffic classes. The method includes steps of:
receiving first traffic class fast packets from a plurality of first sources (902); prioritizing at least some of the first traffic class fast packets pursuant to a first prioritization method for transmission (904); receiving second traffic class 15 fast packets from a plurality of second sources, which second traffic class is different from the first traffic class (906);
prinritizing at least some of the second traffic class fast packets for transmission pursuant to a second prioritization method that is different from the first prioritization method 20 (908); and scan table-based dequeueing and transmitting, - wt~ere desired, at least the first and second traffic class fast packets (910). Hybrid queueing includes at least a step of utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantia!ly determining 25 ~bandwidth allocation~for queues, described more fully above.
The scan table-based dequeuer may be selectèd, where -desired, to include~ a precomputed~ head-of-line-priority and :
weighted round-robin based scan~table stored in a memory (RAM)~ device.~
The method may be; selected such that at least the first ~prioritization method includes a head-of-line prioritization - method and the second prioritization method includes a packet discarding protocol. Typically, as above, the packet discarding protocol includes the step of comparing a discard priority for a :
WO 93/01670 2 1 1 ~ 3 '~ 1 PCl'/US92/04563 selected fast packet of a selected fast packet queue with queue depth of at least one fast packet queue.
The method clearly may be implemented, with variations as desired, for any selected number of different traffic 5 classes, as is apparent from the above description of the device of the present invention, without departing from the invention. Although fast packets are described more fully above, it is clear that other information packets may be utilized in the present invention. Also, although exemplary 10 embodiments of the invention and of pseudocode in accordance with the present invention are described above, it will be obvious to those skilled in the art that many alterations and modifications may be made without departing from the invention. Such modifications may include different 15 prioritization methods to gain speed and other advantages.
Accordingly, it is intended that all such alterations and modifications be included within the spirit and scope of the invention as defined in the appended claims.
.
: ~ :
::
~i':.. ~.?'' '
Claims (10)
1. (Amended) A device for implementing queueing disciplines at high speeds for a network having different traffic class information, comprising:
(A) at least a first input receiver, operably coupled to a network, for receiving first traffic class information from a plurality of first sources;
(B) at least a first prioritizer, operably coupled to the at least first input receiver, for prioritizing at least some of the first traffic class information pursuant to a first prioritization method for transmission;
(C) at least a second input receiver, operably coupled to the information network, for receiving second traffic class information from a plurality of second sources, which second traffic class is different from the first traffic class;
(D) at least a second prioritizer, operably coupled to the at least second input receiver, for prioritizing at least some of the second traffic class information for transmission pursuant to a second prioritization method that is different from the first prioritization method;
(E) a scan table-based dequeuer, operably coupled at least to the first prioritizer and the second prioritizer, for scan table-based dequeueing and transmission of at least the first and second traffic class information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
(A) at least a first input receiver, operably coupled to a network, for receiving first traffic class information from a plurality of first sources;
(B) at least a first prioritizer, operably coupled to the at least first input receiver, for prioritizing at least some of the first traffic class information pursuant to a first prioritization method for transmission;
(C) at least a second input receiver, operably coupled to the information network, for receiving second traffic class information from a plurality of second sources, which second traffic class is different from the first traffic class;
(D) at least a second prioritizer, operably coupled to the at least second input receiver, for prioritizing at least some of the second traffic class information for transmission pursuant to a second prioritization method that is different from the first prioritization method;
(E) a scan table-based dequeuer, operably coupled at least to the first prioritizer and the second prioritizer, for scan table-based dequeueing and transmission of at least the first and second traffic class information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
2. The device of claim 1, wherein at least one of (2A) -(2B):
(2A) the scan table-based dequeuer comprises at least a queueing discipline based table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, such that, for (2A), where selected, the queueing discipline-based table comprises one of:
(2A1) a precomputed head-of-line queueing based scan table, (2A2) a weighted round robin queueing based scan table, and (2A3) a scan table based on a combination of precomputed head-of-line queueing and weighted round robin queueing, (2B) further including:
(2B1) at least a third input receiver, operably coupled to the information network, for receiving third traffic class information from a plurality of third sources, which third traffic class is different from the first and second traffic classes, and (2B2) at least a third prioritizer, operably coupled to the at least third input receiver, for prioritizing at least some of the third traffic class information for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods, wherein, where selected, at least one of:
(2B3) the scan table-based dequeuer is further coupled to the at least third prioritizer, for scan table-based dequeueing and transmission of at least the first, second, and third traffic class information, (2B4) the first prioritizer comprises a head-of-line prioritizer, (2B5) the second prioritizer includes a packet select discarder, wherein, for (2B5), where selected, the packet select discarder includes a discard priority selector for comparing a discard priority for a selected information of a selected information queue with queue depth of at least one information queue, and (286) the third prioritizer comprises a head-of-line prioritizer.
PCT/US92/04???
(2A) the scan table-based dequeuer comprises at least a queueing discipline based table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, such that, for (2A), where selected, the queueing discipline-based table comprises one of:
(2A1) a precomputed head-of-line queueing based scan table, (2A2) a weighted round robin queueing based scan table, and (2A3) a scan table based on a combination of precomputed head-of-line queueing and weighted round robin queueing, (2B) further including:
(2B1) at least a third input receiver, operably coupled to the information network, for receiving third traffic class information from a plurality of third sources, which third traffic class is different from the first and second traffic classes, and (2B2) at least a third prioritizer, operably coupled to the at least third input receiver, for prioritizing at least some of the third traffic class information for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods, wherein, where selected, at least one of:
(2B3) the scan table-based dequeuer is further coupled to the at least third prioritizer, for scan table-based dequeueing and transmission of at least the first, second, and third traffic class information, (2B4) the first prioritizer comprises a head-of-line prioritizer, (2B5) the second prioritizer includes a packet select discarder, wherein, for (2B5), where selected, the packet select discarder includes a discard priority selector for comparing a discard priority for a selected information of a selected information queue with queue depth of at least one information queue, and (286) the third prioritizer comprises a head-of-line prioritizer.
PCT/US92/04???
3. (Amended) A device for performing a high-rate trunk queueing discipline for different traffic classes in a fast packet network, comprising:
(A) at least a first receiver and a second receiver, each operably coupled to the fast packet network, each for receiving traffic information for a separate traffic class;
(B) at least a first prioritizer and a second prioritizer, each operably coupled to the at least first receiver and second receiver, respectively, each for prioritizing at least some of the received traffic class information for transmission pursuant at least to a first prioritization method and a second, different from the first, prioritization method; and (C) a scan table-based bandwidth allocator, operably coupled to at least the first prioritizer and second prioritizer, for substantially obtaining a scan table-based bandwidth allocation for prioritized traffic class information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
(A) at least a first receiver and a second receiver, each operably coupled to the fast packet network, each for receiving traffic information for a separate traffic class;
(B) at least a first prioritizer and a second prioritizer, each operably coupled to the at least first receiver and second receiver, respectively, each for prioritizing at least some of the received traffic class information for transmission pursuant at least to a first prioritization method and a second, different from the first, prioritization method; and (C) a scan table-based bandwidth allocator, operably coupled to at least the first prioritizer and second prioritizer, for substantially obtaining a scan table-based bandwidth allocation for prioritized traffic class information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
4. The device of claim 3, wherein at least one of (4A)-(4C):
(4A) the scan table-based bandwidth allocator comprises at least an allocator utilizing a queueing discipline based table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, such that, for (4A), where selected, the queueing discipline-based table comprises one of:
(4A1) a precomputed head-of-line queueing based scan table, (4A2) a weighted round robin queueing based scan table, and (4A3) a scan table based on a combination of precomputed head-of-line queueing and weighted round robin queueing, (4B) further including a transmitter operably coupled to the scan table-based bandwidth allocator for transmitting prioritized traffic class information in allocated bandwidths, and (4C) wherein:
(4C1) at least the first prioritizer comprises a head-of-line prioritizer, and (4C2) the scan table-based bandwidth allocator comprises at least a precomputed head-of-line-priority and weighted round-robin and head-of-line-priority based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for selected queues.
(4A) the scan table-based bandwidth allocator comprises at least an allocator utilizing a queueing discipline based table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, such that, for (4A), where selected, the queueing discipline-based table comprises one of:
(4A1) a precomputed head-of-line queueing based scan table, (4A2) a weighted round robin queueing based scan table, and (4A3) a scan table based on a combination of precomputed head-of-line queueing and weighted round robin queueing, (4B) further including a transmitter operably coupled to the scan table-based bandwidth allocator for transmitting prioritized traffic class information in allocated bandwidths, and (4C) wherein:
(4C1) at least the first prioritizer comprises a head-of-line prioritizer, and (4C2) the scan table-based bandwidth allocator comprises at least a precomputed head-of-line-priority and weighted round-robin and head-of-line-priority based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for selected queues.
5. (Amended) A device in a multiplexer for performing a high-rate trunk queueing discipline for different traffic classes in an information network, comprising at least:
(A) a first receiver, operably coupled to the information network, for receiving substantially continuous bit-rate information from a plurality of first sources;
(B) a first prioritizer, operably coupled to the first receiver, for prioritizing at least some of the substantially continuous bit-rate information pursuant to a first prioritization method for transmission;
(C) a second receiver, operably coupled to the information network, for receiving speech information from a plurality of second sources;
(D) a second prioritizer, operably coupled to the second receiver, for prioritizing at least some of the speech information pursuant to a second prioritization method for transmission;
(E) a third receiver, operably coupled to the information network, for receiving framed data information from plurality of third sources;
(F) a third prioritizer, operably coupled to the third receiver, for prioritizing at least some of the framed data information pursuant to a third prioritization method for transmission; and (G) a scan table-based dequeuer, operably coupled at least to first prioritizer, the second prioritizer, and the third prioritizer, to provide scan table-based dequeueing and transmission of the prioritized information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
(A) a first receiver, operably coupled to the information network, for receiving substantially continuous bit-rate information from a plurality of first sources;
(B) a first prioritizer, operably coupled to the first receiver, for prioritizing at least some of the substantially continuous bit-rate information pursuant to a first prioritization method for transmission;
(C) a second receiver, operably coupled to the information network, for receiving speech information from a plurality of second sources;
(D) a second prioritizer, operably coupled to the second receiver, for prioritizing at least some of the speech information pursuant to a second prioritization method for transmission;
(E) a third receiver, operably coupled to the information network, for receiving framed data information from plurality of third sources;
(F) a third prioritizer, operably coupled to the third receiver, for prioritizing at least some of the framed data information pursuant to a third prioritization method for transmission; and (G) a scan table-based dequeuer, operably coupled at least to first prioritizer, the second prioritizer, and the third prioritizer, to provide scan table-based dequeueing and transmission of the prioritized information, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
6. The device of claim 5, wherein at least one of (6A)-(6C):
(6A) the scan table-based dequeuer comprises at least a precomputed head-of-line-priority and weighted round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, (6B) at least one of:
(6B1) the first prioritizer comprises a head-of-line prioritizer, and (6B2) the third prioritizer comprises a head-of-line prioritizer, and (6C) at least some of the digitized speech information includes discard priority information, and wherein the second prioritizer includes at least a packet discarding protocol to utilize the discard priority information to identify packets to discard.
(6A) the scan table-based dequeuer comprises at least a precomputed head-of-line-priority and weighted round-robin based scan table, operably coupled at least to the first prioritizer and the second prioritizer for substantially determining bandwidth allocation for queues, (6B) at least one of:
(6B1) the first prioritizer comprises a head-of-line prioritizer, and (6B2) the third prioritizer comprises a head-of-line prioritizer, and (6C) at least some of the digitized speech information includes discard priority information, and wherein the second prioritizer includes at least a packet discarding protocol to utilize the discard priority information to identify packets to discard.
7. (Amended) A method of performing a high-rate trunk queueing discipline for a fast packet network having different traffic classes, comprising the steps of:
(A) receiving first traffic class fast packets from a plurality of first sources;
(B) prioritizing at least some of the first traffic class fast packets pursuant to a first prioritization method for transmission;
(C) receiving second traffic class fast packets from a plurality of second sources, which second traffic class is different from the first traffic class;
(D) prioritizing at least some of the second traffic class fast packets for transmission pursuant to a second prioritization method that is different from the first prioritization method;
(E) scan table-based dequeueing and transmitting at least the first and second traffic class fast packets, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
(A) receiving first traffic class fast packets from a plurality of first sources;
(B) prioritizing at least some of the first traffic class fast packets pursuant to a first prioritization method for transmission;
(C) receiving second traffic class fast packets from a plurality of second sources, which second traffic class is different from the first traffic class;
(D) prioritizing at least some of the second traffic class fast packets for transmission pursuant to a second prioritization method that is different from the first prioritization method;
(E) scan table-based dequeueing and transmitting at least the first and second traffic class fast packets, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
8. The method of claim 7, wherein at least one of (8A)-(8C):
(8A) the step of scan table-based dequeueing comprises at least a step of utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for queues, (8B) further including the steps of:
(8B1) receiving third traffic class fast packets from a plurality of third sources, which third traffic class is different from the first and second traffic classes, and (8B2) prioritizing at least some of the third traffic class fast packets for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods, such that, where selected, the third prioritization method includes a head-of-line prioritization method, and (8C) the first prioritization method includes a head-of-line prioritization method, and, where selected, at least one of:
(8C1) the second prioritization method includes a packet discarding protocol, and (8C2) the packet discarding protocol includes the step of comparing a discard priority for a selected fast packet of a selected fast packet queue with queue depth of at least one fast packet queue.
PCT/?S92/04563
(8A) the step of scan table-based dequeueing comprises at least a step of utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for queues, (8B) further including the steps of:
(8B1) receiving third traffic class fast packets from a plurality of third sources, which third traffic class is different from the first and second traffic classes, and (8B2) prioritizing at least some of the third traffic class fast packets for transmission pursuant to a third prioritization method that is different from the first and second prioritization methods, such that, where selected, the third prioritization method includes a head-of-line prioritization method, and (8C) the first prioritization method includes a head-of-line prioritization method, and, where selected, at least one of:
(8C1) the second prioritization method includes a packet discarding protocol, and (8C2) the packet discarding protocol includes the step of comparing a discard priority for a selected fast packet of a selected fast packet queue with queue depth of at least one fast packet queue.
PCT/?S92/04563
9. (Amended) A method for performing a high-rate trunk queueing discipline for different traffic classes in a fast packet network, comprising the steps of:
(A) receiving differing traffic class fast packets;
(B) prioritizing at least some of the fast packets for transmission as a function, at least in part, of a first prioritization method; and (C) selecting at least some of the prioritized fast packets for transmission as a function, at least in part of a scan table-based bandwidth allocation method, different from the first prioritization method, to provide queued prioritized traffic class fast packets, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
(A) receiving differing traffic class fast packets;
(B) prioritizing at least some of the fast packets for transmission as a function, at least in part, of a first prioritization method; and (C) selecting at least some of the prioritized fast packets for transmission as a function, at least in part of a scan table-based bandwidth allocation method, different from the first prioritization method, to provide queued prioritized traffic class fast packets, such that delay jitter for packets of different traffic types is controlled and quality of service is matched to predetermined requirements.
10. (Amended) The method of claim 9, wherein at least one of the following (10A)-(10C) steps is selected :
(10A) utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for selected queues for the scan table-based bandwidth allocation method, (10B) transmitting prioritized traffic class fast packets in allocated bandwidths, and (10C) utilizing a head-of-line prioritization method for the first prioritization method, and utilizing at least a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for selected queues for the scan table-based bandwidth allocation method.
(10A) utilizing a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for selected queues for the scan table-based bandwidth allocation method, (10B) transmitting prioritized traffic class fast packets in allocated bandwidths, and (10C) utilizing a head-of-line prioritization method for the first prioritization method, and utilizing at least a precomputed head-of-line-priority and weighted round-robin based scan table for substantially determining bandwidth allocation for selected queues for the scan table-based bandwidth allocation method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US726,065 | 1991-07-05 | ||
US07/726,065 US5268900A (en) | 1991-07-05 | 1991-07-05 | Device and method for implementing queueing disciplines at high speeds |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2112361A1 true CA2112361A1 (en) | 1993-01-21 |
Family
ID=24917085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002112361A Abandoned CA2112361A1 (en) | 1991-07-05 | 1992-06-01 | Device and method for implementing queueing disciplines at high speeds |
Country Status (5)
Country | Link |
---|---|
US (1) | US5268900A (en) |
EP (1) | EP0593534A4 (en) |
AU (1) | AU652469B2 (en) |
CA (1) | CA2112361A1 (en) |
WO (1) | WO1993001670A1 (en) |
Families Citing this family (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE137626T1 (en) * | 1992-01-30 | 1996-05-15 | Siemens Ag | METHOD FOR LIMITING THE RATE OF MESSAGE CELLS OF A VIRTUAL CONNECTION |
AU4821993A (en) * | 1992-10-05 | 1994-04-26 | Nokia Telecommunications Oy | Method for interconnecting local area networks or network segments and a local area network bridge |
US5546391A (en) * | 1993-03-04 | 1996-08-13 | International Business Machines Corporation | Central shared queue based time multiplexed packet switch with deadlock avoidance |
US5691975A (en) * | 1993-03-12 | 1997-11-25 | Fujitsu Limited | Method and apparatus for control in ATM |
US5933607A (en) * | 1993-06-07 | 1999-08-03 | Telstra Corporation Limited | Digital communication system for simultaneous transmission of data from constant and variable rate sources |
JP3507524B2 (en) * | 1993-06-21 | 2004-03-15 | 富士通株式会社 | Data processing system with event report word processing function |
US5359592A (en) * | 1993-06-25 | 1994-10-25 | Stratacom, Inc. | Bandwidth and congestion control for queue channels in a cell switching communication controller |
EP0726002B1 (en) * | 1993-10-26 | 1999-03-03 | Nortel Networks Corporation | Digital telecommunication link for efficiently transporting mixed classes of packets |
US5528513A (en) * | 1993-11-04 | 1996-06-18 | Digital Equipment Corp. | Scheduling and admission control policy for a continuous media server |
JPH07183888A (en) * | 1993-12-24 | 1995-07-21 | Fujitsu Ltd | Atm multiplexing control system |
US5485455A (en) * | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5487061A (en) * | 1994-06-27 | 1996-01-23 | Loral Fairchild Corporation | System and method for providing multiple loss and service priorities |
US5553061A (en) * | 1994-06-27 | 1996-09-03 | Loral Fairchild Corporation | Packet processor having service priority and loss priority features |
US5515363A (en) * | 1994-06-30 | 1996-05-07 | Digital Equipment Corporation | Traffic shaping system with transmit latency feedback for asynchronous transfer mode networks |
US5724513A (en) * | 1994-06-30 | 1998-03-03 | Digital Equipment Corporation | Traffic shaping system for asynchronous transfer mode networks |
SE9403101L (en) * | 1994-09-16 | 1996-03-17 | Ericsson Telefon Ab L M | Procedure for customizing data flows |
EP0706297A1 (en) * | 1994-10-07 | 1996-04-10 | International Business Machines Corporation | Method for operating traffic congestion control in a data communication network and system for implementing said method |
US5592472A (en) * | 1994-10-27 | 1997-01-07 | Hewlett-Packard Company | High performance path allocation system and method for a fiber optic switch for a fiber optic network |
US5533020A (en) * | 1994-10-31 | 1996-07-02 | International Business Machines Corporation | ATM cell scheduler |
EP0717532A1 (en) * | 1994-12-13 | 1996-06-19 | International Business Machines Corporation | Dynamic fair queuing to support best effort traffic in an ATM network |
US5541919A (en) * | 1994-12-19 | 1996-07-30 | Motorola, Inc. | Multimedia multiplexing device and method using dynamic packet segmentation |
US5793978A (en) * | 1994-12-29 | 1998-08-11 | Cisco Technology, Inc. | System for routing packets by separating packets in to broadcast packets and non-broadcast packets and allocating a selected communication bandwidth to the broadcast packets |
US5867666A (en) * | 1994-12-29 | 1999-02-02 | Cisco Systems, Inc. | Virtual interfaces with dynamic binding |
US5675573A (en) * | 1995-03-22 | 1997-10-07 | Lucent Technologies Inc. | Delay-minimizing system with guaranteed bandwidth delivery for real-time traffic |
ZA965340B (en) | 1995-06-30 | 1997-01-27 | Interdigital Tech Corp | Code division multiple access (cdma) communication system |
JPH0936912A (en) * | 1995-07-14 | 1997-02-07 | Fujitsu Ltd | Buffer control system |
US5956342A (en) * | 1995-07-19 | 1999-09-21 | Fujitsu Network Communications, Inc. | Priority arbitration for point-to-point and multipoint transmission |
US6097718A (en) * | 1996-01-02 | 2000-08-01 | Cisco Technology, Inc. | Snapshot routing with route aging |
US6147996A (en) | 1995-08-04 | 2000-11-14 | Cisco Technology, Inc. | Pipelined multiple issue packet switch |
DE69635880T2 (en) | 1995-09-18 | 2006-10-05 | Kabushiki Kaisha Toshiba, Kawasaki | System and method for the transmission of parcels, suitable for a large number of entrance gates |
JP3545110B2 (en) * | 1995-09-26 | 2004-07-21 | 富士通株式会社 | Communication service quality control method |
US7246148B1 (en) | 1995-09-29 | 2007-07-17 | Cisco Technology, Inc. | Enhanced network services using a subnetwork of communicating processors |
US6182224B1 (en) | 1995-09-29 | 2001-01-30 | Cisco Systems, Inc. | Enhanced network services using a subnetwork of communicating processors |
US6917966B1 (en) | 1995-09-29 | 2005-07-12 | Cisco Technology, Inc. | Enhanced network services using a subnetwork of communicating processors |
US6091725A (en) | 1995-12-29 | 2000-07-18 | Cisco Systems, Inc. | Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network |
US6035105A (en) * | 1996-01-02 | 2000-03-07 | Cisco Technology, Inc. | Multiple VLAN architecture system |
US5870629A (en) * | 1996-03-21 | 1999-02-09 | Bay Networks, Inc. | System for servicing plurality of queues responsive to queue service policy on a service sequence ordered to provide uniform and minimal queue interservice times |
US6308148B1 (en) | 1996-05-28 | 2001-10-23 | Cisco Technology, Inc. | Network flow data export |
US6243667B1 (en) | 1996-05-28 | 2001-06-05 | Cisco Systems, Inc. | Network flow switching and flow data export |
US5938749A (en) * | 1996-06-03 | 1999-08-17 | Whittaker Communications Inc. | Queue measurement apparatus and methodology |
JPH104431A (en) * | 1996-06-17 | 1998-01-06 | Fujitsu Ltd | Scheduling device and method |
US6212182B1 (en) | 1996-06-27 | 2001-04-03 | Cisco Technology, Inc. | Combined unicast and multicast scheduling |
US6434120B1 (en) | 1998-08-25 | 2002-08-13 | Cisco Technology, Inc. | Autosensing LMI protocols in frame relay networks |
US6018527A (en) | 1996-08-13 | 2000-01-25 | Nortel Networks Corporation | Queue service interval based cell scheduler with hierarchical queuing configurations |
US6208655B1 (en) * | 1996-11-27 | 2001-03-27 | Sony Europa, B.V., | Method and apparatus for serving data |
US6304546B1 (en) | 1996-12-19 | 2001-10-16 | Cisco Technology, Inc. | End-to-end bidirectional keep-alive using virtual circuits |
US6023456A (en) * | 1996-12-23 | 2000-02-08 | Nortel Networks Corporation | Dynamic traffic conditioning |
US6028842A (en) * | 1996-12-23 | 2000-02-22 | Nortel Networks Corporation | Dynamic traffic conditioning |
US6098109A (en) * | 1996-12-30 | 2000-08-01 | Compaq Computer Corporation | Programmable arbitration system for determining priority of the ports of a network switch |
US5926458A (en) * | 1997-01-31 | 1999-07-20 | Bay Networks | Method and apparatus for servicing multiple queues |
KR100236036B1 (en) * | 1997-03-31 | 1999-12-15 | 전주범 | Method of discarding atm cells in an atm nic |
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 |
US6356530B1 (en) | 1997-05-23 | 2002-03-12 | Cisco Technology, Inc. | Next hop selection in ATM networks |
US6122272A (en) * | 1997-05-23 | 2000-09-19 | Cisco Technology, Inc. | Call size feedback on PNNI operation |
US6862284B1 (en) | 1997-06-17 | 2005-03-01 | Cisco Technology, Inc. | Format for automatic generation of unique ATM addresses used for PNNI |
US6542481B2 (en) | 1998-06-01 | 2003-04-01 | Tantivy Communications, Inc. | Dynamic bandwidth allocation for multiple access communication using session queues |
US6081536A (en) | 1997-06-20 | 2000-06-27 | Tantivy Communications, Inc. | Dynamic bandwidth allocation to transmit a wireless protocol across a code division multiple access (CDMA) radio link |
US6151332A (en) | 1997-06-20 | 2000-11-21 | Tantivy Communications, Inc. | Protocol conversion and bandwidth reduction technique providing multiple nB+D ISDN basic rate interface links over a wireless code division multiple access communication system |
US6078590A (en) | 1997-07-14 | 2000-06-20 | Cisco Technology, Inc. | Hierarchical routing knowledge for multicast packet routing |
EP0935369B1 (en) * | 1997-07-23 | 2012-05-02 | NTT DoCoMo, Inc. | Multiplex transmission system and band control method |
US6330599B1 (en) | 1997-08-05 | 2001-12-11 | Cisco Technology, Inc. | Virtual interfaces with dynamic binding |
US6011798A (en) * | 1997-08-15 | 2000-01-04 | Intel Corporation | Adaptive transmit rate control scheduler |
US6072800A (en) * | 1997-08-18 | 2000-06-06 | Nec Usa, Inc. | Weighted longest queue first adaptive scheduling discipline for ATM networks |
US6157641A (en) * | 1997-08-22 | 2000-12-05 | Cisco Technology, Inc. | Multiprotocol packet recognition and switching |
US6212183B1 (en) | 1997-08-22 | 2001-04-03 | Cisco Technology, Inc. | Multiple parallel packet routing lookup |
US6512766B2 (en) | 1997-08-22 | 2003-01-28 | Cisco Systems, Inc. | Enhanced internet packet routing lookup |
US5974467A (en) * | 1997-08-29 | 1999-10-26 | Extreme Networks | Protocol for communicating data between packet forwarding devices via an intermediate network interconnect device |
DE19737852C2 (en) * | 1997-08-29 | 2001-06-07 | Siemens Ag | Method and circuit arrangement for transmitting message units in message streams of different priority |
US6343072B1 (en) | 1997-10-01 | 2002-01-29 | Cisco Technology, Inc. | Single-chip architecture for shared-memory router |
US6404770B1 (en) * | 1997-12-02 | 2002-06-11 | Yamaha Corporation | Data communication interface with adjustable-size buffer |
US7570583B2 (en) | 1997-12-05 | 2009-08-04 | Cisco Technology, Inc. | Extending SONET/SDH automatic protection switching |
US7936728B2 (en) | 1997-12-17 | 2011-05-03 | Tantivy Communications, Inc. | System and method for maintaining timing of synchronization messages over a reverse link of a CDMA wireless communication system |
US7394791B2 (en) | 1997-12-17 | 2008-07-01 | Interdigital Technology Corporation | Multi-detection of heartbeat to reduce error probability |
US7496072B2 (en) | 1997-12-17 | 2009-02-24 | Interdigital Technology Corporation | System and method for controlling signal strength over a reverse link of a CDMA wireless communication system |
US9525923B2 (en) | 1997-12-17 | 2016-12-20 | Intel Corporation | Multi-detection of heartbeat to reduce error probability |
US6222832B1 (en) | 1998-06-01 | 2001-04-24 | Tantivy Communications, Inc. | Fast Acquisition of traffic channels for a highly variable data rate reverse link of a CDMA wireless communication system |
US6111877A (en) | 1997-12-31 | 2000-08-29 | Cisco Technology, Inc. | Load sharing across flows |
US6424649B1 (en) | 1997-12-31 | 2002-07-23 | Cisco Technology, Inc. | Synchronous pipelined switch using serial transmission |
US6853638B2 (en) | 1998-04-01 | 2005-02-08 | Cisco Technology, Inc. | Route/service processor scalability via flow-based distribution of traffic |
US6570876B1 (en) * | 1998-04-01 | 2003-05-27 | Hitachi, Ltd. | Packet switch and switching method for switching variable length packets |
US7773566B2 (en) | 1998-06-01 | 2010-08-10 | Tantivy Communications, Inc. | System and method for maintaining timing of synchronization messages over a reverse link of a CDMA wireless communication system |
US8134980B2 (en) | 1998-06-01 | 2012-03-13 | Ipr Licensing, Inc. | Transmittal of heartbeat signal at a lower level than heartbeat request |
US6920112B1 (en) | 1998-06-29 | 2005-07-19 | Cisco Technology, Inc. | Sampling packets for network monitoring |
US6370121B1 (en) | 1998-06-29 | 2002-04-09 | Cisco Technology, Inc. | Method and system for shortcut trunking of LAN bridges |
US6377577B1 (en) | 1998-06-30 | 2002-04-23 | Cisco Technology, Inc. | Access control list processing in hardware |
US6182147B1 (en) | 1998-07-31 | 2001-01-30 | Cisco Technology, Inc. | Multicast group routing using unidirectional links |
US6308219B1 (en) | 1998-07-31 | 2001-10-23 | Cisco Technology, Inc. | Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks |
US6389506B1 (en) | 1998-08-07 | 2002-05-14 | Cisco Technology, Inc. | Block mask ternary cam |
US6101115A (en) * | 1998-08-07 | 2000-08-08 | Cisco Technology, Inc. | CAM match line precharge |
US6246691B1 (en) * | 1998-08-14 | 2001-06-12 | Siemens Aktiengesellschaft | Method and circuit configuration for the transmission of message units in message streams of different priority |
US6374282B1 (en) | 1998-08-28 | 2002-04-16 | Compaq Computer Corporation | Method and apparatus for tracking multi-threaded system area network (SAN) traffic |
US6614781B1 (en) | 1998-11-20 | 2003-09-02 | Level 3 Communications, Inc. | Voice over data telecommunications network architecture |
US6442169B1 (en) | 1998-11-20 | 2002-08-27 | Level 3 Communications, Inc. | System and method for bypassing data from egress facilities |
US6967963B1 (en) * | 1998-12-01 | 2005-11-22 | 3Com Corporation | Telecommunication method for ensuring on-time delivery of packets containing time-sensitive data |
US6249756B1 (en) * | 1998-12-07 | 2001-06-19 | Compaq Computer Corp. | Hybrid flow control |
US6950428B1 (en) | 1998-12-30 | 2005-09-27 | Hewlett-Packard Development Company, L.P. | System and method for configuring adaptive sets of links between routers in a system area network (SAN) |
US6771642B1 (en) | 1999-01-08 | 2004-08-03 | Cisco Technology, Inc. | Method and apparatus for scheduling packets in a packet switch |
US6539026B1 (en) | 1999-03-15 | 2003-03-25 | Cisco Technology, Inc. | Apparatus and method for delay management in a data communications network |
US7065762B1 (en) | 1999-03-22 | 2006-06-20 | Cisco Technology, Inc. | Method, apparatus and computer program product for borrowed-virtual-time scheduling |
US6757791B1 (en) | 1999-03-30 | 2004-06-29 | Cisco Technology, Inc. | Method and apparatus for reordering packet data units in storage queues for reading and writing memory |
US6760331B1 (en) | 1999-03-31 | 2004-07-06 | Cisco Technology, Inc. | Multicast routing with nearest queue first allocation and dynamic and static vector quantization |
US6603772B1 (en) | 1999-03-31 | 2003-08-05 | Cisco Technology, Inc. | Multicast routing with multicast virtual output queues and shortest queue first allocation |
US6570877B1 (en) | 1999-04-07 | 2003-05-27 | Cisco Technology, Inc. | Search engine for forwarding table content addressable memory |
US6526034B1 (en) | 1999-09-21 | 2003-02-25 | Tantivy Communications, Inc. | Dual mode subscriber unit for short range, high rate and long range, lower rate data communications |
DE60016347T2 (en) * | 1999-09-22 | 2005-12-01 | Ntt Docomo Inc. | Gateway and data transmission method for delay jitter reduction |
US6728253B1 (en) | 1999-09-24 | 2004-04-27 | International Business Machines Corporation | Mixed queue scheduler |
US6285657B1 (en) * | 1999-09-28 | 2001-09-04 | Conexant Systems, Inc. | System and method of scheduling data cells based upon sustainable cell rate and peak cell rate over a variable bandwidth channel |
US6870814B1 (en) | 1999-10-12 | 2005-03-22 | Hewlett-Packard Development Company, L.P. | Link extenders with error propagation and reporting |
US6657960B1 (en) | 1999-11-23 | 2003-12-02 | International Business Machines Corporation | Method and system for providing differentiated services in computer networks |
US6674718B1 (en) | 2000-04-11 | 2004-01-06 | International Business Machines Corporation | Unified method and system for scheduling and discarding packets in computer networks |
US6484224B1 (en) | 1999-11-29 | 2002-11-19 | Cisco Technology Inc. | Multi-interface symmetric multiprocessor |
US6694149B1 (en) * | 1999-12-22 | 2004-02-17 | Motorola, Inc. | Method and apparatus for reducing power consumption in a network device |
US6646988B1 (en) * | 2000-01-31 | 2003-11-11 | Nortel Networks Limited | System, device, and method for allocating excess bandwidth in a differentiated services communication network |
WO2001058044A2 (en) | 2000-02-07 | 2001-08-09 | Tantivy Communications, Inc. | Minimal maintenance link to support synchronization |
US6977895B1 (en) * | 2000-03-23 | 2005-12-20 | Cisco Technology, Inc. | Apparatus and method for rate-based polling of input interface queues in networking devices |
US7324635B2 (en) | 2000-05-04 | 2008-01-29 | Telemaze Llc | Branch calling and caller ID based call routing telephone features |
US6735207B1 (en) | 2000-06-13 | 2004-05-11 | Cisco Technology, Inc. | Apparatus and method for reducing queuing memory access cycles using a distributed queue structure |
US6765922B1 (en) * | 2000-09-08 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Speculative transmit for system area network latency reduction |
US6728909B1 (en) | 2000-09-26 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Data communication with speculative reception of data in a data processing system |
US6738344B1 (en) | 2000-09-27 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Link extenders with link alive propagation |
US8155096B1 (en) | 2000-12-01 | 2012-04-10 | Ipr Licensing Inc. | Antenna control system and method |
US20020126673A1 (en) * | 2001-01-12 | 2002-09-12 | Nirav Dagli | Shared memory |
US6870811B2 (en) * | 2001-01-18 | 2005-03-22 | International Business Machines Corporation | Quality of service functions implemented in input interface circuit interface devices in computer network hardware |
US6954448B2 (en) | 2001-02-01 | 2005-10-11 | Ipr Licensing, Inc. | Alternate channel for carrying selected message types |
US7551663B1 (en) | 2001-02-01 | 2009-06-23 | Ipr Licensing, Inc. | Use of correlation combination to achieve channel detection |
US6944171B2 (en) * | 2001-03-12 | 2005-09-13 | Switchcore, Ab | Scheduler method and device in a switch |
US7042848B2 (en) * | 2001-05-04 | 2006-05-09 | Slt Logic Llc | System and method for hierarchical policing of flows and subflows of a data stream |
US6901052B2 (en) | 2001-05-04 | 2005-05-31 | Slt Logic Llc | System and method for policing multiple data flows and multi-protocol data flows |
US6904057B2 (en) | 2001-05-04 | 2005-06-07 | Slt Logic Llc | Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification |
US7397798B2 (en) * | 2001-05-21 | 2008-07-08 | Xelerated Ab | Method and apparatus for processing blocks in a pipeline |
SG185139A1 (en) | 2001-06-13 | 2012-11-29 | Ipr Licensing Inc | Transmittal of heartbeat signal at a lower level than heartbeat request |
US7170900B2 (en) * | 2001-07-13 | 2007-01-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for scheduling message processing |
US7151744B2 (en) * | 2001-09-21 | 2006-12-19 | Slt Logic Llc | Multi-service queuing method and apparatus that provides exhaustive arbitration, load balancing, and support for rapid port failover |
US7099275B2 (en) * | 2001-09-21 | 2006-08-29 | Slt Logic Llc | Programmable multi-service queue scheduler |
US7158964B2 (en) | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) * | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) * | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US7257125B1 (en) | 2002-01-22 | 2007-08-14 | Marvell International Ltd. | Quality of service half-duplex media access controller |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US7570584B1 (en) | 2002-03-29 | 2009-08-04 | Cisco Technology, Inc. | Network-wide congestion control of SPVC signaling messages |
US7385997B2 (en) * | 2002-04-08 | 2008-06-10 | International Business Machines Corporation | Priority based bandwidth allocation within real-time and non-real-time traffic streams |
US7502317B2 (en) * | 2002-05-17 | 2009-03-10 | Alcatel-Lucent Usa Inc. | Method for differentiating services and users in communication networks |
US7826466B2 (en) * | 2002-06-26 | 2010-11-02 | Atheros Communications, Inc. | Communication buffer scheme optimized for VoIP, QoS and data networking over a power line |
US7391786B1 (en) * | 2002-11-27 | 2008-06-24 | Cisco Technology, Inc. | Centralized memory based packet switching system and method |
US7701854B2 (en) * | 2003-11-17 | 2010-04-20 | International Business Machines Corporation | Differentiated handling of SIP messages for VoIP call control |
KR100582732B1 (en) * | 2005-01-31 | 2006-05-22 | 삼성전자주식회사 | Apparatus for forwarding multicast packet and method thereof |
US8374203B2 (en) * | 2005-06-29 | 2013-02-12 | Winnov, L.P. | Apparatus and method to achieve a constant sample rate for multiplexed signals with frame boundaries |
TWI291622B (en) * | 2005-08-11 | 2007-12-21 | Ic Plus Corp | Controller and method for per-flow rate |
EP1953959A1 (en) * | 2007-02-01 | 2008-08-06 | British Telecommunications Public Limited Company | Data communication |
US20110282980A1 (en) * | 2010-05-11 | 2011-11-17 | Udaya Kumar | Dynamic protection of a resource during sudden surges in traffic |
JP5919727B2 (en) * | 2011-10-26 | 2016-05-18 | 富士通株式会社 | Program for buffer management, relay device, and control method |
US9674086B2 (en) * | 2013-11-05 | 2017-06-06 | Cisco Technology, Inc. | Work conserving schedular based on ranking |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4623996A (en) * | 1984-10-18 | 1986-11-18 | Mcmillen Robert J | Packet switched multiple queue NXM switch node and processing method |
JPH0831876B2 (en) * | 1985-09-20 | 1996-03-27 | 株式会社日立製作所 | Routing control method in packet switching network |
US4901348A (en) * | 1985-12-24 | 1990-02-13 | American Telephone And Telegraph Company | Data transmission security arrangement for a plurality of data stations sharing access to a communication network |
JPH01177239A (en) * | 1988-01-06 | 1989-07-13 | Nec Corp | Packet concentrator and packet switching device |
US4862454A (en) * | 1988-07-15 | 1989-08-29 | International Business Machines Corporation | Switching method for multistage interconnection networks with hot spot traffic |
US4914650A (en) * | 1988-12-06 | 1990-04-03 | American Telephone And Telegraph Company | Bandwidth allocation and congestion control scheme for an integrated voice and data network |
US5001702A (en) * | 1989-09-26 | 1991-03-19 | At&T Bell Laboratories | Packet switching network for multiple packet types |
FR2653285B1 (en) * | 1989-10-12 | 1991-12-06 | Cit Alcatel | DEVICE FOR EVALUATING THE FLOW RATE OF VIRTUAL CIRCUITS EMPLOYING AN ASYNCHRONOUS TIME MULTIPLEXED TRANSMISSION CHANNEL. |
-
1991
- 1991-07-05 US US07/726,065 patent/US5268900A/en not_active Expired - Fee Related
-
1992
- 1992-06-01 WO PCT/US1992/004563 patent/WO1993001670A1/en not_active Application Discontinuation
- 1992-06-01 CA CA002112361A patent/CA2112361A1/en not_active Abandoned
- 1992-06-01 AU AU21858/92A patent/AU652469B2/en not_active Ceased
- 1992-06-01 EP EP92913425A patent/EP0593534A4/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
EP0593534A1 (en) | 1994-04-27 |
US5268900A (en) | 1993-12-07 |
AU652469B2 (en) | 1994-08-25 |
EP0593534A4 (en) | 1997-05-21 |
WO1993001670A1 (en) | 1993-01-21 |
AU2185892A (en) | 1993-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2112361A1 (en) | Device and method for implementing queueing disciplines at high speeds | |
US5231633A (en) | Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets | |
US5150358A (en) | Serving constant bit rate traffic in a broadband data switch | |
US5553061A (en) | Packet processor having service priority and loss priority features | |
Gruber | Delay related issues in integrated voice and data networks | |
US7940786B2 (en) | System and method for communicating data using a common switch fabric | |
US7230923B2 (en) | Time based packet scheduling and sorting system | |
Chao et al. | Design of a generalized priority queue manager for ATM switches | |
US6192049B1 (en) | Jitterless and lossless switching fabric with network routing | |
EP1471694A1 (en) | Method for dimensioning bandwidth in voice-over-IP networks | |
US20040184460A1 (en) | System and method for providing quality of service in asynchronous transfer mode cell transmission | |
Zukerman et al. | A shared medium multi-service protocol | |
Moser et al. | Lossless packet switching with small buffers | |
KR100221318B1 (en) | Apparatus and method of static priority queueing discipline using the per-session frame defined by the synchronus counter operation in atm networks | |
Reid | Priority queueing in asynchronous transfer mode switches | |
WO2010082042A1 (en) | Method and apparatus for transceiving data | |
Maples et al. | Unified approaches to integrated‐service networks–burst and fast packet switching | |
Subramaniam | Predictive Quality of Service Schemes for Real-time Multimedia Applications in Communications | |
US20040213249A1 (en) | Cell multiplexer for variable speed network interfaces | |
Teruhi et al. | An adaptive MPEG2-TS packet scheduling discipline for multimedia broadcasting | |
Yan | A logic-level simulation of the ATMSWITCH: a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University | |
JP2002261820A (en) | Method for transmitting packet video data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued |