US 7,321,554 B1
Method and apparatus for preventing blocking in a quality of service switch
Hugh Walsh, Sunnyvale, Calif. (US); and Donald Pannell, Cupertino, Calif. (US)
Assigned to Marvell International Ltd., Hamilton (Bermuda)
Filed on Apr. 24, 2007, as Appl. No. 11/789,315.
Application 11/789315 is a continuation of application No. 10/141096, filed on May 07, 2002, granted, now 7,209,440.
This patent is subject to a terminal disclaimer.
Int. Cl. G01R 31/08 (2006.01)
U.S. Cl. 370—230  [370/235; 370/412; 710/52; 710/57] 36 Claims
OG exemplary drawing
 
1. 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 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.