]> git.baikalelectronics.ru Git - kernel.git/commit
SCTP: Fix difference cases of retransmit.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Wed, 24 Oct 2007 19:59:16 +0000 (15:59 -0400)
committerVlad Yasevich <vladislav.yasevich@hp.com>
Wed, 7 Nov 2007 16:39:27 +0000 (11:39 -0500)
commit17dd1dd287e2feb9fcfc483f001ae169271b74d0
treecff4da4725b1bb0c5b603dc07204697dd0623ad5
parentd584aa6f9f9e358b808f7fa4541c6bdc9e131467
SCTP: Fix difference cases of retransmit.

Commit 315680993c1ce286f62055442bbfd35e8e100c5a broke several retransmit
cases including fast retransmit.  The reason is that we should
only delay by rto while doing retranmists as a result of a timeout.
Retransmit as a result of path mtu discover, fast retransmit, or
other evernts that should trigger immidiate retransmissions got broken.

Also, since rto is doubled prior to marking of packets elegable for
retransmission, we never marked correct chunks anyway.

The fix is provide a reason for a given retransmission so that we
can mark chunks appropriately and to save the old rto value to do
comparisons against.

All regressions tests passed with this code.

Spotted by Wei Yongjun <yjwei@cn.fujitsu.com>

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
include/net/sctp/command.h
include/net/sctp/constants.h
include/net/sctp/sctp.h
include/net/sctp/structs.h
net/sctp/outqueue.c
net/sctp/sm_sideeffect.c
net/sctp/sm_statefuns.c
net/sctp/transport.c