At port login, receiver says how many buffers it has
Transmitter consumes one credit for each frame it transmits
– Credit_CNT = Credit_CNT -1 for each data frame transmitted
Transmitter replenishes credit for each “acknowledgment” received
– Credit_CNT = Credit_CNT + n – n is dependent on acknowledgment received (usually 1)
1 Login
Transmitter
2 1
2
Login Credit Credit_CNT
Receiver
2
Frame R_RDY
3
Base model: • At port login, the receiver supplies information on the size and number of frame buffers (credits) it has. The transmitting port stores this information in a table until the information is required to communicate with the receiving port.
• Before transmitting port sends a frame, it loads the Credit_CNT value with the value of Login Credit for that receiving port. If that credit is not zero, it can send the first frame. It then decrements its Credit_CNT accordingly.
• Upon receiving the frame, the receiver processes the frame and moves it to ULP buffer space. The receiver then sends an acknowledgement (R_RDY) back to the transmitter informs the transmitting port that a buffer is available. The transmitter then increments its Credit_CNT so that it always has an accurate tally of how many buffers are available at the receiver.