Skip to content

Commit

Permalink
[DCCP]: Use maximum-RTO backoff from DCCP spec
Browse files Browse the repository at this point in the history
This removes another Fixme, using the TCP maximum RTO rather than the value
specified by the DCCP specification. Across the sections in RFC 4340, 64
seconds is consistently suggested as maximum RTO backoff value; and this is
the value which is now used.

I have checked both termination cases for retransmissions of Close/CloseReq:
with the default value 15 of `retries2', and an initial icsk_retransmit = 0,
it takes about 614 seconds to declare a non-responding peer as dead, after
which the final terminating Reset is sent. With the TCP maximum RTO value of
120 seconds it takes (as might be expected) almost twice as long, about 23
minutes.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Gerrit Renker authored and David S. Miller committed Jan 28, 2008
1 parent 92d3192 commit 28be544
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion net/dccp/dccp.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,14 @@ extern void dccp_time_wait(struct sock *sk, int state, int timeo);
/* RFC 1122, 4.2.3.1 initial RTO value */
#define DCCP_TIMEOUT_INIT ((unsigned)(3 * HZ))

#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */
/*
* The maximum back-off value for retransmissions. This is needed for
* - retransmitting client-Requests (sec. 8.1.1),
* - retransmitting Close/CloseReq when closing (sec. 8.3),
* - feature-negotiation retransmission (sec. 6.6.3),
* - Acks in client-PARTOPEN state (sec. 8.1.5).
*/
#define DCCP_RTO_MAX ((unsigned)(64 * HZ))

/*
* RTT sampling: sanity bounds and fallback RTT value from RFC 4340, section 3.4
Expand Down

0 comments on commit 28be544

Please sign in to comment.