US20050149563A1 - Random early detect and differential packet aging flow control in switch queues - Google Patents

Random early detect and differential packet aging flow control in switch queues Download PDF

Info

Publication number
US20050149563A1
US20050149563A1 US10752622 US75262204A US2005149563A1 US 20050149563 A1 US20050149563 A1 US 20050149563A1 US 10752622 US10752622 US 10752622 US 75262204 A US75262204 A US 75262204A US 2005149563 A1 US2005149563 A1 US 2005149563A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
packet
queue
value
lifetime
based
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
Application number
US10752622
Inventor
Yean Yong
Hong Koo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/28Flow control or congestion control using time considerations
    • H04L47/283Network and process delay, e.g. jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/32Packet discarding or delaying

Abstract

Flow control is provided for a packet switch. An incoming packet is classified according to its priority based on predefined rules to produce a weight value based on the priority of the packet. A lifetime value associated with the packet is produced based on the weight value and the queue occupancy in a queue to which the packet is assigned. The packet is discarded if its associated lifetime value is less than or equal to a threshold value. Otherwise the packet and associated lifetime value are sent to the queue. The lifetime value is periodically changed and compared to a threshold value. The packet is removed from the queue when its lifetime value reaches the threshold value.

Description

    FIELD OF THE INVENTION
  • The present invention relates to flow control in devices utilizing queuing systems for packets.
  • BACKGROUND OF THE INVENTION
  • Devices using queuing systems for packets, for example gateways, switches and routers, are often used in networks supporting IP or TCPIP, such as Ethernet. A problem is, however, that packets get stuck in that queues when there is congestion in the network, or when a link is down or not ready. Under this stuck condition two things happen.
  • (1) Packets are stored in buffers and referenced through link lists. Complex conditions arise when packets are destined for multiple ports, and the packets can exit from some of the ports but not from others. Furthermore, new packets enter from other ports. The result can be that the packets can get stuck in the buffers indefinitely.
  • (2) Buffer space can be taken up by packets that are of lower priority, and higher priority packets get dropped.
  • One prior art solution is to wait until the congesting condition in the port is removed, and then the packets can exit from the port. The disadvantage of this solution is that during the time when the packets are locked in the switching device, they take up valuable space resources. As such, a condition may arise that low priority packets remain locked in the device while high priority packets are dropped when they enter the switching device from other ports.
  • Another solution is to remove all the packets when they have exceeded a time limit in the switching device. This is done indiscriminately for all packets regardless of priority. The disadvantage of this solution is that it does not differentiate between low and high priority packets. It also does not differentiate between time critical packets (e.g. for real time applications such as voice-over-IP, video-over-IP or other types of time critical packets).
  • It would be desirable to prevent packets from becoming stagnant within queues. It would also be desirable to prevent high-priority packets from being dropped by buffers already filled with low priority packets. Finally, it would be desirable to control the congestion in the network that causes these other problems.
  • SUMMARY OF THE INVENTION
  • The present invention helps solve the problems of stagnant packets within queues, dropped high-priority packets and network congestion, using a random early detect and differential packet aging flow control method. A differential random early detect mechanism is used to prevent congestion in the Internet traffic. An aging mechanism solves the problem of packets being locked in the queue of a switching device for a certain time because it cannot exit the queue.
  • In more general terms, flow control is provided for a packet switch. An incoming packet is classified according to its priority based on predefined rules to produce a weight value based on the priority of the packet. A lifetime value associated with the packet is produced based on the weight value and the queue occupancy in a queue to which the packet is assigned. The packet is discarded if its associated lifetime value is less than or equal to a threshold value. Otherwise the packet and associated lifetime value are sent to the queue. The lifetime value is periodically changed and compared to a threshold value. The packet is removed from the queue when its lifetime value reaches the threshold value.
  • BRIEF DESCRIPTION OF THE FIGURES
  • Further preferred features of the invention will now be described for the sake of example only with reference to the following figures, in which:
  • FIG. 1 is a schematic diagram illustrating a switching device implementing the differential packet aging and random early detect method of he present invention.
  • FIG. 2 diagrammatically illustrates the method performed by the RED engine of FIG. 1.
  • FIG. 3 is a flowchart illustrating the method used by the aging engine of FIG. 1.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • FIG. 1 is a schematic diagram illustrating a switching device 101 implementing the differential packet aging and random early detect method of the present invention to control one or more queues 11, 13, 15. A packet 103 enters a packet classification engine 105 of the switching device 101. The classification engine 105 checks the priority of the packet based on a set of rules 107 that can be programmed by a user or which can be hard-coded.
  • Based on the priority determined by the classification engine 105, a “weight” value 109 is determined by a weight value determination section 110 and is assigned to the packet 103. Packets that should be aged out faster from the queue will have a smaller weight, and thus have a higher probability for a shorter lifetime.
  • The weight value is then fed into a “random early detect” (RED) engine 111. Also, the queue occupancy (number of packets) 113 in the queue to which the packet 103 is assigned (in this example the queue 11) is determined by a queue occupancy section 114 and is fed into the RED engine 111. The RED engine 111 uses the weight value 109 and the queue occupancy 113 to determine a lifetime 115 of the packet 103 in the queue 11. The lifetime 115 a random aging time based on the random early detect scheme?
  • Once the lifetime 115 is assigned to the packet 103, the RED engine 111 checks the lifetime 115 against a lifetime threshold 117. FIG. 2 shows the method performed by the RED engine 111 in more detail. The weight value 109 and the queue occupancy 113 are processed using an RED algorithm 201 of the RED engine 111. The RED algorithm 201 calculates a lifetime 115. The RED engine 111 then compares the lifetime 115 to the lifetime threshold 117. If the lifetime 115 is below the threshold 117, the packet is discarded. This helps control congestion in the network. Otherwise the lifetime 115 is attached to the packet 103 and sent to the queue 11 as shown in FIG. 1.
  • When the packet 103 reaches the queue 11, its life-time is decremented periodically by an aging engine 119. A tick is generated periodically, and the aging engine 119 acts upon this tick. The aging engine 119 looks through all the packets in the queues and decrements their lifetimes by the same amount. When the life time 115 of the packet 103 in the queue 11 reaches the threshold 117, the packet 103 is removed from the queue 11. The resource occupied can then be used by another packet.
  • FIG. 3 is a flowchart illustrating the method used by the aging engine 119 in greater detail. Wait ticks are periodically generated at step 301 causing step 303 to determine whether or not the queue is empty. The subsequent steps are not performed until a determination is made that the queue has packets in it. If the queue has packets in it then a first packet pointer pointing to a first packet is fetched at step 305. An aging step 307 is performed on the packets in the queue. At step 309 it is determined whether the packet has reached or is below the lifetime threshold 117, and if it has then the packet is removed from the queue at step 311. It then checks for the next available packet at step 313. If the next packet is not available then the method goes back to periodically generating wait ticks at step 301. If the next packet is found at step 313, then the next packet pointer is fetched at step 315 (the pointer points to the packet next to the packet that was previously pointed to) and the method returns to the step 307.
  • Thus the present invention solves the problems of the prior art:
      • a) The problem of packets locked within a port indefinitely is solved. A packet is aged out if they exceed the time limit assigned to it.
      • b) The problem of packets being aged out indiscriminately is solved. Packets are aged out based on the differential random early detection scheme.
      • c) Network congestion is reduced using the random early detection scheme.
  • The described invention is appropriate for complex gateways, switches and routers, where the extra gate-count introduced is not much compared to the overall count in the chip. However, in a simpler embodiment, more appropriate for implementation in simple switches, routers, etc., where gate-count is an issue, the differential packet aging is performed without performing RED. The lifetime 115 is assigned directly to the packet based on the set of rules 107 without first determining the weight 109 or determining the queue occupancy 113 as in FIG. 1. Packets that should be aged out faster are assigned a lower lifetime. All the packets in the queue are decremented at the same frequency. When the lifetime of the packet in the queue reaches a threshold, the packet is removed from the queue. Thus, in this embodiment, packets are aged out if they exceed the time limits assigned to them or based on the priority assigned to them.
  • Thus, although the invention has been described above using particular embodiments, many variations are possible within the scope of the claims, as will be clear to a skilled reader.

