Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 73513
b: refs/heads/master
c: 8dd71c5
h: refs/heads/master
i:
  73511: d3d3b42
v: v3
  • Loading branch information
Ilpo J�rvinen authored and David S. Miller committed Nov 11, 2007
1 parent f6b8cf1 commit 93a063c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 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: 9e4505c459440a41fd466451cf840dec5c957eeb
refs/heads/master: 8dd71c5d28cd88d4400e7f474986e799e39aff37
12 changes: 8 additions & 4 deletions trunk/net/ipv4/tcp_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -1403,8 +1403,6 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
if (in_sack < 0)
break;

fack_count += tcp_skb_pcount(skb);

sacked = TCP_SKB_CB(skb)->sacked;

/* Account D-SACK for retransmitted packet. */
Expand All @@ -1427,11 +1425,14 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
}

/* Nothing to do; acked frame is about to be dropped. */
fack_count += tcp_skb_pcount(skb);
continue;
}

if (!in_sack)
if (!in_sack) {
fack_count += tcp_skb_pcount(skb);
continue;
}

if (!(sacked&TCPCB_SACKED_ACKED)) {
if (sacked & TCPCB_SACKED_RETRANS) {
Expand Down Expand Up @@ -1480,6 +1481,7 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
flag |= FLAG_DATA_SACKED;
tp->sacked_out += tcp_skb_pcount(skb);

fack_count += tcp_skb_pcount(skb);
if (fack_count > tp->fackets_out)
tp->fackets_out = fack_count;

Expand All @@ -1490,6 +1492,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_
} else {
if (dup_sack && (sacked&TCPCB_RETRANS))
reord = min(fack_count, reord);

fack_count += tcp_skb_pcount(skb);
}

/* D-SACK. We can detect redundant retransmission
Expand All @@ -1515,7 +1519,7 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_

if ((reord < tp->fackets_out) && icsk->icsk_ca_state != TCP_CA_Loss &&
(!tp->frto_highmark || after(tp->snd_una, tp->frto_highmark)))
tcp_update_reordering(sk, ((tp->fackets_out + 1) - reord), 0);
tcp_update_reordering(sk, tp->fackets_out - reord, 0);

#if FASTRETRANS_DEBUG > 0
BUG_TRAP((int)tp->sacked_out >= 0);
Expand Down

0 comments on commit 93a063c

Please sign in to comment.