Commit db1f00fb authored by Dexuan Cui's avatar Dexuan Cui Committed by David S. Miller

skbuff.h: Improve the checksum related comments

Fixed the punctuation and some typos.
Improved some sentences with minor changes.

No change of semantics or code.
Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Signed-off-by: default avatarDexuan Cui <decui@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent afa3b592
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
* A. IP checksum related features * A. IP checksum related features
* *
* Drivers advertise checksum offload capabilities in the features of a device. * Drivers advertise checksum offload capabilities in the features of a device.
* From the stack's point of view these are capabilities offered by the driver, * From the stack's point of view these are capabilities offered by the driver.
* a driver typically only advertises features that it is capable of offloading * A driver typically only advertises features that it is capable of offloading
* to its device. * to its device.
* *
* The checksum related features are: * The checksum related features are:
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
* TCP or UDP packets over IPv4. These are specifically * TCP or UDP packets over IPv4. These are specifically
* unencapsulated packets of the form IPv4|TCP or * unencapsulated packets of the form IPv4|TCP or
* IPv4|UDP where the Protocol field in the IPv4 header * IPv4|UDP where the Protocol field in the IPv4 header
* is TCP or UDP. The IPv4 header may contain IP options * is TCP or UDP. The IPv4 header may contain IP options.
* This feature cannot be set in features for a device * This feature cannot be set in features for a device
* with NETIF_F_HW_CSUM also set. This feature is being * with NETIF_F_HW_CSUM also set. This feature is being
* DEPRECATED (see below). * DEPRECATED (see below).
...@@ -79,13 +79,13 @@ ...@@ -79,13 +79,13 @@
* DEPRECATED (see below). * DEPRECATED (see below).
* *
* NETIF_F_RXCSUM - Driver (device) performs receive checksum offload. * NETIF_F_RXCSUM - Driver (device) performs receive checksum offload.
* This flag is used only used to disable the RX checksum * This flag is only used to disable the RX checksum
* feature for a device. The stack will accept receive * feature for a device. The stack will accept receive
* checksum indication in packets received on a device * checksum indication in packets received on a device
* regardless of whether NETIF_F_RXCSUM is set. * regardless of whether NETIF_F_RXCSUM is set.
* *
* B. Checksumming of received packets by device. Indication of checksum * B. Checksumming of received packets by device. Indication of checksum
* verification is in set skb->ip_summed. Possible values are: * verification is set in skb->ip_summed. Possible values are:
* *
* CHECKSUM_NONE: * CHECKSUM_NONE:
* *
...@@ -115,16 +115,16 @@ ...@@ -115,16 +115,16 @@
* the packet minus one that have been verified as CHECKSUM_UNNECESSARY. * the packet minus one that have been verified as CHECKSUM_UNNECESSARY.
* For instance if a device receives an IPv6->UDP->GRE->IPv4->TCP packet * For instance if a device receives an IPv6->UDP->GRE->IPv4->TCP packet
* and a device is able to verify the checksums for UDP (possibly zero), * and a device is able to verify the checksums for UDP (possibly zero),
* GRE (checksum flag is set), and TCP-- skb->csum_level would be set to * GRE (checksum flag is set) and TCP, skb->csum_level would be set to
* two. If the device were only able to verify the UDP checksum and not * two. If the device were only able to verify the UDP checksum and not
* GRE, either because it doesn't support GRE checksum of because GRE * GRE, either because it doesn't support GRE checksum or because GRE
* checksum is bad, skb->csum_level would be set to zero (TCP checksum is * checksum is bad, skb->csum_level would be set to zero (TCP checksum is
* not considered in this case). * not considered in this case).
* *
* CHECKSUM_COMPLETE: * CHECKSUM_COMPLETE:
* *
* This is the most generic way. The device supplied checksum of the _whole_ * This is the most generic way. The device supplied checksum of the _whole_
* packet as seen by netif_rx() and fills out in skb->csum. Meaning, the * packet as seen by netif_rx() and fills in skb->csum. This means the
* hardware doesn't need to parse L3/L4 headers to implement this. * hardware doesn't need to parse L3/L4 headers to implement this.
* *
* Notes: * Notes:
...@@ -153,8 +153,8 @@ ...@@ -153,8 +153,8 @@
* from skb->csum_start up to the end, and to record/write the checksum at * from skb->csum_start up to the end, and to record/write the checksum at
* offset skb->csum_start + skb->csum_offset. A driver may verify that the * offset skb->csum_start + skb->csum_offset. A driver may verify that the
* csum_start and csum_offset values are valid values given the length and * csum_start and csum_offset values are valid values given the length and
* offset of the packet, however they should not attempt to validate that the * offset of the packet, but it should not attempt to validate that the
* checksum refers to a legitimate transport layer checksum-- it is the * checksum refers to a legitimate transport layer checksum -- it is the
* purview of the stack to validate that csum_start and csum_offset are set * purview of the stack to validate that csum_start and csum_offset are set
* correctly. * correctly.
* *
...@@ -178,18 +178,18 @@ ...@@ -178,18 +178,18 @@
* *
* CHECKSUM_UNNECESSARY: * CHECKSUM_UNNECESSARY:
* *
* This has the same meaning on as CHECKSUM_NONE for checksum offload on * This has the same meaning as CHECKSUM_NONE for checksum offload on
* output. * output.
* *
* CHECKSUM_COMPLETE: * CHECKSUM_COMPLETE:
* Not used in checksum output. If a driver observes a packet with this value * Not used in checksum output. If a driver observes a packet with this value
* set in skbuff, if should treat as CHECKSUM_NONE being set. * set in skbuff, it should treat the packet as if CHECKSUM_NONE were set.
* *
* D. Non-IP checksum (CRC) offloads * D. Non-IP checksum (CRC) offloads
* *
* NETIF_F_SCTP_CRC - This feature indicates that a device is capable of * NETIF_F_SCTP_CRC - This feature indicates that a device is capable of
* offloading the SCTP CRC in a packet. To perform this offload the stack * offloading the SCTP CRC in a packet. To perform this offload the stack
* will set set csum_start and csum_offset accordingly, set ip_summed to * will set csum_start and csum_offset accordingly, set ip_summed to
* CHECKSUM_PARTIAL and set csum_not_inet to 1, to provide an indication in * CHECKSUM_PARTIAL and set csum_not_inet to 1, to provide an indication in
* the skbuff that the CHECKSUM_PARTIAL refers to CRC32c. * the skbuff that the CHECKSUM_PARTIAL refers to CRC32c.
* A driver that supports both IP checksum offload and SCTP CRC32c offload * A driver that supports both IP checksum offload and SCTP CRC32c offload
...@@ -200,10 +200,10 @@ ...@@ -200,10 +200,10 @@
* NETIF_F_FCOE_CRC - This feature indicates that a device is capable of * NETIF_F_FCOE_CRC - This feature indicates that a device is capable of
* offloading the FCOE CRC in a packet. To perform this offload the stack * offloading the FCOE CRC in a packet. To perform this offload the stack
* will set ip_summed to CHECKSUM_PARTIAL and set csum_start and csum_offset * will set ip_summed to CHECKSUM_PARTIAL and set csum_start and csum_offset
* accordingly. Note the there is no indication in the skbuff that the * accordingly. Note that there is no indication in the skbuff that the
* CHECKSUM_PARTIAL refers to an FCOE checksum, a driver that supports * CHECKSUM_PARTIAL refers to an FCOE checksum, so a driver that supports
* both IP checksum offload and FCOE CRC offload must verify which offload * both IP checksum offload and FCOE CRC offload must verify which offload
* is configured for a packet presumably by inspecting packet headers. * is configured for a packet, presumably by inspecting packet headers.
* *
* E. Checksumming on output with GSO. * E. Checksumming on output with GSO.
* *
...@@ -211,9 +211,9 @@ ...@@ -211,9 +211,9 @@
* is implied by the SKB_GSO_* flags in gso_type. Most obviously, if the * is implied by the SKB_GSO_* flags in gso_type. Most obviously, if the
* gso_type is SKB_GSO_TCPV4 or SKB_GSO_TCPV6, TCP checksum offload as * gso_type is SKB_GSO_TCPV4 or SKB_GSO_TCPV6, TCP checksum offload as
* part of the GSO operation is implied. If a checksum is being offloaded * part of the GSO operation is implied. If a checksum is being offloaded
* with GSO then ip_summed is CHECKSUM_PARTIAL, csum_start and csum_offset * with GSO then ip_summed is CHECKSUM_PARTIAL, and both csum_start and
* are set to refer to the outermost checksum being offload (two offloaded * csum_offset are set to refer to the outermost checksum being offloaded
* checksums are possible with UDP encapsulation). * (two offloaded checksums are possible with UDP encapsulation).
*/ */
/* Don't change this without changing skb_csum_unnecessary! */ /* Don't change this without changing skb_csum_unnecessary! */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment