Method and apparatus for implementing a quality of service policy in a data communications network
First Claim
1. A method for implementing a quality of service policy in a data communications network, comprising:
- receiving a packet of a certain flow;
extracting certain flow information from the packet;
using the certain flow information as an index into an active flow table containing at least one active flow to look up quality of service parameters applicable to the certain flow, the quality of service parameters including a contract value specifying a committed access rate corresponding to the certain flow, an output queue corresponding to the certain flow, and an output queue threshold co corresponding to the output queue;
using the quality of service parameters to determine a codepoint for the packet, the codepoint having encoded in it the output queue and the corresponding output queue threshold value;
implementing a token bucket algorithm with respect to the certain flow using the contract value and a leak rate to determine whether the packet is in-profile or out-of-profile; and
when the packet is out-of-profile;
modifying the codepoint for the packet and determining whether the packet is to be drooped; and
when the packet is in-profile or when the determination has been made that the packet that is out-of-profile is not to be drooped;
directing the packet to the output queue based on the codepoint and setting the output queue threshold of the output queue based on the codepoint.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for implementing Quality of Service (QoS) policy in a data communications network. An active flow content addressable memory (CAM) contains entries of flow information for each active flow of packets passing through a given node of the data communications network. The CAM has associated with each entry a packet counter, a byte counter, a token bucket, and a contract value. Each flow is assigned one of a plurality of output queues and optionally at least one output threshold value. A token bucket algorithm is employed on each flow to determine whether packets from that flow exceed the contract value. Such packets may be dropped or optimally modified to reflect an alternate output queue and/or alternate threshold before being sent to the selected output queue for transmission from the node.
55 Citations
33 Claims
-
1. A method for implementing a quality of service policy in a data communications network, comprising:
-
receiving a packet of a certain flow;
extracting certain flow information from the packet;
using the certain flow information as an index into an active flow table containing at least one active flow to look up quality of service parameters applicable to the certain flow, the quality of service parameters including a contract value specifying a committed access rate corresponding to the certain flow, an output queue corresponding to the certain flow, and an output queue threshold co corresponding to the output queue;
using the quality of service parameters to determine a codepoint for the packet, the codepoint having encoded in it the output queue and the corresponding output queue threshold value;
implementing a token bucket algorithm with respect to the certain flow using the contract value and a leak rate to determine whether the packet is in-profile or out-of-profile; and
when the packet is out-of-profile;
modifying the codepoint for the packet and determining whether the packet is to be drooped; and
when the packet is in-profile or when the determination has been made that the packet that is out-of-profile is not to be drooped;
directing the packet to the output queue based on the codepoint and setting the output queue threshold of the output queue based on the codepoint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus for implementing a quality of service policy data communications network, the apparatus comprising:
-
a packet input for receiving a packet of a certain flow;
a flow information extractor for extracting certain flow information from the packet;
an active flow table storing for at least one active flow corresponding quality of service parameters specifying at least a contract value specifying a committed access rate, a n output queue, and an output queue threshold value corresponding to the output queue;
a codepoint generator responsive to the flow information extractor and the quality of service parameters, the codepoint generator encoding an output queue and a corresponding output queue threshold value into a codepoint for the packet;
a token bucket using the contract value and a leak rate to determine whether the packet is in-profile or out-of-profile;
a packet codepoint modifier for, when the packet is out-of-profile, modifying the codepoint for the packet;
a packet drooper for, when the packet is out-of-profile, determining whether the packet is to be dropped;
a plurality of output queues, wherein, when the packet is in-profile or when the determination has been made that the packet that is out-of-profile is not to be dropped, one of the plurality of output queues is selected based on the codepoint as the output queue for transmission of the packet; and
an output queue threshold setter, wherein, when the packet is in-profile or when the determination has been made that the packet that is out-of-profile is not to be dropped, the output queue threshold for the output queue is set based on the codepoint. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. An apparatus for implementing a quality of service policy in a data communications network, comprising:
-
means for receiving a packet of a certain flow;
means for extracting certain flow information from the packet;
means for using the certain flow information as an index into an active flow table containing at least one active flow to look up quality of service parameters applicable to the certain flow, the quality of service parameters including a contract value specifying a committed access rate corresponding to the certain flow, an output queue corresponding to the certain flow, and an output queue threshold corresponding to the output queue;
means for using the quality of service parameters to determine a codepoint for the packet, the codepoint having encoded in it the output queue and the corresponding output queue threshold value;
means for implementing a token bucket algorithm with respect to the certain flow using the contract value and a leak rate to determine whether the packet is in-profile or out-of-profile;
when the packet is out-of-profile;
means for modifying the codepoint for the packet and determining whether the packet is to be dropped; and
when the packet is in-profile or when the determination has been made that the packet that is out-of-profile is not to be dropped;
means for directing the packet to the output queue based on the codepoint and setting the output queue threshold of the output queue based on the codepoint. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification