-
由 Antoine Tenart 提交于
stable inclusion from stable-5.10.50 commit ca9b5ab7910cdc4dd02219ebfe7e468709bbafac bugzilla: 174522 https://gitee.com/openeuler/kernel/issues/I4DNFY Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ca9b5ab7910cdc4dd02219ebfe7e468709bbafac -------------------------------- [ Upstream commit 603113c5 ] Non-ND strict packets with a source LLA go through the packet taps again, while non-ND strict packets with other source addresses do not, and we can see a clone of those packets on the vrf interface (we should not). This is due to a series of changes: Commit 6f12fa77[1] made non-ND strict packets not being pushed again in the packet taps. This changed with commit 205704c6[2] for those packets having a source LLA, as they need a lookup with the orig_iif. The issue now is those packets do not skip the 'vrf_ip6_rcv' function to the end (as the ones without a source LLA) and go through the check to call packet taps again. This check was changed by commit 6f12fa77[1] and do not exclude non-strict packets anymore. Packets matching 'need_strict && !is_ndisc && is_ll_src' are now being sent through the packet taps again. This can be seen by dumping packets on the vrf interface. Fix this by having the same code path for all non-ND strict packets and selectively lookup with the orig_iif for those with a source LLA. This has the effect to revert to the pre-205704c6[2] condition, which should also be easier to maintain. [1] 6f12fa77 ("vrf: mark skb for multicast or link-local as enslaved to VRF") [2] 205704c6 ("vrf: packets with lladdr src needs dst at input with orig_iif when needs strict") Fixes: 205704c6 ("vrf: packets with lladdr src needs dst at input with orig_iif when needs strict") Cc: Stephen Suryaputra <ssuryaextr@gmail.com> Reported-by: NPaolo Abeni <pabeni@redhat.com> Signed-off-by: NAntoine Tenart <atenart@kernel.org> Reviewed-by: NDavid Ahern <dsahern@kernel.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NChen Jun <chenjun102@huawei.com> Acked-by: NWeilong Chen <chenweilong@huawei.com> Signed-off-by: NChen Jun <chenjun102@huawei.com> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
2b8de5a2