aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/tcp.h
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2010-08-29 15:27:34 -0400
committerDavid S. Miller <davem@davemloft.net>2010-08-30 16:50:44 -0400
commit3d5b99ae82f8742e3bb1f8634fd11ac36ea19ee1 (patch)
tree45ecec91f84d6038e2eeba2dd81d5cee7c07e599 /include/net/tcp.h
parent89858ad14307a398961a0f1414b04053c1475e4f (diff)
TCP: update initial windows according to RFC 5681
This updates the use of larger initial windows, as originally specified in RFC 3390, to use the newer IW values specified in RFC 5681, section 3.1. The changes made in RFC 5681 are: a) the setting now is more clearly specified in units of segments (as the comments by John Heffner emphasized, this was not very clear in RFC 3390); b) for connections with 1095 < SMSS <= 2190 there is now a change: - RFC 3390 says that IW <= 4380, - RFC 5681 says that IW = 3 * SMSS <= 6570. Since RFC 3390 is older and "only" proposed standard, whereas the newer RFC 5681 is already draft standard, it seems preferable to use the newer IW variant. Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r--include/net/tcp.h10
1 files changed, 2 insertions, 8 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index a64022199b62..11dbacc886c0 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -781,17 +781,11 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
781 781
782/* 782/*
783 * Convert RFC 3390 larger initial window into an equivalent number of packets. 783 * Convert RFC 3390 larger initial window into an equivalent number of packets.
784 * 784 * This is based on the numbers specified in RFC 5681, 3.1.
785 * John Heffner states:
786 *
787 * The RFC specifies a window of no more than 4380 bytes
788 * unless 2*MSS > 4380. Reading the pseudocode in the RFC
789 * is a bit misleading because they use a clamp at 4380 bytes
790 * rather than a multiplier in the relevant range.
791 */ 785 */
792static inline u32 rfc3390_bytes_to_packets(const u32 smss) 786static inline u32 rfc3390_bytes_to_packets(const u32 smss)
793{ 787{
794 return smss <= 1095 ? 4 : (smss > 1460 ? 2 : 3); 788 return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
795} 789}
796 790
797extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh); 791extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);