Patent ID: 6633540
Filing Date: 2003-10-14
Classification: H04L

Abstract:
A traffic shaper for shaping traffic in a packet network, comprising:a packet classifier coupled to receive an incoming packet from said packet network and to classify the incoming packet as one of a real-time packet and a best-effort packet; a packet discarding block coupled to perform traffic shaping of the incoming packet from the packet classifier and discard the incoming packet in accordance with traffic shaping parameters; connection queues including a real-time queue and a best-effort queue coupled to temporary store real-time packets and best-effort packets from the packet discarding block, respectively; and a packet scheduling block coupled to send the real-time and best-effort packets from the connection queues to an outgoing device in accordance with said traffic shaping parameters, wherein said packet discarding block is configured to discard the incoming packet by: determining whether the real-time and best-effort queues are empty; when the real-time and best-effort queues are empty, resetting the counters and a scheduled transmission time of the next incoming packet; determining whether a real-time latency is greater than a maximum latency value of the real-time queue; when the real-time latency is greater than the maximum latency value of the real-time queue, discarding the real-time packet input from the packet classifier; determining whether a total latency is greater than a maximum latency value of both the real-time and best-effort queues; when the total latency is greater than the maximum latency value of both the real-time and best-effort queues, adding a best-effort packet to a tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue; determining whether a length of the real-time queue is greater than a maximum queue length of the real-time queue; when the length of the real-time queue is greater than a maximum queue length of the real-time queue, discarding the real-time packet input from the packet classifier; determining whether a length of the best-effort queue is greater than a maximum queue length of the best-effort queue; when the length of the best-effort queue is greater than a maximum queue length of the best-effort queue, adding a best-effort packet input from the packet classifier to the tail of the best-effort queue and discarding a best-effort packet from a head of the best-effort queue; determining whether there is concurrency and time to discard a real-time packet to make room for best-effort packets; when there is concurrency and time to discard the real-time packet, discarding the real-time packet to implement the keep-alive bandwidth for best-effort packets; and placing the real-time packet that was not discarded in the real-time queue.