Methods and apparatus for differentiated services over a packet-based network
AssigneeEnterasys Networks, Inc.
InventorsLeon K. Woo, Robert Ryan, John B. Crowther
Life of this patent
Estimating the term…
Abstract
Methods and apparatus for the provision of differentiated services in a packet-based network may be provided in a communications device such as a switch or router having input ports and output ports. Each output port is associated with a set of configurable queues that store incoming data packets from one or more input ports. A scheduling mechanism retrieves data packets from individual queues in accord with a specified configuration, providing both pure priority and proportionate de-queuing to achieve a guaranteed QoS over a connectionless network.
Claims130
A communications device for use on a communications network, the device capable of transferring data packets received at an input port to an output port, the device comprising:
- a first configurable queue in communication with said input port and said output port;
- and
- a second configurable queue in communication with said input port and said output port,
- wherein each of said first and second queues is configurable to independently operate in one of a fairness-based mode, wherein a fairness-based queue is serviced when egress bandwidth is available, and a priority-based mode, wherein a priority-based queue with packets for dequeuing is serviced before a fairness-based queue is serviced when priority-based mode dequeuing constraints are met.
A method for routing data packets using a telecommunications device, the method comprising the steps:
- (a) providing a first configurable queue in communication with an input port and an output port, and a second configurable queue in communication with said input port and said output port, each of said first and second queues independently configured to operate in one of a fairness-based mode and a priority-based mode;
- (b) receiving a packet at said input port;
- (c) classifying the packet as subject to one of fairness-based handling and priority-based handling;
- (d) assigning said packet to one of said first configurable queue and said second configurable queue operating in a mode corresponding to the handling to which the packet is subject;
- and
- (e) causing the queue to which said packet has been assigned to provide said packet to said output port by servicing said identified queue in one of a fairness-based mode and a priority-based mode, as configured.
A method for routing data packets using a telecommunications device, the method comprising the steps of:
- (a) selecting one of a plurality of queues, each of said queues independently operating in one of a priority-based and a fairness-based mode;
- (b) dequeuing a packet from one of said priority-based queues;
- (c) iterating step (b) until a priority-based condition is satisfied;
- (d) dequeuing a packet from one of said fairness-based queues while said priority-based condition is satisfied, the failure of said condition resulting in the execution of step (c).
A packet-buffering system in a communication device for transferring packets received over a communications network from an input port to an output port of the communication device, the system comprising:
- a first-level memory segmented into a plurality of first-level configurable queues each having a first-buffer depth, the plurality of first-level configurable queues receiving the packets from the input port of the communication device;
- and
- a second-level memory in communication with the first-level memory and the output port, the second-level memory being segmented into a plurality of second-level configurable queues each having a second-buffer depth and being associated with the output port of the communication device, the plurality of second-level configurable queues receiving packet data from at least one of the plurality of first-level configurable queues and transferring the packet data to the output port,
- wherein a sum of the second-buffer depths exceeds a sum of the first-buffer depths and each of said plurality of second-level queues is configurable to independently operate in one of a fairness-based mode and a priority-based mode.
A hierarchical packet-buffering system in a communication device for connection to a network having a first network bandwidth, the system comprising:
- a first configurable packet buffer capable of receiving data packets from the communication device over the network, the first configurable packet buffer comprising a plurality of queues and having a first packet-buffer bandwidth and a first packet-buffer depth;
- and
- a plurality of second configurable packet buffers in communication with the first configurable packet buffer, each of the plurality of second packet buffers being associated with and receiving packets from at least one of the plurality of queues of the first configurable packet buffer, each of the plurality of second packet buffers having a second packet-buffer bandwidth and a second packet-buffer depth,
- wherein a sum of the second packet-buffer depths exceeds the first packet-buffer depth, a sum of the second packet-buffer bandwidths is equal to or greater than the first packet-buffer bandwidth, the first packet-buffer bandwidth is greater than or equal to the first network bandwidth, and each of said plurality of second configurable packet buffers is configurable to independently operate in one of a fairness-based mode and a priority-based mode.
A hierarchical packet-buffering system for transferring packets from a series of input ports to a series of output ports, at least some of the input ports being continuously connected to corresponding output ports, the system comprising:
- a first configurable packet buffer organized into a first series of queues comprising a plurality of priority queue sets, each first-series priority queue set comprising a plurality of the first-series queues and being associated with one of the output ports, each of the first-series queues having a first-series queue size;
- a second packet buffer receiving packets from the first configurable packet buffer, the second packet buffer being organized into a second series of queues comprising a plurality of priority queue sets, each second-series priority queue set comprising a plurality of the second-series configurable queues and being associated with one of the output ports, each of the second-series configurable queues having a second-series queue size larger than the size of a corresponding first-series queue;
- a plurality of de-queuing systems, each of the de-queuing systems being assigned to one of the second-series configurable queues and scheduling packets stored therein for output on one of the output ports;
- and
- a forwarding engine for examining each of the packets received on the input ports and enabling transfer of each the packet to a selected one of the first-series queues,
- wherein packets arrive at the input ports and are transferred to the first-series queues at an aggregate network rate, packets being received by the second-series configurable queues are transferred at a rate less than the aggregate network rate, and each of said plurality of second-series queues is configurable to independently operate in one of a fairness-based mode and a priority-based mode.
A method of buffering packets in a communication device, the method comprising the steps of:
- receiving the packets at an input port of the communication device;
- providing first-level configurable queues associated with the input port and having a first-buffer depth, the first-level configurable queues receiving the packets from the input port;
- selecting an output port of the communication device as a destination for the received packets;
- providing second-level configurable queues associated with the selected output port and corresponding to the first-level configurable queues, the second-level configurable queues having a second-buffer depth exceeding the first-buffer depth of the first-level configurable queues;
- transferring the received packets from the first-level configurable queues to corresponding second-level configurable queues;
- and
- transmitting the transferred packets in the second-level configurable queues to the selected output port,
- wherein each of said of second-level configurable queues is configurable to independently operate in one of a fairness-based mode and a priority-based mode.
A method of buffering data in a packet-buffering system of a communication device for connection to a network having a first network bandwidth, the method comprising the steps of:
- providing a first configurable packet buffer capable of receiving data packets from the communication device over the network, the first configurable packet buffer comprising a plurality of queues and having a first packet-buffer bandwidth and a first packet-buffer depth;
- providing a plurality of second configurable packet buffers in communication with the first configurable packet buffer, each of the second configurable packet buffers being associated with and receiving packets from at least one of the plurality of queues of the first configurable packet buffer, each of the second configurable packet buffers having a second packet-buffer bandwidth and a second packet-buffer depth, wherein
- i) a sum of the second packet-buffer depths exceeds the first packet-buffer depth,
- ii) a sum of the second packet-buffer bandwidths is equal to or greater than the first packet-buffer bandwidth, and
- iii) the first packet-buffer bandwidth is greater than or equal to the first network bandwidth;
- receiving the data packets in at least one of the plurality of queues of the first configurable packet buffer, the data packets being received from an input port of the communication device;
- and
- routing packets from the queues of the first configurable packet buffer to corresponding queues of second configurable packet buffer, the corresponding queues transferring the routed packets to an output port of the communication device.
A method of buffering queues in a hierarchical packet-buffering system coupled to a network, comprising the steps of:
- receiving data packets over the network, the data packets having forwarding attributes associated therewith;
- aggregating data packets with substantially similar forwarding attributes into queue flows;
- routing at least one of the queue flows into a plurality of first configurable packet buffers, each of the plurality of first configurable packet buffers having a first packet-buffer bandwidth and first packet-buffer depth;
- routing a subset of the at least one of the queue flows from at least one of the plurality of first configurable packet buffers into a plurality of second configurable packet buffers associated with the at least one of the queue flows, each of the plurality of second configurable packet buffers having a second packet-buffer bandwidth and a second packet-buffer depth, wherein a sum of the first packet-buffer bandwidths associated with the at least one of the queue flows is less than or equal to a corresponding sum of the associated second packet-buffer bandwidths.
A method for routing data packets using a telecommunications device, the method comprising the steps:
- (a) providing a first configurable queue in communication with an input port and an output port, and a second configurable queue in communication with said input port and said output port, each of said first and second queues independently configured to operate in one of a fairness-based mode and a priority-based mode;
- (b) incrementing a first credit counter associated with said first queue;
- (c) comparing the value of said first credit counter to a first predetermined value;
- and
- (d) incrementing a second credit counter in response to the result of said comparison.
Dependencies are inferred from the claim text.