Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 111525
b: refs/heads/master
c: e9803c0
h: refs/heads/master
i:
  111523: dde09b7
v: v3
  • Loading branch information
Gerrit Renker committed Sep 4, 2008
1 parent 2f3cee3 commit 156da02
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c6f0f2e71f3088a0f05502d6adb0f667b84028c3
refs/heads/master: e9803c0104564698d3b8e84ccdb0b8b0e65427e2
27 changes: 8 additions & 19 deletions trunk/net/dccp/ccids/ccid2.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,23 +353,6 @@ static inline void ccid2_new_ack(struct sock *sk,
hctx->srtt, hctx->rttvar,
hctx->rto, HZ, r);
}

/* we got a new ack, so re-start RTO timer */
ccid2_hc_tx_kill_rto_timer(sk);
ccid2_start_rto_timer(sk);
}

static void ccid2_hc_tx_dec_pipe(struct sock *sk)
{
struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk);

if (hctx->pipe == 0)
DCCP_BUG("pipe == 0");
else
hctx->pipe--;

if (hctx->pipe == 0)
ccid2_hc_tx_kill_rto_timer(sk);
}

static void ccid2_congestion_event(struct sock *sk, struct ccid2_seq *seqp)
Expand Down Expand Up @@ -518,7 +501,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
seqp->ccid2s_acked = 1;
ccid2_pr_debug("Got ack for %llu\n",
(unsigned long long)seqp->ccid2s_seq);
ccid2_hc_tx_dec_pipe(sk);
hctx->pipe--;
}
if (seqp == hctx->seqt) {
done = 1;
Expand Down Expand Up @@ -574,7 +557,7 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
* one ack vector.
*/
ccid2_congestion_event(sk, seqp);
ccid2_hc_tx_dec_pipe(sk);
hctx->pipe--;
}
if (seqp == hctx->seqt)
break;
Expand All @@ -592,6 +575,12 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
hctx->seqt = hctx->seqt->ccid2s_next;
}

/* restart RTO timer if not all outstanding data has been acked */
if (hctx->pipe == 0)
sk_stop_timer(sk, &hctx->rtotimer);
else
sk_reset_timer(sk, &hctx->rtotimer,
jiffies + hctx->rto);
done:
/* check if incoming Acks allow pending packets to be sent */
if (sender_was_blocked && !ccid2_cwnd_network_limited(hctx))
Expand Down

0 comments on commit 156da02

Please sign in to comment.