Reuse limited slow-start (RFC3742) included into tcp_cong instead
of having another implementation in High Speed TCP.

Compile tested only.

Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]>
---
 net/ipv4/tcp_highspeed.c |   24 +++---------------------
 1 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/net/ipv4/tcp_highspeed.c b/net/ipv4/tcp_highspeed.c
index a291097..43d624e 100644
--- a/net/ipv4/tcp_highspeed.c
+++ b/net/ipv4/tcp_highspeed.c
@@ -97,10 +97,6 @@ struct hstcp {
        u32     ai;
 };
 
-static int max_ssthresh = 100;
-module_param(max_ssthresh, int, 0644);
-MODULE_PARM_DESC(max_ssthresh, "limited slow start threshold (RFC3742)");
-
 static void hstcp_init(struct sock *sk)
 {
        struct tcp_sock *tp = tcp_sk(sk);
@@ -122,23 +118,9 @@ static void hstcp_cong_avoid(struct sock
        if (!tcp_is_cwnd_limited(sk, in_flight))
                return;
 
-       if (tp->snd_cwnd <= tp->snd_ssthresh) {
-               /* RFC3742: limited slow start
-                * the window is increased by 1/K MSS for each arriving ACK,
-                * for K = int(cwnd/(0.5 max_ssthresh))
-                */
-               if (max_ssthresh > 0 && tp->snd_cwnd > max_ssthresh) {
-                       u32 k = max(tp->snd_cwnd / (max_ssthresh >> 1), 1U);
-                       if (++tp->snd_cwnd_cnt >= k) {
-                               if (tp->snd_cwnd < tp->snd_cwnd_clamp)
-                                       tp->snd_cwnd++;
-                               tp->snd_cwnd_cnt = 0;
-                       }
-               } else {
-                       if (tp->snd_cwnd < tp->snd_cwnd_clamp)
-                               tp->snd_cwnd++;
-               }
-       } else {
+       if (tp->snd_cwnd <= tp->snd_ssthresh)
+               tcp_slow_start(tp);
+       else {
                /* Update AIMD parameters.
                 *
                 * We want to guarantee that:
-- 
1.4.2

Reply via email to