mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
Merge branch 'selftests-forwarding-various-fixes'
Ido Schimmel says: ==================== selftests: forwarding: Various fixes Fix various problems with forwarding selftests. See individual patches for problem description and solution. ==================== Link: https://lore.kernel.org/r/20230808141503.4060661-1-idosch@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
acaaffc570
@ -617,7 +617,7 @@ __cfg_test_port_ip_sg()
|
||||
grep -q "permanent"
|
||||
check_err $? "Entry not added as \"permanent\" when should"
|
||||
bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
|
||||
grep -q "0.00"
|
||||
grep -q " 0.00"
|
||||
check_err $? "\"permanent\" entry has a pending group timer"
|
||||
bridge mdb del dev br0 port $swp1 $grp_key vid 10
|
||||
|
||||
@ -626,7 +626,7 @@ __cfg_test_port_ip_sg()
|
||||
grep -q "temp"
|
||||
check_err $? "Entry not added as \"temp\" when should"
|
||||
bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
|
||||
grep -q "0.00"
|
||||
grep -q " 0.00"
|
||||
check_fail $? "\"temp\" entry has an unpending group timer"
|
||||
bridge mdb del dev br0 port $swp1 $grp_key vid 10
|
||||
|
||||
@ -659,7 +659,7 @@ __cfg_test_port_ip_sg()
|
||||
grep -q "permanent"
|
||||
check_err $? "Entry not marked as \"permanent\" after replace"
|
||||
bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
|
||||
grep -q "0.00"
|
||||
grep -q " 0.00"
|
||||
check_err $? "Entry has a pending group timer after replace"
|
||||
|
||||
bridge mdb replace dev br0 port $swp1 $grp_key vid 10 temp
|
||||
@ -667,7 +667,7 @@ __cfg_test_port_ip_sg()
|
||||
grep -q "temp"
|
||||
check_err $? "Entry not marked as \"temp\" after replace"
|
||||
bridge -d -s mdb show dev br0 vid 10 | grep "$grp_key" | \
|
||||
grep -q "0.00"
|
||||
grep -q " 0.00"
|
||||
check_fail $? "Entry has an unpending group timer after replace"
|
||||
bridge mdb del dev br0 port $swp1 $grp_key vid 10
|
||||
|
||||
@ -850,6 +850,7 @@ cfg_test()
|
||||
__fwd_test_host_ip()
|
||||
{
|
||||
local grp=$1; shift
|
||||
local dmac=$1; shift
|
||||
local src=$1; shift
|
||||
local mode=$1; shift
|
||||
local name
|
||||
@ -872,27 +873,27 @@ __fwd_test_host_ip()
|
||||
# Packet should only be flooded to multicast router ports when there is
|
||||
# no matching MDB entry. The bridge is not configured as a multicast
|
||||
# router port.
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
tc_check_packets "dev br0 ingress" 1 0
|
||||
check_err $? "Packet locally received after flood"
|
||||
|
||||
# Install a regular port group entry and expect the packet to not be
|
||||
# locally received.
|
||||
bridge mdb add dev br0 port $swp2 grp $grp temp vid 10
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
tc_check_packets "dev br0 ingress" 1 0
|
||||
check_err $? "Packet locally received after installing a regular entry"
|
||||
|
||||
# Add a host entry and expect the packet to be locally received.
|
||||
bridge mdb add dev br0 port br0 grp $grp temp vid 10
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
tc_check_packets "dev br0 ingress" 1 1
|
||||
check_err $? "Packet not locally received after adding a host entry"
|
||||
|
||||
# Remove the host entry and expect the packet to not be locally
|
||||
# received.
|
||||
bridge mdb del dev br0 port br0 grp $grp vid 10
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $src -B $grp -t udp -q
|
||||
tc_check_packets "dev br0 ingress" 1 1
|
||||
check_err $? "Packet locally received after removing a host entry"
|
||||
|
||||
@ -905,8 +906,8 @@ __fwd_test_host_ip()
|
||||
|
||||
fwd_test_host_ip()
|
||||
{
|
||||
__fwd_test_host_ip "239.1.1.1" "192.0.2.1" "-4"
|
||||
__fwd_test_host_ip "ff0e::1" "2001:db8:1::1" "-6"
|
||||
__fwd_test_host_ip "239.1.1.1" "01:00:5e:01:01:01" "192.0.2.1" "-4"
|
||||
__fwd_test_host_ip "ff0e::1" "33:33:00:00:00:01" "2001:db8:1::1" "-6"
|
||||
}
|
||||
|
||||
fwd_test_host_l2()
|
||||
@ -966,6 +967,7 @@ fwd_test_host()
|
||||
__fwd_test_port_ip()
|
||||
{
|
||||
local grp=$1; shift
|
||||
local dmac=$1; shift
|
||||
local valid_src=$1; shift
|
||||
local invalid_src=$1; shift
|
||||
local mode=$1; shift
|
||||
@ -999,43 +1001,43 @@ __fwd_test_port_ip()
|
||||
vlan_ethtype $eth_type vlan_id 10 dst_ip $grp \
|
||||
src_ip $invalid_src action drop
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 1 0
|
||||
check_err $? "Packet from valid source received on H2 before adding entry"
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 2 0
|
||||
check_err $? "Packet from invalid source received on H2 before adding entry"
|
||||
|
||||
bridge mdb add dev br0 port $swp2 grp $grp vid 10 \
|
||||
filter_mode $filter_mode source_list $src_list
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 1 1
|
||||
check_err $? "Packet from valid source not received on H2 after adding entry"
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 2 0
|
||||
check_err $? "Packet from invalid source received on H2 after adding entry"
|
||||
|
||||
bridge mdb replace dev br0 port $swp2 grp $grp vid 10 \
|
||||
filter_mode exclude
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 1 2
|
||||
check_err $? "Packet from valid source not received on H2 after allowing all sources"
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 2 1
|
||||
check_err $? "Packet from invalid source not received on H2 after allowing all sources"
|
||||
|
||||
bridge mdb del dev br0 port $swp2 grp $grp vid 10
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $valid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 1 2
|
||||
check_err $? "Packet from valid source received on H2 after deleting entry"
|
||||
|
||||
$MZ $mode $h1.10 -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
$MZ $mode $h1.10 -a own -b $dmac -c 1 -p 128 -A $invalid_src -B $grp -t udp -q
|
||||
tc_check_packets "dev $h2 ingress" 2 1
|
||||
check_err $? "Packet from invalid source received on H2 after deleting entry"
|
||||
|
||||
@ -1047,11 +1049,11 @@ __fwd_test_port_ip()
|
||||
|
||||
fwd_test_port_ip()
|
||||
{
|
||||
__fwd_test_port_ip "239.1.1.1" "192.0.2.1" "192.0.2.2" "-4" "exclude"
|
||||
__fwd_test_port_ip "ff0e::1" "2001:db8:1::1" "2001:db8:1::2" "-6" \
|
||||
__fwd_test_port_ip "239.1.1.1" "01:00:5e:01:01:01" "192.0.2.1" "192.0.2.2" "-4" "exclude"
|
||||
__fwd_test_port_ip "ff0e::1" "33:33:00:00:00:01" "2001:db8:1::1" "2001:db8:1::2" "-6" \
|
||||
"exclude"
|
||||
__fwd_test_port_ip "239.1.1.1" "192.0.2.1" "192.0.2.2" "-4" "include"
|
||||
__fwd_test_port_ip "ff0e::1" "2001:db8:1::1" "2001:db8:1::2" "-6" \
|
||||
__fwd_test_port_ip "239.1.1.1" "01:00:5e:01:01:01" "192.0.2.1" "192.0.2.2" "-4" "include"
|
||||
__fwd_test_port_ip "ff0e::1" "33:33:00:00:00:01" "2001:db8:1::1" "2001:db8:1::2" "-6" \
|
||||
"include"
|
||||
}
|
||||
|
||||
@ -1127,7 +1129,7 @@ ctrl_igmpv3_is_in_test()
|
||||
filter_mode include source_list 192.0.2.1
|
||||
|
||||
# IS_IN ( 192.0.2.2 )
|
||||
$MZ $h1.10 -c 1 -A 192.0.2.1 -B 239.1.1.1 \
|
||||
$MZ $h1.10 -c 1 -a own -b 01:00:5e:01:01:01 -A 192.0.2.1 -B 239.1.1.1 \
|
||||
-t ip proto=2,p=$(igmpv3_is_in_get 239.1.1.1 192.0.2.2) -q
|
||||
|
||||
bridge -d mdb show dev br0 vid 10 | grep 239.1.1.1 | grep -q 192.0.2.2
|
||||
@ -1140,7 +1142,7 @@ ctrl_igmpv3_is_in_test()
|
||||
filter_mode include source_list 192.0.2.1
|
||||
|
||||
# IS_IN ( 192.0.2.2 )
|
||||
$MZ $h1.10 -c 1 -A 192.0.2.1 -B 239.1.1.1 \
|
||||
$MZ $h1.10 -a own -b 01:00:5e:01:01:01 -c 1 -A 192.0.2.1 -B 239.1.1.1 \
|
||||
-t ip proto=2,p=$(igmpv3_is_in_get 239.1.1.1 192.0.2.2) -q
|
||||
|
||||
bridge -d mdb show dev br0 vid 10 | grep 239.1.1.1 | grep -v "src" | \
|
||||
@ -1167,7 +1169,7 @@ ctrl_mldv2_is_in_test()
|
||||
|
||||
# IS_IN ( 2001:db8:1::2 )
|
||||
local p=$(mldv2_is_in_get fe80::1 ff0e::1 2001:db8:1::2)
|
||||
$MZ -6 $h1.10 -c 1 -A fe80::1 -B ff0e::1 \
|
||||
$MZ -6 $h1.10 -a own -b 33:33:00:00:00:01 -c 1 -A fe80::1 -B ff0e::1 \
|
||||
-t ip hop=1,next=0,p="$p" -q
|
||||
|
||||
bridge -d mdb show dev br0 vid 10 | grep ff0e::1 | \
|
||||
@ -1181,7 +1183,7 @@ ctrl_mldv2_is_in_test()
|
||||
filter_mode include source_list 2001:db8:1::1
|
||||
|
||||
# IS_IN ( 2001:db8:1::2 )
|
||||
$MZ -6 $h1.10 -c 1 -A fe80::1 -B ff0e::1 \
|
||||
$MZ -6 $h1.10 -a own -b 33:33:00:00:00:01 -c 1 -A fe80::1 -B ff0e::1 \
|
||||
-t ip hop=1,next=0,p="$p" -q
|
||||
|
||||
bridge -d mdb show dev br0 vid 10 | grep ff0e::1 | grep -v "src" | \
|
||||
@ -1206,6 +1208,11 @@ ctrl_test()
|
||||
ctrl_mldv2_is_in_test
|
||||
}
|
||||
|
||||
if ! bridge mdb help 2>&1 | grep -q "replace"; then
|
||||
echo "SKIP: iproute2 too old, missing bridge mdb replace support"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
|
@ -252,7 +252,8 @@ ctl4_entries_add()
|
||||
local IPs=$(seq -f 192.0.2.%g 1 $((n - 1)))
|
||||
local peer=$(locus_dev_peer $locus)
|
||||
local GRP=239.1.1.${grp}
|
||||
$MZ $peer -c 1 -A 192.0.2.1 -B $GRP \
|
||||
local dmac=01:00:5e:01:01:$(printf "%02x" $grp)
|
||||
$MZ $peer -a own -b $dmac -c 1 -A 192.0.2.1 -B $GRP \
|
||||
-t ip proto=2,p=$(igmpv3_is_in_get $GRP $IPs) -q
|
||||
sleep 1
|
||||
|
||||
@ -272,7 +273,8 @@ ctl4_entries_del()
|
||||
|
||||
local peer=$(locus_dev_peer $locus)
|
||||
local GRP=239.1.1.${grp}
|
||||
$MZ $peer -c 1 -A 192.0.2.1 -B 224.0.0.2 \
|
||||
local dmac=01:00:5e:00:00:02
|
||||
$MZ $peer -a own -b $dmac -c 1 -A 192.0.2.1 -B 224.0.0.2 \
|
||||
-t ip proto=2,p=$(igmpv2_leave_get $GRP) -q
|
||||
sleep 1
|
||||
! bridge mdb show dev br0 | grep -q $GRP
|
||||
@ -289,8 +291,10 @@ ctl6_entries_add()
|
||||
local peer=$(locus_dev_peer $locus)
|
||||
local SIP=fe80::1
|
||||
local GRP=ff0e::${grp}
|
||||
local dmac=33:33:00:00:00:$(printf "%02x" $grp)
|
||||
local p=$(mldv2_is_in_get $SIP $GRP $IPs)
|
||||
$MZ -6 $peer -c 1 -A $SIP -B $GRP -t ip hop=1,next=0,p="$p" -q
|
||||
$MZ -6 $peer -a own -b $dmac -c 1 -A $SIP -B $GRP \
|
||||
-t ip hop=1,next=0,p="$p" -q
|
||||
sleep 1
|
||||
|
||||
local nn=$(bridge mdb show dev br0 | grep $GRP | wc -l)
|
||||
@ -310,8 +314,10 @@ ctl6_entries_del()
|
||||
local peer=$(locus_dev_peer $locus)
|
||||
local SIP=fe80::1
|
||||
local GRP=ff0e::${grp}
|
||||
local dmac=33:33:00:00:00:$(printf "%02x" $grp)
|
||||
local p=$(mldv1_done_get $SIP $GRP)
|
||||
$MZ -6 $peer -c 1 -A $SIP -B $GRP -t ip hop=1,next=0,p="$p" -q
|
||||
$MZ -6 $peer -a own -b $dmac -c 1 -A $SIP -B $GRP \
|
||||
-t ip hop=1,next=0,p="$p" -q
|
||||
sleep 1
|
||||
! bridge mdb show dev br0 | grep -q $GRP
|
||||
}
|
||||
@ -1328,6 +1334,11 @@ test_8021qvs()
|
||||
switch_destroy
|
||||
}
|
||||
|
||||
if ! bridge link help 2>&1 | grep -q "mcast_max_groups"; then
|
||||
echo "SKIP: iproute2 too old, missing bridge \"mcast_max_groups\" support"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
|
@ -286,6 +286,8 @@ different_speeds_autoneg_on()
|
||||
ethtool -s $h1 autoneg on
|
||||
}
|
||||
|
||||
skip_on_veth
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
|
@ -108,6 +108,8 @@ no_cable()
|
||||
ip link set dev $swp3 down
|
||||
}
|
||||
|
||||
skip_on_veth
|
||||
|
||||
setup_prepare
|
||||
|
||||
tests_run
|
||||
|
@ -258,11 +258,6 @@ h2_destroy()
|
||||
|
||||
setup_prepare()
|
||||
{
|
||||
check_ethtool_mm_support
|
||||
check_tc_fp_support
|
||||
require_command lldptool
|
||||
bail_on_lldpad "autoconfigure the MAC Merge layer" "configure it manually"
|
||||
|
||||
h1=${NETIFS[p1]}
|
||||
h2=${NETIFS[p2]}
|
||||
|
||||
@ -278,6 +273,19 @@ cleanup()
|
||||
h1_destroy
|
||||
}
|
||||
|
||||
check_ethtool_mm_support
|
||||
check_tc_fp_support
|
||||
require_command lldptool
|
||||
bail_on_lldpad "autoconfigure the MAC Merge layer" "configure it manually"
|
||||
|
||||
for netif in ${NETIFS[@]}; do
|
||||
ethtool --show-mm $netif 2>&1 &> /dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "SKIP: $netif does not support MAC Merge"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
done
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
|
@ -99,6 +99,8 @@ test_stats_rx()
|
||||
test_stats g2a rx
|
||||
}
|
||||
|
||||
skip_on_veth
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
setup_prepare
|
||||
|
@ -14,6 +14,8 @@ ALL_TESTS="
|
||||
NUM_NETIFS=4
|
||||
source lib.sh
|
||||
|
||||
require_command $TROUTE6
|
||||
|
||||
h1_create()
|
||||
{
|
||||
simple_if_init $h1 2001:1:1::2/64
|
||||
|
@ -30,6 +30,7 @@ REQUIRE_MZ=${REQUIRE_MZ:=yes}
|
||||
REQUIRE_MTOOLS=${REQUIRE_MTOOLS:=no}
|
||||
STABLE_MAC_ADDRS=${STABLE_MAC_ADDRS:=no}
|
||||
TCPDUMP_EXTRA_FLAGS=${TCPDUMP_EXTRA_FLAGS:=}
|
||||
TROUTE6=${TROUTE6:=traceroute6}
|
||||
|
||||
relative_path="${BASH_SOURCE%/*}"
|
||||
if [[ "$relative_path" == "${BASH_SOURCE}" ]]; then
|
||||
@ -163,6 +164,17 @@ check_port_mab_support()
|
||||
fi
|
||||
}
|
||||
|
||||
skip_on_veth()
|
||||
{
|
||||
local kind=$(ip -j -d link show dev ${NETIFS[p1]} |
|
||||
jq -r '.[].linkinfo.info_kind')
|
||||
|
||||
if [[ $kind == veth ]]; then
|
||||
echo "SKIP: Test cannot be run with veth pairs"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$(id -u)" -ne 0 ]]; then
|
||||
echo "SKIP: need root privileges"
|
||||
exit $ksft_skip
|
||||
@ -225,6 +237,11 @@ create_netif_veth()
|
||||
for ((i = 1; i <= NUM_NETIFS; ++i)); do
|
||||
local j=$((i+1))
|
||||
|
||||
if [ -z ${NETIFS[p$i]} ]; then
|
||||
echo "SKIP: Cannot create interface. Name not specified"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
|
||||
ip link show dev ${NETIFS[p$i]} &> /dev/null
|
||||
if [[ $? -ne 0 ]]; then
|
||||
ip link add ${NETIFS[p$i]} type veth \
|
||||
|
1
tools/testing/selftests/net/forwarding/settings
Normal file
1
tools/testing/selftests/net/forwarding/settings
Normal file
@ -0,0 +1 @@
|
||||
timeout=0
|
@ -9,6 +9,8 @@ NUM_NETIFS=4
|
||||
source tc_common.sh
|
||||
source lib.sh
|
||||
|
||||
require_command ncat
|
||||
|
||||
tcflags="skip_hw"
|
||||
|
||||
h1_create()
|
||||
@ -220,9 +222,9 @@ mirred_egress_to_ingress_tcp_test()
|
||||
ip_proto icmp \
|
||||
action drop
|
||||
|
||||
ip vrf exec v$h1 nc --recv-only -w10 -l -p 12345 -o $mirred_e2i_tf2 &
|
||||
ip vrf exec v$h1 ncat --recv-only -w10 -l -p 12345 -o $mirred_e2i_tf2 &
|
||||
local rpid=$!
|
||||
ip vrf exec v$h1 nc -w1 --send-only 192.0.2.2 12345 <$mirred_e2i_tf1
|
||||
ip vrf exec v$h1 ncat -w1 --send-only 192.0.2.2 12345 <$mirred_e2i_tf1
|
||||
wait -n $rpid
|
||||
cmp -s $mirred_e2i_tf1 $mirred_e2i_tf2
|
||||
check_err $? "server output check failed"
|
||||
|
@ -52,8 +52,8 @@ match_dst_mac_test()
|
||||
tc_check_packets "dev $h2 ingress" 101 1
|
||||
check_fail $? "Matched on a wrong filter"
|
||||
|
||||
tc_check_packets "dev $h2 ingress" 102 1
|
||||
check_err $? "Did not match on correct filter"
|
||||
tc_check_packets "dev $h2 ingress" 102 0
|
||||
check_fail $? "Did not match on correct filter"
|
||||
|
||||
tc filter del dev $h2 ingress protocol ip pref 1 handle 101 flower
|
||||
tc filter del dev $h2 ingress protocol ip pref 2 handle 102 flower
|
||||
@ -78,8 +78,8 @@ match_src_mac_test()
|
||||
tc_check_packets "dev $h2 ingress" 101 1
|
||||
check_fail $? "Matched on a wrong filter"
|
||||
|
||||
tc_check_packets "dev $h2 ingress" 102 1
|
||||
check_err $? "Did not match on correct filter"
|
||||
tc_check_packets "dev $h2 ingress" 102 0
|
||||
check_fail $? "Did not match on correct filter"
|
||||
|
||||
tc filter del dev $h2 ingress protocol ip pref 1 handle 101 flower
|
||||
tc filter del dev $h2 ingress protocol ip pref 2 handle 102 flower
|
||||
|
@ -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()
|
||||
|
@ -104,11 +104,14 @@ tunnel_key_nofrag_test()
|
||||
local i
|
||||
|
||||
tc filter add dev $swp1 ingress protocol ip pref 100 handle 100 \
|
||||
flower ip_flags nofrag action drop
|
||||
flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
|
||||
ip_flags nofrag action drop
|
||||
tc filter add dev $swp1 ingress protocol ip pref 101 handle 101 \
|
||||
flower ip_flags firstfrag action drop
|
||||
flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
|
||||
ip_flags firstfrag action drop
|
||||
tc filter add dev $swp1 ingress protocol ip pref 102 handle 102 \
|
||||
flower ip_flags nofirstfrag action drop
|
||||
flower src_ip 192.0.2.1 dst_ip 192.0.2.2 ip_proto udp \
|
||||
ip_flags nofirstfrag action drop
|
||||
|
||||
# test 'nofrag' set
|
||||
tc filter add dev h1-et egress protocol all pref 1 handle 1 matchall $tcflags \
|
||||
|
Loading…
Reference in New Issue
Block a user