Claims (6)

  1. 1. A method of flow control in a packet switch, comprising the steps of:
    classifying an incoming packet according to its priority based on predefined rules to produce a lifetime value associated with the packet;
    sending the packet and associated lifetime value to a queue;
    periodically changing the lifetime value and comparing the changed value to a threshold value; and
    removing the packet from the queue based on the comparing.
  2. 2. The method of claim 1, further comprising the steps of:
    determining a weight value based on the priority of the packet;
    determining a queue occupancy in a queue to which the packet is assigned;
    producing the lifetime value based on the weight value and the queue occupancy; and
    discarding the packet if its associated lifetime value is below the threshold value.
  3. 3. The method of claim 2, wherein the discarding of the packet occurs before sending the packet and associated lifetime value to the queue.
  4. 4. The method of claim 1, the lifetime is periodically decremented and the packed is removed from the queue when reaching the threshold value.
  5. 5. A packet switch comprising:
    a packet classification engine for classifying an incoming packet according to its priority based on predefined rules to produce a lifetime value associated with the packet;
    a queue for receiving the packet and associated lifetime value;
    an aging engine for periodically changing the lifetime value of the packet in the queue;
    a comparator for comparing the changed value to a threshold value to remove the packet from the queue based on the comparing.
  6. 6. The packet switch of claim 5, wherein the packet classification engine determines a weight value based on the priority of the packet;
    and further comprising a random early detect engine for:
    producing the lifetime value based on the weight value and the queue occupancy in a queue to which the packet is assigned; and
    discarding the packet if its associated lifetime value is below the threshold value.
