kernel_samsung_a53x/drivers/net
Antoine Tenart f3d653f03e net: vrf: determine the dst using the original ifindex for multicast
commit f2575c8f404911da83f25b688e12afcf4273e640 upstream.

Multicast packets received on an interface bound to a VRF are marked as
belonging to the VRF and the skb device is updated to point to the VRF
device itself. This was fine even when a route was associated to a
device as when performing a fib table lookup 'oif' in fib6_table_lookup
(coming from 'skb->dev->ifindex' in ip6_route_input) was set to 0 when
FLOWI_FLAG_SKIP_NH_OIF was set.

With commit 40867d74c374 ("net: Add l3mdev index to flow struct and
avoid oif reset for port devices") this is not longer true and multicast
traffic is not received on the original interface.

Instead of adding back a similar check in fib6_table_lookup determine
the dst using the original ifindex for multicast VRF traffic. To make
things consistent across the function do the above for all strict
packets, which was the logic before commit 6f12fa775530 ("vrf: mark skb
for multicast or link-local as enslaved to VRF"). Note that reverting to
this behavior should be fine as the change was about marking packets
belonging to the VRF, not about their dst.

Fixes: 40867d74c374 ("net: Add l3mdev index to flow struct and avoid oif reset for port devices")
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20221220171825.1172237-1-atenart@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:21:53 +01:00
..
appletalk
arcnet
bonding bonding: fix xfrm state handling when clearing active slave 2024-11-23 23:20:48 +01:00
caif
can can: m_can: m_can_close(): stop clocks after device has been shut down 2024-11-23 23:21:18 +01:00
dropdump
dsa net: dsa: lan9303: ensure chip reset and wait for READY status 2024-11-23 23:21:53 +01:00
ethernet net: Handle l3mdev in ip_tunnel_init_flow 2024-11-23 23:21:53 +01:00
fddi
fjes
hamradio
hippi
hyperv
ieee802154 net: ieee802154: mcr20a: Use IRQF_NO_AUTOEN flag in request_irq() 2024-11-23 23:21:35 +01:00
ipa
ipvlan ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound 2024-11-19 12:27:11 +01:00
mdio
netdevsim
pcs
phy net: phy: bcm84881: Fix some error handling paths 2024-11-23 23:21:51 +01:00
plip
ppp ppp: fix ppp_async_encode() illegal access 2024-11-23 23:21:52 +01:00
slip slip: make slhc_remember() more robust against malicious packets 2024-11-23 23:21:52 +01:00
team
usb usbnet: ipheth: fix carrier detection in modes 1 and 4 2024-11-23 23:21:10 +01:00
vmxnet3
vxlan vxlan: Fix regression when dropping packets due to invalid src addresses 2024-11-19 14:19:00 +01:00
wan
wimax
wireguard wireguard: send: annotate intentional data race in checking empty queue 2024-11-19 14:19:45 +01:00
wireless wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_cmd_802_11_scan_ext() 2024-11-23 23:21:39 +01:00
xen-netback net/xen-netback: prevent UAF in xenvif_flush_hash() 2024-11-23 23:21:37 +01:00
bareudp.c bareudp: Pull inner IP header on xmit. 2024-11-23 23:21:19 +01:00
dummy.c
eql.c
geneve.c net: geneve: add missing netlink policy and size for IFLA_GENEVE_INNER_PROTO_INHERIT 2024-11-23 23:21:53 +01:00
gtp.c gtp: fix a potential NULL pointer dereference 2024-11-23 23:20:55 +01:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c net: netconsole: Disable target before netpoll cleanup 2024-11-23 23:20:12 +01:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tap: add missing verification for short frame 2024-11-19 14:19:53 +01:00
thunderbolt.c
tun.c tun: add missing verification for short frame 2024-11-19 14:19:53 +01:00
veth.c
virtio_net.c virtio_net: Fix napi_skb_cache_put warning 2024-11-23 23:20:59 +01:00
vrf.c net: vrf: determine the dst using the original ifindex for multicast 2024-11-23 23:21:53 +01:00
vsockmon.c
xen-netfront.c