]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
ipv6: fix 'disable_policy' for fwd packets
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Tue, 6 Jul 2021 09:13:35 +0000 (11:13 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 20 Sep 2021 16:49:25 +0000 (18:49 +0200)
commitf106bd8b125a1cf9bdbb38625cbe3e018a5d46a8
tree8b03b72ad79d90729324eb24ce600658da3b799f
parentfee561e13bab0094d8db40756758740742b4f15c
ipv6: fix 'disable_policy' for fwd packets

BugLink: https://bugs.launchpad.net/bugs/1939899
[ Upstream commit ccd27f05ae7b8ebc40af5b004e94517a919aa862 ]

The goal of commit df789fe75206 ("ipv6: Provide ipv6 version of
"disable_policy" sysctl") was to have the disable_policy from ipv4
available on ipv6.
However, it's not exactly the same mechanism. On IPv4, all packets coming
from an interface, which has disable_policy set, bypass the policy check.
For ipv6, this is done only for local packets, ie for packets destinated to
an address configured on the incoming interface.

Let's align ipv6 with ipv4 so that the 'disable_policy' sysctl has the same
effect for both protocols.

My first approach was to create a new kind of route cache entries, to be
able to set DST_NOPOLICY without modifying routes. This would have added a
lot of code. Because the local delivery path is already handled, I choose
to focus on the forwarding path to minimize code churn.

Fixes: df789fe75206 ("ipv6: Provide ipv6 version of "disable_policy" sysctl")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
net/ipv6/ip6_output.c