throbber
Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 1 of 11 PageID #: 214
`
`(12)
`
`United States Patent
`Lemaire et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,205,149 B1
`*Mar. 20, 2001
`
`US006205149B1
`
`(54) QUALITY OF SERVICE CONTROL
`MECHANISM AND APPARATUS
`
`(75) Inventors: gmmgiA'TLemalrg’ ?Ctlfn;APa“l J‘
`laco e, oWnsen ; 0 n .
`
`5,353,283 * 10/1994 Tsuchiya ............................ .. 370/230
`5,461,611 * 10/1995 Drake, Jr. ........................... .. 370/420
`
`5,485,455 * 1/1996 Dobbins ............................. .. 370/401
`5,550,816 * 8/1996 Hardwick ........................... .. 370/392
`*
`
`
`Flanders, Ashland; David Lipschutz, Lexington; Leonard Schwartz,
`Bedford; David C. Ready, WestWood;
`William D. Townsend, Groton, all Of
`MA (Us)
`
`(73) Assignee: 3Com Corporation, Santa Clara, CA
`(US)
`
`(*) Notice:
`
`This patent issued on a continued pros-
`ecution application ?led under 37 CFR
`1.53(d), and is subject to the tWenty year
`?gtzarm provlslons of 35 USC'
`'
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 08/927,650
`
`Sep- 11, 1997
`(22) Flled:
`(51) Int. cl.7 ................................................... .. H04L 12/28
`(52)
`370/401; 370/400
`(58) Field Of Search ................................... .. 370/395, 400,
`370/401, 412, 420, 421, 428, 429, 396,
`397, 407, 410
`
`(56)
`
`_
`References Cited
`U.S. PATENT DOCUMENTS
`
`* *
`
`
`
`’
`’
`1/1997
`5’598’410
`5,625,622 * 4/1997
`5,666,353 * 9/1997
`395/20053
`5,774,656 * 6/1998 Hattorl
`__ 370/409
`5,920,705 * 7/1999 Lyon
`6,094,435 * 7/2000 Hoffman ............................ .. 370/414
`
`*
`
`.
`.t d b
`C1 6
`y exammer
`
`Primary Examiner—Douglas W. Olms
`Assistant Examiner—Ricardo M. Pizarro
`(74) Attorney, Agent, or Firm—Weingarten, Schurgin,
`Gagnebin & Hayes LLP
`
`(57)
`
`ABSTRACT
`
`.
`.
`_
`_
`bl
`f
`d t
`d
`(“Q S”)
`Q lt
`f S
`varla es or pre e ermme
`o
`ervlce
`ua1y o
`protocol Type data units are stored in a cache memory. For
`data units that are associated With a ?ow, thirteen bytes
`selected out of the Internet Protocol (“IP”) header are
`employed as at least a portion of a key to perform a Cache
`lookup to obtain at least one Quality of Service variable
`from the cache. Both routing and QoS information may be
`stored in the cache for retrieval upon a single lookup
`Operation‘
`
`5,136,580 * 8/1992 Videlock ............................ .. 370/403
`
`24 Claims, 4 Drawing Sheets
`
`70’
`
`so
`DETERMINE
`¥ PROTOCOL
`TYPE
`
`83
`
`N
`
`GET ENTRY FROM
`54
`\
`QCR SELECTOR
`
`PROVlDE LOOKUP 90
`J
`KEY
`
`86
`
`GET PRIORITY
`DESIGNATION
`FROM QCR TABLE
`
`92
`EMPLOY ACA J
`
`@A
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 2 of 11 PageID #: 215
`
`U.S. Patent
`
`Mar. 20, 2001
`
`Sheet 1 0f 4
`
`US 6,205,149 B1
`
`mcmaxomm
`
`2)
`
`w wlw. 3 .3 3
`
`
`
`2:82 2522 2502 2302
`
`
`
`
`
`
`
`282262 momt?s 8%95 8%25 96:25
`
`
`
`
`
`
`
`
`
`
`
`
`
`{362 {262 {@502 {@202
`
`

`

`n2e9mm.mm
`
`ma%mmmHS
`
`112B“.3”.9DMw5,
`
`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 3 of 11 PageID #: 216
`aC
`w
`6
`
`7..mS.
`eU
`
`l1S6528Eon.a.mUmziosz3Himw>mommmaPI
`
`I16mmmama.ngmm,
`
`m.mmmmogM.mQEOmEEOEmPMam965wPmszE
`wagon:
`
`
`
`
`
`
`
`NEE;magmaEOE:magma7memwmooEacmmmooEacmmwwomn.n4E3::2ng
`335:827.185%;.H.manmz
`
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 4 of 11 PageID #: 217
`
`U.S. Patent
`
`Mar. 20, 2001
`
`Sheet 3 0f 4
`
`US 6,205,149 B1
`
`70”‘ RECEIVE FRAME
`
`DETERMINE
`PROTOCOL
`TYPE
`
`80L
`
`83
`
`@ Y
`
`N
`
`8L GET ENTRY FROM
`QCR SELECTOR
`
`PROVIDE LOOKUP )0
`KEY
`
`‘
`GET PRIORITY
`86
`\ DESIGNATION
`FROM QCR TABLE
`
`END
`
`92
`EMPLOY ACA _J
`
`FIG. 3
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 5 of 11 PageID #: 218
`
`U.S. Patent
`
`Mar. 20, 2001
`
`Sheet 4 0f 4
`
`US 6,205,149 B1
`
`CLASS OF SERVICE
`0
`7
`
`PROTOCOL IP
`TYPE
`
`TCP
`
`,
`
`I
`
`IS
`
`QCR SELECTOR 81
`FIG. 4
`
`QCR TABLE 82
`
`EUE PRIORITY
`C:
`
`(NNA-AAAAJ :A-ANNNNM) (AJCDQJCDOOODOJD
`
`FIG. 5
`
`0123
`1230
`6 2301
`3012 END
`
`END
`
`FIG. 7
`
`0123
`1023
`01 23
`2013
`0123
`1023
`0123
`
`1023
`0123
`2013
`0123
`1023
`0123 END
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 6 of 11 PageID #: 219
`
`US 6,205,149 B1
`
`1
`QUALITY OF SERVICE CONTROL
`MECHANISM AND APPARATUS
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`Not Applicable
`
`STATEMENT REGARDING FEDERALLY
`SPONSORED RESEARCH OR DEVELOPMENT
`Not Applicable
`
`BACKGROUND OF THE INVENTION
`The present invention is generally related to telecommu
`nications networks, and more particularly to implementing
`Quality of Service (“QoS”) processing control Within such
`netWorks.
`Devices such as bridges and routers are employed to
`move data units betWeen end-stations in a telecommunica
`tions netWork. The data units may represent various types of
`traf?c including voice, video and computer data. Because
`some traffic may be associated With real time
`communication, processing of certain data units may be
`particularly time critical. For example, processing delay or
`loss of data units associated With a real time voice or video
`transmission could signi?cantly degrade the quality of such
`communication. HoWever, delays in eXchange of some types
`of computer data may not signi?cantly affect the quality of
`such communication. It may also be desirable to prioritiZe
`traf?c Within a given type of communication.
`One method for prioritiZing data units in a telecommu
`nications netWork is With QoS parameters. Each data unit
`Within the telecommunications netWork includes a header
`portion and a data portion. The header portion includes
`information for handling the data unit such as Source
`Address and Destination Address information. The header
`may also include a QoS priority indicator. It is knoWn to
`insert QoS information in the transport layer of the header.
`Devices Which receive and retransmit data units Within the
`telecommunications netWork then eXamine the QoS portion
`of the header of such data units and assign priority accord
`ingly. HoWever, QoS has not yet been implemented in an
`effective manner.
`
`BRIEF SUMMARY OF THE INVENTION
`In accordance With the present invention, Quality of
`Service (“QoS”) variables for data units of at least one
`predetermined protocol Type are stored in a cache memory.
`For data units in a one Way connection (“?oW”) With
`identi?ed Source Address and Destination Address, thirteen
`bytes selected out of the Internet Protocol (“IP”) header are
`employed as at least a portion of a key to perform a cache
`lookup to obtain at least one QoS variable. The QoS variable
`is employed to prioritiZe the data unit for processing.
`Enhanced performance is provided for data units of a
`speci?ed protocol type that are associated With a ?oW. Both
`routing and QoS information can be loaded into the cache.
`Such routing and QoS information can then be retrieved by
`executing a single cache lookup.
`Token buckets may be employed to facilitate QoS imple
`mentation. A token bucket is associated With at least one
`?oW. Tokens are then added to the token bucket at speci?ed
`time intervals. A counter is employed to track token count,
`and the rate at Which tokens are added indicates a rate limit
`for frames that can be scheduled through the token bucket.
`The token count indicates the number of bytes that can be
`sent through the bucket, thereby de?ning a transmission rate
`limit.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`2
`In order to further facilitate smooth operation the bridge/
`router can implement a Random Early Drop (“RED”) pro
`cedure. Logic circuits generate a “congested ports” bitmask
`to indicate Which output ports are deemed to be close to
`over?oWing. For each output port Which is indicated to be
`congested, the logic circuits con?gure a “RED shift value.”
`The RED shift value is the length in bits of a bitmask that
`is ANDed With a random number to yield a result, N, that
`indicates a number of frames to be queued. The Nth frame
`is intentionally dropped. Hence, a relatively small number of
`packets are dropped such that end-stations recogniZe the
`situation and respond by transmitting at a loWer rate, thereby
`relieving congestion and reducing the chance that output
`queues Will over?oW.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`The invention Will be more fully understood in vieW of the
`folloWing Detailed Description of the Invention, in conjunc
`tion With the DraWing, of Which:
`FIG. 1 is a simpli?ed block diagram of a telecommuni
`cations bridge/router;
`FIG. 2 is a block diagram Which illustrates the mother
`board and netWork interface modules of FIG. 1;
`FIG. 3 is a How diagram Which illustrates implementation
`of QoS control;
`FIG. 4 illustrates memory tables employed by the bridge/
`router for QoS control; and
`FIGS. 5—7 illustrates queue prioritiZation.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`Referring to FIGS. 1 and 2, a bridge/router for use in a
`telecommunications netWork includes a motherboard 12 and
`at least one netWork interface module 14 Which are inter
`connected through a backplane 16. Separate interface mod
`ules support Ethernet, Fiber Distributed Data Interface
`(“FDDI”) and Asynchronous Transfer Mode (“ATM”) traf
`?c. In one embodiment each 10/100 Mb Ethernet interface
`module has siX ports, each gigabit Ethernet interface module
`has one port, each FDDI interface module has siX ports and
`each ATM interface module has tWo OC3 ports or one OC12
`port. The ports provide connections to other devices in the
`netWork, through Which data units can be received and
`transmitted. Incoming data units may be bridged, routed,
`translationally bridged and ?ltered by the bridge/router.
`Logic circuits in the motherboard and interface modules are
`responsible for data unit reception and transmission, parsing
`Data Link and NetWork Layer headers, looking up source
`and destination Media Access Control (“MAC”) and Net
`Work Layer addresses and making forWarding decisions.
`The motherboard 12 includes an Address Cache ASIC
`(“ACA”) 26 With associated address cache memory 28, a
`Frame Processor (“FP”) 30 and a Master Buffer ASIC
`(“MBA”) 32. The Address Cache ASIC 26 is responsible for
`performing cache 28 lookups on Destination Addresses
`(“DAs”) and Source Addresses (“SAs”). The Address Cache
`ASIC is employed to obtain MAC addresses for bridging
`support and NetWork Layer addresses for routing support.
`The Master Buffer ASIC 32 is responsible for data buffer
`management in buffer RAM 22.
`Each netWork interface module includes buffer RAM 22,
`a Transmit ASIC (“TA”) 25 and a Receive ASIC (“RA”) 27.
`The Transmit ASIC and Receive ASIC are speci?c to the
`type of data traf?c Which the netWork interface device is
`designed to support (such as Ethernet, ATM and FDDI). The
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 7 of 11 PageID #: 220
`
`US 6,205,149 B1
`
`3
`Receive ASIC 27 functions to perform a preliminary analy
`sis on incoming data units. The Transmit ASIC 25 functions
`to transmit data units.
`The Receive ASIC 27 includes a Receive State Machine
`(“RXSM”) 40, a Receive Header Processor (“RHP”) 46 and
`a Receive Frame Processor (“RFP”) 48. The Receive State
`Machine is responsible for receiving data units through one
`or more ports from an associated communications link. After
`receiving a data unit, the Receive State Machine 40 gener
`ates data unit status information. The status information,
`Which contains error information and byte and frame count
`data on a per port basis, is stored in registers 44. The Receive
`Header Processor 46 is responsible for identifying data units
`to be bridged or routed, determining inbound data unit
`encapsulation type, and performing protocol speci?c pro
`cessing for routed data units. The Receive Header Processor
`also determines Which VLAN, if any, each incoming frames
`is received on. There are different versions of Receive
`Header Processors 46 for different netWork interface types,
`e.g., Ethernet, FDDI and ATM. The Receive Header Pro
`cessor 46 is primarily implemented in microcode. A Receive
`Segmentation DMA controller (“RSEG”) 50 controls stor
`age of received data units Within appropriate buffer RAM 22
`locations and forWards status information to the Receive
`Frame Processor 48. Information in a VLAN forWarding
`table 49 is employed by the Receive Frame Processor 48 to
`verify if the data unit is alloWed to be forWarded through the
`outbound interface. In particular, the Receive Frame Pro
`cessor 48 is responsible for making forWarding decisions
`based on information supplied by the Receive Header Pro
`cessor 46, Address Cache ASIC 26, Receive State Machine
`40, the RSEG 50 and VLAN con?guration information
`contained in con?guration tables associated With the
`Receive Frame Processor. The Receive Frame Processor 48
`also generates Transmit Vectors for data units being pro
`cessed in hardWare over a fast processing path and Receive
`Vectors for data units being passed to the Frame Processor
`30 softWare for further processing over a sloWer path. The
`Receive Frame Processor 48 is implemented partially in
`microcode.
`The Transmit ASIC 25 includes a Transmit State Machine
`(“TXSM”) 58, a plurality of Transmit State Machine FIFOs
`59, and a Transmit Header Processor (“THP”) 60. A Trans
`mit Segmentation Controller (“TSEG”) 61 serves to move
`data unit segments from locations Within the Buffer RAM 22
`into an input FIFO designated as the TSEG FIFO 63, Which
`comprises an input FIFO to the Transmit Header Processor
`60. The Transmit Header Processor 60 performs any neces
`sary header translations and, upon completion of such
`translations, moves the translated header to the Transmit
`State Machine FIFO 59.
`The Transmit Header Processor 60 also inserts VLAN
`tags into frames as necessary. Data units are forWarded from
`the Transmit State Machine FIFO 59 over the respective
`output port 20 of the netWork interface module 14. The
`Transmit State Machine 58 is responsible for controlling
`transmission of data units from the respective output port 20.
`FolloWing transmission, the Transmit State Machine gener
`ates data unit transmit status information Which is stored in
`registers 66. The status information includes error informa
`tion and transmit byte and frame count information on a per
`port basis. Different versions of the Transmit State Machine
`58 are provided for different netWork interface module
`types, e.g., Ethernet, FDDI and ATM.
`FIGS. 3 and 4 illustrate data unit processing in conjunc
`tion With a netWork interface module con?gured for Ethernet
`type traf?c. When an Ethernet frame enters the Receive
`
`35
`
`40
`
`45
`
`55
`
`10
`
`15
`
`20
`
`25
`
`30
`
`4
`Header Processor 46 as shoWn in step 70, the header portion
`of the frame is eXamined as shoWn in step 72. Given 20 a
`header With the format: Destination Address (“DA”)/Source
`Address (“SA”)/Type (e.g., IPv4, Appletalk etc.)/Internet
`Protocol (“IP”) header, the OrganiZation Unique Identi?er
`(“OUI”) is compared to the upper three bytes of the DA. If
`the OUI does not match the upper three bytes of the DA,
`then the frame is forWarded to the Frame Processor 30 for
`further processing by softWare as shoWn in step 74. If the
`OUI matches the upper three bytes of the DA, then the loWer
`three bytes of the DA are eXamined to determine Whether the
`value indicated by the loWer three bytes of the DA falls
`Within a prede?ned range as shoWn in step 76. The upper and
`loWer bounds of the prede?ned range are maintained in ?rst
`and second respective registers. The loWer three bytes of the
`DA are compared With each of the ?rst and second registers
`to determine Whether the loWer three bytes of the DA fall
`Within the prede?ned range. If the loWer three bytes of the
`DA do not fall Within the range, then the frame is forWarded
`to the Frame Processor 30 for further processing by softWare
`as shoWn in step 74. If the loWer three bytes of the DA fall
`Within the prede?ned range, then the DA matches the
`address speci?ed for the bridge/router and the location of the
`Type ?eld is eXamined as shoWn in step 78. In particular, the
`value of the ?eld folloWing the SA ?eld is compared With a
`predetermined value (1500) beloW Which the ?eld is
`assumed to be a Type ?eld.
`The speci?c protocol Type is determined as shoWn in step
`80, Where prede?ned values correspond to speci?c Types,
`e.g., 0800 corresponds to IPv4. The frame is then examined
`to determine if it is associated With a How as shoWn in step
`83. A?oW is a one Way connection of frames With positively
`identi?ed Source Address and Destination Address. Step 83
`may be implemented as folloWs:
`
`bridgedPacket = (unicast && NOT this MAC DA);
`if (packet not IP) {
`?oW=FALSE;
`} else if ((packet is broadcast) II (packet is an IP fragment))
`?oW=FALSE;
`} else if (bridgedPacket && (NOT Bridged-FloW-Enable)) {
`floW=FALSE
`} else if ((COS-Means-FloW &&
`((packet is PACE) II (packet is 802.1 CoS
`tagged)» II
`(Bridged-Means-Flow && bridgedPacket) II
`(Routed-Means-FloW && !bridgedPacket)) {
`floW=TRUE;
`}else if (packet IP protocol is in IP FloW Filter table) {
`if ( (packet is UDP) &&
`(packet is unicast) &&
`(UDP dest port !=1698) &&
`(UDP dest port != 1699) &&
`(
`(UDP dest port < UDP port rangel low) {I
`(UDP dest port > UDP port rangel high)) &&
`(UDP dest port < UDP port range2 low) {I
`(UDP dest port > UDP port range2 high))
`
`(
`
`60
`
`65
`
`If the frame is associated With a How (?oW=TRUE), a
`13-byte IPv4 ?oW ID is employed an indicated in step 90.
`The 13-byte ?oW ID includes IP protocol Type, IP SA, IP
`DA, and UDP Source and Destination ports. The Address
`Cache ASIC 26 is then employed, and QoS variables are
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 8 of 11 PageID #: 221
`
`US 6,205,149 B1
`
`5
`returned as shown in step 92. In particular, the Address
`Cache ASIC 26 returns a token bucket depth indicator, a
`transmit queue designator, a loss ?ag, an excess transmit
`queue designator, an excess loss ?ag, a designator for excess
`action to be taken on non- conforming frames, a retag enable
`indicator and a retag class designator. The excess transmit
`queue designator designates the transmit queue for non
`conforming frames. If retag enable is set then the frame will
`be retagged and requeued rather than dropped in the event
`that bridge/router traf?c prevents initial queueing and trans
`mission. Since both routing and QoS information are stored
`in the address cache, frame forwarding can be commenced
`after a single lookup operation.
`The Address Cache ASIC also returns a QoS enable bit.
`When set, the QoS enable bit indicates that the QoS
`information in the Cache is valid. When not set the QoS
`enable bit indicates that the frame is not actually associated
`with a ?ow, even though the result ?ow=TRUE was reached
`in step 83. When ?ow=TRUE and the QoS enable bit
`indicates that the frame is not actually associated with a
`?ow, the frame is processed as a non-?ow frame.
`If the frame is not associated with a How (?ow=FALSE),
`the Receive Header Processor forwards the MAC DA, IP
`DST or IP SRC and DST, and lookup key length indicator to
`the ACA. The protocol Type and Class of Service (“CoS”)
`are employed as indices into the QCR Selector 81 as shown
`in step 84 to obtain a 4-bit value. The 4-bit value is then
`employed as an index into the QoS Control Register
`(“QCR”) Table 82 as shown in step 86. The QCR Table 82
`provides a priority designation in one of eight priority levels.
`Each entry in the QCR Table 82 includes eight ?elds
`totalling 32-bits. 20-bits are employed to designate token
`bucket depth. 2-bits are employed to designate which of the
`four queues associated with each port to transmit on. 1-bit is
`employed as a loss ?ag. The loss ?ag indicates the loss bit
`setting of the transmit vector. 2-bits are employed to desig
`nate the excess transmit queue, which designates the trans
`mit queue for non-conforming frames. 1-bit is employed as
`an excess loss ?ag. 2-bits are employed to designate excess
`action to be taken on non-conforming frames. 1-bit is
`employed for retag enable, and 3-bits are employed to
`designate retag class. If retag enable is set then the frame
`will be retagged and requeued rather than dropped if bridge/
`router traffic prevents initial queueing and transmission.
`There are sixteen class-based QCRs which the Receive
`Frame Processor employs to assign QoS variables on a
`per-traf?c class basis. The QCRs may be assigned as fol
`lows:
`
`QCR 0
`QCR 1
`QCR 2
`QCR 3
`QCR 4
`QCR 5
`QCR 6
`QCR 7
`QCR 8
`QCR 9
`QCR 10
`QCR 11
`QCR 12
`QCR 13
`QCR 14
`QCR 15
`
`IP Unicast (Best Effort, except TCP/IP)
`IP Multicast (non-RSVP flows)
`IP Broadcast
`TCP/IP
`IPX Unicast
`IPX Multicast and Broadcast
`Appletalk Unicast
`Appletalk Broadcast and Unicast
`8021p Class O
`8021p Classes 2-4
`8021p Classes 5-7
`Unused
`Unused
`Unused
`Unused
`Default Class - all frames not otherwise classi?ed
`
`The QCR selector 81 has separate sections 85 for unicast,
`multicast and broadcast traf?c. Within each section, the
`
`6
`Receive Header Processor protocol number is employed as
`an index to obtain a word. TCP/IP is handled as a separate
`protocol to allow UDP and TCP frames to be given different
`QoS control. The 802.1p traf?c class is used to select the
`correct nibble within the word. The QCR selector may be
`implemented as:
`
`10
`
`15
`
`nibble qcrSelectorTable [192];
`if(packet is TCP/IP){ //this passed from RHP to RFP
`protocolIndex = 6;
`} else if (rhpProtocolIndex > 5) {
`protocolIndex = 7;
`} else { //rhpProtocolIndex is between 0 and 5 inclusive
`protocolIndex = rhpProtocolIndex;
`//protocolIndex now ranges from O to 7 inclusive
`}
`if (packet is unicast) {
`qcrIndex = O;
`
`if (packet is broadcast) {
`qcrIndex = 64;
`
`if (packet is multicast) {
`qcrIndex = 128;
`
`qcrIndex+=protocolIndex<<3;
`//if packet was PACE or 802.1q CoS tagged -
`//take three bits of C05 from RHP
`qcrIndex+=RHP.CoS;
`qcr = qcrTable[qcrIndex];
`
`25
`
`Token buckets are employed in SRAM to implement QoS
`parameters with traf?c control algorithms. The token bucket
`algorithm is implemented in a packet scheduler. Each token
`bucket is initially empty at a time Zero. Tokens are added to
`a token counter at speci?ed intervals of time to indicate a
`rate limit for frames that can be scheduled through the token
`bucket. The token count re?ects a credit for how many bytes
`can be sent through the bucket without violating a speci?ed
`rate limit. The bucket has a maximum depth which re?ects
`buffering available for the bucket and also governs the ?rst
`level of traf?c scheduled through the bucket. The token
`count never exceeds the bucket depth.
`There are 128 token buckets and each token bucket is
`speci?ed by a 20-bit token counter and a 12-bit token bucket
`rate (128*32=4 Kbits). The twelve bit token bucket depth is
`expressed in units of 256 bytes, so bucket depths range from
`256 bytes to 212 times that or 1 Mbyte. The token bucket
`rate is expressed in units of 16 bytes per millisecond. Each
`bucket may control up to the aggregate incoming data rate
`on all ports associated with an interface module.
`FIG. 5 illustrates queue prioritiZation on a per port basis.
`Four queues, designated 0, 1, 2 and 3 are associated with
`each port, and each frame is associated with at least one such
`queue for transmission. The Master Buffer ASIC is con?g
`ured with a queue drainage schedule that governs the
`relative rate at which each of the four queues is drained to
`the Transmit Header Processor. Frames are sequentially
`loaded in the queues and selected for transmission based
`upon the illustrated prioritiZation ordering scheme. Frames
`associated with queue 0 are always given the highest priority
`and frames associated with queue 3 are always given lowest
`priority. Queue 1 is a lower priority than queue 0, and higher
`priority than queues 2 or 3. However, queues 1 and 2
`implement cross over sharing at a predetermined depth (six
`frames deep is shown) into each such queue. In the illus
`trated example when ?ve frames associated with queue 1 are
`transmitted, two frames associated with queue 2 are then
`transmitted, assuming such queues are loaded with frames.
`Traf?c associated with queue 0 is preferably of a protocol
`Type that will not utiliZe all available bandwidth and starve
`
`35
`
`45
`
`55
`
`65
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 9 of 11 PageID #: 222
`
`US 6,205,149 B1
`
`7
`queues 1, 2 and 3. For example, RSVP Type traf?c can be
`limited by other mechanisms Within the bridge/router and
`hence may be assigned to queue one. Further, administrative
`overhead data transmitted in frames betWeen devices in the
`netWork may be assigned to queue 0 in order to facilitate
`smooth netWork operation.
`In the alternative embodiment illustrated in FIG. 6 equal
`Weighting is given to each queue. As a result, each queue is
`presented With drainage equal opportunities. FIG. 7 illus
`trates a drainage schedule With relative Weighting of 8-4-2-1.
`Multiple drainage schedules may be employed, and each
`port can be drained according to any of the drainage sched
`ules.
`In order to further facilitate smooth operation the bridge/
`router implements a Random Early Drop (“RED”) proce
`dure. The Frame Processor 30 con?gures a congested ports
`bitmask to indicate to the Receive Frame Processor 48
`Which output ports are deemed to be nearly full of queued
`frames. The Frame Processor determines Which output ports
`are congested based upon Master Buffer ASIC 32 statistics
`and Master Buffer ASIC queue lengths. For each output port
`Which is congested, the Frame Processor con?gures a “RED
`shift value.” The RED shift value is a length, in bits, of a
`bitmask that is ANDed With a random number generated by
`the Receive Frame Processor. The resulting number, N, is
`the number of frames to be queued, and the Nth frame is
`intentionally dropped. When the Nth frame is dropped, a
`neW random number is generated and the countdoWn to the
`neXt dropped frame begins. The drop rate resulting from the
`RED procedure is a function of the RED shift value and the
`generated random numbers. In particular, Drop Rate=
`TotalDrops/TotalPackets=2/(N+1).
`The Frame Processor dynamically adjusts the RED shift
`value for congested output ports based on feedback from the
`Master Buffer ASIC. Hence, small numbers of packets are
`dropped before output queues are over?owing, and a per
`centage of the end-stations generating the congesting traf?c
`should respond With loWer transmission rates.
`Having described the preferred embodiments, other
`embodiments that incorporate concepts of the presently
`disclosed invention Will become apparent to those of skill in
`the art. Therefore, the invention should not be vieWed as
`limited to the disclosed embodiments but rather should be
`vieWed as limited only by the spirit and scope of the
`appended claims.
`What is claimed is:
`1. A method for assigning at least one Quality of Service
`variable to an Ethernet frame in a telecommunications
`device, comprising the steps of:
`receiving said Ethernet frame at a netWork interface
`module of said device con?gured for Ethernet type
`traffic, said received Ethernet frame having a header;
`determining if said received Ethernet frame includes both
`positively identi?ed source and destination addresses,
`Wherein said determining if said received Ethernet
`frame includes both positively identi?ed source and
`destination addresses includes comparing a unique
`identi?er With a ?rst portion of a destination address
`selected from the header, Wherein said unique identi?er
`is associated With the bridge/router, and comparing a
`second portion of the destination address With a pre
`determined range of values in the event that the unique
`identi?er matches the ?rst portion of the destination
`address;
`determining, in the event that the second portion of the
`destination address is Within the predetermined range
`
`10
`
`3O
`
`35
`
`45
`
`55
`
`65
`
`8
`of values, Whether a protocol type of said received
`Ethernet frame is an IP protocol type, Wherein said
`determining Whether said protocol type of said Ethernet
`frame is an IP protocol type includes comparing the
`protocol type With at least one predetermined value;
`associating said received Ethernet frame With a How in the
`event said received Ethernet frame includes both posi
`tively identi?ed source and destination addresses; and
`in the event said protocol type of said received Ethernet
`frame is an IP protocol type and said received Ethernet
`frame is associated With a ?oW, indexing into a memory
`Within said device using selected portions of said
`header to obtain, via a single lookup, both said at least
`one quality of service variable and routing information
`associated With said received Ethernet frame.
`2. The method of claim 1 further including the step of
`determining a data unit protocol type from the protocol type
`?eld of the selected portions of the data unit header, and
`determining a class of service and employing the data unit
`protocol type and class of service to obtain a transmission
`priority designator if the data unit is determined not to be
`associated With a ?oW.
`3. Apparatus for determining a Quality of Service variable
`to be employed by a telecommunications device When
`processing a received Ethernet frame, comprising:
`a netWork interface module con?gured for Ethernet type
`traffic, said netWork interface module operative to
`receive said Ethernet frame, and Wherein said Ethernet
`frame includes a header;
`a memory in Which at least one Quality of Service
`variable is stored together With routing information;
`a ?lter operative to determine Whether said received
`Ethernet frame is associated With a How by ascertaining
`Whether a protocol type of said received Ethernet frame
`is an IP protocol type and Whether said header portion
`of the received Ethernet frame indicates a source
`address and a destination address that are both posi
`tively identi?ed, Wherein said ?lter is operative to
`ascertain Whether said protocol type of said received
`Ethernet frame is an IP protocol type by
`comparing the protocol type ?eld of the received Eth
`ernet frame With at least one predetermined value to
`determine said protocol type of said received Ether
`net frame, and
`Wherein said ?lter is operative to ascertain Whether said
`source address and said destination address are posi
`tively identi?ed by
`comparing a unique identi?er associated With the
`bridge/router With a ?rst portion of the destination
`address, and
`comparing a second portion of the destination address
`With a predetermined range of values if the unique
`identi?er matches the ?rst portion of the destination
`address; and
`processor circuitry operative to select a How identi?er
`including at least a portion of said header to obtain, via
`a single lookup, both said at least one Quality of
`Service variable and routing information associated
`With said received Ethernet frame.
`4. The apparatus of claim 3 Wherein the processor cir
`cuitry is operative to determine a data unit protocol type and
`class of service and to employ the data unit protocol type and
`class of service to obtain a transmission priority designator
`if the data unit is determined not to be associated With a ?oW.
`5. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a token bucket depth
`indicator.
`
`

`

`Case 4:17-cv-00141-ALM Document 17-3 Filed 05/19/17 Page 10 of 11 PageID #: 223
`
`US 6,205,149 B1
`
`9
`6. The method of claim 1, wherein said at least one
`Quality of Service variable includes a transmit queue des
`ignator.
`7. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a loss ?ag.
`8. The method of claim 1, Wherein said at least one
`Quality of Service variable includes an eXcess transmit
`queue designator.
`9. The method of claim 1, Wherein said at least one
`Quality of Service variable includes an eXcess loss ?ag.
`10. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a designator for eXcess
`action to be taken on non-conforming frames.
`11. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a retag enable indicator.
`12. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a retag class designator.
`13. The method of claim 1, Wherein said at least one
`Quality of Service variable includes a Quality of Service
`enable bit indicating Whether the at least one Quality of
`Service variable is

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket