Patent ID: 7209440

Claim:
A method for sending a frame of data from a first channel to a second channel using at least one of m memory buffers for storing a frame, m being at least 2, in which n of the m buffers have an available status and p of the m buffers have an unavailable status, wherein m=n+p, the method comprising: reserving for the first channel one or more of the n buffers having the available status when a number q of the buffers reserved for the first channel is less than a capacity r of reserve module buffers, wherein q≦r; when a frame is received from the first channel, storing the frame in i of the q buffers and changing the status of the i buffers to unavailable, wherein 1≦i≦q; selectively assigning the frame to the second channel based on a number s of the q buffers, wherein s≦q; wherein if the frame is assigned to the second channel, the frame is sent to the second channel from the i buffers and the status of the i buffers is changed to available; wherein if the frame is not assigned to the second channel, the frame is discarded and the status of the i buffers is changed to available; wherein h of the n buffers having the available status are not reserved to any channel, wherein h+q≦n; stopping reserving buffers for the first channel when the second channel is congested and the number of buffers h not reserved to any channel is less than, or equal to, a first predetermined threshold; and starting reserving buffers for the first channel when the number of buffers h not reserved to any channel is greater than, or equal to, a second predetermined threshold.