Skip to content
Snippets Groups Projects
Commit 0dacea92 authored by Ed Swierk's avatar Ed Swierk Committed by Jason Wang
Browse files

net: Transmit zero UDP checksum as 0xFFFF


The checksum algorithm used by IPv4, TCP and UDP allows a zero value
to be represented by either 0x0000 and 0xFFFF. But per RFC 768, a zero
UDP checksum must be transmitted as 0xFFFF because 0x0000 is a special
value meaning no checksum.

Substitute 0xFFFF whenever a checksum is computed as zero when
modifying a UDP datagram header. Doing this on IPv4 and TCP checksums
is unnecessary but legal. Add a wrapper for net_checksum_finish() that
makes the substitution.

(We can't just change net_checksum_finish(), as that function is also
used by receivers to verify checksums, and in that case the expected
value is always 0x0000.)

Signed-off-by: default avatarEd Swierk <eswierk@skyportsystems.com>
Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
parent ebc2327f
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment