Hi,
I'm testing the effects of different TCP modifications on
the communication performance on slow links, generating some packet
losses on the way. I have had problems with SACK option. Everything is
fine when I have both tcp_sack and tcp_timestamps set on, but if I try
sack without timestamps it seems like the sender doesn't care about the
sack blocks at all and performs as if it was used without the sack
option. This behaviour occurs at
least in 2.2.12 and 2.3.99-pre9 kernels. Receiving end seems to generate
the sack blocks correctly. The data I used was unidirectional bulk data
generated by ttcp.
After a couple of printk - enhanced rounds I did a simple test
commenting out the following in tcp_fast_parse_options():
/* If we didn't send out any options ignore them all. */
if (tp->tcp_header_len == sizeof(struct tcphdr))
return 0;
After this SACK started working nicely. Are we facing a bug or do I have
some kind of misunderstanding here?
- Pasi
|