All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03  1:07 ` David Miller
  0 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-03  1:07 UTC (permalink / raw)
  To: netdev; +Cc: dccp, therbert


Signed-off-by: David S. Miller <davem@davemloft.net>
---

I've left the DCCP code to keep using RFC3390 logic, if they
wish to adopt this change in their code they can do so by
simply deleting the rfc33390_bytes_to_packets() function and
using TCP_INIT_CWND in their assignment.

 include/net/tcp.h      |   12 +++---------
 net/dccp/ccids/ccid2.c |    9 +++++++++
 net/ipv4/tcp_input.c   |    2 +-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 9179111..7118668 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
 /* TCP thin-stream limits */
 #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
 
+/* TCP initial congestion window */
+#define TCP_INIT_CWND		10
+
 extern struct inet_timewait_death_row tcp_death_row;
 
 /* sysctl variables for tcp */
@@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
 /* Use define here intentionally to get WARN_ON location shown at the caller */
 #define tcp_verify_left_out(tp)	WARN_ON(tcp_left_out(tp) > tp->packets_out)
 
-/*
- * Convert RFC 3390 larger initial window into an equivalent number of packets.
- * This is based on the numbers specified in RFC 5681, 3.1.
- */
-static inline u32 rfc3390_bytes_to_packets(const u32 smss)
-{
-	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
-}
-
 extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
 extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
 
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index e96d5e8..fadecd2 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -583,6 +583,15 @@ done:
 	dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
 }
 
+/*
+ * Convert RFC 3390 larger initial window into an equivalent number of packets.
+ * This is based on the numbers specified in RFC 5681, 3.1.
+ */
+static inline u32 rfc3390_bytes_to_packets(const u32 smss)
+{
+	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
+}
+
 static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
 {
 	struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index eb7f82e..2f692ce 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
 	__u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
 
 	if (!cwnd)
-		cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
+		cwnd = TCP_INIT_CWND;
 	return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
 }
 
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03  1:07 ` David Miller
  0 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-03  1:07 UTC (permalink / raw)
  To: dccp


Signed-off-by: David S. Miller <davem@davemloft.net>
---

I've left the DCCP code to keep using RFC3390 logic, if they
wish to adopt this change in their code they can do so by
simply deleting the rfc33390_bytes_to_packets() function and
using TCP_INIT_CWND in their assignment.

 include/net/tcp.h      |   12 +++---------
 net/dccp/ccids/ccid2.c |    9 +++++++++
 net/ipv4/tcp_input.c   |    2 +-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 9179111..7118668 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
 /* TCP thin-stream limits */
 #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
 
+/* TCP initial congestion window */
+#define TCP_INIT_CWND		10
+
 extern struct inet_timewait_death_row tcp_death_row;
 
 /* sysctl variables for tcp */
@@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
 /* Use define here intentionally to get WARN_ON location shown at the caller */
 #define tcp_verify_left_out(tp)	WARN_ON(tcp_left_out(tp) > tp->packets_out)
 
-/*
- * Convert RFC 3390 larger initial window into an equivalent number of packets.
- * This is based on the numbers specified in RFC 5681, 3.1.
- */
-static inline u32 rfc3390_bytes_to_packets(const u32 smss)
-{
-	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
-}
-
 extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
 extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
 
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index e96d5e8..fadecd2 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -583,6 +583,15 @@ done:
 	dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
 }
 
+/*
+ * Convert RFC 3390 larger initial window into an equivalent number of packets.
+ * This is based on the numbers specified in RFC 5681, 3.1.
+ */
+static inline u32 rfc3390_bytes_to_packets(const u32 smss)
+{
+	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
+}
+
 static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
 {
 	struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index eb7f82e..2f692ce 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
 	__u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
 
 	if (!cwnd)
-		cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
+		cwnd = TCP_INIT_CWND;
 	return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
 }
 
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03  1:53   ` Eric Dumazet
  -1 siblings, 0 replies; 37+ messages in thread
From: Eric Dumazet @ 2011-02-03  1:53 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, dccp, therbert

Le mercredi 02 février 2011 à 17:07 -0800, David Miller a écrit :
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
> 

Hmm, you forgot a Changelog David ;)

I thought Tom and Google guys were preparing a nice one ?




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03  1:53   ` Eric Dumazet
  0 siblings, 0 replies; 37+ messages in thread
From: Eric Dumazet @ 2011-02-03  1:53 UTC (permalink / raw)
  To: dccp

Le mercredi 02 février 2011 à 17:07 -0800, David Miller a écrit :
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
> 

Hmm, you forgot a Changelog David ;)

I thought Tom and Google guys were preparing a nice one ?




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03  2:25   ` Nandita Dukkipati
  -1 siblings, 0 replies; 37+ messages in thread
From: Nandita Dukkipati @ 2011-02-03  2:25 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, dccp, therbert

Acked-by: Nandita Dukkipati <nanditad@google.com>

On Wed, Feb 2, 2011 at 5:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
>
>  include/net/tcp.h      |   12 +++---------
>  net/dccp/ccids/ccid2.c |    9 +++++++++
>  net/ipv4/tcp_input.c   |    2 +-
>  3 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
>  /* TCP thin-stream limits */
>  #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
>
> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND          10
> +
>  extern struct inet_timewait_death_row tcp_death_row;
>
>  /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
>  /* Use define here intentionally to get WARN_ON location shown at the caller */
>  #define tcp_verify_left_out(tp)        WARN_ON(tcp_left_out(tp) > tp->packets_out)
>
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
>  extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
>  extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
>
> diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
> index e96d5e8..fadecd2 100644
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -583,6 +583,15 @@ done:
>        dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
>  }
>
> +/*
> + * Convert RFC 3390 larger initial window into an equivalent number of packets.
> + * This is based on the numbers specified in RFC 5681, 3.1.
> + */
> +static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> +{
> +       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> +}
> +
>  static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
>  {
>        struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index eb7f82e..2f692ce 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
>        __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
>
>        if (!cwnd)
> -               cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
> +               cwnd = TCP_INIT_CWND;
>        return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
>  }
>
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03  2:25   ` Nandita Dukkipati
  0 siblings, 0 replies; 37+ messages in thread
