aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorlaurent chavey <chavey@google.com>2009-12-15 06:15:28 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-23 17:13:30 -0500
commit31d12926e37291970dd4f6e9940df3897766a81d (patch)
tree7f20713b70fc2c9e03aa1f7fcf71ffa651c464fc /include
parent068a2de57ddf4f472e32e7af868613c574ad1d88 (diff)
net: Add rtnetlink init_rcvwnd to set the TCP initial receive window
Add rtnetlink init_rcvwnd to set the TCP initial receive window size advertised by passive and active TCP connections. The current Linux TCP implementation limits the advertised TCP initial receive window to the one prescribed by slow start. For short lived TCP connections used for transaction type of traffic (i.e. http requests), bounding the advertised TCP initial receive window results in increased latency to complete the transaction. Support for setting initial congestion window is already supported using rtnetlink init_cwnd, but the feature is useless without the ability to set a larger TCP initial receive window. The rtnetlink init_rcvwnd allows increasing the TCP initial receive window, allowing TCP connection to advertise larger TCP receive window than the ones bounded by slow start. Signed-off-by: Laurent Chavey <chavey@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/rtnetlink.h2
-rw-r--r--include/net/dst.h2
-rw-r--r--include/net/tcp.h3
3 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 05330fc5b436..9590364fe8b5 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -362,6 +362,8 @@ enum {
362#define RTAX_FEATURES RTAX_FEATURES 362#define RTAX_FEATURES RTAX_FEATURES
363 RTAX_RTO_MIN, 363 RTAX_RTO_MIN,
364#define RTAX_RTO_MIN RTAX_RTO_MIN 364#define RTAX_RTO_MIN RTAX_RTO_MIN
365 RTAX_INITRWND,
366#define RTAX_INITRWND RTAX_INITRWND
365 __RTAX_MAX 367 __RTAX_MAX
366}; 368};
367 369
diff --git a/include/net/dst.h b/include/net/dst.h
index 39c4a5963e12..ce078cda6b74 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -83,8 +83,6 @@ struct dst_entry {
83 * (L1_CACHE_SIZE would be too much) 83 * (L1_CACHE_SIZE would be too much)
84 */ 84 */
85#ifdef CONFIG_64BIT 85#ifdef CONFIG_64BIT
86 long __pad_to_align_refcnt[2];
87#else
88 long __pad_to_align_refcnt[1]; 86 long __pad_to_align_refcnt[1];
89#endif 87#endif
90 /* 88 /*
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 185e22baecb1..788c99f98597 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -965,7 +965,8 @@ static inline void tcp_sack_reset(struct tcp_options_received *rx_opt)
965/* Determine a window scaling and initial window to offer. */ 965/* Determine a window scaling and initial window to offer. */
966extern void tcp_select_initial_window(int __space, __u32 mss, 966extern void tcp_select_initial_window(int __space, __u32 mss,
967 __u32 *rcv_wnd, __u32 *window_clamp, 967 __u32 *rcv_wnd, __u32 *window_clamp,
968 int wscale_ok, __u8 *rcv_wscale); 968 int wscale_ok, __u8 *rcv_wscale,
969 __u32 init_rcv_wnd);
969 970
970static inline int tcp_win_from_space(int space) 971static inline int tcp_win_from_space(int space)
971{ 972{