Patent ID: 7443794

Claim:
A system, comprising: a fibre channel switch with a plurality of fabric ports; a repeater connected to a selected one of the plurality of fabric ports through a fibre channel linklet, wherein the selected one of the plurality of fabric ports includes a number of credits; and an inline link device connected in the fibre channel linklet between the repeater and the fibre channel switch, the inline link device including an outbound receiver associated with a first number of credits to receive data packets from the fibre channel switch, and an inbound receiver associated with a second number of credits, the second number of credits associated with the inbound receiver being larger than the first number of credits associated with the outbound receiver, wherein the inline link device includes: an outbound channel adapted to source data, including the outbound receiver, an outbound transmitter, and an outbound channel buffer connected between the outbound receiver and the outbound transmitter, the outbound channel buffer having the first number of credits; an inbound channel adapted to sink data, including the inbound receiver, an inbound transmitter, and an inbound channel buffer connected between the inbound receiver and the inbound transmitter, the inbound channel buffer having the second number of credits; each of the inbound and outbound channels of the inline link device including: a Credit Counter (CC) to track credit consumed for the respective channel by comparing frames transmitted in the channel against Receiver Ready signals (R_RDYs) received on the other channel; and a Credit Limit (CL) register to hold a maximum credit for the respective channel for use in comparing to the credit counter (CC) to determine if credit exists for transmission; and a controller connected to the outbound and inbound channels, the controller being adapted to: read a credit value from a login frame in a first one of the inbound and outbound channels and write the credit value to the credit limit (CL) register in the other one of the inbound and outbound channels; replace the credit value in the login frame with a credit value of the channel buffer for the other one of the inbound and outbound channels; and write the login frame to a frame buffer for transmission by the transmitter in the first one of the inbound and outbound channels.