On 07/08/2015 02:22 AM, Rafael Schloming wrote:
a value of zero is actually what
signals that the receiver needs to take some action here, and arguably an
initial value of zero is correct since it is signaling that the receiver
needs to take action (in this case issue credit).


My interpretation is that if 0 is sent as the initial value, the sender cannot legally send any transfers without first expanding the window by sending a flow with a non-zero value.

Further I think the sender should not take the lack of credit as grounds to set a window of 0. The receiver knows it has not issued credit. (At the link level, the sender can also indicate that it has messages awaiting link credit).

In the case where the sender's implementation involves a fixed amount of buffer space and requires messages to be settled before it can send more, the receiver would not be able to know that without getting some signal. So to my mind that is the only case for which it would make sense to send an outgoing window of 0. (I'm not sure how useful this is in practice and I don't believe it applies to proton at present anyway).

I think as it stands proton is violating the spec, and should be changed to send a non-zero outgoing window.

Reply via email to