Subject: Re: IPv6 and mandatory UDP checksum

From: Pekka Savola <[email-masked]>
Date: Tue, 29 Jan 2002 21:49:31 +0200 (EET)

On Mon, 28 Jan 2002, Speciner, Michael wrote:
> So what should I do if I want to use IPv6, which mandates UDP checksums
> and requires receivers to discard UDP packets without checksums (i.e.
> with zero checksum)? I assume that there is also a mandate to discard
> UDP packets whose checksum is wrong, although I don't see that
> explicitly in either the UDP or IPv6 RFCs.

I'm can tell you the reason for the change: IP header checksum was removed
in IPv6, and requiring checksumming in upper layer was required to
partially compensate for the fact.

Most often, the cost for checksum computation is rather low and errors 
happen quite infrequently, but I guess that's no consolation..

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords

--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: "Speciner, Michael" <[email-masked]>
Date: Mon, 28 Jan 2002 19:17:49 -0500

I am transporting uncompressed voice data (G.711) using RTP/UDP/IP. I
really don't care about errors, and in fact would rather use damaged
data than have a completely missing packet, and so am not calculating a
UDP checksum, instead setting the checksum to zero, as is legal in IPv4.
In addition, I don't have the compute resources to calculate and/or
check the checksum (whose computation includes the entire UDP payload)
for all the voice channels I'm simultaneously dealing with.

--ms 

From RFC 2460:
Unlike IPv4, when UDP packets are originated by an IPv6 node, the UDP
checksum is not optional. That is, whenever originating a UDP packet, an
IPv6 node must compute a UDP checksum over the packet and the
pseudo-header, and, if that computation yields a result of zero, it must
be changed to hex FFFF for placement in the UDP header. IPv6 receivers
must discard UDP packets containing a zero checksum, and should log the
error.

---

From: "Jim Fleming" <[email-masked]>
Date: Tue, 29 Jan 2002 12:34:22 -0800

From: "Speciner, Michael" <[email-masked]>
> So what should I do if I want to use IPv6, which mandates UDP checksums

Note, checksums can be a confusing area because historically TCP and UDP
checksums also cover part of the IP header bits. This is a layer violation, but
people do not care. The IPv4 header checksum just covers the IPv4 header.
Using an IPv4 Routing Header to tow the bloated IPv6 Headers around can
get you a checksum.

Do you use a 2002 prefix ?

Jim Fleming
http://www.RepliGate.net
http://www.Lame-D.com
http://www.dot-biz.com/IPv8/Papers

---

From: Erik Nordmark <[email-masked]>
Date: Tue, 29 Jan 2002 22:37:14 +0100 (CET)

> explicitly in either the UDP or IPv6 RFCs.

I've been told there is supposed to be work on something called UDP-lite
in TSVWG - the ability to have the UDP checksum cover some number of bytes
in the packet (like e.g. just the pseudo-header, UDP header, and RTP header).
But I don't know how this work is progressing.

  Erik

---

From: Allison Mankin <[email-masked]>
Date: Tue, 29 Jan 2002 23:18:33 -0500

draft-ietf-tsvwg-udplite-00.txt

The working group agreed to a working group last call,
about to start.

Allison