On Fri, Feb 19, 2016 at 12:27 PM, Tom Herbert <t...@herbertland.com> wrote: > I would also note RFC7348 specifies: > > UDP Checksum: It SHOULD be transmitted as zero. ... > > The RFC doesn't provide any rationale as to why this is a SHOULD > (neither is there any discussion as to whether this pertains to IPv6 > which has stronger requirements for non-zero UDP checksum). I think > there are two possibilities in the intent: 1) The authors assume that > computing UDP checksums is a significant performance hit which is > dis-proven by this patch 2) They are worried about devices that are > unable to compute receive checksums, however this would be addressed > by an allowance that devices can ignore non-zero UDP checksums for > VXLAN ("When a decapsulating end point receives a packet with a > non-zero checksum, it MAY choose to verify the checksum value.")
It's #2. All of the performance concerns around checksums and tunneling stem from devices implemented using switching ASICs. In those devices, computing/verifying checksums is so slow (software path) that they are effectively unable to do it.