UDP checksum invalid on FreeBSD7/x86

Peter Kirk peter at teamspeak-systems.de
Fri Jun 20 08:56:24 UTC 2008


Hi there,

first of, this is my first posting to this list, hopfully it is the right 
place, if not please direct me, I was not being thick intentionally.

I have a fresh installation of FreeBSD7 on x86, with no big changes to the 
system.

Situation:
Two PCs, one running linux and my own programs client application
         one running freebsd7 and my own programs server application

The client and server of my program interchange UDP packets of various sizes. 
The problem I see is that small packets sent from the FreeBSD PC to the Linux 
PC are sent with an invalid UDP checksum (verified via tcpdump on the linux 
box). In my tests all packets with less than 30 bytes UDP payload had an 
invalid checksum set. All packets with more than 15 bytes had the correct 
checksum set. So, the "exact" number should be somewhere between 15 and 30 
bytes.
The receiving Linux box discards the packets with invalid checksums, which of 
course is problematic for my applications well-being.

To "fix" the problem I did:
sudo sysctl -w net.inet.udp.checksum=0

This doesn't seem to be a real fix, but more a work-around. If any more 
information (regarding my installation, my hardware or how my application 
uses the networking functions) is required, just ask.

Thanks in advance for your responses.

PS: I also tried with the client application on other operating systems than 
linux (e.g. win32), and the same problem occured, so this does seem to be a 
freebsd issue.

Peter
-- 
Today is the first day of the rest of your life.



More information about the freebsd-net mailing list