IP Library Granted Patent US 6,987,732
Granted Patent B2
US 6,987,732 · App. 09/737,917 · Granted Jan 17, 2006

Apparatus and methods for scheduling packets in a broadband data stream

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 6,987,732
App. No.
09/737,917
Granted
Jan 17, 2006
Kind
B2
Abstract

A packet scheduler includes a packet manager interface, a policer, a congestion manager, a scheduler, and a virtual output queue (VOQ) handler. The policer assigns a priority to each packet. Depending on congestion levels, the congestion manager determines whether to send a packet based on the packet's priority assigned by the policer. The scheduler schedules packets in accordance with configured rates for virtual connections and group shapers. A scheduled packet is queued at a virtual output queue (VOQ) by the VOQ handler. In one embodiment, the VOQ handler sends signals to a packet manager (through the packet manager interface) to instruct the packet manager to transmit packets in a scheduled order.

Claims (102)

1. A method for policing packets in a data stream, comprising the steps of:

receiving a packet having an assigned input compliance identifier;

determining if said packet conforms to a policing rate:

if said packet conforms to said policing rate:

assigning a first compliance identifier to said packet; and

if said packet does not conform to said policing rate:

assigning a second compliance identifier to said packet;

comparing said first or said second compliance identifier to said assigned input compliance identifier; and

assigning a lower compliance identifier to said packet based on said comparing step.

2. The method of claim 1 , wherein if said packet does not conform to said policing rate, instead of assigning a second compliance identifier to said packet, said packet is dropped.

3. The method of claim 1 , wherein said determining step includes the steps of:

comparing an actual arrival time of said packet to a theoretical arrival time;

if said theoretical arrival time is greater than said actual arrival time:

comparing said theoretical arrival time to a sum of said arrival time and a packet limit;

wherein said packet is assigned said first compliance identifier if said theoretical arrival time is less than said sum and said packet is assigned said second compliance identifier if said theoretical arrival time is greater than or equal to said sum; and

updating said theoretical arrival time if said first compliance identifier is assigned.

4. The method of claim 3 , further comprising the step of:

if said theoretical arrival time is less than or equal to said actual arrival time, setting said theoretical arrival time to equal said actual arrival time and assigning said first compliance identifier to said packet.

5. The method of claim 3 , further comprising the step of calculating said theoretical arrival time based on said policing rate.

6. The method of claim 3 , further comprising the step of calculating said packet limit based on a packet delay variation tolerance.

7. The method of claim 3 , wherein said updating step includes the steps of:

determining an increment value; and

adding said increment value to said theoretical arrival time.

8. The method of claim 7 , further comprising the step of calculating said increment value based on a basic time interval and a size of said packet.

9. The method of claim 8 , further comprising the step of calculating said basic time interval based on said policing rate.

10. The method of claim 1 , further comprising the steps of:

receiving a copy of said packet having a second input compliance identifier;

determining if said copy conforms to a second policing rate:

if said copy conforms to said second policing rate:

assigning said first compliance identifier to said copy; and

if said copy does not conform to said second policing rate:

assigning a third compliance identifier to said copy;

comparing said first or said third compliance identifier to said second input compliance identifier; and

assigning a lower compliance identifier between said first or third compliance identifier and said second input compliance identifier to said copy.

11. The method of claim 10 , wherein if said copy does not conform to said second policing rate, instead of assigning a third compliance identifier to said copy, said copy is dropped.

12. The method of claim 10 , wherein said first compliance identifier indicates greater compliance than said second compliance identifier and said second compliance identifier indicates a greater compliance than said third compliance identifier.

13. The method of claim 10 , wherein said step of determining if said copy conforms to said second policing rate includes the steps of:

comparing a second actual arrival time of said copy to a second theoretical arrival time;

if said second theoretical arrival time is greater than said second actual arrival time:

comparing said second theoretical arrival time to a sum of said second arrival time and a second packet limit;

wherein said copy is assigned said first compliance identifier if said second theoretical arrival time is less than said sum and said copy is assigned said third compliance identifier if said second theoretical arrival time is greater than or equal to said sum; and

updating said second theoretical arrival time if said first compliance identifier is assigned.

14. The method of claim 13 , further comprising the step of:

if said second theoretical arrival time is less than or equal to said second actual arrival time, setting said second theoretical arrival time to equal to said second actual arrival time; and

assigning said first compliance identifier to said copy.

15. The method of claim 13 , further comprising the step of calculating said second theoretical arrival time based on said second policing rate.

16. The method of claim 13 , further comprising the step of calculating said second packet limit based on said policing rate, said second policing rate, and a maximum burst size.

17. The method of claim 13 , wherein said step of updating said second theoretical arrival time includes the steps of:

determining a second increment value; and

adding said second increment value to said second theoretical arrival time.

18. The method of claim 17 , further comprising the step of calculating said second increment value based on a second basic time interval and a size of said packet.

19. The method of claim 18 , further comprising the step of calculating said second basic time interval based on said second policing rate.

20. A computer program product for policing packets in a data stream, comprising:

logic code for receiving a packet having an assigned input compliance identifier;

logic code for determining if said packet conforms to a policing rate:

if said packet conforms to said policing rate:

logic code for assigning a first compliance identifier to said packet; and

