Re: [PATCH] sctp: Enforce maximum retransmissions during shutdown
From: Thomas Graf <hidden>
Date: 2011-06-30 16:17:07
Also in:
linux-sctp
On Thu, Jun 30, 2011 at 10:08:40AM -0400, Vladislav Yasevich wrote:
How about this. If we in SHUTDOWN_PENDING state, let the errors accumulate upto max_retrans. After that, start SHUTDOWN_GUARD timer to let the association live a bit longer just on the off-chance the receive comes back. When SHUTDOWN_GUARD expires it will abort the association. When we are in this state, SACK processing will have to reset SHUTDOWN_GUARD when the SACK is actually acknowledging something.
Good idea. I'll update my patch.
quoted
What sideeffects are you worried about resulting from my proposal?There is a potential that the sender may abort prematurely. The issue is that the sender has no way of knowing if the remote process somehow terminated and will never consume data, or if it is just extremely busy with something else and will come back. Since this is a reliable protocol, we given the receive the benefit of the doubt and try our hardest to get the data across.
Understood although we are talking 10 * RTO here without an actual SACK.
My suggestion above is still a bit of a hack that one could argue still violates the protocol, but the time period tries to remove as much doubt from the sender as possible the the receiver is really out-to-lunch.
Assuming that by 'shutdown sequence' the spec is only referring to the SHUTDOWN / SHUTDOWN ACK exchange it would still violate the protocol but I don't see how to avoid having association hang around forever without violating the spec. This really looks like a hole in the spec to me.