Patent ID: 6377550
Filing Date: 2002-04-23
Classification: H04L

Abstract:
A method of allocating data rates among a plurality of available bit rate message flows, at a communications link in a network, the link having an available bit rate bandwidth associated with available bit rate traffic, the method comprising the steps of:responsive to receiving a resource management cell associated with one of the plurality of message flows, the resource management cell including a current cell rate value, performing the steps of: assigning a rate level to the associated message flow, the rate level corresponding to a range of cell rates and to a corresponding one of a plurality of measurement periods of varying duration, wherein shorter duration measurement periods are associated with higher cell rates, and wherein expiration of each of the longer ones of the plurality of measurement periods coincides with the expiration of shorter ones of the plurality of measurement periods; incrementing a current level count value for the assigned rate level; adding the current cell rate value to a current level rate value for the assigned rate level; responsive to the current cell rate value exceeding a maximum cell rate value, setting the maximum cell rate value to the current cell rate value and initializing a maximum cell rate count value; and responsive to the current cell rate value equaling the maximum cell rate value, incrementing the maximum cell rate count value; wherein each of a plurality of level memory entries is associated with one of the rate levels, and includes fields for storing the current level rate value and the current level count value, and also fields for storing a stored level rate value generated during a previous measurement period and a stored level count value also generated during a previous measurement period; and responsive to one of the plurality of measurement periods expiring, performing the operations of: generating a total link rate sum by adding a sum of the current level rate values for each rate level associated with an expiring measurement period with a sum of the stored level rate values for each rate level associated with a non-expiring measurement period; generating a total link flow count of the sum of the stored level count values for each rate level; determining a surplus bandwidth value for the link from the total link rate sum; calculating a first bottleneck rate by adding the highest current cell rate value to the surplus bandwidth value; generating a bottleneck rate corresponding to the larger of the first bottleneck rate and a ratio of the available bit rate bandwidth to the total link flow count; and communicating backward-traveling resource management cells to sources of each of the plurality of available bit rate message flows, each of the backward-traveling resource management cells having an explicit rate value no higher than the bottleneck rate.