[PATCH net-next] ipv6: udp: Use ip6_sk_redirect() for tunnel sockets

Subsystems: networking [general], the rest, user datagram protocol (udp)

COOLING5d

3 messages, 3 authors, 5d ago · open the first message on its own page

[PATCH net-next] ipv6: udp: Use ip6_sk_redirect() for tunnel sockets

From: Ido Schimmel <idosch@nvidia.com>
Date: 2026-09-07 10:15:33

After commit cd51b74bdd0b ("ipv6: Fix redirect exception creation for
UDP/RAW sockets") the two redirect calls are now equivalent and there is
no need to specifically call ip6_redirect() for tunnel sockets. Simplify
and call ip6_sk_redirect() for both tunnel sockets and regular sockets.

Note that for ICMPv6 Redirect Message packets the VRF driver does not
reset skb->dev to the VRF device, so skb->dev->ifindex is equivalent to
inet6_iif(skb), even when the packet was received from a VRF port.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 net/ipv6/udp.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 93478d1ad576..59f9872c3552 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -751,13 +751,7 @@ static int udpv6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 			harderr = 1;
 	}
 	if (type == NDISC_REDIRECT) {
-		if (tunnel) {
-			ip6_redirect(skb, sock_net(sk), inet6_iif(skb),
-				     READ_ONCE(sk->sk_mark),
-				     sk_uid(sk));
-		} else {
-			ip6_sk_redirect(skb, sk);
-		}
+		ip6_sk_redirect(skb, sk);
 		goto out;
 	}
 
-- 
2.55.0

Re: [PATCH net-next] ipv6: udp: Use ip6_sk_redirect() for tunnel sockets

From: Eric Dumazet <edumazet@google.com>
Date: 2026-09-07 13:06:25

On Mon, Sep 7, 2026 at 12:15 PM Ido Schimmel [off-list ref] wrote:
After commit cd51b74bdd0b ("ipv6: Fix redirect exception creation for
UDP/RAW sockets") the two redirect calls are now equivalent and there is
no need to specifically call ip6_redirect() for tunnel sockets. Simplify
and call ip6_sk_redirect() for both tunnel sockets and regular sockets.

Note that for ICMPv6 Redirect Message packets the VRF driver does not
reset skb->dev to the VRF device, so skb->dev->ifindex is equivalent to
inet6_iif(skb), even when the packet was received from a VRF port.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Great, thanks.

Reviewed-by: Eric Dumazet <edumazet@google.com>

Re: [PATCH net-next] ipv6: udp: Use ip6_sk_redirect() for tunnel sockets

From: patchwork-bot+netdevbpf@kernel.org
Date: 2026-09-08 12:51:08

Hello:

This patch was applied to netdev/net-next.git (main)
by Paolo Abeni [off-list ref]:

On Mon,  7 Sep 2026 13:13:58 +0300 you wrote:
After commit cd51b74bdd0b ("ipv6: Fix redirect exception creation for
UDP/RAW sockets") the two redirect calls are now equivalent and there is
no need to specifically call ip6_redirect() for tunnel sockets. Simplify
and call ip6_sk_redirect() for both tunnel sockets and regular sockets.

Note that for ICMPv6 Redirect Message packets the VRF driver does not
reset skb->dev to the VRF device, so skb->dev->ifindex is equivalent to
inet6_iif(skb), even when the packet was received from a VRF port.

[...]
Here is the summary with links:
  - [net-next] ipv6: udp: Use ip6_sk_redirect() for tunnel sockets
    https://git.kernel.org/netdev/net-next/c/4596be8a15db

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help