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 to determine a match with an entry in a content addressable memory associated with an aggregate flow table, the content addressable memory containing a plurality of entries, each of the entries corresponding to an aggregation of individual flows;
selecting, based upon said match, an output queue, the output queue selected based upon a plurality of quality of service parameters contained in the aggregate flow table and indexed from the matching entry in the content addressable memory, and the quality of service parameters further including an output queue threshold value and a contract value specifying a committed access rate corresponding to the certain flow;
encoding a codepoint associated with the packet with an identification of the selected output queue and a value corresponding to the 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;
when the packet is out-of-profile;
modifying the codepoint associated with 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;
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. A content addressable memory (CAM) contains flow information for each active flow of packets passing through a given node of a 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. An access control list CAM (ACLCAM) contains masked flow information. The ACLCAM provides an index to internal token bucket counters and preconfigured contract values of an aggregate flow table which becomes affected by the packet statistics. In this way, flows are aggregated for assignment of output queues and thresholds, possible dropping, and possible modification of packets.
-
Citations
29 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 to determine a match with an entry in a content addressable memory associated with an aggregate flow table, the content addressable memory containing a plurality of entries, each of the entries corresponding to an aggregation of individual flows;
selecting, based upon said match, an output queue, the output queue selected based upon a plurality of quality of service parameters contained in the aggregate flow table and indexed from the matching entry in the content addressable memory, and the quality of service parameters further including an output queue threshold value and a contract value specifying a committed access rate corresponding to the certain flow;
encoding a codepoint associated with the packet with an identification of the selected output queue and a value corresponding to the 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;
when the packet is out-of-profile;
modifying the codepoint associated with 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;
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. An apparatus for implementing a quality of service policy in a 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;
a content addressable memory (CAM) containing a plurality of entries, each of the entries corresponding to an aggregation of individual packet flows;
an aggregate flow table coupled to said CAM and containing information selected by the entries in said CAM;
said CAM comparing extracted flow information from a packet processed by said flow information extractor and determining a match with one of the entries in said CAM;
said aggregate flow table providing a selected output queue and output queue threshold value for the packet in response to the match;
a codepoint generator responsive to said selected output queue, said codepoint generator encoding an output queue and a corresponding output queue threshold value into a codepoint for the packet;
a token bucket using a contract value stored in the flow table 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 dropper 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 (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An apparatus for implementing a quality of service policy in a data communications network, the apparatus 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 to determine a match with an entry in a content addressable memory associated with an aggregate flow table, the content addressable memory containing a plurality of entries, each of the entries corresponding to an aggregation of individual flows;
means for selecting, based upon said match, an output queue, the output queue selected based upon a plurality of quality of service parameters contained in the aggregate flow table and indexed from the matching entry in the content addressable memory, and the quality of service parameters further including an output queue threshold value and a contract value specifying a committed access rate corresponding to the certain flow;
means for encoding a codepoint associated with the packet with an identification of the selected output queue and a value corresponding to the 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 associated with 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 (22, 23, 24, 25, 26, 27, 28, 29)
-
Specification