if said packet does not conform to said policing rate:

logic code for assigning a second compliance identifier to said packet;

logic code for comparing said first or said second compliance identifier to said assigned input compliance identifier; and

logic code for assigning a lower compliance identifier to said packet based on said comparing.

21. The computer program product of claim 20 , wherein if said packet does not conform to said policing rate, further comprises logic code for dropping said packet instead of assigning a second compliance identifier to said packet.

22. The computer program product of claim 20 , wherein said logic code for determining includes:

logic code for comparing an actual arrival time of said packet to a theoretical arrival time;

if said theoretical arrival time is greater than said actual arrival time:

logic code for comparing said theoretical arrival time to a sum of said arrival time and a packet limit;

wherein said packet is assigned said first compliance identifier if said theoretical arrival time is less than said sum and said packet is assigned said second compliance identifier if said theoretical arrival time is greater than or equal to said sum; and

logic code for updating said theoretical arrival time if said first compliance identifier is assigned.

23. The computer program product of claim 22 , further comprising:

if said theoretical arrival time is less than or equal to said actual arrival time, logic code for setting said theoretical arrival time to equal said actual arrival time and logic code for assigning said first compliance identifier to said packet.

24. The computer program product of claim 22 , further comprising logic code for calculating said theoretical arrival time based on said policing rate.

25. The computer program product of claim 22 , further comprising logic code for calculating said packet limit based on a packet delay variation tolerance.

26. The computer program product of claim 22 , wherein said logic code for updating includes:

logic code for determining an increment value; and

logic code for adding said increment value to said theoretical arrival time.

27. The computer program product of claim 26 , further comprising logic code for calculating said increment value based on a basic time interval and a size of said packet.

28. The computer program product of claim 27 , further comprising logic code for calculating said basic time interval based on said policing rate.

29. The computer program product of claim 20 , further comprising:

logic code for receiving a copy of said packet having a second input compliance identifier;

logic code for determining if said copy conforms to a second policing rate:

if said copy conforms to said second policing rate:

logic code for assigning said first compliance identifier to said copy; and

if said copy does not conform to said second policing rate:

logic code for assigning a third compliance identifier to said copy;

logic code for comparing said first or said third compliance identifier to said second input compliance identifier; and

logic code for assigning a lower compliance identifier between said first or third compliance identifier and said second input compliance identifier to said copy.

30. The computer program product of claim 29 , wherein if said copy does not conform to said second policing rate, further comprises logic code dropping said copy instead of assigning a third compliance identifier to said copy.

31. The computer program product of claim 29 , wherein said first compliance identifier indicates greater compliance than said second compliance identifier and said second compliance identifier indicates a greater compliance than said third compliance identifier.

32. The computer program product of claim 29 , wherein said logic code for determining if said copy conforms to said second policing rate includes:

logic code for comparing a second actual arrival time of said copy to a second theoretical arrival time;

if said second theoretical arrival time is greater than said second actual arrival time:

logic code for comparing said second theoretical arrival time to a sum of said second arrival time and a second packet limit;

wherein said copy is assigned said first compliance identifier if said second theoretical arrival time is less than said sum and said copy is assigned said third compliance identifier if said second theoretical arrival time is greater than or equal to said sum; and

logic code for updating said second theoretical arrival time if said first compliance identifier is assigned.

33. The computer program product of claim 32 , further comprising: if said second theoretical arrival time is less than or equal to said second actual arrival time, logic code for setting said second theoretical arrival time to equal to said second actual arrival time and logic code for assigning said first compliance identifier to said copy.

34. The computer program product of claim 32 , further comprising logic code for calculating said second theoretical arrival time based on said second policing rate.

35. The computer program product of claim 32 , further comprising calculating said second packet limit based on said policing rate, said second policing rate, and a maximum burst size.

36. The computer program product of claim 32 , wherein said logic code for updating said second theoretical arrival time includes:

logic code for determining a second increment value; and

logic code for adding said second increment value to said second theoretical arrival time.

37. The computer program product of claim 36 , further comprising logic code for calculating said second increment value based on a second basic time interval and a size of said packet.

38. The computer program product of claim 37 , further comprising logic code for calculating said second basic time interval based on said second policing rate.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 10/075,623 PREVIOUSLY RECORDED AT REEL: 034484 FRAME: 0740. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT FOR SECURITY --- PATENTS. Recorded Jun 14, 2017
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 042980/0834 →
ASSIGNMENT FOR SECURITY - - PATENTS Recorded Nov 26, 2014
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 034484/0740 →
SECURITY AGREEMENT Recorded Dec 6, 2013
From: TELLABS OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031768/0155 →
MERGER Recorded Mar 12, 2012
From: TELLABS SAN JOSE, INC.
To: TELLABS OPERATIONS, INC.
Reel/Frame 027844/0508 →
CHANGE OF NAME Recorded Feb 19, 2004
From: VIVACE NETWORKS, INC.
To: TELLABS SAN JOSE, INC.
Reel/Frame 014988/0525 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2000
From: GRACON, GLENN; BOWLES, MURRAY; HSU, KENNETH C.; CURRY, DAVID
To: VIVACE NETWORKS, INC.
Reel/Frame 011396/0220 →