From: Nandita Dukkipati @ 2011-02-03  2:25 UTC (permalink / raw)
  To: dccp

Acked-by: Nandita Dukkipati <nanditad@google.com>

On Wed, Feb 2, 2011 at 5:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
>
>  include/net/tcp.h      |   12 +++---------
>  net/dccp/ccids/ccid2.c |    9 +++++++++
>  net/ipv4/tcp_input.c   |    2 +-
>  3 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
>  /* TCP thin-stream limits */
>  #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
>
> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND          10
> +
>  extern struct inet_timewait_death_row tcp_death_row;
>
>  /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
>  /* Use define here intentionally to get WARN_ON location shown at the caller */
>  #define tcp_verify_left_out(tp)        WARN_ON(tcp_left_out(tp) > tp->packets_out)
>
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
>  extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
>  extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
>
> diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
> index e96d5e8..fadecd2 100644
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -583,6 +583,15 @@ done:
>        dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
>  }
>
> +/*
> + * Convert RFC 3390 larger initial window into an equivalent number of packets.
> + * This is based on the numbers specified in RFC 5681, 3.1.
> + */
> +static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> +{
> +       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> +}
> +
>  static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
>  {
>        struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index eb7f82e..2f692ce 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
>        __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
>
>        if (!cwnd)
> -               cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
> +               cwnd = TCP_INIT_CWND;
>        return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
>  }
>
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03  3:34     ` David Miller
  -1 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-03  3:34 UTC (permalink / raw)
  To: eric.dumazet; +Cc: netdev, dccp, therbert

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 03 Feb 2011 02:53:43 +0100

> Le mercredi 02 février 2011 à 17:07 -0800, David Miller a écrit :
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>> ---
>> 
> 
> Hmm, you forgot a Changelog David ;)

Maybe, or maybe not, frankly it's quite self-evident if you ask
me. :-)


^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03  3:34     ` David Miller
  0 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-03  3:34 UTC (permalink / raw)
  To: dccp

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 03 Feb 2011 02:53:43 +0100

> Le mercredi 02 février 2011 à 17:07 -0800, David Miller a écrit :
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>> ---
>> 
> 
> Hmm, you forgot a Changelog David ;)

Maybe, or maybe not, frankly it's quite self-evident if you ask
me. :-)


^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 14:00   ` Hagen Paul Pfeifer
  -1 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:00 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, dccp, therbert


On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:



> +/* TCP initial congestion window */

> +#define TCP_INIT_CWND		10

> +



Davem, there is _no_ research how this huge IW will behave in environments

with a small BDP. Belief it or not, but there are networks out there with a

BDP similar to ~1980. Why for heaven's sake should this work in these

environments? There are only _two_ extensive analysis one from Cherry and

and one from Ilpo. Both analysis focus on current mainstream BDP. I started

to setup a ns-2 environment but due to lack of time I am a little bit

behind schedule. Anyway, why not make this a tunable per route knob so that

it is easier to fix things, e.g. set IW back to 3.



HGN

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 14:00   ` Hagen Paul Pfeifer
  0 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:00 UTC (permalink / raw)
  To: dccp


On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:

> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND		10
> +

Davem, there is _no_ research how this huge IW will behave in environments
with a small BDP. Belief it or not, but there are networks out there with a
BDP similar to ~1980. Why for heaven's sake should this work in these
environments? There are only _two_ extensive analysis one from Cherry and
and one from Ilpo. Both analysis focus on current mainstream BDP. I started
to setup a ns-2 environment but due to lack of time I am a little bit
behind schedule. Anyway, why not make this a tunable per route knob so that
it is easier to fix things, e.g. set IW back to 3.

HGN

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 14:17     ` John Heffner
  -1 siblings, 0 replies; 37+ messages in thread
From: John Heffner @ 2011-02-03 14:17 UTC (permalink / raw)
  To: Hagen Paul Pfeifer; +Cc: David Miller, netdev, dccp, therbert

On Thu, Feb 3, 2011 at 9:00 AM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
>
> On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:
>
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND                10
>> +
>
> Davem, there is _no_ research how this huge IW will behave in environments
> with a small BDP. Belief it or not, but there are networks out there with a
> BDP similar to ~1980. Why for heaven's sake should this work in these
> environments? There are only _two_ extensive analysis one from Cherry and
> and one from Ilpo. Both analysis focus on current mainstream BDP. I started
> to setup a ns-2 environment but due to lack of time I am a little bit
> behind schedule. Anyway, why not make this a tunable per route knob so that
> it is easier to fix things, e.g. set IW back to 3.


There's already a per-route tunable, right (RTAX_INITCWND)?

  -John

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 14:17     ` John Heffner
  0 siblings, 0 replies; 37+ messages in thread
From: John Heffner @ 2011-02-03 14:17 UTC (permalink / raw)
  To: dccp

On Thu, Feb 3, 2011 at 9:00 AM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
>
> On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:
>
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND                10
>> +
>
> Davem, there is _no_ research how this huge IW will behave in environments
> with a small BDP. Belief it or not, but there are networks out there with a
> BDP similar to ~1980. Why for heaven's sake should this work in these
> environments? There are only _two_ extensive analysis one from Cherry and
> and one from Ilpo. Both analysis focus on current mainstream BDP. I started
> to setup a ns-2 environment but due to lack of time I am a little bit
> behind schedule. Anyway, why not make this a tunable per route knob so that
> it is easier to fix things, e.g. set IW back to 3.


There's already a per-route tunable, right (RTAX_INITCWND)?

  -John

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 14:26       ` Hagen Paul Pfeifer
  -1 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:26 UTC (permalink / raw)
  To: John Heffner; +Cc: David Miller, netdev, dccp, therbert


On Thu, 3 Feb 2011 09:17:14 -0500, John Heffner wrote:



> There's already a per-route tunable, right (RTAX_INITCWND)?



Yes, __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);



I was a little bit nervous ... ;)



HGN

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 14:26       ` Hagen Paul Pfeifer
  0 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:26 UTC (permalink / raw)
  To: dccp


