How does FreeBSD handle tcp checksum offloading

Erik Trulsson ertr1013 at student.uu.se
Thu May 24 19:33:31 UTC 2007


On Thu, May 24, 2007 at 01:10:55PM -0600, Andrew Falanga wrote:
> Hi,
> 
> I'm curious as to how FreeBSD handles checksum offloading for TCP
> packets.  Is this on by default?  It seems that it's only relevant for
> specific drivers rather than something that's just assumed.  How can I
> determine if this is supported for the hardware I'm running?  Is it
> common for tcp checksum offloading to be in the fxp driver?  Can one
> turn it off (though, it honestly sounds like no one would wish to do
> so)?

Checksum offloading is usually enabled by default for hardware that supports
it (assuming that the driver for that hardware also supports it of course.)

To see if a particular interface uses checksum offloading you can look at
the output of 'ifconfig -m'.
The "options" line in the output refers to those features that are enabled,
while the "capabilities" line refers to those features that are available.
(Checksum offloading for receive and transmit show up as RXCSUM and TXCSUM
respectively.)
Ifconfig can also be used to enable/disable the offloading - see the
ifconfig(8) manpage for details and syntax.

It can sometimes be desirable to turn of checksum offloading if one suspects
that the hardware has some bugs in it that can cause the checksum to be
wrong.  (For those cases were the hardware has known bugs in this area, the
driver normally disable checksum offloading by default.)


Most hardware supported by the fxp(4) driver do not have support for
checksum offloading, but some do.
(The fairly commonly used  82559 chip does not support checksum while the
less common 82550 chip does, for example.)





-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se


More information about the freebsd-questions mailing list