selftests: forwarding: use proto icmp for {gretap, ip6gretap}_mac testing
[ Upstream commit e8023b030ce1748930e2dc76353a262fe47d4745 ] For tc ip_proto filter, when we extract the flow via __skb_flow_dissect() without flag FLOW_DISSECTOR_F_STOP_AT_ENCAP, we will continue extract to the inner proto. So for GRE + ICMP messages, we should not track GRE proto, but inner ICMP proto. For test mirror_gre.sh, it may make user confused if we capture ICMP message on $h3(since the flow is GRE message). So I move the capture dev to h3-gt{4,6}, and only capture ICMP message. Before the fix: ]# ./mirror_gre.sh TEST: ingress mirror to gretap (skip_hw) [ OK ] TEST: egress mirror to gretap (skip_hw) [ OK ] TEST: ingress mirror to ip6gretap (skip_hw) [ OK ] TEST: egress mirror to ip6gretap (skip_hw) [ OK ] TEST: ingress mirror to gretap: envelope MAC (skip_hw) [FAIL] Expected to capture 10 packets, got 0. TEST: egress mirror to gretap: envelope MAC (skip_hw) [FAIL] Expected to capture 10 packets, got 0. TEST: ingress mirror to ip6gretap: envelope MAC (skip_hw) [FAIL] Expected to capture 10 packets, got 0. TEST: egress mirror to ip6gretap: envelope MAC (skip_hw) [FAIL] Expected to capture 10 packets, got 0. TEST: two simultaneously configured mirrors (skip_hw) [ OK ] WARN: Could not test offloaded functionality After fix: ]# ./mirror_gre.sh TEST: ingress mirror to gretap (skip_hw) [ OK ] TEST: egress mirror to gretap (skip_hw) [ OK ] TEST: ingress mirror to ip6gretap (skip_hw) [ OK ] TEST: egress mirror to ip6gretap (skip_hw) [ OK ] TEST: ingress mirror to gretap: envelope MAC (skip_hw) [ OK ] TEST: egress mirror to gretap: envelope MAC (skip_hw) [ OK ] TEST: ingress mirror to ip6gretap: envelope MAC (skip_hw) [ OK ] TEST: egress mirror to ip6gretap: envelope MAC (skip_hw) [ OK ] TEST: two simultaneously configured mirrors (skip_hw) [ OK ] WARN: Could not test offloaded functionality Fixes: ba8d39871a10 ("selftests: forwarding: Add test for mirror to gretap") Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Reviewed-by: Petr Machata <pmachata@gmail.com> Tested-by: Petr Machata <pmachata@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d04dd98b9b
commit
5c0f7f2097
@ -63,22 +63,23 @@ test_span_gre_mac()
|
||||
{
|
||||
local tundev=$1; shift
|
||||
local direction=$1; shift
|
||||
local prot=$1; shift
|
||||
local what=$1; shift
|
||||
|
||||
local swp3mac=$(mac_get $swp3)
|
||||
local h3mac=$(mac_get $h3)
|
||||
case "$direction" in
|
||||
ingress) local src_mac=$(mac_get $h1); local dst_mac=$(mac_get $h2)
|
||||
;;
|
||||
egress) local src_mac=$(mac_get $h2); local dst_mac=$(mac_get $h1)
|
||||
;;
|
||||
esac
|
||||
|
||||
RET=0
|
||||
|
||||
mirror_install $swp1 $direction $tundev "matchall $tcflags"
|
||||
tc filter add dev $h3 ingress pref 77 prot $prot \
|
||||
flower ip_proto 0x2f src_mac $swp3mac dst_mac $h3mac \
|
||||
action pass
|
||||
icmp_capture_install h3-${tundev} "src_mac $src_mac dst_mac $dst_mac"
|
||||
|
||||
mirror_test v$h1 192.0.2.1 192.0.2.2 $h3 77 10
|
||||
mirror_test v$h1 192.0.2.1 192.0.2.2 h3-${tundev} 100 10
|
||||
|
||||
tc filter del dev $h3 ingress pref 77
|
||||
icmp_capture_uninstall h3-${tundev}
|
||||
mirror_uninstall $swp1 $direction
|
||||
|
||||
log_test "$direction $what: envelope MAC ($tcflags)"
|
||||
@ -120,14 +121,14 @@ test_ip6gretap()
|
||||
|
||||
test_gretap_mac()
|
||||
{
|
||||
test_span_gre_mac gt4 ingress ip "mirror to gretap"
|
||||
test_span_gre_mac gt4 egress ip "mirror to gretap"
|
||||
test_span_gre_mac gt4 ingress "mirror to gretap"
|
||||
test_span_gre_mac gt4 egress "mirror to gretap"
|
||||
}
|
||||
|
||||
test_ip6gretap_mac()
|
||||
{
|
||||
test_span_gre_mac gt6 ingress ipv6 "mirror to ip6gretap"
|
||||
test_span_gre_mac gt6 egress ipv6 "mirror to ip6gretap"
|
||||
test_span_gre_mac gt6 ingress "mirror to ip6gretap"
|
||||
test_span_gre_mac gt6 egress "mirror to ip6gretap"
|
||||
}
|
||||
|
||||
test_all()
|
||||
|
Loading…
x
Reference in New Issue
Block a user