US10752622 2004-01-06 2004-01-06 Random early detect and differential packet aging flow control in switch queues Abandoned US20050149563A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10752622 US20050149563A1 (en) 2004-01-06 2004-01-06 Random early detect and differential packet aging flow control in switch queues

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10752622 US20050149563A1 (en) 2004-01-06 2004-01-06 Random early detect and differential packet aging flow control in switch queues
US11495651 US7756977B2 (en) 2004-01-06 2006-07-28 Random early detect and differential packet aging flow control in switch queues
US12831734 US20100274897A1 (en) 2004-01-06 2010-07-07 Random Early Detect and Differential Packet Aging Flow Control in Switch Queues

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11495651 Division US7756977B2 (en) 2004-01-06 2006-07-28 Random early detect and differential packet aging flow control in switch queues

Publications (1)

Publication Number Publication Date
US20050149563A1 true true US20050149563A1 (en) 2005-07-07

Family

ID=34711644

Family Applications (3)

Application Number Title Priority Date Filing Date
US10752622 Abandoned US20050149563A1 (en) 2004-01-06 2004-01-06 Random early detect and differential packet aging flow control in switch queues
US11495651 Active 2024-09-13 US7756977B2 (en) 2004-01-06 2006-07-28 Random early detect and differential packet aging flow control in switch queues
US12831734 Abandoned US20100274897A1 (en) 2004-01-06 2010-07-07 Random Early Detect and Differential Packet Aging Flow Control in Switch Queues

Family Applications After (2)

Application Number Title Priority Date Filing Date
US11495651 Active 2024-09-13 US7756977B2 (en) 2004-01-06 2006-07-28 Random early detect and differential packet aging flow control in switch queues
US12831734 Abandoned US20100274897A1 (en) 2004-01-06 2010-07-07 Random Early Detect and Differential Packet Aging Flow Control in Switch Queues

Country Status (1)

