summaryrefslogtreecommitdiffstats
path: root/share/man/man9/mbuf.9
diff options
context:
space:
mode:
authoryar <yar@FreeBSD.org>2004-01-21 23:32:50 +0000
committeryar <yar@FreeBSD.org>2004-01-21 23:32:50 +0000
commit7e2d68f5cbc94810cf3c6290b6b33ca0fda77729 (patch)
tree972023c6b6f719ca8cfc8c1ad8b30be805faa1fb /share/man/man9/mbuf.9
parent5690dee266aafd27e9ccb89abe63e0400b055263 (diff)
downloadFreeBSD-src-7e2d68f5cbc94810cf3c6290b6b33ca0fda77729.zip
FreeBSD-src-7e2d68f5cbc94810cf3c6290b6b33ca0fda77729.tar.gz
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.
Diffstat (limited to 'share/man/man9/mbuf.9')
-rw-r--r--share/man/man9/mbuf.916
1 files changed, 12 insertions, 4 deletions
diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9
index de2519a..0ab55b1 100644
--- a/share/man/man9/mbuf.9
+++ b/share/man/man9/mbuf.9
@@ -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
OpenPOWER on IntegriCloud