From: "Angelo P. Castellani" <[EMAIL PROTECTED]>
Date: Tue, 16 May 2006 11:24:00 +0200

> Using NewReno, if a sk_buff is timed out and is accounted as lost_out,
> it should also be removed from the sacked_out.
> 
> This is necessary because recovery using NewReno fast retransmit could
> take up to a lot RTTs and the sk_buff RTO can expire without actually
> being really lost.
> 
> left_out = sacked_out + lost_out
> in_flight = packets_out - left_out + retrans_out
> 
> Using NewReno without this patch, on very large network losses,
> left_out becames bigger than packets_out + retrans_out (!!).
> 
> For this reason unsigned integer in_flight overflows to 2^32 - something.

Thanks for your analysis and fix, I will apply it.

This pseudo-SACK for Reno scheme could probably use some changes.  For
example, one idea Herbert Xu had was to maintain the pseudo-SACKs in
the actual TAG bits of the TCP_SKB_CB() as if we saw real SACKs.  But
I am concerned that since we have to be careful not to trust those
pseudo-SACK bits too much, it could actually make the code more
complicated not less complicated.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to