Thread (1 message) 1 message, 1 author, 2016-02-16

Re: [PATCH net-next] lwt: fix rx checksum setting for lwt devices tunneling over ipv6

From: David Miller <davem@davemloft.net>
Date: 2016-02-16 20:53:34

From: Tom Herbert <redacted>
Date: Tue, 16 Feb 2016 12:50:23 -0800
On Feb 16, 2016 12:40 PM, "David Miller" [off-list ref] wrote:
quoted
From: Jesse Gross <jesse@kernel.org>
Date: Tue, 16 Feb 2016 12:11:57 -0800
quoted
On Tue, Feb 16, 2016 at 11:47 AM, David Miller [off-list ref]
wrote:
quoted
quoted
quoted
From: Jesse Gross <jesse@kernel.org>
Date: Tue, 16 Feb 2016 10:22:38 -0800
quoted
On Thu, Feb 11, 2016 at 2:41 AM, Jiri Benc [off-list ref] wrote:
There's a bigger problem here, not really related to lightweight
tunnels or OVS.
quoted
quoted
quoted
quoted
The VXLAN RFC says (referring to the UDP checksum and not specific to
IPv4/v6):
quoted
quoted
quoted
quoted
"It SHOULD be transmitted as zero. When a packet is received with a
UDP checksum of zero, it MUST be accepted for decapsulation."

We can debate whether this is correct or whether it conflicts with RFC
2460 but this is what essentially everyone is going to implement. With
the default settings of the flags in IPv6, we are violating both
statements. With the second one in particular, the result is that
Linux will not be able to communicate with any non-Linux VXLAN
endpoint over IPv6 with default settings.
I do not see any such conflict here.

It's a SHOULD, therefore a recommendation.  Likely they thought this
would improve performance, and ironically it has the opposite effect.

The text of the VXLAN RFC does not say that the checksum MUST be sent
as zero, and it also does not say that receiving a non-zero checksum
is violating the RFC.

I therefore do not see the interoperability issue.  Maybe some
deployed systems will run more slowly or hit a slot path (which is not
our problem), but they absolutely should not drop such frames.
"When a packet is received with a UDP checksum of zero, it MUST be
accepted for decapsulation."

This is a requirement and directly in conflict with having
VXLAN_F_UDP_ZERO_CSUM6_RX set to false as the default.
Oh yes, I'm mixing different parts of the conversation.  We must
accept on RX zero checksum fields even for ipv6 because of the way the
VXLAN RFC is worded, correct.
That MUST conflicts directly with RFC2460 (zero UDP csums must be dropped).
We allow configuring to accept zero checksums per Rfc6935 and rfc6936. So
there is no interoperability issue and by default we maintain IPv6 protocol
compliance.
And practically speaking we disappear from the internet for VXLAN tunnel
endpoints implementing the VXLAN spec properly.

That's not going to help anyone at all.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help