* David Miller [off-list ref] [070306 23:47]:
From: Baruch Even <redacted>
Date: Tue, 6 Mar 2007 21:42:59 +0200
quoted
* Ilpo J?rvinen [off-list ref] [070306 14:52]:
quoted
+ newtp->highest_sack = treq->snt_isn + 1;
That's the only initialization that you have for highest_sack, I think
that you should initialize it when a loss is detected to the start_seq
of the first packet that wasn't acked.
He also sets it in tcp_sacktag_write_queue() like this:
+
+ if (after(TCP_SKB_CB(skb)->seq,
+ tp->highest_sack))
+ tp->highest_sack = TCP_SKB_CB(skb)->seq;
Yes, but that's still not enough if between the start of the connection
and the first sack block we already wrapped around to before the old
highest_sack. It might not be a common occurrence but it's still
something to take care of.
Baruch