Subject: Re: [lisp] #7: LISP ETRs ignoring checksum value in LISP UDP outer header on decapsulation

From: Jari Arkko <[email-masked]>
Date: Tue, 08 Sep 2009 23:40:18 +0300

Margaret, Noel,

> I understand this argument, but I think of this as a separate 
> question/issue than the question of whether to allow the use of 
> non-zero UDP checksums in IPv6. One major difference is that this is 
> an issue for both IPv4 and IPv6.
>>
>> There are, it turns out, a lot of forwarding boxes already deployed 
>> out there
>> that _wrongly_ update zero UDPv4 checksums in packets passing through 
>> them, so
>> that a packet that sets out with a zero checksum will arrive with a 
>> non-zero
>> checksum. (Which just goes to show that not much stuff is using the 
>> ability to
>> send 0 checksum, as allowed by the UDP RFC, otherwise this would have 
>> shown up
>> as a problem before now. But I digress...)
>
> Sadly, it also turns out that there is a large deployed base of 
> systems on which
> it is impossible to turn off UDP checksum calculation on received 
> packets.
>
> There is also a large deployed base of hardware and software that 
> computes UDP checksums
> (on send and receive) that will calculate checksums on all UDP packets 
> that are sent and
> discard received IPv6/UDP packets with zero checksums, as well as 
> discarding all
> packets with invalid checksums.
>
> The open questions in my mind are:
>
> (1) How important is it for LISP ITRs/ETRs to work through (buggy) NAT 
> boxes that
> corrupt UDP zero checksums?
>
> (2) How important is it for LISP ITRs/ETRs to be implementable on 
> widely-deployed
> hardware and common operating systems?
>
> Are there choices that will allow us to do both? Or do we need to choose?

I realize that we are past the question of NAT boxes putting in corrupt 
checksums.

Nevertheless, my preference is that Lisp should be implementable on a 
wide variety of devices. I realize that from a big iron manufacturer 
point of view Lisp implementations on general purpose computer platforms 
do not look very interesting. But often new technology that we develop 
gets popular via implementations that started out that way. BSD based 
routers etc.

Jari