Country Link
US (3) US20050149563A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150078395A1 (en) * 2013-09-17 2015-03-19 Fujitsu Limited Traffic control apparatus, buffering control method and packet relay apparatus

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090010259A1 (en) * 2007-07-08 2009-01-08 Alexander Sirotkin Device, system, and method of classification of communication traffic
CN101616097B (en) * 2009-07-31 2012-05-23 中兴通讯股份有限公司 Method and system for managing output port queue of network processor
US8184540B1 (en) * 2009-12-11 2012-05-22 Juniper Networks, Inc. Packet lifetime-based memory allocation
CN102868577A (en) * 2012-10-09 2013-01-09 盛科网络(苏州)有限公司 Weighted random early detection (WRED) automated testing method and device
US9374387B2 (en) * 2012-10-12 2016-06-21 Rockwell Automation Technologies, Inc. Hardware-based granular traffic storm protection
US9042222B2 (en) 2012-11-28 2015-05-26 Broadcom Corporation Deadlock recovery for distributed devices

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642758A (en) * 1984-07-16 1987-02-10 At&T Bell Laboratories File transfer scheduling arrangement
US20020075805A1 (en) * 2000-09-22 2002-06-20 Narad Networks, Inc. Broadband system with QOS based packet handling
US6463068B1 (en) * 1997-12-31 2002-10-08 Cisco Technologies, Inc. Router with class of service mapping
US20030007452A1 (en) * 2001-06-07 2003-01-09 International Business Machines Corporation Bandwidth allocation in accordance with shared queue output limit
US20030086140A1 (en) * 2000-10-26 2003-05-08 Wave7 Optics, Inc. Method and system for processing downstream packets of an optical network
US20030154328A1 (en) * 2002-02-04 2003-08-14 Henderson Alex E. Services processor having a queue operations unit and an output scheduler
US20030189934A1 (en) * 2002-04-08 2003-10-09 International Business Machines Corporation Method and system for priority enforcement with flow control
US6657960B1 (en) * 1999-11-23 2003-12-02 International Business Machines Corporation Method and system for providing differentiated services in computer networks
US6791949B1 (en) * 2000-04-28 2004-09-14 Raytheon Company Network protocol for wireless ad hoc networks
US20050013248A1 (en) * 2001-03-08 2005-01-20 Adisak Mekkittikul Method and system for bandwidth allocation tracking in a packet data network
US6856596B2 (en) * 2000-12-01 2005-02-15 Marconi Communications, Inc. Approximation of the weighted random early detection buffer admittance algorithm
US6882623B1 (en) * 2000-02-08 2005-04-19 Native Networks Technologies Ltd. Multi-level scheduling method for multiplexing packets in a communications network
US6920109B2 (en) * 2000-05-17 2005-07-19 Hitachi, Ltd. Packet shaper
US7031341B2 (en) * 1999-07-27 2006-04-18 Wuhan Research Institute Of Post And Communications, Mii. Interfacing apparatus and method for adapting Ethernet directly to physical channel
US7095754B2 (en) * 2000-11-03 2006-08-22 At&T Corp. Tiered contention multiple access (TCMA): a method for priority-based shared channel access

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI103455B1 (en) * 1996-10-08 1999-06-30 Nokia Telecommunications Oy The packet network router
US6091709A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Quality of service management for packet switched networks
CA2223193A1 (en) * 1997-12-01 1999-06-01 Newbridge Networks Corporation Adaptive buffering allocation under multiple quality of service
US6081507A (en) * 1998-11-04 2000-06-27 Polytechnic University Methods and apparatus for handling time stamp aging
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
GB2349312B (en) * 1999-04-21 2001-03-07 3Com Corp Ageing of data packets using queue pointers
US6891834B1 (en) * 1999-09-09 2005-05-10 Avici Systems Apparatus and method for packet scheduling
US6839321B1 (en) * 2000-07-18 2005-01-04 Alcatel Domain based congestion management
US6904015B1 (en) * 2000-09-01 2005-06-07 Force10 Networks, Inc. Congestion avoidance profiles in a packet switching system
JP3526269B2 (en) * 2000-12-11 2004-05-10 株式会社東芝 Transfer scheduling method in a network between the relay device and the relay device
US6741562B1 (en) * 2000-12-15 2004-05-25 Tellabs San Jose, Inc. Apparatus and methods for managing packets in a broadband data stream
US6990097B2 (en) * 2001-06-01 2006-01-24 4198638 Canada Inc. Cell-based switch fabric with inter-cell control for regulating packet flow
US20030120795A1 (en) * 2001-12-20 2003-06-26 Marnetics Ltd. Method for capacity enhancement of packet switched networks
US7840696B2 (en) * 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
US20050114540A1 (en) * 2003-11-12 2005-05-26 International Business Machines Corporation Method and system of generically specifying congestion control and a voidance behavior

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642758A (en) * 1984-07-16 1987-02-10 At&T Bell Laboratories File transfer scheduling arrangement
US6463068B1 (en) * 1997-12-31 2002-10-08 Cisco Technologies, Inc. Router with class of service mapping
US7031341B2 (en) * 1999-07-27 2006-04-18 Wuhan Research Institute Of Post And Communications, Mii. Interfacing apparatus and method for adapting Ethernet directly to physical channel
US6657960B1 (en) * 1999-11-23 2003-12-02 International Business Machines Corporation Method and system for providing differentiated services in computer networks
US6882623B1 (en) * 2000-02-08 2005-04-19 Native Networks Technologies Ltd. Multi-level scheduling method for multiplexing packets in a communications network
US6791949B1 (en) * 2000-04-28 2004-09-14 Raytheon Company Network protocol for wireless ad hoc networks
US6920109B2 (en) * 2000-05-17 2005-07-19 Hitachi, Ltd. Packet shaper
US20020075805A1 (en) * 2000-09-22 2002-06-20 Narad Networks, Inc. Broadband system with QOS based packet handling
US20030086140A1 (en) * 2000-10-26 2003-05-08 Wave7 Optics, Inc. Method and system for processing downstream packets of an optical network
US7095754B2 (en) * 2000-11-03 2006-08-22 At&T Corp. Tiered contention multiple access (TCMA): a method for priority-based shared channel access
US6856596B2 (en) * 2000-12-01 2005-02-15 Marconi Communications, Inc. Approximation of the weighted random early detection buffer admittance algorithm
US20050013248A1 (en) * 2001-03-08 2005-01-20 Adisak Mekkittikul Method and system for bandwidth allocation tracking in a packet data network
US20030007452A1 (en) * 2001-06-07 2003-01-09 International Business Machines Corporation Bandwidth allocation in accordance with shared queue output limit
US20030154328A1 (en) * 2002-02-04 2003-08-14 Henderson Alex E. Services processor having a queue operations unit and an output scheduler
US7058789B2 (en) * 2002-02-04 2006-06-06 Intel Corporation System and method for packet storage and retrieval
US20030189934A1 (en) * 2002-04-08 2003-10-09 International Business Machines Corporation Method and system for priority enforcement with flow control

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150078395A1 (en) * 2013-09-17 2015-03-19 Fujitsu Limited Traffic control apparatus, buffering control method and packet relay apparatus
US9825873B2 (en) * 2013-09-17 2017-11-21 Fujitsu Limited Traffic control apparatus, buffering control method and packet relay apparatus

