vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
authorStephen Suryaputra <ssuryaextr@gmail.com>
Tue, 30 Nov 2021 16:26:37 +0000 (11:26 -0500)
committerJakub Kicinski <kuba@kernel.org>
Thu, 2 Dec 2021 03:03:13 +0000 (19:03 -0800)
commitee201011c1e1563c114a55c86eb164b236f18e84
tree2a29296590c16e3f8fdd244e230b92eff0907c89
parente2dabc4f7e7b60299c20a36d6a7b24ed9bf8e572
vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit

IPCB/IP6CB need to be initialized when processing outbound v4 or v6 pkts
in the codepath of vrf device xmit function so that leftover garbage
doesn't cause futher code that uses the CB to incorrectly process the
pkt.

One occasion of the issue might occur when MPLS route uses the vrf
device as the outgoing device such as when the route is added using "ip
-f mpls route add <label> dev <vrf>" command.

The problems seems to exist since day one. Hence I put the day one
commits on the Fixes tags.

Fixes: 193125dbd8eb ("net: Introduce VRF device driver")
Fixes: 35402e313663 ("net: Add IPv6 support to VRF device")
Cc: stable@vger.kernel.org
Signed-off-by: Stephen Suryaputra <ssuryaextr@gmail.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20211130162637.3249-1-ssuryaextr@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/vrf.c