On Thu, 3 Feb 2011 09:17:14 -0500, John Heffner wrote:

> There's already a per-route tunable, right (RTAX_INITCWND)?

Yes, __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);

I was a little bit nervous ... ;)

HGN

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 14:43     ` Hagen Paul Pfeifer
  -1 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:43 UTC (permalink / raw)
  To: Hagen Paul Pfeifer; +Cc: David Miller, netdev, dccp, therbert


On Thu, 03 Feb 2011 15:00:28 +0100, Hagen Paul Pfeifer wrote:



> Davem, there is _no_ research how this huge IW will behave in

environments

> with a small BDP. Belief it or not, but there are networks out there

with a

> BDP similar to ~1980. Why for heaven's sake should this work in these

> environments? There are only _two_ extensive analysis one from Cherry

and



s/Cherry/Jerry/  ;-)



Hagen

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 14:43     ` Hagen Paul Pfeifer
  0 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 14:43 UTC (permalink / raw)
  To: dccp


On Thu, 03 Feb 2011 15:00:28 +0100, Hagen Paul Pfeifer wrote:

> Davem, there is _no_ research how this huge IW will behave in
environments
> with a small BDP. Belief it or not, but there are networks out there
with a
> BDP similar to ~1980. Why for heaven's sake should this work in these
> environments? There are only _two_ extensive analysis one from Cherry
and

s/Cherry/Jerry/  ;-)

Hagen

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
                   ` (3 preceding siblings ...)
  (?)
@ 2011-02-03 20:28 ` Yuchung Cheng
  -1 siblings, 0 replies; 37+ messages in thread
From: Yuchung Cheng @ 2011-02-03 20:28 UTC (permalink / raw)
  To: netdev

Thanks for doing this!

Acked-by: Yuchung Cheng <ycheng@google.com>

On Wed, Feb 2, 2011 at 5:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
>
>  include/net/tcp.h      |   12 +++---------
>  net/dccp/ccids/ccid2.c |    9 +++++++++
>  net/ipv4/tcp_input.c   |    2 +-
>  3 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
>  /* TCP thin-stream limits */
>  #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
>
> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND          10
> +
>  extern struct inet_timewait_death_row tcp_death_row;
>
>  /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
>  /* Use define here intentionally to get WARN_ON location shown at the caller */
>  #define tcp_verify_left_out(tp)        WARN_ON(tcp_left_out(tp) > tp->packets_out)
>
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
>  extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
>  extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
>
> diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
> index e96d5e8..fadecd2 100644
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -583,6 +583,15 @@ done:
>        dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
>  }
>
> +/*
> + * Convert RFC 3390 larger initial window into an equivalent number of packets.
> + * This is based on the numbers specified in RFC 5681, 3.1.
> + */
> +static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> +{
> +       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> +}
> +
>  static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
>  {
>        struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index eb7f82e..2f692ce 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
>        __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
>
>        if (!cwnd)
> -               cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
> +               cwnd = TCP_INIT_CWND;
>        return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
>  }
>
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 21:17     ` H.K. Jerry Chu
  -1 siblings, 0 replies; 37+ messages in thread
From: H.K. Jerry Chu @ 2011-02-03 21:17 UTC (permalink / raw)
  To: Hagen Paul Pfeifer; +Cc: David Miller, netdev, dccp, therbert

On Thu, Feb 3, 2011 at 6:00 AM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
>
> On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:
>
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND                10
>> +
>
> Davem, there is _no_ research how this huge IW will behave in environments
> with a small BDP. Belief it or not, but there are networks out there with a
> BDP similar to ~1980. Why for heaven's sake should this work in these
> environments? There are only _two_ extensive analysis one from Cherry and
> and one from Ilpo. Both analysis focus on current mainstream BDP. I started

It's more than that. We have also conducted extensive, large scale
experiments covering
all BDP/RTT combinations and the result was documented in details in a
SIGCOMM/CCR paper that can be found from a summary page
http://code.google.com/speed/protocols/tcpm-IW10.html covering all our
IW10 work.

> to setup a ns-2 environment but due to lack of time I am a little bit
> behind schedule. Anyway, why not make this a tunable per route knob so that
> it is easier to fix things, e.g. set IW back to 3.

You've seemed to get this backwards. Shouldn't we set the default for the normal
cases and leave the corner cases to the initcwnd and initrwnd knobs to cover?

Jerry

>
> HGN
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 21:17     ` H.K. Jerry Chu
  0 siblings, 0 replies; 37+ messages in thread
From: H.K. Jerry Chu @ 2011-02-03 21:17 UTC (permalink / raw)
  To: dccp

On Thu, Feb 3, 2011 at 6:00 AM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
>
> On Wed, 02 Feb 2011 17:07:50 -0800 (PST), David Miller wrote:
>
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND                10
>> +
>
> Davem, there is _no_ research how this huge IW will behave in environments
> with a small BDP. Belief it or not, but there are networks out there with a
> BDP similar to ~1980. Why for heaven's sake should this work in these
> environments? There are only _two_ extensive analysis one from Cherry and
> and one from Ilpo. Both analysis focus on current mainstream BDP. I started

It's more than that. We have also conducted extensive, large scale
experiments covering
all BDP/RTT combinations and the result was documented in details in a
SIGCOMM/CCR paper that can be found from a summary page
http://code.google.com/speed/protocols/tcpm-IW10.html covering all our
IW10 work.

> to setup a ns-2 environment but due to lack of time I am a little bit
> behind schedule. Anyway, why not make this a tunable per route knob so that
> it is easier to fix things, e.g. set IW back to 3.

You've seemed to get this backwards. Shouldn't we set the default for the normal
cases and leave the corner cases to the initcwnd and initrwnd knobs to cover?

Jerry

>
> HGN
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 22:00     ` Leandro Melo de Sales
  -1 siblings, 0 replies; 37+ messages in thread
From: Leandro Melo de Sales @ 2011-02-03 22:00 UTC (permalink / raw)
  To: netdev, dccp

Just forwarding my reply to the list netdev and dccp lists, the text
was in HTML format and Majordomo rejected it...

---------- Forwarded message ----------
From: Leandro Melo de Sales <leandroal@gmail.com>
Date: Thu, Feb 3, 2011 at 2:48 PM
Subject: Re: [PATCH] tcp: Increase the initial congestion window to 10.
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, dccp@vger.kernel.org, therbert@google.com,
Angelo Perkusich <Angelo.Perkusich@gmail.com>, Hyggo Almeida
<hyggo.almeida@gmail.com>


On Wed, Feb 2, 2011 at 10:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
>
>  include/net/tcp.h      |   12 +++---------
>  net/dccp/ccids/ccid2.c |    9 +++++++++
>  net/ipv4/tcp_input.c   |    2 +-
>  3 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
>  /* TCP thin-stream limits */
>  #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
>
> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND          10
> +
>  extern struct inet_timewait_death_row tcp_death_row;
>
>  /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
>  /* Use define here intentionally to get WARN_ON location shown at the caller */
>  #define tcp_verify_left_out(tp)        WARN_ON(tcp_left_out(tp) > tp->packets_out)
>
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
>  extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
>  extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
>
> diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
> index e96d5e8..fadecd2 100644
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -583,6 +583,15 @@ done:
>        dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
>  }
>
> +/*
> + * Convert RFC 3390 larger initial window into an equivalent number of packets.
> + * This is based on the numbers specified in RFC 5681, 3.1.
> + */
> +static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> +{
> +       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> +}
> +
>  static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
>  {
>        struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index eb7f82e..2f692ce 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
>        __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
>
>        if (!cwnd)
> -               cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
> +               cwnd = TCP_INIT_CWND;
>        return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
>  }
>
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe dccp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

David and others,
    I don't think this change will make sense for DCCP, once IW10 is
for the cases of short-lived flows. DCCP is used on scenarios for
multimedia flows, which are, in general, long-lived flows. So, IMO the
way how we calculate IW for DCCP is appropriate, at least considering
a quick answer. In fact, nowadays we need better congestion control
algorithms for DCCP, and in this sense we are working on adapt TCP
Cubic for DCCP as a CCID, and also we started some work to make DCCP
support TCP pluggable mechanism , which will allow us to use TCP
congestion control algorithms in DCCP.
    I've been following all the discussions about IW10 in the TCPM
discussion list and also been reading all materials in this context
(papers and ppts) provided by Tom Herbert and Nandita Dukkipati (along
with other researchers from Networking Research Lab at North Carolina
State University), but although the results is really great (at least
for scenarios they've experimented and regardless to all opinions
expressed at TCPM), DCCP should calculate its IW as specified in
RFC3390 rather than set it to IW10. For the moment, I understand that
for DCCP, we have to discuss more about this in a separated thread.

Leandro.

--
Leandro Melo de Sales
Professor at Institute of Computing at Federal University of Alagoas, Brazil
PhD candidate in Computer Science
Pervasive and Embedded Computing Laboratory, UFCG

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 22:00     ` Leandro Melo de Sales
  0 siblings, 0 replies; 37+ messages in thread
From: Leandro Melo de Sales @ 2011-02-03 22:00 UTC (permalink / raw)
  To: dccp

Just forwarding my reply to the list netdev and dccp lists, the text
was in HTML format and Majordomo rejected it...

---------- Forwarded message ----------
From: Leandro Melo de Sales <leandroal@gmail.com>
Date: Thu, Feb 3, 2011 at 2:48 PM
Subject: Re: [PATCH] tcp: Increase the initial congestion window to 10.
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, dccp@vger.kernel.org, therbert@google.com,
Angelo Perkusich <Angelo.Perkusich@gmail.com>, Hyggo Almeida
<hyggo.almeida@gmail.com>


On Wed, Feb 2, 2011 at 10:07 PM, David Miller <davem@davemloft.net> wrote:
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
>
>  include/net/tcp.h      |   12 +++---------
>  net/dccp/ccids/ccid2.c |    9 +++++++++
>  net/ipv4/tcp_input.c   |    2 +-
>  3 files changed, 13 insertions(+), 10 deletions(-)
>
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
>  /* TCP thin-stream limits */
>  #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
>
> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND          10
> +
>  extern struct inet_timewait_death_row tcp_death_row;
>
>  /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
>  /* Use define here intentionally to get WARN_ON location shown at the caller */
>  #define tcp_verify_left_out(tp)        WARN_ON(tcp_left_out(tp) > tp->packets_out)
>
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
>  extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
>  extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
>
> diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
> index e96d5e8..fadecd2 100644
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -583,6 +583,15 @@ done:
>        dccp_ackvec_parsed_cleanup(&hc->tx_av_chunks);
>  }
>
> +/*
> + * Convert RFC 3390 larger initial window into an equivalent number of packets.
> + * This is based on the numbers specified in RFC 5681, 3.1.
> + */
> +static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> +{
> +       return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> +}
> +
>  static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
>  {
>        struct ccid2_hc_tx_sock *hc = ccid_priv(ccid);
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index eb7f82e..2f692ce 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -817,7 +817,7 @@ __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst)
>        __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0);
>
>        if (!cwnd)
> -               cwnd = rfc3390_bytes_to_packets(tp->mss_cache);
> +               cwnd = TCP_INIT_CWND;
>        return min_t(__u32, cwnd, tp->snd_cwnd_clamp);
>  }
>
> --
> 1.7.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe dccp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

David and others,
    I don't think this change will make sense for DCCP, once IW10 is
for the cases of short-lived flows. DCCP is used on scenarios for
multimedia flows, which are, in general, long-lived flows. So, IMO the
way how we calculate IW for DCCP is appropriate, at least considering
a quick answer. In fact, nowadays we need better congestion control
algorithms for DCCP, and in this sense we are working on adapt TCP
Cubic for DCCP as a CCID, and also we started some work to make DCCP
support TCP pluggable mechanism , which will allow us to use TCP
congestion control algorithms in DCCP.
    I've been following all the discussions about IW10 in the TCPM