Also Published As

Publication number Publication date Type
US7756977B2 (en) 2010-07-13 grant
US20060265424A1 (en) 2006-11-23 application
US20100274897A1 (en) 2010-10-28 application

Similar Documents

Publication Publication Date Title
US6788697B1 (en) Buffer management scheme employing dynamic thresholds
US6882642B1 (en) Method and apparatus for input rate regulation associated with a packet processing pipeline
US6252849B1 (en) Flow control using output port buffer allocation
US5983278A (en) Low-loss, fair bandwidth allocation flow control in a packet switch
US6757249B1 (en) Method and apparatus for output rate regulation and control associated with a packet pipeline
US6643260B1 (en) Method and apparatus for implementing a quality of service policy in a data communications network
US6721796B1 (en) Hierarchical dynamic buffer management system and method
US7321591B2 (en) Methods and systems for providing differentiated quality of service in a communications system
US20060104298A1 (en) Congestion control in a network
US5231633A (en) Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US20070070907A1 (en) Method and apparatus to implement a very efficient random early detection algorithm in the forwarding path
Salim et al. Beyond Softnet.
US6859435B1 (en) Prevention of deadlocks and livelocks in lossless, backpressured packet networks
US6704316B1 (en) Push-out technique for shared memory buffer management in a network node
US20060187836A1 (en) Communication device and method of prioritizing transference of time-critical data
US20020150115A1 (en) Time based packet scheduling and sorting system
US7660252B1 (en) System and method for regulating data traffic in a network device
US6987732B2 (en) Apparatus and methods for scheduling packets in a broadband data stream
US20080101354A1 (en) Packet processing
US20070047535A1 (en) Switching device utilizing flow-control management
US20020141339A1 (en) Prioritization method and apparatus measuring individual flow properties
US20030218977A1 (en) Systems and methods for controlling network-bound traffic
US6990529B2 (en) Unified algorithm for frame scheduling and buffer management in differentiated services networks
US20080259798A1 (en) Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US20090003212A1 (en) Data switching flow control with virtual output queuing

Legal Events

Date Code Title Description
AS Assignment

Owner name: INFINEON TECHNOLOGIES AG, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YONG, YEAN KEE;KOO, HONG LEE;REEL/FRAME:014900/0570;SIGNING DATES FROM 20031224 TO 20040101