Methods and apparatus for packet routing with improved traffic management and scheduling
First Claim
1. A network device, comprising:
- a plurality of input interfaces, each receiving data from one or more respective network connections, an output interface for transmitting data to one or more respective network connections, each of which is associated with a plurality of network contexts. a plurality of queue processors, each coupled to a respective input interface and to the output interface, each queue processor transferring selected data received from the respective input interface to the output interface, the plurality of queue processors so transferring the data as to maintain quality of service levels with respect to throughput of data from the plurality of input interfaces to the output interface.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides systems for improved quality of service and traffic management in network routers and other devices. This is achieved, according to one aspect of the invention, by coupling a plurality of queue processors to a plurality of input interfaces that receive data from one or more respective network connections. Each queue processor, in coordination with an associated scheduler that schedules dequeing of data from one or more queues, maintains the quality of service levels with respect to throughput, and delivers the data for a particular output context based on priority to a respective output interface. The output interface is coupled to the plurality of queue processors and transfers the data to one or more respective network connections. In addition, a plurality of output interfaces can be coupled to respective pluralities of queue processors for transferring data therefrom to one or more destination network connections. Packets, cell, datagrams and so forth passing through the router are disassembled and marked with one or more priority levels. Prior to exiting the router they re reassembled (based on those priorities, inter alia) into their constituent forms for continued routing on the network.
168 Citations
69 Claims
-
1. A network device, comprising:
-
a plurality of input interfaces, each receiving data from one or more respective network connections, an output interface for transmitting data to one or more respective network connections, each of which is associated with a plurality of network contexts. a plurality of queue processors, each coupled to a respective input interface and to the output interface, each queue processor transferring selected data received from the respective input interface to the output interface, the plurality of queue processors so transferring the data as to maintain quality of service levels with respect to throughput of data from the plurality of input interfaces to the output interface. - View Dependent Claims (2, 16, 17, 18, 19, 20, 21, 22)
-
- 3. The network device of 1, wherein each queue processor comprises a plurality of queues, each storing data for a selected network context.
-
7. A network device, comprising:
-
a plurality of input interfaces, each receiving data from one or more respective network connections, an output interface for transmitting data to one or more respective network connections, each of which is associated with a plurality of network contexts. a plurality of queue processors, each coupled to a respective input interface and to the output interface, each queue processor transferring selected data received from the respective input interface to the output interface, a scheduling table having a plurality of entries that define an order for potential transfer of data to the output interface, the plurality of queue processors transferring the data as a function of network contexts identified in the scheduling table. - View Dependent Claims (8, 9, 10)
-
-
11. In a network device the improvement comprising,
a plurality of queue processors, each coupled to a respective input interface and associated with one or more queues that store data, each queue processor: -
receiving data from the respective interface, storing the data into a queue associated with that queue processor, and dequeing the data per context by priority from a selected queue, and transmitting the data to an output interface that is coupled to the plurality of queue processors for transferring data therefrom to one or more network connections. - View Dependent Claims (12, 13, 14, 15)
-
-
23. In a network device, the improvement comprising,
a plurality of queues that store data, one or more queue processors associated with a plurality of queues, a scheduler coupled to the queue processors that schedules dequeing of data from one or more queues based on priority.
-
27. In a network device, the improvement comprising,
a plurality of queues that store data being transferred between one or more input interfaces of the network device to one or more output interface of the network device, a scheduler that schedules dequeing of data from the queues for transfer to the one or more output interfaces, the scheduler normally scheduling dequeing to proceed in a predetermined order, a starve indicator associated with each of one or more queues, the starve indicator representing whether the associated queue has been dequeued within a certain time threshold, the scheduler responding to the starved indicator by scheduling dequeing of the associated queues out of sequence.
-
32. In a network device the improvement comprising,
a plurality of queues that store data, a scheduler that schedules dequeing of data from one or more queues, an aggregation mask associated with one or more queues, the aggregation mask indicating that dequeing of data from queues is only permitted for queues that have not been dequeued within a certain time threshold, the scheduler responding to the aggregation mask by scheduling dequeing of only associated queues.
-
36. In a network device the improvement comprising,
a plurality of queues that store data being transferred between one or more input interfaces of the network device to one or more output interface of the network device, one or more queue processors associated with a plurality of queues, each queue processor selectively dequeing data from one or more associated queues and selectively generating a status signal indicating the status of the associated queues, a scheduler that polls the queue processors for the status of their associated queues and that signals a selected queue processor to dequeue data from an associated queue, a master indicator associated with a selected queue processor, the selected queue processor generating a status signal on behalf of one or more other queue processors in response to polling by the scheduler, the scheduler signaling a queue processor to dequeue data based on a response of the selected queue processor.
-
37. A network device, comprising:
-
a plurality of input interfaces, each receiving data from one or more respective network connections, an output interface for transmitting data to one or more respective network connections. a plurality of queue processors, each coupled to a respective input interface and to the output interface, each queue processor transferring selected data received from the respective input interface to the output interface, the plurality of queue processors so transferring the data as to maintain quality of service levels with respect to throughput of data from the plurality of input interfaces to the output interface, a scheduler coupled to the queue processors that schedules dequeing of data from their respective queues for transfer to the output interface, the scheduler signaling a queue processor for dequeing of data based on at least one of a priority of that data and a time period since data was last dequeued from a respective queue associated with a particular queue processor. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
46. A network device, comprising:
-
an input section receiving any of cells, frames, datagrams, or other packets (collectively, “
packets”
) from one or more respective network connections, and fragmenting at least selected received packets into one or more respective units,an output section transmitting packets to one or more respective network connections, each of which is associated with a plurality of network contexts, a routing mechanism, coupled to the input section and to the output section, the routing mechanism transferring units from the input section to the output section, the output section including a reassembly unit that reassembles into respective packets a plurality of intermingled units received by the output section from the routing mechanism, the reassembly unit reassembling the units on the basis of at least the context associated with the network connection to which the respective packets are directed. - View Dependent Claims (45, 47, 48, 49, 50, 51, 52)
-
-
53. In a network router, the improvement comprising:
-
one or more output interfaces receiving intermingled portions of different respective packets, the one or more output interfaces including a reassembly unit that reassembles the portions into their respective packets in accord with at least the context associated with the network connection to which the respective packets are directed. - View Dependent Claims (54, 55, 56)
-
-
57. A network device, comprising:
-
one or more input interfaces, each receiving any of cells, frames, datagrams, or other packets (collectively, “
packets”
) from one or more respective network connections, and fragmenting at least selected received packets into one or more respective units,one or more routing mechanisms, coupled to the one or more input interfaces and to one or more output interfaces, that transfer units from the one or more input interfaces to the one or more output interfaces, the one or more output interfaces transmitting packets to one or more respective network connections, each of which is associated with a plurality of network contexts, the one or more output interfaces receiving intermingled units of different respective packets and reassembling those units into their respective packets in accord with at least the context associated with the network connection to which the respective packets are directed, the input interface including an aggregation module that (i) associates each received packet with an ingress priority and identifier and that (ii) fragments each packet into one or more respective fragments, and (iii) forwards each fragment to a standardizer. - View Dependent Claims (58, 59, 60, 61)
-
-
62. A network device, comprising:
-
an input interface that receives any of cells, frames, datagrams, or other packets (collectively, “
packets”
) from one or more respective network connections and that fragments at least selected received packets into one or more respective units,a routing mechanism, coupled to the input interface and to an output interface, that transfers the units from the input interface to the output interface, the output interface receiving units of different respective packets that are intermingled with one another and reassembles the units into their respective packets in accord with at least the context associated with the network connection to which the packets are directed, wherein the routing mechanism includes a plurality of queues, each storing the received units for a selected network context, the queues being associated with one or more digital data processors that transfer units received from the respective input interface to the output interface based on a priority scheme. - View Dependent Claims (63, 64, 65, 66, 67, 68, 69)
-
Specification