sctp: Fix the RTO-doubling on idle-link heartbeats
authorVlad Yasevich <vladislav.yasevich@hp.com>
Fri, 13 Feb 2009 08:33:43 +0000 (08:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Feb 2009 08:03:10 +0000 (00:03 -0800)
commitfaee47cdbfe8d74a1573c2f81ea6dbb08d735be6
tree6a95e8f91087cd3d584fc89f9bc06355d371d82a
parent4458f04c02a46c679a90ef71f866a415c192deb4
sctp: Fix the RTO-doubling on idle-link heartbeats

SCTP incorrectly doubles rto ever time a Hearbeat chunk
is generated.   However RFC 4960 states:

   On an idle destination address that is allowed to heartbeat, it is
   recommended that a HEARTBEAT chunk is sent once per RTO of that
   destination address plus the protocol parameter 'HB.interval', with
   jittering of +/- 50% of the RTO value, and exponential backoff of the
   RTO if the previous HEARTBEAT is unanswered.

Essentially, of if the heartbean is unacknowledged, do we double the RTO.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/structs.h
net/sctp/sm_sideeffect.c
net/sctp/transport.c