As I've been pointed out by Andrew Gallatin, there are some

network interface cards smart (or twisted?) enough to be able
to calculate a TCP/UDP checksum for a packet fragmented by the
host CPU.  Therefore the paragraph on the case has been revised.
This commit is contained in:
Yaroslav Tykhiy 2004-01-21 23:32:50 +00:00
parent 4939882522
commit 76f80df62e

View File

@ -857,11 +857,19 @@ of fragments contained in its
field.
.El
.Pp
It is obvious that computing the TCP or UDP checksum cannot
be offloaded for a packet fragmented by the host CPU.
Consequently, there is no ambiguity in the meaning of
The last rule for fragmented packets takes precedence over the one
for a TCP or UDP checksum.
Nevertheless, offloading a TCP or UDP checksum is possible for a
fragmented packet if the flag
.Dv CSUM_IP_FRAGS
is set in the field
.Va ifnet.if_data.ifi_hwassist
associated with the network interface.
However, in this case the interface is expected to figure out
the location of the checksum field within the sequence of fragments
by itself because
.Va csum_data
for an outgoing packet.
contains a fragment count instead of a checksum offset value.
.Pp
On input, an interface indicates the actions it has performed
on a packet by setting one or more of the following flags in