diff options
Diffstat (limited to 'net/dccp/timer.c')
-rw-r--r-- | net/dccp/timer.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/net/dccp/timer.c b/net/dccp/timer.c index bda0af639ae4..7b3f16e29a97 100644 --- a/net/dccp/timer.c +++ b/net/dccp/timer.c | |||
@@ -15,6 +15,11 @@ | |||
15 | 15 | ||
16 | #include "dccp.h" | 16 | #include "dccp.h" |
17 | 17 | ||
18 | /* sysctl variables governing numbers of retransmission attempts */ | ||
19 | int sysctl_dccp_request_retries __read_mostly = TCP_SYN_RETRIES; | ||
20 | int sysctl_dccp_retries1 __read_mostly = TCP_RETR1; | ||
21 | int sysctl_dccp_retries2 __read_mostly = TCP_RETR2; | ||
22 | |||
18 | static void dccp_write_timer(unsigned long data); | 23 | static void dccp_write_timer(unsigned long data); |
19 | static void dccp_keepalive_timer(unsigned long data); | 24 | static void dccp_keepalive_timer(unsigned long data); |
20 | static void dccp_delack_timer(unsigned long data); | 25 | static void dccp_delack_timer(unsigned long data); |
@@ -44,11 +49,10 @@ static int dccp_write_timeout(struct sock *sk) | |||
44 | if (sk->sk_state == DCCP_REQUESTING || sk->sk_state == DCCP_PARTOPEN) { | 49 | if (sk->sk_state == DCCP_REQUESTING || sk->sk_state == DCCP_PARTOPEN) { |
45 | if (icsk->icsk_retransmits != 0) | 50 | if (icsk->icsk_retransmits != 0) |
46 | dst_negative_advice(&sk->sk_dst_cache); | 51 | dst_negative_advice(&sk->sk_dst_cache); |
47 | retry_until = icsk->icsk_syn_retries ? : | 52 | retry_until = icsk->icsk_syn_retries ? |
48 | /* FIXME! */ 3 /* FIXME! sysctl_tcp_syn_retries */; | 53 | : sysctl_dccp_request_retries; |
49 | } else { | 54 | } else { |
50 | if (icsk->icsk_retransmits >= | 55 | if (icsk->icsk_retransmits >= sysctl_dccp_retries1) { |
51 | /* FIXME! sysctl_tcp_retries1 */ 5 /* FIXME! */) { | ||
52 | /* NOTE. draft-ietf-tcpimpl-pmtud-01.txt requires pmtu | 56 | /* NOTE. draft-ietf-tcpimpl-pmtud-01.txt requires pmtu |
53 | black hole detection. :-( | 57 | black hole detection. :-( |
54 | 58 | ||
@@ -72,7 +76,7 @@ static int dccp_write_timeout(struct sock *sk) | |||
72 | dst_negative_advice(&sk->sk_dst_cache); | 76 | dst_negative_advice(&sk->sk_dst_cache); |
73 | } | 77 | } |
74 | 78 | ||
75 | retry_until = /* FIXME! */ 15 /* FIXME! sysctl_tcp_retries2 */; | 79 | retry_until = sysctl_dccp_retries2; |
76 | /* | 80 | /* |
77 | * FIXME: see tcp_write_timout and tcp_out_of_resources | 81 | * FIXME: see tcp_write_timout and tcp_out_of_resources |
78 | */ | 82 | */ |
@@ -196,7 +200,7 @@ backoff: | |||
196 | icsk->icsk_rto = min(icsk->icsk_rto << 1, DCCP_RTO_MAX); | 200 | icsk->icsk_rto = min(icsk->icsk_rto << 1, DCCP_RTO_MAX); |
197 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, icsk->icsk_rto, | 201 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, icsk->icsk_rto, |
198 | DCCP_RTO_MAX); | 202 | DCCP_RTO_MAX); |
199 | if (icsk->icsk_retransmits > 3 /* FIXME: sysctl_dccp_retries1 */) | 203 | if (icsk->icsk_retransmits > sysctl_dccp_retries1) |
200 | __sk_dst_reset(sk); | 204 | __sk_dst_reset(sk); |
201 | out:; | 205 | out:; |
202 | } | 206 | } |