discussion list and also been reading all materials in this context
(papers and ppts) provided by Tom Herbert and Nandita Dukkipati (along
with other researchers from Networking Research Lab at North Carolina
State University), but although the results is really great (at least
for scenarios they've experimented and regardless to all opinions
expressed at TCPM), DCCP should calculate its IW as specified in
RFC3390 rather than set it to IW10. For the moment, I understand that
for DCCP, we have to discuss more about this in a separated thread.

Leandro.

--
Leandro Melo de Sales
Professor at Institute of Computing at Federal University of Alagoas, Brazil
PhD candidate in Computer Science
Pervasive and Embedded Computing Laboratory, UFCG

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
                   ` (5 preceding siblings ...)
  (?)
@ 2011-02-03 22:43 ` Ilpo Järvinen
  2011-02-03 23:54   ` Yuchung Cheng
  2011-02-04  2:01   ` H.K. Jerry Chu
  -1 siblings, 2 replies; 37+ messages in thread
From: Ilpo Järvinen @ 2011-02-03 22:43 UTC (permalink / raw)
  To: David Miller; +Cc: Netdev, therbert, H.K. Jerry Chu

It would perhaps be useful to change receiver advertized window to include 
some extra segs initially. It should be >= IW + peer's dupThresh-1 as 
otherwise limited transmit won't work for the initial window because we 
won't open more receiver window with dupacks (IIRC, I suppose Jerry might 
be able to correct me right away if I'm wrong and we open window with 
dupacks too?).  I think initial receiver window code used to have some 
surplus but it was broken by the rfc3390-func conversion (against my 
advice on how to do the conversion).

-- 
 i.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-03 22:55       ` Hagen Paul Pfeifer
  -1 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 22:55 UTC (permalink / raw)
  To: H.K. Jerry Chu; +Cc: David Miller, netdev, dccp, therbert

* H.K. Jerry Chu | 2011-02-03 13:17:19 [-0800]:

>> to setup a ns-2 environment but due to lack of time I am a little bit
>> behind schedule. Anyway, why not make this a tunable per route knob so that
>> it is easier to fix things, e.g. set IW back to 3.
>
>You've seemed to get this backwards. Shouldn't we set the default for the normal
>cases and leave the corner cases to the initcwnd and initrwnd knobs to cover?

Yes Jerry, I phrase this a little bit abstruse. Apply David patch and use per
route options to reduce the IW if some curious behavior appear.

It seems the time is come to increase the IW. ;-)

Hagen



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-03 22:55       ` Hagen Paul Pfeifer
  0 siblings, 0 replies; 37+ messages in thread
From: Hagen Paul Pfeifer @ 2011-02-03 22:55 UTC (permalink / raw)
  To: dccp

* H.K. Jerry Chu | 2011-02-03 13:17:19 [-0800]:

>> to setup a ns-2 environment but due to lack of time I am a little bit
>> behind schedule. Anyway, why not make this a tunable per route knob so that
>> it is easier to fix things, e.g. set IW back to 3.
>
>You've seemed to get this backwards. Shouldn't we set the default for the normal
>cases and leave the corner cases to the initcwnd and initrwnd knobs to cover?

Yes Jerry, I phrase this a little bit abstruse. Apply David patch and use per
route options to reduce the IW if some curious behavior appear.

It seems the time is come to increase the IW. ;-)

Hagen



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03 22:43 ` Ilpo Järvinen
@ 2011-02-03 23:54   ` Yuchung Cheng
  2011-02-04 19:50     ` Ilpo Järvinen
  2011-02-04  2:01   ` H.K. Jerry Chu
  1 sibling, 1 reply; 37+ messages in thread
From: Yuchung Cheng @ 2011-02-03 23:54 UTC (permalink / raw)
  To: Ilpo Järvinen
  Cc: David Miller, Netdev, therbert, H.K. Jerry Chu, Nandita Dukkipati

On Thu, Feb 3, 2011 at 2:43 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> It would perhaps be useful to change receiver advertized window to include
> some extra segs initially. It should be >= IW + peer's dupThresh-1 as
That's a very good point.

Maybe IRW should be IW + ssthresh - 1 since Linux also performs
limited-transmit during fast-recovery as described in RFC 3517. This
way sender can keep sending new data during the recovery as long as
cwnd allows.

> otherwise limited transmit won't work for the initial window because we
> won't open more receiver window with dupacks (IIRC, I suppose Jerry might
> be able to correct me right away if I'm wrong and we open window with
> dupacks too?).  I think initial receiver window code used to have some
> surplus but it was broken by the rfc3390-func conversion (against my
> advice on how to do the conversion).
>
> --
>  i.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03 22:43 ` Ilpo Järvinen
  2011-02-03 23:54   ` Yuchung Cheng
@ 2011-02-04  2:01   ` H.K. Jerry Chu
  2011-02-04 19:43     ` Ilpo Järvinen
  1 sibling, 1 reply; 37+ messages in thread
From: H.K. Jerry Chu @ 2011-02-04  2:01 UTC (permalink / raw)
  To: Ilpo Järvinen; +Cc: David Miller, Netdev, therbert, hkchu

Hi Ilpo,

On Thu, Feb 3, 2011 at 2:43 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> It would perhaps be useful to change receiver advertized window to include
> some extra segs initially. It should be >= IW + peer's dupThresh-1 as
> otherwise limited transmit won't work for the initial window because we
> won't open more receiver window with dupacks (IIRC, I suppose Jerry might
> be able to correct me right away if I'm wrong and we open window with
> dupacks too?).

Sorry I don't know how the receive window is updated in Linux,
autotuning or not.
But I just wonder why would it have to do with dupacks, i.e., why would it not
slide forward as long as the left edge of the window slides forward,
regardless of
OOO pkt arrival?

I am of the opinion that rwnd is for flow control purpose only thus should be
fully decoupled from the cwnd of the other (sender) side. Therefore
initrwnd should
normally be based on projected BDP and local memory pressure, e.g., 64KB, not
bearing any relation with IW of the other side. Only under special
circumstances should it be used to constrain the sender, e.g., for
devices behind slow links with
very small buffer.

