Patent ID: 7142552

Claim:
A method for controlling a plurality of pipes in a computer network including at least one processor for a switch, the at least one processor having a queue, comprising the steps of: (a) assigning each pipe a priority ranking class label from a label set of (0, 1, 2, . . . N-1), wherein a highest priority pipe is assigned 0 and remaining pipes are assigned 1 through N-1 in an ascending label order corresponding to a descending order of pipe priority ranking, wherein N is the number of pipes, wherein each class has a unique priority rank with respect to each of the other classes, said ranks ranging from a highest priority rank to a lowest priority rank; (b) calculating a transmission probability for each pipe responsive to its priority rank; (c) determining if excess bandwidth exists for the queue; (d) if excess bandwidth exists linearly increasing the transmission probability for each pipe by (d1) calculating a linear coefficient Ci for each pipe (i) from the formula: C0= 1/128 and Ci+1=Ci/2 for (i)=(0, 1, . . . , N-2); and (d2) increasing the transmit probability of each pipe linearly with its coefficient Ci; (e) If excess bandwidth does not exist exponentially decreasing transmission probability for each pipe by (e1) calculating an exponential coefficient Di for each pipe (i) from the formula: DN-1= 1/128 and Di=(Di+1)/2 for (i)=(N-2, N-3, . . . , 0); and (e2) decreasing the transmit probability of each pipe (i) exponentially with its coefficient Di; (f) transferring a packet to the queue from a pipe responsive to the pipe transmission probability and priority rank; and (g) transmitting the packet from the queue.