From 724c8eafb8e285a0f42463c163d748f4aaacb6e3 Mon Sep 17 00:00:00 2001 From: Gerrit Renker Date: Sat, 24 Nov 2007 22:05:51 -0200 Subject: [PATCH] --- yaml --- r: 78203 b: refs/heads/master c: 3deeadd74bbf916b502d307222833ffcf68db557 h: refs/heads/master i: 78201: 575e3b5df470ad1249b39acc9620a103c0aedeb4 78199: 450fb8dbdaacad0529ae33fc8bdb8e4e4a5671ec v: v3 --- [refs] | 2 +- trunk/net/dccp/ccids/ccid2.c | 22 +++++++--------------- trunk/net/dccp/ccids/ccid2.h | 2 +- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index c5a0aaf17b69..06f376818108 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 63df18ad7fb91c65dafc89d3cf94a58a486ad416 +refs/heads/master: 3deeadd74bbf916b502d307222833ffcf68db557 diff --git a/trunk/net/dccp/ccids/ccid2.c b/trunk/net/dccp/ccids/ccid2.c index a3c42cd00b00..747fa1c4e42e 100644 --- a/trunk/net/dccp/ccids/ccid2.c +++ b/trunk/net/dccp/ccids/ccid2.c @@ -165,12 +165,6 @@ static void ccid2_change_l_ack_ratio(struct sock *sk, u32 val) dp->dccps_l_ack_ratio = val; } -static void ccid2_change_cwnd(struct ccid2_hc_tx_sock *hctx, u32 val) -{ - hctx->ccid2hctx_cwnd = val? : 1; - ccid2_pr_debug("changed cwnd to %u\n", hctx->ccid2hctx_cwnd); -} - static void ccid2_change_srtt(struct ccid2_hc_tx_sock *hctx, long val) { ccid2_pr_debug("change SRTT to %ld\n", val); @@ -212,10 +206,10 @@ static void ccid2_hc_tx_rto_expire(unsigned long data) /* adjust pipe, cwnd etc */ ccid2_change_pipe(hctx, 0); - hctx->ccid2hctx_ssthresh = hctx->ccid2hctx_cwnd >> 1; + hctx->ccid2hctx_ssthresh = hctx->ccid2hctx_cwnd / 2; if (hctx->ccid2hctx_ssthresh < 2) hctx->ccid2hctx_ssthresh = 2; - ccid2_change_cwnd(hctx, 1); + hctx->ccid2hctx_cwnd = 1; /* clear state about stuff we sent */ hctx->ccid2hctx_seqt = hctx->ccid2hctx_seqh; @@ -440,7 +434,7 @@ static inline void ccid2_new_ack(struct sock *sk, /* increase every 2 acks */ hctx->ccid2hctx_ssacks++; if (hctx->ccid2hctx_ssacks == 2) { - ccid2_change_cwnd(hctx, hctx->ccid2hctx_cwnd+1); + hctx->ccid2hctx_cwnd++; hctx->ccid2hctx_ssacks = 0; *maxincr = *maxincr - 1; } @@ -453,7 +447,7 @@ static inline void ccid2_new_ack(struct sock *sk, hctx->ccid2hctx_acks++; if (hctx->ccid2hctx_acks >= hctx->ccid2hctx_cwnd) { - ccid2_change_cwnd(hctx, hctx->ccid2hctx_cwnd + 1); + hctx->ccid2hctx_cwnd++; hctx->ccid2hctx_acks = 0; } } @@ -543,10 +537,8 @@ static void ccid2_congestion_event(struct sock *sk, struct ccid2_seq *seqp) hctx->ccid2hctx_last_cong = jiffies; - ccid2_change_cwnd(hctx, hctx->ccid2hctx_cwnd >> 1); - hctx->ccid2hctx_ssthresh = hctx->ccid2hctx_cwnd; - if (hctx->ccid2hctx_ssthresh < 2) - hctx->ccid2hctx_ssthresh = 2; + hctx->ccid2hctx_cwnd = hctx->ccid2hctx_cwnd / 2 ? : 1U; + hctx->ccid2hctx_ssthresh = max(hctx->ccid2hctx_cwnd, 2U); /* Avoid spurious timeouts resulting from Ack Ratio > cwnd */ if (dccp_sk(sk)->dccps_l_ack_ratio > hctx->ccid2hctx_cwnd) @@ -759,7 +751,7 @@ static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk) u32 max_ratio; /* RFC 4341, 5: initialise ssthresh to arbitrarily high (max) value */ - hctx->ccid2hctx_ssthresh = ~0; + hctx->ccid2hctx_ssthresh = ~0U; /* * RFC 4341, 5: "The cwnd parameter is initialized to at most four diff --git a/trunk/net/dccp/ccids/ccid2.h b/trunk/net/dccp/ccids/ccid2.h index 443f08a667a2..b72e9556a155 100644 --- a/trunk/net/dccp/ccids/ccid2.h +++ b/trunk/net/dccp/ccids/ccid2.h @@ -50,9 +50,9 @@ struct ccid2_seq { */ struct ccid2_hc_tx_sock { u32 ccid2hctx_cwnd; + u32 ccid2hctx_ssthresh; int ccid2hctx_ssacks; int ccid2hctx_acks; - unsigned int ccid2hctx_ssthresh; int ccid2hctx_pipe; struct ccid2_seq *ccid2hctx_seqbuf[CCID2_SEQBUF_MAX]; int ccid2hctx_seqbufc;