Patent ID: 8036226
Filing Date: 2011-10-11
Classification: H04L

Abstract:
1. A computer-implemented method comprising: maintaining a queue structure to hold a hierarchy of network packet queues, wherein, the queue structure comprises one or more destination queues to contain unsent network packets awaiting transmission to a destination, wherein a destination queue in the queue structure for a destination comprises one or more path queues to contain unsent network packets awaiting transmission to the destination via a corresponding network path, wherein a path queue in the queue structure for a network path comprises one or more QoS class queues to contain unsent network packets awaiting transmission to the destination via the network path that belong to a corresponding QoS class, and wherein a QoS class queue in the queue structure of a QoS class comprises one or more flow queues to contain unsent network packets awaiting transmission to the destination via the network path that belong to the QoS class and that belong to a corresponding network flow; dynamically assigning incoming flows of network packets to the network paths to the destination by creating a flow queue in the queue structure for each of the incoming flows, wherein each the incoming flows of network packets has a corresponding Quality of Service (QoS) bandwidth requirement, wherein the incoming flows of network packets are assigned to the flow queues within the QoS class queues and the path queues to satisfy the respective QoS bandwidth requirement of each of the incoming flows and to load balance the flows among the network paths; forwarding the network packets of the incoming flows along the assigned network paths such that each of the QoS bandwidth requirements of the flows is satisfied; selecting a flow currently assigned to one of the network paths when the network path does not have sufficient available bandwidth to satisfy the respective QoS bandwidth requirement of one of the flows assigned to the network path; and un-assigning the selected flow from the network paths by deleting the flow queue of the selected flow from the queue structure.