selftests: forwarding: tc_flower_l2_miss: Fix failing test with old libnet
As explained in commit8bcfb4ae4d
("selftests: forwarding: Fix failing tests with old libnet"), old versions of libnet (used by mausezahn) do not use the "SO_BINDTODEVICE" socket option. For IP unicast packets, this can be solved by prefixing mausezahn invocations with "ip vrf exec". However, IP multicast packets do not perform routing and simply egress the bound device, which does not exist in this case. Fix by specifying the source and destination MAC of the packet which will cause mausezahn to use a packet socket instead of an IP socket. Fixes:8c33266ae2
("selftests: forwarding: Add layer 2 miss test cases") Reported-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr> Closes: https://lore.kernel.org/netdev/adc5e40d-d040-a65e-eb26-edf47dac5b02@alu.unizg.hr/ Signed-off-by: Ido Schimmel <idosch@nvidia.com> Tested-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://lore.kernel.org/r/20230808141503.4060661-15-idosch@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
11604178fd
commit
21a72166ab
|
@ -127,6 +127,7 @@ test_l2_miss_multicast_common()
|
|||
local proto=$1; shift
|
||||
local sip=$1; shift
|
||||
local dip=$1; shift
|
||||
local dmac=$1; shift
|
||||
local mode=$1; shift
|
||||
local name=$1; shift
|
||||
|
||||
|
@ -142,7 +143,7 @@ test_l2_miss_multicast_common()
|
|||
action pass
|
||||
|
||||
# Before adding MDB entry.
|
||||
$MZ $mode $h1 -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
$MZ $mode $h1 -a own -b $dmac -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
|
||||
tc_check_packets "dev $swp2 egress" 101 1
|
||||
check_err $? "Unregistered multicast filter was not hit before adding MDB entry"
|
||||
|
@ -153,7 +154,7 @@ test_l2_miss_multicast_common()
|
|||
# Adding MDB entry.
|
||||
bridge mdb replace dev br1 port $swp2 grp $dip permanent
|
||||
|
||||
$MZ $mode $h1 -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
$MZ $mode $h1 -a own -b $dmac -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
|
||||
tc_check_packets "dev $swp2 egress" 101 1
|
||||
check_err $? "Unregistered multicast filter was hit after adding MDB entry"
|
||||
|
@ -164,7 +165,7 @@ test_l2_miss_multicast_common()
|
|||
# Deleting MDB entry.
|
||||
bridge mdb del dev br1 port $swp2 grp $dip
|
||||
|
||||
$MZ $mode $h1 -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
$MZ $mode $h1 -a own -b $dmac -t ip -A $sip -B $dip -c 1 -p 100 -q
|
||||
|
||||
tc_check_packets "dev $swp2 egress" 101 2
|
||||
check_err $? "Unregistered multicast filter was not hit after deleting MDB entry"
|
||||
|
@ -183,10 +184,11 @@ test_l2_miss_multicast_ipv4()
|
|||
local proto="ipv4"
|
||||
local sip=192.0.2.1
|
||||
local dip=239.1.1.1
|
||||
local dmac=01:00:5e:01:01:01
|
||||
local mode="-4"
|
||||
local name="IPv4"
|
||||
|
||||
test_l2_miss_multicast_common $proto $sip $dip $mode $name
|
||||
test_l2_miss_multicast_common $proto $sip $dip $dmac $mode $name
|
||||
}
|
||||
|
||||
test_l2_miss_multicast_ipv6()
|
||||
|
@ -194,10 +196,11 @@ test_l2_miss_multicast_ipv6()
|
|||
local proto="ipv6"
|
||||
local sip=2001:db8:1::1
|
||||
local dip=ff0e::1
|
||||
local dmac=33:33:00:00:00:01
|
||||
local mode="-6"
|
||||
local name="IPv6"
|
||||
|
||||
test_l2_miss_multicast_common $proto $sip $dip $mode $name
|
||||
test_l2_miss_multicast_common $proto $sip $dip $dmac $mode $name
|
||||
}
|
||||
|
||||
test_l2_miss_multicast()
|
||||
|
|
Loading…
Reference in New Issue