Buffer to buffer credit recovery for in-line fibre channel credit extension devices
First Claim
1. A method for credit recovery due to lost frames in an in-line credit extender coupled between a remote device and a local device, where the in-line credit extender extends credit for the local device, comprising:
- determining credit loss due to lost frames by comparing a frame count value with a primitive count value for a receive segment of the in-line credit extender, the primitive count value being maintained in a buffer to buffer credit recovery module of the in-line credit extender, the buffer to buffer credit recovery module interfacing with the receive segment of the in-line extender that receives frames and primitives from the remote device and a transmit segment of the in-line extender that transmits frames and primitives to the remote device, wherein a primitive is sent periodically by the remote device after certain number of frames are transmitted by the remote device to the local device via the in-line extender, wherein the credit loss is a difference between the frame count value and the primitive count value for the receive segment of the in-line credit extender;
storing the credit loss in a buffer at the buffer-to-buffer credit recovery module in the in-line extender;
increasing a transmit frame count based on the credit loss, the transmit frame count is maintained for frames that are transmitted by the in-line extender to the local device and the transmit frame count is maintained by a counter in the buffer to buffer credit recovery module; and
sending the primitive to the local device if the transmit flame count after adding the credit loss matches a primitive count maintained for the transmit segment of the in-line extender by the buffer-to-buffer recovery module.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and system for credit recovery of lost frames and R_RDYs in an in-line credit extender is provided. The method includes, comparing received frame count and a programmable counter value when BB_SCs are received; loading the difference between the frame count and the programmed counter value into a buffer and to a first counter that counts each frame that is transmitted; and sending BB-SCs to the local device if there is a match between the first counter value and a second programmable counter value. The method also includes, counting received R_RDYs, wherein a first counter counts the received R_RDYs; setting a flag when a BB_SCr is received; and transmitting BB-SCr when the first counter value is zero and the flag is set. Also, R_RDYs received after BB_SCrs are counted by a second counter and transmitted when the second counter value is non-zero.
-
Citations
23 Claims
-
1. A method for credit recovery due to lost frames in an in-line credit extender coupled between a remote device and a local device, where the in-line credit extender extends credit for the local device, comprising:
-
determining credit loss due to lost frames by comparing a frame count value with a primitive count value for a receive segment of the in-line credit extender, the primitive count value being maintained in a buffer to buffer credit recovery module of the in-line credit extender, the buffer to buffer credit recovery module interfacing with the receive segment of the in-line extender that receives frames and primitives from the remote device and a transmit segment of the in-line extender that transmits frames and primitives to the remote device, wherein a primitive is sent periodically by the remote device after certain number of frames are transmitted by the remote device to the local device via the in-line extender, wherein the credit loss is a difference between the frame count value and the primitive count value for the receive segment of the in-line credit extender; storing the credit loss in a buffer at the buffer-to-buffer credit recovery module in the in-line extender; increasing a transmit frame count based on the credit loss, the transmit frame count is maintained for frames that are transmitted by the in-line extender to the local device and the transmit frame count is maintained by a counter in the buffer to buffer credit recovery module; and sending the primitive to the local device if the transmit flame count after adding the credit loss matches a primitive count maintained for the transmit segment of the in-line extender by the buffer-to-buffer recovery module. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for credit recovery due to lost frames in an in-line credit extender coupled between a remote device and a local device, the in-line credit extender extending credit for the local device, comprising:
-
a first counter in a buffer to buffer credit recovery module of the in-line extender, for counting frames received by a receive segment of the in-line extender from the remote device; a first programmable counter for the receive segment of the in-line credit extender that is programmed with a value; a comparator for comparing a first counter value of the first counter and the first programmable counter value when a primitive is received from the remote device, wherein the primitive is sent periodically by the remote device after certain number of frames are transmitted by the remote device to the local device via the in-line extender; a buffer for storing the difference between the first counter value and the programmable counter value, the difference indicating credit loss due to loss of frames; a second counter for counting frames transmitted by a transmit segment of the in-line credit extender;
where a second counter value of the second counter is increased by the difference between the first counter value and the second counter value; anda second programmable counter for a primitive count for the transmit segment of the in-line credit extender, whose value is compared to the second counter value and if there is a match between the second programmable value and the second counter value, then the transmit segment of the in-line extender sends the primitive to the local device. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method for credit recovery in an in-line credit extender due to loss of a first primitive used for establishing credit, the in-line credit extender being operationally, coupled between a remote device and a local device for extending credit for the local device, comprising:
-
receiving the first primitive, wherein the in-line extender receives the first primitive from the remote device; counting the first primitive using a first counter in a buffer to buffer credit module of the in-line credit extender; sending the first primitive from the in-line credit extender to the local device, if a first counter value of the first counter is non-zero; receiving a second primitive from the remote device, the second primitive sent periodically by the remote device after sending one or more of the first primitive; setting a flag when the second primitive is received; transmitting the second primitive to the local device when the first counter value is zero and the flag is set; and counting one or more of the first primitive that are received after receiving the first primitive using a second counter instead of the first counter. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system for credit recovery in an in-line credit extender, due to loss of a first primitive used for establishing credit, the in-line credit extender being operationally coupled between a remote device and a local device for extending credit for the local device, comprising:
-
a first counter for counting the first primitive; a second counter for counting one or more of the first primitive that are received after the in-line credit extender receives a second primitive, the second primitive is periodically sent by the remote device for credit recovery due to loss of the first primitive; a register that stores a flag, where the flag is set after the second primitive is received; and a first primitive control module that transmits the first primitive to the local device when a first counter value of the first counter is non-zero or transmits the first primitive to the local device if the second counter is non-zero, when the second counter is used for counting the first primitive. - View Dependent Claims (20, 21, 22, 23)
-
Specification