IP Library Granted Patent US 10,110,515
Granted Patent B2
US 10,110,515 · App. 14/542,350 · Granted Oct 23, 2018

Packet scheduling using hierarchical scheduling process

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 10,110,515
App. No.
14/542,350
Granted
Oct 23, 2018
Kind
B2
Abstract

System and method of data routing according to a hierarchical scheduling process. Incoming data traffic is allocated to various queues of a buffer. A scheduling tree has a top level for queues, a bottom level for egress ports, and a plurality of intermediate levels corresponding to different granularities with respect to service categories. Each queue is assigned to a particular node in each intermediate level of the scheduling tree. The scheduling tree traverses through multiple scheduling stages from the bottom to the top level to select a winner node in each level based on a variety of fairness and differentiating variables. As a result, a queue associated with the winner nodes in various levels is selected and data from the queue is read out and sent to the selected egress port for transmission.

Claims (36)

1. A method of routing data traffic over a communication network, said method comprising: mapping incoming data traffic into data groups based on service categories, wherein a respective data group is assigned to nodes of different levels in a scheduling tree, wherein said scheduling tree comprises:

a bottom root level, wherein each node in said root level represent a respective egress port of a plurality of egress ports of said data routing device; a plurality of intermediate levels; and a top level, wherein each node in said top level represents a respective data group of said data groups, wherein said respective data group corresponds to a queue, traversing said scheduling tree from said bottom level to said top level, wherein said traversing comprises:

selecting an egress port from said plurality of egress ports of said data routing device; responsive to a selection of said egress port, selecting an upper node in a first intermediate level of said scheduling tree according to a scheduling process based on values of a set of attributes associated with said upper node, wherein said upper node is associated with a lower node in a second intermediate level of said scheduling tree that has been selected according to a prior scheduling process, wherein selected nodes at different intermediate levels in the scheduling tree correspond to respective data groups based on service categories in different granularity levels; responsive to said selection of said egress port and responsive to selections of nodes in said plurality of said intermediate levels, selecting a data group from the data groups; and sending data in said data group to said egress port for transmission.

2. The method as described in claim 1 , wherein said set of attributes are related to fairness, differentiation and traffic management of network data transmission.

3. The method as described in claim 2 , wherein said scheduling process comprises a Deficit Weighted Round Robin (DWRR) process.

4. The method as described in claim 3 , wherein said set of attributes represents strict priority enable, priority, weight, and token bucket.

5. The method as described in claim 1 , further comprising buffering said incoming data traffic, wherein said data groups correspond to queues in a buffer.

6. The method as described in claim 1 , wherein said selecting said egress port comprises selecting said egress port in accordance with a pipeline scheduling process.

7. The method as described in claim 1 , further comprising rendering a user interface configured to receive user input for assigning said respective data group to said nodes of different levels in said scheduling tree.

8. An apparatus for routing data over a communication network, said apparatus comprising:

an ingress port configured to receive data streams;

a buffer unit coupled to the ingress port and configured to store said data streams;

a plurality of egress ports coupled to the buffer unit and configured to transmit said data streams;

a first circuitry coupled to the ingress port and the buffer unit and the first circuitry configured to map incoming data traffic into data groups based on service categories, wherein a respective data group is assigned to nodes of different levels in a scheduling tree; and

scheduler circuitry coupled to said first circuitry and configured to:

select an egress port from the plurality of egress ports, wherein the plurality of egress ports correspond to a single level of said scheduling tree;

responsive to a selection of said egress port, select an upper node of said scheduling tree according to a scheduling process based on values of a set of attributes associated with said upper node, wherein said upper node of said scheduling tree is associated with a lower node of said scheduling tree that has been selected according to a prior scheduling process, wherein selected nodes at different levels of said scheduling tree correspond to data groups based on service categories in different granularity levels;

and responsive to a selection of said egress port and responsive to selections of nodes in intermediate levels of said scheduling tree, select a data group from the data groups, the selected data group corresponding to a queue associated with the selected nodes of said scheduling tree.

9. The apparatus as described in claim 8 , wherein said set of attributes are related to fairness, differentiation and traffic management of network data transmission.

10. The apparatus as described in claim 9 , wherein said set of attributes comprises strict priority enable, priority, and credit bucket shaper.

11. The apparatus as described in claim 8 , wherein said scheduling process comprises a Deficit Weighted Round Robin (DWRR) process.

12. The apparatus as described in claim 8 , wherein said first circuitry and said scheduler circuitry are integrated in an Application-Specific Integrated Circuit (ASIC).

13. The apparatus as described in claim 8 , wherein said egress port is selected in accordance with a pipeline scheduler process.

14. The apparatus as described in claim 8 , further comprising circuitry configured to render a user interface, said user interface configured to receive user input for assigning said respective data group to said nodes of different levels in said scheduling tree.

15. A method of scheduling data traffic at a data routing device, said method comprising:

mapping incoming data traffic into data groups in a buffer, wherein said data groups are classified based on a hierarchy, wherein:

a bottom level of said hierarchy corresponds to a plurality of egress ports, an intermediate level of said hierarchy comprises a plurality of categories and a respective category in said intermediate level has a subordinate category; and

a top level of said hierarchy corresponds to queues in said buffer; and scheduling data transmission from selected queues in said buffer to a selected egress port of said data routing device in accordance with a scheduling tree process, wherein said scheduling tree process comprises traversing from said bottom level to said top level, the egress port initially being selected from the plurality of egress ports at said bottom level of said hierarchy, the queues being selected at said top level of said hierarchy, and categories being selected at respective levels of said hierarchy, wherein said selected categories at different levels of said hierarchy correspond to data groups based on service categories associated with said selected egress port and in different granularity levels.

16. The method as described in claim 15 , wherein said egress port of said data routing device is selected in accordance with a pipeline scheduling process.

17. The method as described in claim 16 , further comprising:

selecting a category for a respective level of said hierarchy according to a scheduling process based on values of a set of attributes associated with categories in said respective level, wherein said category is a subordinate category of a category that has been selected according to a prior scheduling process;

selecting a data group associated with said selected categories in said hierarchy; and

sending data in said selected data group to said egress port for transmission.

18. The method as described in claim 17 , wherein said set of attributes are related to fairness, differentiation and traffic management of network data transmission.

19. The method as described in claim 18 , wherein said set of attributes comprise variables representing strict priority enable, priority, and credit bucket shaper.

20. The method as described in claim 18 , wherein said scheduling process comprises a Deficit Weighted Round Robin (DWRR) process.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CONVERSION Recorded Oct 6, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047202/0690 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: CAVIUM NETWORKS LLC
To: CAVIUM, INC.
Reel/Frame 036991/0534 →
MERGER Recorded Aug 14, 2015
From: XPLIANT, INC.
To: CAVIUM NETWORKS LLC
Reel/Frame 036327/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2014
From: PANCHAGNULA, VAMSI; DANIEL, TSAHI; HAN, KEQIN
To: XPLIANT
Reel/Frame 034510/0456 →