Re: [RFC PATCH net] Revert "ipv6: ndisc: inherit metadata dst when creating ndisc requests"
From: Jiri Benc <hidden>
Date: 2015-11-30 11:20:42
On Fri, 27 Nov 2015 18:17:05 +0100, Nicolas Dichtel wrote:
This reverts commit ab450605b35caa768ca33e86db9403229bf42be4. In IPv6, we cannot inherit the dst of the original dst. ndisc packets are IPv6 packets and may take another route than the original packet. This patch breaks the following scenario: a packet comes from eth0 and is forwarded through vxlan1. The encapsulated packet triggers an NS which cannot be sent because of the wrong route. CC: Jiri Benc <redacted> CC: Thomas Graf <tgraf@suug.ch> Signed-off-by: Nicolas Dichtel <redacted> --- I know that this is not the right fix, it's why I've put RFC ;-)
I'm actually okay with applying the revert for now. The revert is not
the right fix but at least it is less wrong than the current state.
The problem is deeper. I fixed the IPv4 part in commit 63d008a4e9ee
("ipv4: send arp replies to the correct tunnel") but for IPv6, I don't
know how to fix it. We already have dst set for IPv6, thus we cannot
use it to carry lwtunnel metadata for ndisc replies.
I tried to consult this with a couple of people, haven't met with much
interest.
Should the right fix only do a copy of dst metadata in the new dst?
Copy of the dst (I'm afraid we cannot just set the ->lwtstate field, the same dst_entry may be shared between different tunnels) is pretty much the only thing I could think of.
Feedback is welcomed.
Yes. Thanks, Jiri -- Jiri Benc