From: Xin Long <lucien.xin@xxxxxxxxx> 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 <lucien.xin@xxxxxxxxx> > Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx> Applied. -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html