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 | } |
