tcp_output() might generate invalid TSO frames

Andre Oppermann andre at
Thu Apr 16 20:41:40 UTC 2009

Renaud Lienhart wrote:
> Hi,
> We're having trouble virtualizing FreeBSD 7+ on ESX because of an issue
> with the stack's TSO implementation: it sometimes generates TSO packets
> whose payload size is actually smaller than the MSS.
> The faulty logic is described, along with a patch, in PR #132832. It
> has been opened for a while now, without any apparent activity, which
> is why I'm reaching the mailing list directly.
> ESX currently drops these packets as many physical nics are known to
> choke on such frames, which effectively limits FreeBSD guests'
> performance.

Network cards should not choke on frames with TSO but less than one MSS
worth of data.  Though it's not useful to create such frames in the stack.

> I don't know about other virtualization stacks' behavior.

Your patch should fix the issue.  I don't have time to commit it and to
run the MFC process though.  Maybe Kip or Jack can run that process.


More information about the freebsd-net mailing list