Bugzilla – Bug 114159
tcpdump cannot deal with TSO packets
Last modified: 2008-06-25 09:52:32 UTC
When the kernel transmits TCP packets through a NIC that is capable of TSO (TCP segmentation offload), it will set up a fake IP header since all the IP magic is done by the network card. In particular, the IP tot_len field will be zero. When tcpdump or ethereal sees such a packet, it will not print the packet's contents, but print "IP bad-len" instead. This is not very helpful when trying to debug network problems - I ran into this problem 2-3 times in the last few weeks when dealing with SLES L3 bugs. The tcpdump code already has support for this; there's a '#ifdef GUESS_TSO' define in print-ip.c. I propose to add a #define GUESS_TSO somewhere at the top of the file in order to enable this useful hack. I assume a similar hack exists for ethereal.
I have added the GUESS_TSO, where to test it (and make sure the TSO is used)?
You can try any of the tcp dumps in bug 105539, for instance http://rudin.suse.de:8888/attachment.cgi?id=47765 They have lots of those packets. Displaying this with tcpdump -nr should show a lot of those: IP bad-len 0 Thanks, Olaf
the GUESS_TSO works epsilon:/# tcpdump -nr x.log | grep bad reading from file x.log, link-type EN10MB (Ethernet) epsilon:/#
I can't find the hack for ethereal, where did you hear about it? For tcpdump it is fixed and for SL10 I think is too late, I decrease severity to normal.
Created attachment 49027 [details] Proposed patch
Something like the above patch should help. Beware, this is untested.
Proposed patch doesn't work in ethereal, I will investigate it later.
Petr, what's the status of this?
I didn't catch this, I will investigate it in the next distro.
mass reopening all SuSE Linux bugs that are set to REMIND+LATER to change the resolution to WONTFIX (adapting to new policy)
Closing old LATER+REMIND bugs as WONTFIX - if you still plan to work on it, feel free to reopen and set to ASSIGNED. In case the report saw repeated reopen comments, it's due to bugzilla timing out on the huge request ;(