IP Library Granted Patent US 7,286,550
Granted Patent B2
US 7,286,550 · App. 10/318,769 · Granted Oct 23, 2007

Single cycle weighted random early detection circuit and method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,286,550
App. No.
10/318,769
Granted
Oct 23, 2007
Kind
B2
Abstract

A system and method is provided for traffic management and regulation in a packet-based communication network, the system and method facilitating proactive, discriminating congestion control on a per flow basis of packets traversing the Internet via use of a Weighted Random Early Detection (WRED) algorithm that monitors the incoming packet queue and optimizes enqueuing or discard of incoming packets to stabilize queue length and promote efficient packet processing. During optimized discard conditions, the system and method discern a relative priority among incoming packets, distribute packets with a relatively high priority and discard packets with a relatively low priority. Additionally, packet traffic are policed and discarded according to packet type, quantity or other predetermined criteria. The present invention performs in periodic mode, demand mode or both, and can be implemented as a hardware solution, a software solution, or a combination thereof.

Claims (45)

1. A method for regulating network packet traffic, the method comprising the steps of:

determining a minimum threshold and a maximum threshold;

calculating an average queue size according to a following formula:

average=(old_average*(1−½ ^n ))+(current_queue_size*½ ^n ),

wherein the average is the average size of a queue; the old-average is a previous average of the queue; the current_queue_size is a current size of the queue; and n is an exponential weight factor and a user-configurable value;

when the average queue size is less than the minimum threshold, enqueuing an arriving packet;

when the average queue size is greater than the maximum threshold, dropping the packet;

when the average queue size is between the minimum threshold and the maximum threshold,

calculating a packet drop probability (Pdrop); and

performing one of a set consisting of enqueuing and dropping the packet, according to the calculated probability.

2. The method of claim 1 wherein the minimum threshold and the maximum threshold are individually determined based on at least one criterion selected from a group consisting essentially of traffic pattern, flow, and computer system capacity.

3. The method of claim 1 , wherein the step of calculating a packet drop probability further comprises calculating the packet drop probability according to formula:

Pdrop=Pdmax*(avqlen−min_th)/(max_th−min_th)

wherein Pdmax is a maximum probability; avqlen is one of a set consisting of a periodic and a per packet average queue length; min_th is a minimum threshold under which all packets must be accepted; and max_th is a maximum threshold over which all packets can be dropped.

4. The method of claim 1 , wherein the step of calculating a packet drop probability is performed in a single cycle.

5. The method of claim 1 , further comprising the step of policing packets according to a predetermined criterion.

6. The method of claim 1 , further comprising the step of calculating the packet drop probability on at least one of a set consisting of a demand basis and a periodic basis.

7. The method of claim 1 , further comprising the step of generating a new average queue length per flow.

8. A method for regulating network packet traffic, the method comprising the steps of:

determining a minimum threshold and a maximum threshold;

calculating an average queue size according to a following formula,

average=(old average*(1−½ ^n ))+(current_queue_size*½ ^n ),

wherein the average is the average size of a queue; the old-average is a previous average of the queue; the current_queue_size is a current size of the queue; and n is an exponential weight factor and a user-configurable value;

when the average queue size is less than the minimum threshold, enqueuing an arriving packet;

when the average queue size is greater than the maximum threshold, dropping the packet;

when the average queue size is between the minimum threshold and the maximum threshold,

calculating a packet drop probability in a single cycle, and

either enqueuing or dropping the packet according to the calculated probability; and

policing packets according to a predetermined criterion.

9. The method of claim 8 , wherein the step of calculating a packet drop probability further comprises calculating the packet drop probability according to formula:

Pdrop=Pdmax*(avqlen−min_th)/(max_th−min_th)

wherein Pdmax is a maximum probability; avqlen is one of a set consisting of a periodic and a per packet average queue length; min_th is a minimum threshold under which all packets must be accepted; and max_th is a maximum threshold over which all packets can be dropped.

10. A system for management of packet traffic, the system comprising:

an interface block for initiating memory references for label reads and updates, and interacting with an Ingress Control Unit (ICU);

a calculation block for calculating an average queue size according to a formula and calculating packet drop probability depending on the average queue size, the calculation block associated with the interface block, the formula being:

average=(old average*(1−½ ^n ))+(current_queue_size*½ ^n ),

wherein the average is the average size of a queue; the old-average is a previous average of the queue; the current_queue_size is a current size of the queue; and n is an exponential weight factor and a user-configurable value; and

a policing block for performing police updates, the policing block associated with the interface block.

11. The system of claim 10 , wherein the packet drop probability is calculated in a single cycle.

12. The system of claim 10 , wherein the interface block further comprises a timer.

13. The system of claim 10 , further comprising at least one interface signal.

14. The system of claim 13 , wherein the at least one interface signal is selected from a group essentially consisting of wru_enable; first_flowid_addr max_flowcnt; wred_cyclecnt; zcu_rddata; zcu_rddata_calid; zcu_readvalid; and icu_rddata.

15. The system of claim 10 , wherein the calculation block performs packet drop probability calculations on a periodic basis.

16. The system of claim 10 , wherein the calculation block performs packet drop probability calculations on a demand basis.

17. The system of claim 10 , wherein the calculation block further calculates a new average queue size.

Assignments (4)
MERGER Recorded Nov 18, 2009
From: TUNDRA SEMICONDUCTOR CORPORATION; 4520807 CANADA INC.
To: IDT CANADA INC.
Reel/Frame 023538/0359 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2006
From: ALLIANCE SEMICONDUCTOR CORPORATION
To: TUNDRA SEMICONDUCTOR CORPORATION
Reel/Frame 018654/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2003
From: CHIP ENGINES
To: ALLIANCE SEMICONDUCTOR CORPORATION
Reel/Frame 014665/0227 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2002
From: MODALI, PRASAD; SAXENA, NIRMAL RAJ
To: CHIP ENGINES
Reel/Frame 013582/0541 →