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 |
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.
|