PACKET SCHEDULING USING HIERARCHICAL SCHEDULING PROCESS WITH PRIORITY PROPAGATION
First Claim
1. A method of routing data traffic over a communication network, said method comprising:
- mapping incoming data traffic into data groups, wherein a respective data group is assigned to nodes of different levels in a scheduling tree;
responsive to a priority of said respective data group being changed, dynamically updating priorities of said nodes of said different levels;
selecting an egress port of a data routing device;
based on said egress port, selecting an upper node according to a scheduling process based on updated priorities of nodes in a same level with said upper node, wherein said upper node is in a subtree of a lower node that has been selected according to a prior scheduling process;
selecting a data group associated with selected nodes of said scheduling tree; and
sending data in a selected data group to said egress port for transmission.
8 Assignments
0 Petitions
Accused Products
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. A queue associated with the winner nodes in various levels is selected for outgoing transmission at the selected egress port. Priority information is dynamically propagated from upper nodes to lower nodes such that a subsequent scheduling process uses the updated priority information.
-
Citations
20 Claims
-
1. A method of routing data traffic over a communication network, said method comprising:
-
mapping incoming data traffic into data groups, wherein a respective data group is assigned to nodes of different levels in a scheduling tree; responsive to a priority of said respective data group being changed, dynamically updating priorities of said nodes of said different levels; selecting an egress port of a data routing device; based on said egress port, selecting an upper node according to a scheduling process based on updated priorities of nodes in a same level with said upper node, wherein said upper node is in a subtree of a lower node that has been selected according to a prior scheduling process; selecting a data group associated with selected nodes of said scheduling tree; and sending data in a selected data group to said egress port for transmission. - View Dependent Claims (3, 4, 5, 6, 7, 8)
-
-
2. The method as described in claim 2, wherein said scheduling process comprises a Deficit Weighted Round Robin (DWRR) process, and wherein said scheduling process is further based on variables representing strict priority enable, weight, and token bucket.
-
9. 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 ports and configured to store said data streams; egress ports coupled to the buffer unit and configured to transmit said data streams; first logic coupled to the ingress port and the buffer unit and configured to;
map incoming data traffic into data groups, wherein a respective data group is assigned to nodes of different levels in a scheduling tree; andan arbiter coupled to the data mapping logic and configured to;
responsive to a priority of said respective data group being changed, dynamically update priorities of said nodes of said different levels;
select an egress port;
based on said egress port, select an upper node according to a scheduling process based on updated priorities of nodes in a same level with said upper node, wherein said upper node is in a subtree of a lower node that has been selected according to a prior scheduling process;
select a data group associated with selected nodes of said scheduling tree for outgoing transmission at said egress port. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method of scheduling data traffic at a network switching 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;
an intermediate level of said hierarchy comprises a plurality of categories; and
a respective category in said intermediate level has a subordinate category; andselecting an egress port of said network switching device; responsive to a priority of a respective data group being updated, propagating an updated priority of said respective data group to categories associated with said respective data group across said hierarchy; based on said egress port, selecting a category for a respective level according to a scheduling process based on updated priorities associated with categories in said respective level, wherein a selected category for said respective level is a subordinate of a selected category in another level that has been selected according to a prior scheduling process; identifying a data group associated with selected categories in various levels of said hierarchy; and sending data in an identified data group to said egress port for transmission. - View Dependent Claims (17, 18, 19, 20)
-
Specification