Claims
- 1. A packet engine for use in a node in a data network, comprising:
a packet switch; a forwarding engine; and a queuing processor; where the queuing processor assigns individual packets to a flow queue by parsing a header appended by the forwarding engine.
- 2. The packet engine of claim 1, where flow queues are assigned to a plurality of subclasses, and each subclass is assigned to a plurality of classes.
- 3. The packet engine of claim 2, where the queuing processor services the queues in each class with a different priority weight, where the sum of the priority weights over all of the classes equals 1.
- 4. The packet engine of claim 2, where the queuing processor services the queues in each subclass with a different priority weight, where the sum of the priority weights over all of the subclasses equals 1.
- 5. The packet engine of claim 3 where the queuing processor services the queues in each subclass with a different priority weight, where the sum of the priority weights over all of the subclasses equals 1.
- 6. The packet engine of any of claims 2-5, where the queues are serviced in a weighted round robin manner.
- 7. The packet engine of claim 6, where the round robin manner defines unit quantities of data or unit quantities of time, and allocates more units to the higher priority weights according to a user defined algorithm.
- 8. A packet engine for use in a node in a data network, comprising:
a packet switch; a forwarding engine; and a queuing processor, where the queuing processor assigns individual packets to a flow queue by parsing a header appended by the forwarding engine, and where said header is determined by reading user defined sets of bits in each packet.
- 9. The packet engine of claim 8, where flow queues are assigned to a plurality of subclasses, and each subclass is assigned to a plurality of classes.
- 10. The packet engine of claim 9, where the queuing processor services the queues in each class with a different priority weight, where the sum of the priority weights over all of the classes equals 1.
- 11. The packet engine of claim 9, where the queuing processor services the queues in each subclass with a different priority weight, where the sum of the priority weights over all of the subclasses equals 1.
- 12. The packet engine of claim 11 where the queuing processor services the queues in each subclass with a different priority weight, where the sum of the priority weights over all of the subclasses equals 1.
- 13. The packet engine of any of claims 9-12, where the queues are serviced in a weighted round robin manner.
- 14. The packet engine of claim 13, where the round robin manner defines unit quantities of data or unit quantities of time, and allocates more units to the higher priority weights according to a user defined algorithm.
- 15. A method of providing differentiated services in a data network comprising:
near immediate rerouting; and organizing packet flow queues in multiple classes, where each class has one or more subclasses.
- 16. The method of claim 15, where each class is assigned a different priority weight for service.
- 17. The method of claim 16, where within each class, each subclass is assigned a different priority weight for service.
- 18. The method of any of claims 16 or 17, where the queues are serviced in a weighted round robin manner, according to the assigned priority weights.
- 19. The method of claim 18, where a given queue can be dynamically assigned to a given class and subclass based upon user defined criteria.
- 20. The method of claim 18, where the round robin manner defines unit quantities of data or unit quantities of time, and allocates more units to the higher priority weights according to a user defined algorithm.
- 21. The method of claim 19, where said user defined criteria include the aggregate of the various customer defined differentiated service classes served by the data network.
- 22. The method of claim 15 where said class and subclass are determined by reading user defined sets of bits in each packet.
- 23. A packet engine for use in a node in a data network, comprising:
packet switching means; packet routing means; and packet queuing means; where the packet queuing means assigns individual packets to a flow queue by parsing a header appended by the packet routing means.
- 24. A data network comprised of multiple nodes, each comprising the packet engine of any of claims 1, 8 or 23, or implementing the method of claim 15.
- 25. The packet engine of any of claims 2-5, or 9-12, where the functions of the packet switching means, routing means and queuing means do not impede the flow of packets through the node at the line rate.
- 26. The packet engine of claim 23, where the functions of the packet switch, forwarding engine and queuing processor do not impede the flow of packets through the node at the line rate.
- 27. The method of claim 15, where the provision of said differentiated services does not impede the flow of data through the network at line rates.
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/234,122, filed on Sep. 21, 2000, and also claims the benefit of U.S. Provisional Application No. 60/250,246, filed on Nov. 30, 2000, each naming Kai Y. Eng as Inventor. Additionally, this application is a continuation-in-part of pending U.S. application Ser. Nos. 09/565,727, filed on May 5, 2000, and 09/734,364, filed on Dec. 11, 2000, the disclosure of each of which is incorporated herein in its entirety by this reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60234122 |
Sep 2000 |
US |
|
60250246 |
Nov 2000 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09565727 |
May 2000 |
US |
Child |
09840299 |
Apr 2001 |
US |
Parent |
09734364 |
Mar 2001 |
US |
Child |
09840299 |
Apr 2001 |
US |