Jerry

>I think initial receiver window code used to have some
> surplus but it was broken by the rfc3390-func conversion (against my
> advice on how to do the conversion).
>
> --
>  i.
>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-04  8:38   ` Alexander Zimmermann
  -1 siblings, 0 replies; 37+ messages in thread
From: Alexander Zimmermann @ 2011-02-04  8:38 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, dccp, therbert

[-- Attachment #1: Type: text/plain, Size: 1822 bytes --]

Hi David,

Am 03.02.2011 um 02:07 schrieb David Miller:

> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
> 
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
> 
> include/net/tcp.h      |   12 +++---------
> net/dccp/ccids/ccid2.c |    9 +++++++++
> net/ipv4/tcp_input.c   |    2 +-
> 3 files changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
> /* TCP thin-stream limits */
> #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
> 

Could you add a reference to draft?

> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND		10
> +
> extern struct inet_timewait_death_row tcp_death_row;
> 
> /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
> /* Use define here intentionally to get WARN_ON location shown at the caller */
> #define tcp_verify_left_out(tp)	WARN_ON(tcp_left_out(tp) > tp->packets_out)
> 
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
> extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
> extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
> 



[-- Attachment #2: Signierter Teil der Nachricht --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-04  8:38   ` Alexander Zimmermann
  0 siblings, 0 replies; 37+ messages in thread
From: Alexander Zimmermann @ 2011-02-04  8:38 UTC (permalink / raw)
  To: dccp

[-- Attachment #1: Type: text/plain, Size: 1822 bytes --]

Hi David,

Am 03.02.2011 um 02:07 schrieb David Miller:

> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
> 
> I've left the DCCP code to keep using RFC3390 logic, if they
> wish to adopt this change in their code they can do so by
> simply deleting the rfc33390_bytes_to_packets() function and
> using TCP_INIT_CWND in their assignment.
> 
> include/net/tcp.h      |   12 +++---------
> net/dccp/ccids/ccid2.c |    9 +++++++++
> net/ipv4/tcp_input.c   |    2 +-
> 3 files changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 9179111..7118668 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -196,6 +196,9 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
> /* TCP thin-stream limits */
> #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
> 

Could you add a reference to draft?

> +/* TCP initial congestion window */
> +#define TCP_INIT_CWND		10
> +
> extern struct inet_timewait_death_row tcp_death_row;
> 
> /* sysctl variables for tcp */
> @@ -799,15 +802,6 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
> /* Use define here intentionally to get WARN_ON location shown at the caller */
> #define tcp_verify_left_out(tp)	WARN_ON(tcp_left_out(tp) > tp->packets_out)
> 
> -/*
> - * Convert RFC 3390 larger initial window into an equivalent number of packets.
> - * This is based on the numbers specified in RFC 5681, 3.1.
> - */
> -static inline u32 rfc3390_bytes_to_packets(const u32 smss)
> -{
> -	return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
> -}
> -
> extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
> extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
> 



[-- Attachment #2: Signierter Teil der Nachricht --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-04  2:01   ` H.K. Jerry Chu
@ 2011-02-04 19:43     ` Ilpo Järvinen
  2011-02-05  3:39       ` Jerry Chu
  0 siblings, 1 reply; 37+ messages in thread
From: Ilpo Järvinen @ 2011-02-04 19:43 UTC (permalink / raw)
  To: H.K. Jerry Chu; +Cc: David Miller, Netdev, therbert, Jerry Chu

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1688 bytes --]

On Thu, 3 Feb 2011, H.K. Jerry Chu wrote:

> On Thu, Feb 3, 2011 at 2:43 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> > It would perhaps be useful to change receiver advertized window to include
> > some extra segs initially. It should be >= IW + peer's dupThresh-1 as
> > otherwise limited transmit won't work for the initial window because we
> > won't open more receiver window with dupacks (IIRC, I suppose Jerry might
> > be able to correct me right away if I'm wrong and we open window with
> > dupacks too?).
> 
> Sorry I don't know how the receive window is updated in Linux,
> autotuning or not.
> But I just wonder why would it have to do with dupacks, i.e., why would 
> it not slide forward as long as the left edge of the window slides 
> forward, regardless of OOO pkt arrival?

?? DupACK by defination does not slide the left edge?!? :-) ...It
certainly makes a difference whether the ACK is cumulative or not. 
Anyway, I tcpdumped it now and confirmed that advertized window is not 
advanced if OOO packet arrives.

> I am of the opinion that rwnd is for flow control purpose only thus should be
> fully decoupled from the cwnd of the other (sender) side. Therefore
> initrwnd should
> normally be based on projected BDP and local memory pressure, e.g., 64KB, not
> bearing any relation with IW of the other side. Only under special
> circumstances should it be used to constrain the sender, e.g., for
> devices behind slow links with
> very small buffer.

