diff options
author | David S. Miller <davem@davemloft.net> | 2016-05-09 15:59:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-09 15:59:24 -0400 |
commit | e800072c18f0d7b89a80fa46dceb3d080c80e09c (patch) | |
tree | 8da6cb7944762a60ec37594720c1ad2757631c2f /Documentation/networking | |
parent | e8ed77dfa90dd79c5343415a4bbbfdab9787b35a (diff) | |
parent | b507146bb6b9ac0c0197100ba3e299825a21fed3 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
In netdevice.h we removed the structure in net-next that is being
changes in 'net'. In macsec.c and rtnetlink.c we have overlaps
between fixes in 'net' and the u64 attribute changes in 'net-next'.
The mlx5 conflicts have to do with vxlan support dependencies.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/checksum-offloads.txt | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Documentation/networking/checksum-offloads.txt b/Documentation/networking/checksum-offloads.txt index de2a327766a7..56e36861245f 100644 --- a/Documentation/networking/checksum-offloads.txt +++ b/Documentation/networking/checksum-offloads.txt | |||
@@ -69,18 +69,18 @@ LCO: Local Checksum Offload | |||
69 | LCO is a technique for efficiently computing the outer checksum of an | 69 | LCO is a technique for efficiently computing the outer checksum of an |
70 | encapsulated datagram when the inner checksum is due to be offloaded. | 70 | encapsulated datagram when the inner checksum is due to be offloaded. |
71 | The ones-complement sum of a correctly checksummed TCP or UDP packet is | 71 | The ones-complement sum of a correctly checksummed TCP or UDP packet is |
72 | equal to the sum of the pseudo header, because everything else gets | 72 | equal to the complement of the sum of the pseudo header, because everything |
73 | 'cancelled out' by the checksum field. This is because the sum was | 73 | else gets 'cancelled out' by the checksum field. This is because the sum was |
74 | complemented before being written to the checksum field. | 74 | complemented before being written to the checksum field. |
75 | More generally, this holds in any case where the 'IP-style' ones complement | 75 | More generally, this holds in any case where the 'IP-style' ones complement |
76 | checksum is used, and thus any checksum that TX Checksum Offload supports. | 76 | checksum is used, and thus any checksum that TX Checksum Offload supports. |
77 | That is, if we have set up TX Checksum Offload with a start/offset pair, we | 77 | That is, if we have set up TX Checksum Offload with a start/offset pair, we |
78 | know that _after the device has filled in that checksum_, the ones | 78 | know that after the device has filled in that checksum, the ones |
79 | complement sum from csum_start to the end of the packet will be equal to | 79 | complement sum from csum_start to the end of the packet will be equal to |
80 | _whatever value we put in the checksum field beforehand_. This allows us | 80 | the complement of whatever value we put in the checksum field beforehand. |
81 | to compute the outer checksum without looking at the payload: we simply | 81 | This allows us to compute the outer checksum without looking at the payload: |
82 | stop summing when we get to csum_start, then add the 16-bit word at | 82 | we simply stop summing when we get to csum_start, then add the complement of |
83 | (csum_start + csum_offset). | 83 | the 16-bit word at (csum_start + csum_offset). |
84 | Then, when the true inner checksum is filled in (either by hardware or by | 84 | Then, when the true inner checksum is filled in (either by hardware or by |
85 | skb_checksum_help()), the outer checksum will become correct by virtue of | 85 | skb_checksum_help()), the outer checksum will become correct by virtue of |
86 | the arithmetic. | 86 | the arithmetic. |