Remove description of deprecated IP fragment checksum support.
Since SMPng it wasn't really supported anymore and if it worked then only by chance. Only very few drivers ever supported it. Discussed with: yongari MFC after: 2 weeks
This commit is contained in:
parent
c60bda17f2
commit
327210de43
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=242998
@ -24,7 +24,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd April 18, 2011
|
.Dd November 13, 2012
|
||||||
.Dt MBUF 9
|
.Dt MBUF 9
|
||||||
.Os
|
.Os
|
||||||
.\"
|
.\"
|
||||||
@ -1063,45 +1063,6 @@ In this case, the checksum field will be initially
|
|||||||
set by the TCP/IP module to the checksum of the pseudo header
|
set by the TCP/IP module to the checksum of the pseudo header
|
||||||
defined by the TCP and UDP specifications.
|
defined by the TCP and UDP specifications.
|
||||||
.Pp
|
.Pp
|
||||||
For outbound packets which have been fragmented
|
|
||||||
by the host CPU, the following will also be true,
|
|
||||||
regardless of the checksum flag settings:
|
|
||||||
.Bl -bullet -offset indent
|
|
||||||
.It
|
|
||||||
all fragments will have the flag
|
|
||||||
.Dv M_FRAG
|
|
||||||
set in their
|
|
||||||
.Va m_flags
|
|
||||||
field;
|
|
||||||
.It
|
|
||||||
the first and the last fragments in the chain will have
|
|
||||||
.Dv M_FIRSTFRAG
|
|
||||||
or
|
|
||||||
.Dv M_LASTFRAG
|
|
||||||
set in their
|
|
||||||
.Va m_flags ,
|
|
||||||
correspondingly;
|
|
||||||
.It
|
|
||||||
the first fragment in the chain will have the total number
|
|
||||||
of fragments contained in its
|
|
||||||
.Va csum_data
|
|
||||||
field.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
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
|
|
||||||
contains a fragment count instead of a checksum offset value.
|
|
||||||
.Pp
|
|
||||||
On input, an interface indicates the actions it has performed
|
On input, an interface indicates the actions it has performed
|
||||||
on a packet by setting one or more of the following flags in
|
on a packet by setting one or more of the following flags in
|
||||||
.Va csum_flags
|
.Va csum_flags
|
||||||
@ -1147,22 +1108,6 @@ It is a peculiarity of the algorithm used that the Internet checksum
|
|||||||
calculated over any valid packet will be
|
calculated over any valid packet will be
|
||||||
.Li 0xFFFF
|
.Li 0xFFFF
|
||||||
as long as the original checksum field is included.
|
as long as the original checksum field is included.
|
||||||
.Pp
|
|
||||||
For inbound packets which are IP fragments, all
|
|
||||||
.Va csum_data
|
|
||||||
fields will be summed during reassembly to obtain the final checksum
|
|
||||||
value passed to an upper layer in the
|
|
||||||
.Va csum_data
|
|
||||||
field of the reassembled packet.
|
|
||||||
The
|
|
||||||
.Va csum_flags
|
|
||||||
fields of all fragments will be consolidated using logical AND
|
|
||||||
to obtain the final value for
|
|
||||||
.Va csum_flags .
|
|
||||||
Thus, in order to successfully
|
|
||||||
offload checksum computation for fragmented data,
|
|
||||||
all fragments should have the same value of
|
|
||||||
.Va csum_flags .
|
|
||||||
.Sh STRESS TESTING
|
.Sh STRESS TESTING
|
||||||
When running a kernel compiled with the option
|
When running a kernel compiled with the option
|
||||||
.Dv MBUF_STRESS_TEST ,
|
.Dv MBUF_STRESS_TEST ,
|
||||||
|
Loading…
Reference in New Issue
Block a user