From: Xin Long <[email protected]>
Date: Sat, 5 Dec 2015 15:35:36 +0800
> when A sends a data to B, then A close() and enter into SHUTDOWN_PENDING
> state, if B neither claim his rwnd is 0 nor send SACK for this data, A
> will keep retransmitting this data until t5 timeout, Max.Retrans times
> can't work anymore, which is bad.
>
> if B's rwnd is not 0, it should send abort after Max.Retrans times, only
> when B's rwnd == 0 and A's retransmitting beyonds Max.Retrans times, A
> will start t5 timer, which is also commit f8d960524328 ("sctp: Enforce
> retransmission limit during shutdown") means, but it lacks the condition
> peer rwnd == 0.
>
> so fix it by adding a bit (zero_window_announced) in peer to record if
> the last rwnd is 0. If it was, zero_window_announced will be set. and use
> this bit to decide if start t5 timer when local.state is SHUTDOWN_PENDING.
>
> Fixes: commit f8d960524328 ("sctp: Enforce retransmission limit during
> shutdown")
> Signed-off-by: Xin Long <[email protected]>
> Signed-off-by: Marcelo Ricardo Leitner <[email protected]>
Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html