From 5aac9be1db1e90e63a988f674d83d67a1d290235 Mon Sep 17 00:00:00 2001 From: Ksawlii Date: Sun, 24 Nov 2024 00:22:54 +0100 Subject: [PATCH] Revert "net: vrf: determine the dst using the original ifindex for multicast" This reverts commit f3d653f03e1218cdd81c4471a576ea88c3cd5f40. --- drivers/net/vrf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index c801185ad..13ad43464 100755 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -1336,8 +1336,8 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, /* loopback, multicast & non-ND link-local traffic; do not push through * packet taps again. Reset pkt_type for upper layers to process skb. - * For non-loopback strict packets, determine the dst using the original - * ifindex. + * For strict packets with a source LLA, determine the dst using the + * original ifindex. */ if (skb->pkt_type == PACKET_LOOPBACK || (need_strict && !is_ndisc)) { skb->dev = vrf_dev; @@ -1346,7 +1346,7 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev, if (skb->pkt_type == PACKET_LOOPBACK) skb->pkt_type = PACKET_HOST; - else + else if (ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL) vrf_ip6_input_dst(skb, vrf_dev, orig_iif); goto out;