I also think along the lines that the advertized window autotuning code 
is just unnecessarily preventive (besides the IW change, also Quickstart 
couldn't be used that efficiently because of it).

-- 
 i.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03 23:54   ` Yuchung Cheng
@ 2011-02-04 19:50     ` Ilpo Järvinen
  0 siblings, 0 replies; 37+ messages in thread
From: Ilpo Järvinen @ 2011-02-04 19:50 UTC (permalink / raw)
  To: Yuchung Cheng
  Cc: David Miller, Netdev, therbert, H.K. Jerry Chu, Nandita Dukkipati

[-- Attachment #1: Type: TEXT/PLAIN, Size: 602 bytes --]

On Thu, 3 Feb 2011, Yuchung Cheng wrote:

> On Thu, Feb 3, 2011 at 2:43 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> > It would perhaps be useful to change receiver advertized window to include
> > some extra segs initially. It should be >= IW + peer's dupThresh-1 as
> That's a very good point.
> 
> Maybe IRW should be IW + ssthresh - 1 since Linux also performs
> limited-transmit during fast-recovery as described in RFC 3517. This
> way sender can keep sending new data during the recovery as long as
> cwnd allows.

You're of course right, I forgot the recovery altogether :-).

-- 
 i.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-04 19:43     ` Ilpo Järvinen
@ 2011-02-05  3:39       ` Jerry Chu
  0 siblings, 0 replies; 37+ messages in thread
From: Jerry Chu @ 2011-02-05  3:39 UTC (permalink / raw)
  To: Ilpo Järvinen; +Cc: David Miller, Netdev, therbert

On Fri, Feb 4, 2011 at 11:43 AM, Ilpo Järvinen
<ilpo.jarvinen@helsinki.fi> wrote:
>
> On Thu, 3 Feb 2011, H.K. Jerry Chu wrote:
>
> > On Thu, Feb 3, 2011 at 2:43 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> > > It would perhaps be useful to change receiver advertized window to include
> > > some extra segs initially. It should be >= IW + peer's dupThresh-1 as
> > > otherwise limited transmit won't work for the initial window because we
> > > won't open more receiver window with dupacks (IIRC, I suppose Jerry might
> > > be able to correct me right away if I'm wrong and we open window with
> > > dupacks too?).
> >
> > Sorry I don't know how the receive window is updated in Linux,
> > autotuning or not.
> > But I just wonder why would it have to do with dupacks, i.e., why would
> > it not slide forward as long as the left edge of the window slides
> > forward, regardless of OOO pkt arrival?
>
> ?? DupACK by defination does not slide the left edge?!? :-) ...It
> certainly makes a difference whether the ACK is cumulative or not.
> Anyway, I tcpdumped it now and confirmed that advertized window is not
> advanced if OOO packet arrives.

Cwnd discounts packets that have left the network but rwnd won't discharge
packets until they are consumed by ULP so you are right that in case
the packets from or near the head of the retransmission queue get
dropped rwnd won't
open up room for more packets even though cwnd will. To cover that case initrwnd
needs to be larger than initcwnd.

Jerry

