aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/tcp.h
diff options
context:
space:
mode:
authorJohn Heffner <jheffner@psc.edu>2006-03-20 20:53:41 -0500
committerDavid S. Miller <davem@davemloft.net>2006-03-20 20:53:41 -0500
commit5d424d5a674f782d0659a3b66d951f412901faee (patch)
tree579871172044e02e626a90388d19ec55cf2d1fc4 /include/net/tcp.h
parent1d60290f27e7dc4bce2c43922d0bfa9abd246fc9 (diff)
[TCP]: MTU probing
Implementation of packetization layer path mtu discovery for TCP, based on the internet-draft currently found at <http://www.ietf.org/internet-drafts/draft-ietf-pmtud-method-05.txt>. Signed-off-by: John Heffner <jheffner@psc.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r--include/net/tcp.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 77f21c65bbca..16879fa560de 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -60,6 +60,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
60/* Minimal RCV_MSS. */ 60/* Minimal RCV_MSS. */
61#define TCP_MIN_RCVMSS 536U 61#define TCP_MIN_RCVMSS 536U
62 62
63/* The least MTU to use for probing */
64#define TCP_BASE_MSS 512
65
63/* After receiving this amount of duplicate ACKs fast retransmit starts. */ 66/* After receiving this amount of duplicate ACKs fast retransmit starts. */
64#define TCP_FASTRETRANS_THRESH 3 67#define TCP_FASTRETRANS_THRESH 3
65 68
@@ -219,6 +222,8 @@ extern int sysctl_tcp_nometrics_save;
219extern int sysctl_tcp_moderate_rcvbuf; 222extern int sysctl_tcp_moderate_rcvbuf;
220extern int sysctl_tcp_tso_win_divisor; 223extern int sysctl_tcp_tso_win_divisor;
221extern int sysctl_tcp_abc; 224extern int sysctl_tcp_abc;
225extern int sysctl_tcp_mtu_probing;
226extern int sysctl_tcp_base_mss;
222 227
223extern atomic_t tcp_memory_allocated; 228extern atomic_t tcp_memory_allocated;
224extern atomic_t tcp_sockets_allocated; 229extern atomic_t tcp_sockets_allocated;
@@ -447,6 +452,10 @@ extern int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
447 452
448extern void tcp_initialize_rcv_mss(struct sock *sk); 453extern void tcp_initialize_rcv_mss(struct sock *sk);
449 454
455extern int tcp_mtu_to_mss(struct sock *sk, int pmtu);
456extern int tcp_mss_to_mtu(struct sock *sk, int mss);
457extern void tcp_mtup_init(struct sock *sk);
458
450static inline void __tcp_fast_path_on(struct tcp_sock *tp, u32 snd_wnd) 459static inline void __tcp_fast_path_on(struct tcp_sock *tp, u32 snd_wnd)
451{ 460{
452 tp->pred_flags = htonl((tp->tcp_header_len << 26) | 461 tp->pred_flags = htonl((tp->tcp_header_len << 26) |