1

Let's suppose there's a server connected to a fibre channel switch.

They are happily exchanging frames of all kind, until the switch port buffer gets filled up. If I got correctly how flow control works in FC, the server has zero credits left for sending frames thus it stops sending them to prevent frame loss.

In the meantime, the switch is still sending frames to the host. At some point even the port buffer on the host gets filled up. The switch has drained his credits as well.

They are both stalled.

Their credits can be replenished, one by one, with each R_RDY message received, which is sent at the exact moment one space is freed in a receive buffer.

Ideally, the switch manages to unclog its buffer and sends an R_RDY to the server, which happily sends a new frame and with time the situation normalizes itself.

Still, if I'm not mistaken any type of message is in fact an FC frame, so unless "data" and "management/link control/flow control" frames are handled differently even R_RDY should be affected by flow control.

And if that's the case, then the above ideal solution is unreachable because when the switch tries to send its R_RDY to the server, it has in turn to wait for an R_RDY from the host which will never be sent, as the host credits are still zero.

So, are R_RDY and other "non-data" messages/frames affected by FC flow control or not?

0 Answers0