Method and system for buffer-to-buffer credit recovery in fibre channel systems using virtual and/or pseudo virtual lanes
First Claim
1. A method for distributing credit in a switch element, comprising:
- (a) determining if (i) a port for the switch element using a plurality of virtual lanes has received a first flow control indicator, instead of a second flow control indicator used for managing credit for virtual lanes, where each virtual lane is identified by an identification number; and
(ii) if the switch element has internally generated the first flow control indicator for recovering lost credit due to loss of a frame;
(b) determining if a first virtual lane from among the plurality of virtual lanes has reached a maximum credit value allocated for the first virtual lane;
(c) if the first virtual lane has reached the maximum credit value, iteratively determining if another virtual lane for the port has not reached a maximum allocated credit value; and
allocating the recovered lost credit to a virtual lane from among the plurality of virtual lanes that has not reached the maximum allocated credit value;
(d) if the first flow control indicator is not received or generated for credit recovery in step (a);
determining if the second flow control indicator indicating that credit is available at a virtual lane at a destination port has been received by the port;
(e) determining if the virtual lane identified by the second flow control indicator in step (d) has already reached its maximum allocated credit; and
(f) iteratively analyzing each of the remaining plurality of virtual lanes and applying the credit based on the received second flow control indicator in step (d) to a virtual lane that has not reached a maximum allocated credit even if a virtual lane identification number indicates that credit be allocated to a different virtual lane.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and system for distributing credit using a fiber channel switch element is provided. The switch element includes, a wait threshold counter that is used to set up a status for a port that has to wait for certain duration to send a frame due to lack of buffer to buffer credit; a credit module that controls buffer to buffer credit for a transmit segment of the fiber channel switch element; and a virtual lane credit module with a counter that is incremented every time a frame assigned to a virtual lane is sent and decreased every time a VC_RDY is received. The method includes, determining if a VC_RDY primitive is received; and allocating credit to a virtual lane that is not at its maximum credit, after the VC_RDY primitive is received.
-
Citations
18 Claims
-
1. A method for distributing credit in a switch element, comprising:
-
(a) determining if (i) a port for the switch element using a plurality of virtual lanes has received a first flow control indicator, instead of a second flow control indicator used for managing credit for virtual lanes, where each virtual lane is identified by an identification number; and
(ii) if the switch element has internally generated the first flow control indicator for recovering lost credit due to loss of a frame;(b) determining if a first virtual lane from among the plurality of virtual lanes has reached a maximum credit value allocated for the first virtual lane; (c) if the first virtual lane has reached the maximum credit value, iteratively determining if another virtual lane for the port has not reached a maximum allocated credit value; and
allocating the recovered lost credit to a virtual lane from among the plurality of virtual lanes that has not reached the maximum allocated credit value;(d) if the first flow control indicator is not received or generated for credit recovery in step (a);
determining if the second flow control indicator indicating that credit is available at a virtual lane at a destination port has been received by the port;(e) determining if the virtual lane identified by the second flow control indicator in step (d) has already reached its maximum allocated credit; and (f) iteratively analyzing each of the remaining plurality of virtual lanes and applying the credit based on the received second flow control indicator in step (d) to a virtual lane that has not reached a maximum allocated credit even if a virtual lane identification number indicates that credit be allocated to a different virtual lane. - View Dependent Claims (2, 3, 4)
-
-
5. A method for distributing credit in a network system having a switch element, comprising:
-
(a) detecting lost credit at a port for the switch element if fewer than expected first indicators and second indicators are received between third indicators;
wherein the first indicators indicate credit for a virtual lane of a port supporting a plurality of virtual lanes and each virtual lane identified by an identification number and allocated a maximum credit value;
the second indicators indicate credit at a receive segment of a port; and
the third indicator is used for tracking lost credit in the network system;(b) iteratively determining if a virtual lane from among the plurality of virtual lanes for the port has not reached its maximum allocated credit value; and (c) allocating the recovered lost credit from step (a) to the virtual lane from among the plurality of virtual lanes, that has not reached the maximum allocated credit value;
wherein the recovered lost credit is allocated to a virtual lane that is different from the virtual lane identified by the first indicator, if the identified virtual lane has reached the maximum allocated credit value. - View Dependent Claims (6)
-
-
7. A switch element for routing frames, comprising:
-
a plurality of ports with each port including (i) a transmit segment for transmitting frames and a receive segment for receiving frames;
(ii) a wait threshold counter configured to monitor a duration that a transmit segment has to wait for sending a frame due to lack of credit and generating a status signal if the duration exceeds a programmable threshold value;
(iii) a credit module configured to control credit for a transmit segment of a port; and
(iv) a virtual lane credit module having a counter that is incremented every time a frame assigned to a virtual lane is sent and decreased every time a first indicator is received, the first indicator indicating that credit is available at a virtual lane at a destination port;wherein for allocating recovered lost credit among a plurality of virtual lanes, based on a received second indicator and a received first indicator; and
a second indicator generated by the switch element for lost data frames, the switch element (a) determines if a first virtual lane from among the plurality of virtual lanes supported by a port has reached a maximum credit value allocated for the first virtual lane;
(b) iteratively determines if another virtual lane for the port has not reached a maximum allocated credit value; and
(c) allocates the recovered lost credit to a virtual lane from among the plurality of virtual lanes, that has not reached the maximum allocated credit value. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
Specification