If you are using the fxp0 driver in FreeBSD 7.2, you will find that clients can no longer connect to your server successfully using certain DSL connections, such as AT&T or BellSouth. You can temporarily work around this issue by executing the following command:
sysctl net.inet.tcp.tso=0
To persist this change after a reboot, add the net.inet.tcp.tso=0 line to /etc/sysctl.conf.
There’s a whole thread about the TCP differences in FreeBSD 7.2 versus FreeBSD 7.1, and a poster seems to provide an explanation for why this occurs:
The problem was caused by the reciever side (usually PPPoE clients, e.g. DSL users) which proposes a smaller MSS than the interface MTU, the previous implementation sets the packet length to interface MTU instead of the negotiated one, which would cause the problem.
Setting
net.inet.tcp.tso=0would turn off TCP Segment Offloading completely. The previous release of FreeBSD does not include this feature.
I’m just surprised that such a glaring bug made it through to release.
Update: This issue has finally been added to the FreeBSD 7.2-RELEASE Errata.