At port login, receiver says how many buffers it can guarantee
Typically 0
Transmitter adds credit for each “acknowledgment” received
– Credit_CNT = Credit_CNT + n – n is dependent on acknowledgment received (usually 1)
Transmitter consumes one credit for each frame it transmits
– Credit_CNT = Credit_CNT -1 for each data frame transmitted
1 Login
Transmitter
0 1
0
Login Credit Credit_CNT
Receiver
3
Frame R_RDY
2
Alternate model: • At port login, the receiver supplies information on the size and number of frame buffers (credits) it can guarantee to have available. This value can be zero. In Alternate Credit operation it often is zero as the receiving port cannot guarantee any buffers. The transmitting port stores this information in a table until the information is required to communicate with the receiving port.
• Before the transmitter sends a frame, it loads the Credit_CNT value with the value of Login Credit. If this value is zero then the transmitter cannot send the first frame until it receives an acknowledgement (R_RDY).
• When the transmitting port receives an R_RDY, increments its Credit_CNT.
• On sending a data frame, the transmitting port decrements it’s Credit_CNT. If Credit_CNT is now zero, it must wait to receive another R_RDY before sending another data frame.