Commit 95b21d7e authored by Gerrit Renker's avatar Gerrit Renker Committed by David S. Miller

[CCID2]: Replace pipe assignment-function with assignment

The function ccid2_change_pipe only does an assignment. This patch simplifies the code by
replacing the function with the assignment it performs.

Furthermore, the type of pipe is promoted from `signed' to unsigned (increasing the range).
As a result, a BUG_ON test for negative values now becomes obsolete (for safety not removed,
but replaced with a less annoying `DCCP_BUG').
Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: default avatarIan McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3deeadd7
...@@ -171,11 +171,6 @@ static void ccid2_change_srtt(struct ccid2_hc_tx_sock *hctx, long val) ...@@ -171,11 +171,6 @@ static void ccid2_change_srtt(struct ccid2_hc_tx_sock *hctx, long val)
hctx->ccid2hctx_srtt = val; hctx->ccid2hctx_srtt = val;
} }
static void ccid2_change_pipe(struct ccid2_hc_tx_sock *hctx, long val)
{
hctx->ccid2hctx_pipe = val;
}
static void ccid2_start_rto_timer(struct sock *sk); static void ccid2_start_rto_timer(struct sock *sk);
static void ccid2_hc_tx_rto_expire(unsigned long data) static void ccid2_hc_tx_rto_expire(unsigned long data)
...@@ -205,11 +200,11 @@ static void ccid2_hc_tx_rto_expire(unsigned long data) ...@@ -205,11 +200,11 @@ static void ccid2_hc_tx_rto_expire(unsigned long data)
ccid2_start_rto_timer(sk); ccid2_start_rto_timer(sk);
/* adjust pipe, cwnd etc */ /* adjust pipe, cwnd etc */
ccid2_change_pipe(hctx, 0);
hctx->ccid2hctx_ssthresh = hctx->ccid2hctx_cwnd / 2; hctx->ccid2hctx_ssthresh = hctx->ccid2hctx_cwnd / 2;
if (hctx->ccid2hctx_ssthresh < 2) if (hctx->ccid2hctx_ssthresh < 2)
hctx->ccid2hctx_ssthresh = 2; hctx->ccid2hctx_ssthresh = 2;
hctx->ccid2hctx_cwnd = 1; hctx->ccid2hctx_cwnd = 1;
hctx->ccid2hctx_pipe = 0;
/* clear state about stuff we sent */ /* clear state about stuff we sent */
hctx->ccid2hctx_seqt = hctx->ccid2hctx_seqh; hctx->ccid2hctx_seqt = hctx->ccid2hctx_seqh;
...@@ -248,8 +243,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, int more, unsigned int len) ...@@ -248,8 +243,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, int more, unsigned int len)
BUG_ON(!hctx->ccid2hctx_sendwait); BUG_ON(!hctx->ccid2hctx_sendwait);
hctx->ccid2hctx_sendwait = 0; hctx->ccid2hctx_sendwait = 0;
ccid2_change_pipe(hctx, hctx->ccid2hctx_pipe + 1); hctx->ccid2hctx_pipe++;
BUG_ON(hctx->ccid2hctx_pipe < 0);
/* There is an issue. What if another packet is sent between /* There is an issue. What if another packet is sent between
* packet_send() and packet_sent(). Then the sequence number would be * packet_send() and packet_sent(). Then the sequence number would be
...@@ -519,8 +513,10 @@ static void ccid2_hc_tx_dec_pipe(struct sock *sk) ...@@ -519,8 +513,10 @@ static void ccid2_hc_tx_dec_pipe(struct sock *sk)
{ {
struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk); struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk);
ccid2_change_pipe(hctx, hctx->ccid2hctx_pipe-1); if (hctx->ccid2hctx_pipe == 0)
BUG_ON(hctx->ccid2hctx_pipe < 0); DCCP_BUG("pipe == 0");
else
hctx->ccid2hctx_pipe--;
if (hctx->ccid2hctx_pipe == 0) if (hctx->ccid2hctx_pipe == 0)
ccid2_hc_tx_kill_rto_timer(sk); ccid2_hc_tx_kill_rto_timer(sk);
......
...@@ -42,6 +42,7 @@ struct ccid2_seq { ...@@ -42,6 +42,7 @@ struct ccid2_seq {
/** struct ccid2_hc_tx_sock - CCID2 TX half connection /** struct ccid2_hc_tx_sock - CCID2 TX half connection
* *
* @ccid2hctx_{cwnd,ssthresh,pipe}: as per RFC 4341, section 5
* @ccid2hctx_ssacks - ACKs recv in slow start * @ccid2hctx_ssacks - ACKs recv in slow start
* @ccid2hctx_acks - ACKS recv in AI phase * @ccid2hctx_acks - ACKS recv in AI phase
* @ccid2hctx_lastrtt -time RTT was last measured * @ccid2hctx_lastrtt -time RTT was last measured
...@@ -51,9 +52,9 @@ struct ccid2_seq { ...@@ -51,9 +52,9 @@ struct ccid2_seq {
struct ccid2_hc_tx_sock { struct ccid2_hc_tx_sock {
u32 ccid2hctx_cwnd; u32 ccid2hctx_cwnd;
u32 ccid2hctx_ssthresh; u32 ccid2hctx_ssthresh;
u32 ccid2hctx_pipe;
int ccid2hctx_ssacks; int ccid2hctx_ssacks;
int ccid2hctx_acks; int ccid2hctx_acks;
int ccid2hctx_pipe;
struct ccid2_seq *ccid2hctx_seqbuf[CCID2_SEQBUF_MAX]; struct ccid2_seq *ccid2hctx_seqbuf[CCID2_SEQBUF_MAX];
int ccid2hctx_seqbufc; int ccid2hctx_seqbufc;
struct ccid2_seq *ccid2hctx_seqh; struct ccid2_seq *ccid2hctx_seqh;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment