From 76f80df62e548c24e64344f55db89fc6c5f82e95 Mon Sep 17 00:00:00 2001 From: Yaroslav Tykhiy Date: Wed, 21 Jan 2004 23:32:50 +0000 Subject: [PATCH] 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. --- share/man/man9/mbuf.9 | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9 index de2519a513d2..0ab55b1176f8 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