]> err.no Git - linux-2.6/commit
[SCTP]: Fix connection hang/slowdown with PR-SCTP
authorVlad Yasevich <vladislav.yasevich@hp.com>
Wed, 21 Feb 2007 10:06:04 +0000 (02:06 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 26 Feb 2007 19:42:49 +0000 (11:42 -0800)
commit8c4a2d41a7eb5a8f214f537acca533dcd6430782
tree48081d53d976bcb69da509c63d5bfb733a27446a
parent2c4f6219aca5939b57596278ea8b014275d4917b
[SCTP]: Fix connection hang/slowdown with PR-SCTP

The problem that this patch corrects happens when all of the following
conditions are satisfisfied:
 1.  PR-SCTP is used and the timeout on the chunks is set below RTO.Max.
 2.  One of the paths on a multihomed associations is brought down.

In this scenario, data will expire within the rto of the initial
transmission and will never be retransmitted.  However this data still
fills the send buffer and is counted against the association as outstanding
data.  This causes any new data not to be sent and retransmission to not
happen.

The fix is to discount the abandoned data from the outstanding count and
peers rwnd estimation.  This allows new data to be sent and a retransmission
timer restarted.  Even though this new data will most likely expire within
the rto, the timer still counts as a strike against the transport and forces
the FORWARD-TSN chunk to be retransmitted as well.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/outqueue.c