Claims
- 1. A device comprising:
a first Fibre Channel port; a second Fibre Channel port; a first counter communicating with both the first Fibre Channel port and the second Fibre Channel port; and a second counter communicating with both the first Fibre Channel port and the second Fibre Channel port, wherein the first counter is operable to increment when the first Fibre Channel port receives a frame and decrement when the first Fibre Channel port sends a credit, and wherein the second counter is operable to increment when the second Fibre Channel port receives a credit and decrement when the first Fibre Channel port sends a credit.
- 2. The device as in claim 1,
wherein the first Fibre Channel port is a slower Fibre Channel port compared to the second Fibre Channel port.
- 3. The device as in claim 1,
wherein when the first Fibre Channel port is connected to a third Fibre Channel port and the second Fibre Channel port is connected to a fourth Fibre Channel port, the first counter is operable to be set to a first number and the second counter is operable to be set to a second number.
- 4. The device as in claim 3, wherein the first number is zero.
- 5. The device as in claim 3, wherein the second number is positive.
- 6. The device as in claim 3,
wherein when the fourth port advertises a number of credits and the third port has a transmitter credit counter with a maximum value, the second number equals to the number of credits advertised by the fourth port minus the maximum value of the transmitter credit counter in the third port.
- 7. The device in claim 1, further comprising:
third counter communicating with both the first and second Fibre Channel ports, wherein the third counter is operable to increment when the first Fibre Channel port receives a credit and decrement when the second Fibre Channel port sends a credit.
- 8. The Fibre Channel switch in claim 7, wherein the second port is prohibited from sending credits when the third counter is less than one.
- 9. The device in claim 7, further comprising:
a fourth counter communicating with the first and the second Fibre Channel ports, wherein the fourth counter is operable to increment when the first Fibre Channel port receives a credit and decrement when the first Fibre Channel port sends a frame.
- 10. The device in claim 9, wherein when the first Fibre Channel port is connected to a third Fibre Channel port, the fourth counter is operable to be set to a number equal to the number of credits advertised by the third Fibre Channel port.
- 11. The device in claim 7, further comprising:
a fifth counter communicating with both the first and second Fibre Channel ports, wherein the fifth counter is operable to increment when the first Fibre Channel port sends a frame and decrement when the second Fibre Channel port receives a frame, wherein the second port is prohibited from sending credits when the fifth counter is less than zero.
- 12. A device comprising:
a first Fibre Channel port; a second Fibre Channel port; and first counter communicating with both the first Fibre Channel port and the second Fibre Channel port, wherein the first counter is operable to increment when the second Fibre Channel port receives a credit and decrement when the first Fibre Channel port sends a credit.
- 13. The device as in claim 12, further comprising:
a second counter communicating with the first Fibre Channel port and the second Fibre Channel port, wherein the second counter is operable to increment when the second Fibre Channel port receives a credit and decrement the when second Fibre Channel port sends a frame.
- 14. The device as in claim 13,
wherein when the first Fibre Channel port connects to a third Fibre Channel port, the third counter is operable to be set to a number equal to the number of credits advertised by the third Fibre Channel port.
- 15. A device as in claim 12,
wherein the first Fibre Channel port is a faster Fibre Channel port compared to the second Fibre Channel port.
- 16. The device in claim 12, further comprising:
a third counter communicating with both the first and second Fibre Channel ports, wherein the third counter is operable to increment when the second Fibre Channel port sends a frame and decrement when the first Fibre Channel port receives a frame, wherein the first port is prohibited from sending credits when the third counter is less than zero.
- 17. A Fibre Channel switch comprising:
a first port; a second port; a buffer memory having a plurality of buffers, communicating with both the first port and the second port; and a control module having a plurality of credits representing the buffers, communicating with both the first port and the second port, and controlling one or more logical flow paths within the switch; and a first counter and a second counter within a logical flow path communicating with both the first port and the second port; wherein the first counter is operable to increment when the first port receives a frame for the logical flow path and decrement when the first port sends a credit for the logical flow path, and wherein the second counter is operable to increment when the second port receives a credit for the logical flow path and decrement when the first port sends a credit for the logical flow path.
- 18. The Fibre Channel switch as in claim 17, wherein the first port is a slower port compared to the second port.
- 19. The Fibre Channel switch as in claim 17,
wherein when the first port is connected to a third port and the second port is connected to a fourth port, the first counter is operable to be set to a first number and the second counter is operable to be set to a second number.
- 20. The Fibre Channel switch as in claim 19, wherein the first number is zero.
- 21. The Fibre Channel switch as in claim 19, wherein the second number is positive.
- 22. The Fibre Channel switch as in 19,
wherein the fourth port advertises a number of credits for the logical flow path and the third port has a transmitter credit counter for the logical flow path with a maximum number, the second number equals to the number of credits advertised by the fourth port minus the maximum value of the transmitter credit counter in the third port.
- 23. The Fibre Channel switch in claim 17, further comprising:
third counter communicating with both first and second ports; wherein the third counter is operable to increment when the first port receives a credit and decrement when the second port sends out a credit.
- 24. The Fibre Channel switch in claim 23, wherein the second port is prohibited from sending credits when the third counter is less than one
- 25. The Fibre Channel switch in claim 23, further comprising:
a fourth counter communicating with the first port and the second port; wherein the fourth counter is operable to increment when the first port receives a credit and decrement when the first port sends a frame, and wherein the first port is prohibited from sending frames when the fourth counter is less than one.
- 26. The Fibre Channel switch in claim 25, wherein when the first-port is connected to a third port, the fourth counter is set to a number of credits advertised by the third port.
- 27. The Fibre Channel switch in claim 23, wherein when the second port connects to a fourth port, the third counter is set to zero.
- 28. The Fibre Channel switch as in claim 19, wherein the first port is prohibited from sending credit when the second counter is less than one.
- 29. The Fibre Channel switch in claim 23, further comprising:
a fifth counter communicating with both first and second ports, wherein the fifth counter is operable to increment when the first port sends a frame and decrement when the second port receives a frame; and wherein the second port is prohibited from sending credits when the fifth counter is less than zero.
- 30. A Fibre Channel switch comprising:
a fast port and a plurality of slow ports; a buffer memory communicating with both the fast port and the slow ports; a control module communicating with both the fast port and the slow ports and controlling one or more logical flow paths; and a logical flow path having a first counter, wherein the first counter is operable to increment when a slow port receives a credit for the logical flow path and decrement when the fast port sends a credit for the logical flow path.
- 31. The Fibre Channel switch in claim 30,
wherein the fast port is prohibited from sending credits for the logical flow path when the first counter is less than one.
- 32. The Fibre Channel switch as in claim 30, further comprising:
a second counter in the logical flow path, wherein the second counter is operable to increment when a slow port receives a credit over the logical flow path and decrement when a slow port sends a frame over the logical flow path, and wherein any slow ports are prohibited from sending frames over the logical flow path when the second counter is less than one.
- 33. The Fibre Channel switch as in claim 30,
wherein when a slow port for the logical flow path connects to a fourth port, the second counter is operable to be set to the number of credits advertised by the fourth port for the logical flow path.
- 34. The Fibre Channel switch as in claim 30,
wherein when the fast port connects to a third port,
the fast port is operable to advertise a first number of credits for the logical flow path, the first counter is operable to be set to zero.
- 35. The Fibre Channel switch as in claim 34,
wherein the first number of credits is a number of credits in the control module representing the number of frames allocated in the buffer memory for the logical flow path plus the number of credits advertised by the fourth port for the logical flow path.
- 36. The Fibre Channel switch as in claim 34,
wherein the first number of credits is a number of credits in the control module representing the number of frames allocated to the buffer memory for the logical flow path.
- 37. The Fibre Channel switch in claim 30,
wherein the logical flow path further having a third counter, wherein the third counter is operable to increment when the second port sends a frame over the logical flow path and decrement when the first port receives a frame over the logical flow path, wherein third counter is operable to be set to a second number, and wherein the fast port is prohibited from sending credits for the logical flow path when the third counter is less than zero.
- 38. The Fibre Channel switch as in claim 37,
wherein the fast port has a total frame receiving rate; wherein the number of slow ports on the switch is a third number; wherein the slow ports have a total frame retransmission rate, which is less than the total frame receiving rate; wherein the second number is determined by the following formula: second number=max (2* (third number), roundup (SPEED—INDEX* (first number))), where
SPEED_INDEX=1−(total frame retransmission rate)/(total frame receiving rate), max (a, b) is a function returning the larger number of a and b, and roundup(x) is a function returning the next integer greater than or equal to x.
- 39. The Fibre Channel switch as in claim 34,
wherein the first number of credits is the number of credits advertised by the fourth port for the logical flow path.
- 40. A Fibre Channel fabric for an information network comprising:
a first switch including:
a first memory having a plurality of buffers; a first control module communicating with the first memory; and first and second ports communicating with the first memory; and a second switch including:
a second memory having a plurality of buffers; a second control module communicating with the second memory a third port and a fourth port communicating with the second memory, the third port connected to the second port and having a plurality of logical flow paths; and first and second counters for a logical flow path, wherein the first counter increments when the third port receives a frame over the logical flow path and decrements when the third port sends a credit for the logical flow path, and wherein the second counter increments when the fourth port receives a credit over the logical flow path and decrements when the third port sends a credit for the logical flow path.
- 41. The Fibre Channel fabric in claim 40,
wherein the third port is prohibited from sending credit for the logical flow path when the second counter is less than one.
- 42. The Fibre Channel fabric in claim 41, wherein the fourth port is faster than any one of the first port, the second port and the third port.
- 43. The Fibre Channel fabric in claim 42,
wherein the first counter is initialized to a first number, and the second counter is initialized to a second number.
- 44. The Fibre Channel fabric in claim 43, wherein the first number is zero.
- 45. The Fibre Channel fabric in claim 43, wherein the second number is positive.
- 46. The Fibre Channel fabric in claim 43,
wherein the second port has a transmitter credit counter for the logical flow path; wherein the second number equals the number of credits advertised to the fourth port for the logical flow path minus the maximum value of the transmitter credit counter in the second port for the logical flow path.
- 47. The Fibre Channel fabric in claim 46, further comprising:
a third switch having a third memory;
a third control module communicating with the third memory; a fifth port communicating with the third memory, connecting to the fourth port in the second switch and having one or more logical flow paths; a sixth port communicating with the third memory; and third counter for the logical flow path; and a fourth switch having a fourth memory;
a fourth control module communicating with the fourth memory; a seventh port communicating with the fourth memory and connected to the sixth port in the third switch; and an eighth port communicating with the fourth memory, wherein the third counter is operable to increment when the sixth port receives a credit for the logical flow path and decrement when the fifth port sends out a credit for the logical flow path, and wherein the fifth port is prohibited from sending credits for the logical flow path when the third counter is less than one.
- 48. The Fibre Channel fabric in claim 47,
wherein the third switch further has a fourth counter for the logical flow path, wherein the fourth counter is operable to increment when the sixth port receives a credit from the seventh port for the logical flow path and to decrement when the sixth port sends a frame to the seventh port over the logical flow path, and wherein the fourth counter is initialized to a third number.
- 49. The Fibre Channel fabric in claim 48, wherein the third number is the number of credits advertised by the seventh port for the logical flow path.
- 50. The Fibre Channel fabric in claim 49,
wherein the fifth port advertises a fourth number of credits for the logical flow path.
- 51. The Fibre Channel fabric in claim 50,
wherein the fourth number of credits is the number of credits in the third switch allocated for the logical flow path.
- 52. The Fibre Channel fabric in claim 47,
wherein the third switch further has a fifth counter for the logical flow path, wherein the fifth counter is operable to increment when the sixth port sends a frame over the logical flow path and decrement when the fifth port receives a frame over the logical flow path, wherein the fifth counter is set to a fifth number, and wherein the fifth port is prohibited from sending credits for the logical flow path when the fifth counter is less than zero.
- 53. The Fibre Channel fabric in claim 52,
wherein the fifth number is the maximum value of the fifth counter.
- 54. The Fibre Channel fabric in claim 50,
wherein the fourth number of credits is the third number plus the number of credits allocated in the third switch for the logical flow path.
- 55. The Fibre Channel fabric in claim 50,
wherein the fourth number of credits is same as the third number.
- 56. The Fibre Channel fabric in claim 52,
wherein the third switch has a sixth number of slow ports; wherein the fifth number is determined by the following formula: fifth number=max (2*(sixth number), roundup (SPEED—INDEX* (fourth number))), where
SPEED_INDEX=1−(total frame transmission rate out the third switch through ports other than the fifth port)/(total frame transmission rate into the third switch through the fifth port), max (a, b, . . . ) is a function returning the largest number in the argument, and roundup(x) is a function returning the next integer greater than x.
- 57. The Fibre Channel fabric in claim 50,
wherein the third switch further has an RCC counter and a CEC counter; wherein the second switch further has an OTCC counter, an EOCC counter, a CFC counter, and a TCC counter, wherein the RCC counter is operable to increment when the sixth port receives a frame and decrement when the sixth port sends out a credit, wherein the CEC counter is operable to increment when the fifth port receives a credit and decrement when the sixth port sends out a credit, wherein the sixth port is prohibited from sending credit when the CEC counter is less than one, wherein the OTCC counter is operable to increment when the third port sends a frame and decrement when the fourth port receives a frame, wherein the EOCC counter is operable to increment when the fourth port sends a credit and decrement when the third port sends out a frame, wherein the CFC counter is operable to increment when the third port receives a credit and decrement when the fourth port sends out a credit, wherein the fourth port is prohibited from sending credits when the OTCC counter is less than one and the EOCC counter is not less than zero, and wherein the fourth port is prohibited from sending credits when the CFC counter is less than one.
- 58. A Fibre Channel fabric for an information network comprising:
a first switch including:
a first memory having a plurality of buffers, a first control module communicating with the first memory and having a plurality of credits representing buffers in the first memory; and first and second ports communicating with the first memory; and a second switch including:
a second memory having a plurality of buffers, a second control module communicating with the second memory and having a plurality of credits representing buffers in the second memory; first and second counters communicating with the second memory; a third port communicating with the second memory and connected to the second port; and a fourth port communicating with the second memory and of the same speed as the third port; a third switch including:
a third memory having a plurality of buffers; a third control module communicating with the third memory and having a plurality of credits representing buffers in the third memory; a fifth port communicating with the third memory, and connected to the fifth port, having one or more logical flow paths, and a sixth port communicating with the third memory and of the same speed as the sixth port; and a fourth switch including:
a fourth memory having a plurality of buffers; a fourth control module communicating with the fourth memory and having a plurality of credits representing buffers in the fourth memory; a seventh port communicating with the fourth memory and connected to the eighth port; and an eighth port communicating with the fourth memory, wherein the first counter increments when the third port receives a frame over a logical flow path and decrements when the third port sends a credit for the logical flow path, and wherein the second counter increments when the fifth port receives a credit for the logical flow path and decrements when the third port sends a credit for the logical flow path.
- 59. The Fibre Channel fabric as in claim 58,
wherein the first counter is set to a first number which is zero; wherein the second port has a transmitter credit counter for the logical flow path; wherein the second counter is set a second number which equals to the value advertised by the fifth port for the logical flow path minus the maximum value of the transmitter credit counter in the second port for the logical flow path.
- 60. The Fibre Channel fabric as in claim 58,
wherein the connection between the fourth port and the fifth port is longer than any other connections between the second and third ports or the sixth and seventh ports.
- 61. The Fibre Channel fabric as in claim 58,
wherein the third switch further comprises third counter for the logical flow path, wherein the third counter is operable to increment when the sixth port receives a credit for the logical flow path and decrement when the fifth port sends out a credit for the logical flow path, and wherein the fifth port is prohibited from sending credits for the logical flow path when the third counter is less than one.
- 62. The Fibre Channel fabric as in claim 61,
wherein the receiver in fifth port advertises a number of credits for a logical flow path equal to the number of credits in the third switch for the logical flow path plus the number of credits advertised by the receiver in the seventh port for the logical flow path, and wherein the third counter is set to zero.
- 63. The Fibre Channel fabric as in claim 60,
wherein the third switch further comprises fourth counter for the logical flow path, wherein the fourth counter is operable to increment when the sixth port sends a frame over the logical flow path and decrement when the fifth port receives a frame for the logical flow path, and wherein the fifth port is prohibited from sending credits for the logical flow path when the fourth counter is less than zero.
- 64. The Fibre Channel fabric as in claim 63,
wherein the fourth counter is set to the maximum value of the fourth counter.
- 65. The Fibre Channel fabric as in claim 63, wherein the third number equals the number of credits advertised by the receiver in the seventh port for the logical flow path minus eight.
- 66. The Fibre Channel fabric as in claim 60,
wherein the second switch further comprises a port that is faster than the third port or the fourth port, and wherein the third switch further comprises a port that is faster than the fifth port or the sixth port.
- 67. The Fibre Channel fabric as in claim 60,
wherein the receiver in the fifth port advertises a number of credits for a logical flow path equal to the number of credits advertised by the receiver in the seventh port for the logical flow path, and wherein the third counter is set to zero.
- 68. An information network system comprising:
a first node; a first switch including:
a first memory having a plurality of buffers; a first control module communicating with the first memory and having a number of credits representing the plurality of buffers in the first switch; a first port communicating with the first memory and connected to the first node; a transmitter credit counter communicating with the first memory, and a second port communicating with the first memory; a second switch including:
a second memory having a plurality of buffers; a second control module communicating with the second memory and having a number of credits representing the plurality of buffers in the second switch; first and second counters communicating with the second memory; and a third port and a forth port communicating with the second memory, the third port connecting to the second port; a third switch including:
a third memory having a plurality of buffers; a third control module communicating with the third memory and having a number of credits representing the plurality of buffers in the third switch; a fifth port communicating with the third memory and connecting to the fourth port; a sixth port communicating with the third memory; and a fourth switch including:
a fourth memory having a plurality of buffers; a fourth control module communicating with the fourth memory and having a number of credits representing the plurality of buffers in the fourth switch; a seventh port communicating with the fourth memory and connected to the sixth port; and an eighth port communicating with the fourth memory; and a second node connected to the eighth port, wherein the first counter increments when the third port receives a frame and decrements when the third port sends a credit, wherein the second counter increments when the fourth port receives a credit and decrements when the third port sends a credit, and wherein the first and the second counters are initialized to a first number and a second number, respectively.
- 69. The system in claim 68, wherein the first node is a server.
- 70. The system in claim 68, wherein the first node is a storage unit.
- 71. The system in claim 68, wherein the second node is a server.
- 72. The system in claim 68, wherein the second node is a storage unit.
- 73. The system in claim 68, wherein the fourth port and the fifth port are higher speed Fibre Channel ports than any of the first, second, third, the sixth, seventh and eighth ports.
- 74. The system in claim 68, wherein the first number is zero.
- 75. The system in claim 68,
wherein the first counter and the second counter are used for a logical flow path, and wherein the second number equals the number of credits advertised to the fourth port for the logical flow path minus the maximum value of the transmitter credit counter.
- 76. The system in claim 68,
wherein the third switch further comprises:
third counter communicating with the third memory, wherein the third counter is operable to increment when the sixth port receives a credit and decrement when the fifth port sends out a credit, wherein the third counter is initialized to third number; and wherein the fifth port is prohibited from sending credits when the third counter is less than one.
- 77. An information network system comprising:
a first node; a first switch including:
a first memory having a plurality of buffers; a first control module communicating with the first memory and having a plurality of credits representing buffers in the first memory; a transmit credit counter communicating with the first memory; and first and second ports communicating with the first memory, the first port connecting to the first node; and a second switch including:
a second memory having a plurality of buffers; a second control module communicating with the second memory and having a plurality of credits representing buffers in the second memory; first and second counters communicating with the second memory; a third port communicating with the second memory and connected to the second port; and a fourth port communicating with the second memory and of the same speed as the third port; a third switch including:
a third memory having a plurality of buffers; a third control module communicating with the third memory and having a plurality of credits representing buffers in the third memory; a fifth port communicating with the third memory, connected to the fifth port and having a plurality of logical flow paths; and a sixth port communicating with the third memory, and of same speed port as of sixth port; and a fourth switch including:
a fourth memory having a plurality of buffers; a fourth control module communicating with the fourth memory and having a plurality of credits representing buffers in the fourth memory; a seventh port communicating with the fourth memory and connected to the eighth port; and an eighth port communicating with the fourth memory; and a second node connected to the tenth port; wherein the first counter increments when the third port receives a frame over a logical flow path and decrements when the third port sends a credit for the logical flow path, and wherein the second counter increments when the fifth port receives a credit for the logical flow path and decrements when the third port sends a credit for the logical flow path.
- 78. The information network as in claim 77,
wherein the first counter is set to a first number which is zero, and wherein the second counter is set a second number which equals the number advertised by the fifth port for the logical flow path minus the maximum value of the transmitter credit counter.
- 79. The information network as in claim 77,
wherein the connection between the fifth port and the fourth port is longer than any other connection between the first and second switches or the third and fourth switches.
- 80. The information network as in claim 77,
wherein the third switch further comprises third counter for the logical flow path, wherein the third counter is operable to increment when the sixth port receives a credit for the logical flow path and decrement when the fifth port sends out a credit for the logical flow path, and wherein the fifth port is prohibited from sending credits for the logical flow path when the fourth counter is less than one.
- 81. The information network as in claim 80,
wherein the receiver in the fifth port advertises a number of credits for a logical flow path equal to the number of credits allocated in the third switch for the logical flow path plus the number of credits advertised by the receiver in the seventh port for the logical flow path, and wherein the third counter is set to zero.
- 82. The information network as in claim 80,
wherein the third switch further comprises fourth counter for the logical flow path, wherein the fourth counter is operable to increment when the sixth port sends a frame over the logical flow path and decrement when the fifth port receives a frame for the logical flow path, and wherein the fifth port is prohibited from sending credits for the logical flow path when the fourth counter is less than zero.
- 83. The information network as in claim 82,
wherein the fourth counter is set to a third number that is less than the number of credits in the third switch for the logical flow path, and wherein the third number equals the number of credits advertised by the receiver in the seventh[ninth] port for the logical flow path minus eight.
- 84. The information network as in claim 80,
wherein the fifth port advertises a number of credits for a logical flow path equal to the number of credits advertised by the receiver in the seventh port for the logical flow path, and wherein the fourth counter is set to zero.
- 85. A method to extend buffer memory and counter capacities in a first switch in a Fibre Channel network using a second switch, wherein the first switch has a TCC counter, a first port and a second port; wherein the second switch has a first counter, a second counter, a second buffer memory, a control module, a third port and a fourth port; and wherein the first switch and the second switch are connected through a inter-switch link between the second port and third port, the method comprising the steps of:
dividing the inter-switch link into one or more logical flow paths; initializing the TCC counter at a first number for a logical flow path; initializing the first counter at a second number for the logical flow path; assigning a third number of credits for the logic flow path from the second buffer memory; initializing the second counter to a fourth number equal to the third number minus the first number; incrementing the first counter when the third port receives a frame over the logical flow path; decrementing the first counter when the third port sends a credit for the logical flow path; incrementing the second counter when the fourth port receives a credit for the logical flow path; decrementing the second counter when the third port sends a credit for the logical flow path; incrementing the TCC counter when the second port receives a credit for the logical flow path; decrementing the TCC counter when the second port sends a frame over the logical flow path; prohibiting the third port from sending credits for the logical flow path when the second counter is less than one; and sending a credit from the third port to the second port for the logical flow path whenever the third port receives a frame from the second port over the logical flow path and the third port is not prohibited from sending credits.
- 86. The method in claim 85, wherein the first number is the maximum value of the first counter.
- 87. The method in claim 85, wherein the second number is zero.
- 88. The method in claim 85, wherein the fourth port is a higher speed than the third port.
- 89. A method to avoid buffer overrun in a logic flow path in a Fibre Channel network including
a first switch having:
a first slow speed port; a second fast speed port; and a memory control module communicating with the first and the second ports; a second switch having:
a third fast speed port connected to the second port in the first switch; a plurality of slow speed ports; a memory module communicating with the third port and the slow speed ports and having a plurality of buffers; a memory control module communicating with the memory module and having a number of credits representing the buffers in the memory module in the second switch; and first and second counters communicating with the memory control module; and a third switch having:
a fifth slow speed port connected to a slow port in the second switch; a sixth slow speed port; a memory control module and communicating with the fifth port and the sixth port, the method comprising the steps of:
advertising a number of credits for a logical flow path to the first switch; initializing the first counter to a first number; incrementing the first counter when the fourth port receives a credit; decrementing the first counter when the third port sends a credit; and prohibiting the third port from sending credits when the first counter is less than one.
- 90. The method in claim 89, wherein the number of credits advertised to the first switch equals a number of credits in the second switch plus the number of credits advertised by the fifth port.
- 91. The method in claim 89, wherein the number of credits advertised to the first switch equals a number of credits advertised by the fifth port.
- 92. The method in claim 89, further comprising:
initializing the second counter to a second number; incrementing the second counter when the fourth port sends a frame; decrementing the second counter when the third port receives a frame; and prohibiting the third port from sending credits when the second counter is less than zero.
- 93. The method in claim 92,
wherein the second number is determined by the following formula: (second number)=max (8, roundup (SPEED_INDEX*(the number advertised to the first switch))), where SPEED_INDEX=1−(total frame transmission rate out the second switch through ports other than the third port)/(total frame transmission rate into the second switch through the third port), max (a, b, . . . ) is a function returning the largest number in the argument, and roundup(x) is a function returning the next integer greater than or equal to x.
- 94. A method to increase the buffer space available to a receiver for a logical flow path on a receiving side of a long distance Fibre Channel communication network, the logical flow path having a predetermined frame transmission rate and predetermined distance and requiring a predetermined number of credits to sustain the predetermined transmission rate at the predetermined distance,
the method comprising: selecting a type of Fibre Channel switch wherein the switch has credit counters with maximum counting capacities greater than the predetermined number and the switch has ports supporting the predetermined frame transmission speed; determining a number n of Fibre Channel switches needed, wherein the number n equals the roundup ((predetermined number of credits)/(number of credits in one switch)), where roundup(x) is a function returning the next integer greater than or equal to x; connecting the number of Fibre Channel in series, wherein the nth switch connects to the transmitting side through the long distance link; the receiving port in the first switch advertising a first number of credits which is the number of credits in the first switch to the transmitting port in a second switch connected to the receiving port in the first switch, and a transmitter credit counter in the second switch is set to the first number; the receiving port in the second switch advertising a second number of credits which is the sum of the number of credits in the second switch plus the first number advertised by the first switch; repeating the last two steps, until the nth switch, wherein the nth switch advertising the nth number of credits which is the sum of the number of credits in the nth switch plus the (n−1)th number of credits advertised by the (n−1)th switch.
- 95. A Fibre Channel switch comprising:
a first port; a second port; a buffer memory having a plurality of buffers, communicating with both the first port and the second port; and a control module having a plurality of credits representing the buffers, communicating with both the first port and the second port, and controlling one or more logical flow paths within the switch; and wherein the control module is operable to advertise a first number of credit for a flow path through the first port to a third port when the third port is connected to the first port; wherein the control module is operable to acknowledge a second number of credit advertised from a fourth port for the flow path through the second port when the fourth port is connected to the second port; wherein the first number equals to the sum of the second number and the number of credits on the switch allocated by the control module to the flow path.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a Continuation-In-Part application of the U.S. patent application Ser. No. 10/207,361 with the same title by the same inventors, filed on Jul. 29, 2002.
[0002] This application is related to and incorporates by reference, U.S. patent application Ser. No. 10/062,861, entitled “Methods and Devices for Converting Between Trunked and Single-Link Data Transmission in a Fibre Channel Network,” by Kreg A. Martin, filed Jan. 31, 2002.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10207361 |
Jul 2002 |
US |
Child |
10348067 |
Jan 2003 |
US |