IP Library Granted Patent US 9,240,953
Granted Patent B2
US 9,240,953 · App. 14/474,674 · Granted Jan 19, 2016

Systems and methods for managing traffic in a network using dynamic scheduling priorities

Inventor: Jakob Carlstrom (Uppsala, SE)
Assignee: Marvell International Ltd.
H04L47/6295H04L12/5693H04L47/10H04L47/22H04L47/2458H04L47/26H04L47/29H04L47/522H04L47/527H04L47/58H04L47/60H04L47/6215H04L47/6225H04L47/6235H04L47/6275H04L47/805H04L49/3027H04L47/821
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 9,240,953
App. No.
14/474,674
Granted
Jan 19, 2016
Kind
B2
Abstract

A system for managing traffic in a communication network. The system includes a plurality of queues each configured to store data packets and a plurality of scheduling nodes each configured to process data packets from one or more of the plurality of queues. A scheduler is configured to schedule, using the plurality of scheduling nodes, respective transfers of the data packets from the plurality of queues. Each of the plurality of scheduling nodes is assigned to one or more of the plurality of queues. Each of the plurality of scheduling nodes and each of the plurality of queues is assigned a respective scheduling priority. The respective scheduling priorities are selectively changeable between a predetermined scheduling priority and a dynamic scheduling priority, wherein the dynamic scheduling priority corresponds to a priority propagated from the one or more of the plurality of queues.

Claims (34)

1. A system for managing traffic in a communication network, the system comprising:

a plurality of queues each configured to store data packets;

a plurality of scheduling nodes each configured to selectively process the data packets from one or more of the plurality of queues;

a scheduler configured to schedule, using the plurality of scheduling nodes, respective transfers of the data packets from the plurality of queues, wherein

at least one of the plurality of queues, the plurality of scheduling nodes, and the scheduler is implemented in a network processor,

each of the plurality of scheduling nodes is assigned to one or more of the plurality of queues,

each of the plurality of scheduling nodes and each of the plurality of queues is assigned a respective scheduling priority corresponding to a priority at which the data packets are processed, and

the respective scheduling priorities are selectively changeable between a predetermined scheduling priority and a dynamic scheduling priority, (i) wherein, if the dynamic scheduling priority is selected, the respective scheduling priority is changeable in accordance with a priority propagated from the one or more of the plurality of queues, and (ii) wherein, if the predetermined scheduling priority is selected, the respective scheduling priority is not changeable in accordance with the priority propagated from the one or more of the plurality of queues; and

an output port configured to output the data packets for transmission according to the selected one of the dynamic scheduling priority and the predetermined scheduling priority.

2. The system of claim 1 , further comprising a plurality of first meters respectively having values that track respective amounts of data in each of the plurality of queues, wherein the scheduling priorities are based in part on the respective values of the plurality of first meters.

3. The system of claim 2 , further comprising a plurality of second meters respectively having values that track respective amounts of data in each of the plurality of scheduling nodes, wherein the scheduling priorities are further based in part on the respective values of the plurality of second meters.

4. The system of claim 3 , wherein the plurality of first meters and the plurality of second meters are configured to change the respective scheduling priorities of (i) the plurality of queues and (ii) the plurality of scheduling nodes.

5. The system of claim 4 , wherein, to change the respective scheduling priorities, the plurality of first meters and the plurality of second meters are configured to change, based on (i) the respective values of the plurality of first meters and (ii) the respective values of the plurality of second meters, the respective scheduling priorities between a first priority level and a second priority level, wherein the second priority level is different from the first priority level.

6. The system of claim 5 , wherein each of the scheduling nodes is associated with a minimum guaranteed rate based on (i) the respective values of the plurality of first meters and (ii) the respective values of the plurality of second meters.

7. The system of claim 1 , further comprising a plurality of shapers configured to control, based on respective values of the plurality of shapers, respective bit rates of the plurality of queues.

8. The system of claim 7 , wherein the scheduler is configured to (i) selectively decrease the respective values of the plurality of shapers based on an amount of bits read from each of the plurality of queues, and (ii) periodically increase the respective values of the plurality of shapers based on a predetermined value.

9. The system of claim 7 , wherein each of the scheduling nodes is associated with a maximum rate based on the respective values of the plurality of shapers.

10. A method for managing traffic in a communication network, the method comprising:

using a network processor:

storing, in a plurality of queues, data packets;

assigning each of a plurality of scheduling nodes to one or more of the plurality of queues;

assigning each of the plurality of scheduling nodes and each of the plurality of queues a respective scheduling priority corresponding to a priority at which the data packets are processed;

using the plurality of scheduling nodes, selectively processing the data packets from the one or more of the plurality of queues;

scheduling, using the plurality of scheduling nodes, respective transfers of the data packets from the plurality of queues based on the respective scheduling priorities, wherein

the respective scheduling priorities are selectively changeable between a predetermined scheduling priority and a dynamic scheduling priority, (i) wherein, if the dynamic scheduling priority is selected, the respective scheduling priority is changeable in accordance with a priority propagated from the one or more of the plurality of queues, and (ii) wherein, if the predetermined scheduling priority is selected, the respective scheduling priority is not changeable in accordance with the priority propagated from the one or more of the plurality of queues; and

outputting the data packets for transmission according to the selected one of the dynamic scheduling priority and the predetermined scheduling priority.

11. The method of claim 10 , further comprising tracking, using respective values of a plurality of first meters, respective amounts of data in each of the plurality of queues, wherein the scheduling priorities are based in part on the respective values of the plurality of first meters.

12. The method of claim 11 , further comprising tracking, using respective values of a plurality of second meters, respective amounts of data in each of the plurality of scheduling nodes, wherein the scheduling priorities are further based in part on the respective values of the plurality of second meters.

13. The method of claim 12 , further comprising, using the plurality of first meters and the plurality of second meters, changing the respective scheduling priorities of (i) the plurality of queues and (ii) the plurality of scheduling nodes.

14. The method of claim 13 , wherein changing the respective scheduling priorities includes changing, based on (i) the respective values of the plurality of first meters and (ii) the respective values of the plurality of second meters, the respective scheduling priorities between a first priority level and a second priority level, wherein the second priority level is different from the first priority level.

15. The method of claim 14 , wherein each of the scheduling nodes is associated with a minimum guaranteed rate based on (i) the respective values of the plurality of first meters and (ii) the respective values of the plurality of second meters.

16. The method of claim 10 , further comprising controlling, using a plurality of shapers, respective bit rates of the plurality of queues based on respective values of the plurality of shapers.

17. The method of claim 16 , further comprising (i) selectively decreasing the respective values of the plurality of shapers based on an amount of bits read from each of the plurality of queues and (ii) periodically increasing the respective values of the plurality of shapers based on a predetermined value.

18. The method of claim 16 , wherein each of the scheduling nodes is associated with a maximum rate based on the respective values of the plurality of shapers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
Priority Claims (1)
SE 0800949 · Apr 25, 2008 · national
Continuity (3)
Continuation 12989631
Provisional Application 61047681 · Apr 24, 2008
Related Publication 20140369360A1 · Dec 18, 2014