>
> > I am of the opinion that rwnd is for flow control purpose only thus should be
> > fully decoupled from the cwnd of the other (sender) side. Therefore
> > initrwnd should
> > normally be based on projected BDP and local memory pressure, e.g., 64KB, not
> > bearing any relation with IW of the other side. Only under special
> > circumstances should it be used to constrain the sender, e.g., for
> > devices behind slow links with
> > very small buffer.
>
> I also think along the lines that the advertized window autotuning code
> is just unnecessarily preventive (besides the IW change, also Quickstart
> couldn't be used that efficiently because of it).
>
> --
>  i.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-05 13:57   ` Gerrit Renker
  -1 siblings, 0 replies; 37+ messages in thread
From: Gerrit Renker @ 2011-02-05 13:57 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, dccp, therbert

| I've left the DCCP code to keep using RFC3390 logic, if they
| wish to adopt this change in their code they can do so by
| simply deleting the rfc33390_bytes_to_packets() function and
| using TCP_INIT_CWND in their assignment.
| 
|  include/net/tcp.h      |   12 +++---------
|  net/dccp/ccids/ccid2.c |    9 +++++++++
Thank you for keeping the compatility, this seems an excellent way forward.

The change only affects CCID-2, TCP-like congestion control. This still has
some unresolved issues (related to cwnd) in its implementation.

Once these have been resolved, we can return to tracking the state of the 
art in TCP, for the moment your patch works best.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-05 13:57   ` Gerrit Renker
  0 siblings, 0 replies; 37+ messages in thread
From: Gerrit Renker @ 2011-02-05 13:57 UTC (permalink / raw)
  To: dccp

| I've left the DCCP code to keep using RFC3390 logic, if they
| wish to adopt this change in their code they can do so by
| simply deleting the rfc33390_bytes_to_packets() function and
| using TCP_INIT_CWND in their assignment.
| 
|  include/net/tcp.h      |   12 +++---------
|  net/dccp/ccids/ccid2.c |    9 +++++++++
Thank you for keeping the compatility, this seems an excellent way forward.

The change only affects CCID-2, TCP-like congestion control. This still has
some unresolved issues (related to cwnd) in its implementation.

Once these have been resolved, we can return to tracking the state of the 
art in TCP, for the moment your patch works best.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-05 13:58       ` Gerrit Renker
  -1 siblings, 0 replies; 37+ messages in thread
From: Gerrit Renker @ 2011-02-05 13:58 UTC (permalink / raw)
  To: Leandro Melo de Sales; +Cc: netdev, dccp

Leandro,
| >  include/net/tcp.h      |   12 +++---------
| >  net/dccp/ccids/ccid2.c |    9 +++++++++
|
David's change only affects CCID-2, CCID-3/4 remain unaffected,
they use rfc3390_initial_rate() (which does almost the same).
 
|     I don't think this change will make sense for DCCP, once IW10 is
| for the cases of short-lived flows. DCCP is used on scenarios for
| multimedia flows, which are, in general, long-lived flows. So, IMO the
| way how we calculate IW for DCCP is appropriate, at least considering
| a quick answer. 
I agree with you, and also vote to eventually bring CCID-2 on a par with
the state of art in TCP. Before we can do this, the CCID-2 implementation
needs some work (as per separate thread with Samuel Jero).

| In fact, nowadays we need better congestion control algorithms for DCCP,
| and in this sense we are working on adapt TCP Cubic for DCCP as a CCID,
| and also we started some work to make DCCP support TCP pluggable
| mechanism , which will allow us to use TCP congestion control
| algorithms in DCCP.
This is very good news and am very much looking forward to the new approach.


| DCCP should calculate its IW as specified in RFC3390 rather than set
| it to IW10. For the moment, I understand that for DCCP, we have to 
| discuss more about this in a separated thread.
Agree that we should keep an eye on this - perhaps too early to turn it into a
should. Networking speeds are growing, and many of the simulations were based
on TCP Reno which stems from the 10 Mbit ethernet era.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-05 13:58       ` Gerrit Renker
  0 siblings, 0 replies; 37+ messages in thread
From: Gerrit Renker @ 2011-02-05 13:58 UTC (permalink / raw)
  To: dccp

Leandro,
| >  include/net/tcp.h      |   12 +++---------
| >  net/dccp/ccids/ccid2.c |    9 +++++++++
|
David's change only affects CCID-2, CCID-3/4 remain unaffected,
they use rfc3390_initial_rate() (which does almost the same).
 
|     I don't think this change will make sense for DCCP, once IW10 is
| for the cases of short-lived flows. DCCP is used on scenarios for
| multimedia flows, which are, in general, long-lived flows. So, IMO the
| way how we calculate IW for DCCP is appropriate, at least considering
| a quick answer. 
I agree with you, and also vote to eventually bring CCID-2 on a par with
the state of art in TCP. Before we can do this, the CCID-2 implementation
needs some work (as per separate thread with Samuel Jero).

| In fact, nowadays we need better congestion control algorithms for DCCP,
| and in this sense we are working on adapt TCP Cubic for DCCP as a CCID,
| and also we started some work to make DCCP support TCP pluggable
| mechanism , which will allow us to use TCP congestion control
| algorithms in DCCP.
This is very good news and am very much looking forward to the new approach.


| DCCP should calculate its IW as specified in RFC3390 rather than set
| it to IW10. For the moment, I understand that for DCCP, we have to 
| discuss more about this in a separated thread.
Agree that we should keep an eye on this - perhaps too early to turn it into a
should. Networking speeds are growing, and many of the simulations were based
on TCP Reno which stems from the 10 Mbit ethernet era.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
  2011-02-03  1:07 ` David Miller
@ 2011-02-06  2:14     ` David Miller
  -1 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-06  2:14 UTC (permalink / raw)
  To: alexander.zimmermann; +Cc: netdev, dccp, therbert

From: Alexander Zimmermann <alexander.zimmermann@comsys.rwth-aachen.de>
Date: Fri, 04 Feb 2011 09:38:34 +0100

> Could you add a reference to draft?
> 
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND		10
>> +
>> extern struct inet_timewait_death_row tcp_death_row;

Sure, done.

--------------------
tcp: Add reference to initial CWND ietf draft.

Suggested by Alexander Zimmermann

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 include/net/tcp.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 7118668..adfe6db 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -196,7 +196,7 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
 /* TCP thin-stream limits */
 #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
 
-/* TCP initial congestion window */
+/* TCP initial congestion window as per draft-hkchu-tcpm-initcwnd-01 */
 #define TCP_INIT_CWND		10
 
 extern struct inet_timewait_death_row tcp_death_row;
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH] tcp: Increase the initial congestion window to 10.
@ 2011-02-06  2:14     ` David Miller
  0 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2011-02-06  2:14 UTC (permalink / raw)
  To: dccp

From: Alexander Zimmermann <alexander.zimmermann@comsys.rwth-aachen.de>
Date: Fri, 04 Feb 2011 09:38:34 +0100

> Could you add a reference to draft?
> 
>> +/* TCP initial congestion window */
>> +#define TCP_INIT_CWND		10
>> +
>> extern struct inet_timewait_death_row tcp_death_row;

Sure, done.

--------------------
tcp: Add reference to initial CWND ietf draft.

Suggested by Alexander Zimmermann

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 include/net/tcp.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 7118668..adfe6db 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -196,7 +196,7 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
 /* TCP thin-stream limits */
 #define TCP_THIN_LINEAR_RETRIES 6       /* After 6 linear retries, do exp. backoff */
 
-/* TCP initial congestion window */
+/* TCP initial congestion window as per draft-hkchu-tcpm-initcwnd-01 */
 #define TCP_INIT_CWND		10
 
 extern struct inet_timewait_death_row tcp_death_row;
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2011-02-06  2:14 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-03  1:07 [PATCH] tcp: Increase the initial congestion window to 10 David Miller
2011-02-03  1:07 ` David Miller
2011-02-03  1:53 ` Eric Dumazet
2011-02-03  1:53   ` Eric Dumazet
2011-02-03  3:34   ` David Miller
2011-02-03  3:34     ` David Miller
2011-02-03  2:25 ` Nandita Dukkipati
2011-02-03  2:25   ` Nandita Dukkipati
2011-02-03 14:00 ` Hagen Paul Pfeifer
2011-02-03 14:00   ` Hagen Paul Pfeifer
2011-02-03 14:17   ` John Heffner
2011-02-03 14:17     ` John Heffner
2011-02-03 14:26     ` Hagen Paul Pfeifer
2011-02-03 14:26       ` Hagen Paul Pfeifer
2011-02-03 14:43   ` Hagen Paul Pfeifer
2011-02-03 14:43     ` Hagen Paul Pfeifer
2011-02-03 21:17   ` H.K. Jerry Chu
2011-02-03 21:17     ` H.K. Jerry Chu
2011-02-03 22:55     ` Hagen Paul Pfeifer
2011-02-03 22:55       ` Hagen Paul Pfeifer
2011-02-03 20:28 ` Yuchung Cheng
     [not found] ` <AANLkTi=z-1-=R4X6hxs738jMEdYwfMPBFq9Ss-JwKCy3@mail.gmail.com>
2011-02-03 22:00   ` Leandro Melo de Sales
2011-02-03 22:00     ` Leandro Melo de Sales
2011-02-05 13:58     ` Gerrit Renker
2011-02-05 13:58       ` Gerrit Renker
2011-02-03 22:43 ` Ilpo Järvinen
2011-02-03 23:54   ` Yuchung Cheng
2011-02-04 19:50     ` Ilpo Järvinen
2011-02-04  2:01   ` H.K. Jerry Chu
2011-02-04 19:43     ` Ilpo Järvinen
2011-02-05  3:39       ` Jerry Chu
2011-02-04  8:38 ` Alexander Zimmermann
2011-02-04  8:38   ` Alexander Zimmermann
2011-02-06  2:14   ` David Miller
2011-02-06  2:14     ` David Miller
2011-02-05 13:57 ` Gerrit Renker
2011-02-05 13:57   ` Gerrit Renker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.