selftests: vxlan_mdb: Fix failures with old libnet
BugLink: https://bugs.launchpad.net/bugs/2065400 [ Upstream commit f1425529c33def8b46faae4400dd9e2bbaf16a05 ] Locally generated IP multicast packets (such as the ones used in the test) do not perform routing and simply egress the bound device. However, 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. Specifically, the library started using the option for IPv6 sockets in version 1.1.6 and for IPv4 sockets in version 1.2. This explains why on Ubuntu - which uses version 1.1.6 - the IPv4 overlay tests are failing whereas the IPv6 ones are passing. Fix by specifying the source and destination MAC of the packets which will cause mausezahn to use a packet socket instead of an IP socket. Fixes:62199e3f16("selftests: net: Add VXLAN MDB test") Reported-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr> Closes: https://lore.kernel.org/netdev/5bb50349-196d-4892-8ed2-f37543aa863f@alu.unizg.hr/ Tested-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Link: https://lore.kernel.org/r/20240325075030.2379513-1-idosch@nvidia.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com> Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Stefan Bader
parent
f0289a0d89
commit
f9585b0f99
@@ -1177,6 +1177,7 @@ encap_params_common()
|
||||
local plen=$1; shift
|
||||
local enc_ethtype=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local src=$1; shift
|
||||
local mz=$1; shift
|
||||
|
||||
@@ -1195,11 +1196,11 @@ encap_params_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep2_ip src_vni 10020"
|
||||
|
||||
run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_dst_ip $vtep1_ip action pass"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Destination IP - match"
|
||||
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Destination IP - no match"
|
||||
|
||||
@@ -1212,20 +1213,20 @@ encap_params_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip dst_port 1111 src_vni 10020"
|
||||
|
||||
run_cmd "tc -n $ns2 filter replace dev veth0 ingress pref 1 handle 101 proto $enc_ethtype flower ip_proto udp dst_port 4789 action pass"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev veth0 ingress" 101 1
|
||||
log_test $? 0 "Default destination port - match"
|
||||
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev veth0 ingress" 101 1
|
||||
log_test $? 0 "Default destination port - no match"
|
||||
|
||||
run_cmd "tc -n $ns2 filter replace dev veth0 ingress pref 1 handle 101 proto $enc_ethtype flower ip_proto udp dst_port 1111 action pass"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev veth0 ingress" 101 1
|
||||
log_test $? 0 "Non-default destination port - match"
|
||||
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev veth0 ingress" 101 1
|
||||
log_test $? 0 "Non-default destination port - no match"
|
||||
|
||||
@@ -1238,11 +1239,11 @@ encap_params_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip src_vni 10020"
|
||||
|
||||
run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_key_id 10010 action pass"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Default destination VNI - match"
|
||||
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Default destination VNI - no match"
|
||||
|
||||
@@ -1250,11 +1251,11 @@ encap_params_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip vni 10010 src_vni 10020"
|
||||
|
||||
run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_key_id 10020 action pass"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Non-default destination VNI - match"
|
||||
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Non-default destination VNI - no match"
|
||||
|
||||
@@ -1272,6 +1273,7 @@ encap_params_ipv4_ipv4()
|
||||
local plen=32
|
||||
local enc_ethtype="ip"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
@@ -1279,7 +1281,7 @@ encap_params_ipv4_ipv4()
|
||||
echo "------------------------------------------------------------------"
|
||||
|
||||
encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \
|
||||
$grp $src "mausezahn"
|
||||
$grp $grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
encap_params_ipv6_ipv4()
|
||||
@@ -1291,6 +1293,7 @@ encap_params_ipv6_ipv4()
|
||||
local plen=32
|
||||
local enc_ethtype="ip"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
@@ -1298,7 +1301,7 @@ encap_params_ipv6_ipv4()
|
||||
echo "------------------------------------------------------------------"
|
||||
|
||||
encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \
|
||||
$grp $src "mausezahn -6"
|
||||
$grp $grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
encap_params_ipv4_ipv6()
|
||||
@@ -1310,6 +1313,7 @@ encap_params_ipv4_ipv6()
|
||||
local plen=128
|
||||
local enc_ethtype="ipv6"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
@@ -1317,7 +1321,7 @@ encap_params_ipv4_ipv6()
|
||||
echo "------------------------------------------------------------------"
|
||||
|
||||
encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \
|
||||
$grp $src "mausezahn"
|
||||
$grp $grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
encap_params_ipv6_ipv6()
|
||||
@@ -1329,6 +1333,7 @@ encap_params_ipv6_ipv6()
|
||||
local plen=128
|
||||
local enc_ethtype="ipv6"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
@@ -1336,7 +1341,7 @@ encap_params_ipv6_ipv6()
|
||||
echo "------------------------------------------------------------------"
|
||||
|
||||
encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \
|
||||
$grp $src "mausezahn -6"
|
||||
$grp $grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
starg_exclude_ir_common()
|
||||
@@ -1347,6 +1352,7 @@ starg_exclude_ir_common()
|
||||
local vtep2_ip=$1; shift
|
||||
local plen=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local valid_src=$1; shift
|
||||
local invalid_src=$1; shift
|
||||
local mz=$1; shift
|
||||
@@ -1368,14 +1374,14 @@ starg_exclude_ir_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode exclude source_list $invalid_src dst $vtep2_ip src_vni 10010"
|
||||
|
||||
# Check that invalid source is not forwarded to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 0
|
||||
log_test $? 0 "Block excluded source - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 0
|
||||
log_test $? 0 "Block excluded source - second VTEP"
|
||||
|
||||
# Check that valid source is forwarded to both VTEPs.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Forward valid source - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -1385,14 +1391,14 @@ starg_exclude_ir_common()
|
||||
run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep2_ip src_vni 10010"
|
||||
|
||||
# Check that invalid source is not forwarded to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Block excluded source after removal - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
log_test $? 0 "Block excluded source after removal - second VTEP"
|
||||
|
||||
# Check that valid source is forwarded to the remaining VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 2
|
||||
log_test $? 0 "Forward valid source after removal - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -1407,6 +1413,7 @@ starg_exclude_ir_ipv4_ipv4()
|
||||
local vtep2_ip=198.51.100.200
|
||||
local plen=32
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1415,7 +1422,7 @@ starg_exclude_ir_ipv4_ipv4()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
starg_exclude_ir_ipv6_ipv4()
|
||||
@@ -1426,6 +1433,7 @@ starg_exclude_ir_ipv6_ipv4()
|
||||
local vtep2_ip=198.51.100.200
|
||||
local plen=32
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1434,7 +1442,7 @@ starg_exclude_ir_ipv6_ipv4()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
starg_exclude_ir_ipv4_ipv6()
|
||||
@@ -1445,6 +1453,7 @@ starg_exclude_ir_ipv4_ipv6()
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local plen=128
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1453,7 +1462,7 @@ starg_exclude_ir_ipv4_ipv6()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
starg_exclude_ir_ipv6_ipv6()
|
||||
@@ -1464,6 +1473,7 @@ starg_exclude_ir_ipv6_ipv6()
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local plen=128
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1472,7 +1482,7 @@ starg_exclude_ir_ipv6_ipv6()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
starg_include_ir_common()
|
||||
@@ -1483,6 +1493,7 @@ starg_include_ir_common()
|
||||
local vtep2_ip=$1; shift
|
||||
local plen=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local valid_src=$1; shift
|
||||
local invalid_src=$1; shift
|
||||
local mz=$1; shift
|
||||
@@ -1504,14 +1515,14 @@ starg_include_ir_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode include source_list $valid_src dst $vtep2_ip src_vni 10010"
|
||||
|
||||
# Check that invalid source is not forwarded to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 0
|
||||
log_test $? 0 "Block excluded source - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 0
|
||||
log_test $? 0 "Block excluded source - second VTEP"
|
||||
|
||||
# Check that valid source is forwarded to both VTEPs.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Forward valid source - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -1521,14 +1532,14 @@ starg_include_ir_common()
|
||||
run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep2_ip src_vni 10010"
|
||||
|
||||
# Check that invalid source is not forwarded to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Block excluded source after removal - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
log_test $? 0 "Block excluded source after removal - second VTEP"
|
||||
|
||||
# Check that valid source is forwarded to the remaining VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 2
|
||||
log_test $? 0 "Forward valid source after removal - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -1543,6 +1554,7 @@ starg_include_ir_ipv4_ipv4()
|
||||
local vtep2_ip=198.51.100.200
|
||||
local plen=32
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1551,7 +1563,7 @@ starg_include_ir_ipv4_ipv4()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
starg_include_ir_ipv6_ipv4()
|
||||
@@ -1562,6 +1574,7 @@ starg_include_ir_ipv6_ipv4()
|
||||
local vtep2_ip=198.51.100.200
|
||||
local plen=32
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1570,7 +1583,7 @@ starg_include_ir_ipv6_ipv4()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
starg_include_ir_ipv4_ipv6()
|
||||
@@ -1581,6 +1594,7 @@ starg_include_ir_ipv4_ipv6()
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local plen=128
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1589,7 +1603,7 @@ starg_include_ir_ipv4_ipv6()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
starg_include_ir_ipv6_ipv6()
|
||||
@@ -1600,6 +1614,7 @@ starg_include_ir_ipv6_ipv6()
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local plen=128
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1608,7 +1623,7 @@ starg_include_ir_ipv6_ipv6()
|
||||
echo "-------------------------------------------------------------"
|
||||
|
||||
starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
$grp_dmac $valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
starg_exclude_p2mp_common()
|
||||
@@ -1618,6 +1633,7 @@ starg_exclude_p2mp_common()
|
||||
local mcast_grp=$1; shift
|
||||
local plen=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local valid_src=$1; shift
|
||||
local invalid_src=$1; shift
|
||||
local mz=$1; shift
|
||||
@@ -1635,12 +1651,12 @@ starg_exclude_p2mp_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode exclude source_list $invalid_src dst $mcast_grp src_vni 10010 via veth0"
|
||||
|
||||
# Check that invalid source is not forwarded.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 0
|
||||
log_test $? 0 "Block excluded source"
|
||||
|
||||
# Check that valid source is forwarded.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Forward valid source"
|
||||
|
||||
@@ -1648,7 +1664,7 @@ starg_exclude_p2mp_common()
|
||||
run_cmd "ip -n $ns2 address del $mcast_grp/$plen dev veth0"
|
||||
|
||||
# Check that valid source is not received anymore.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Receive of valid source after removal from group"
|
||||
}
|
||||
@@ -1660,6 +1676,7 @@ starg_exclude_p2mp_ipv4_ipv4()
|
||||
local mcast_grp=238.1.1.1
|
||||
local plen=32
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1667,7 +1684,7 @@ starg_exclude_p2mp_ipv4_ipv4()
|
||||
echo "Data path: (*, G) EXCLUDE - P2MP - IPv4 overlay / IPv4 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
@@ -1678,6 +1695,7 @@ starg_exclude_p2mp_ipv6_ipv4()
|
||||
local mcast_grp=238.1.1.1
|
||||
local plen=32
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1685,7 +1703,7 @@ starg_exclude_p2mp_ipv6_ipv4()
|
||||
echo "Data path: (*, G) EXCLUDE - P2MP - IPv6 overlay / IPv4 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
@@ -1696,6 +1714,7 @@ starg_exclude_p2mp_ipv4_ipv6()
|
||||
local mcast_grp=ff0e::2
|
||||
local plen=128
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1703,7 +1722,7 @@ starg_exclude_p2mp_ipv4_ipv6()
|
||||
echo "Data path: (*, G) EXCLUDE - P2MP - IPv4 overlay / IPv6 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
@@ -1714,6 +1733,7 @@ starg_exclude_p2mp_ipv6_ipv6()
|
||||
local mcast_grp=ff0e::2
|
||||
local plen=128
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1721,7 +1741,7 @@ starg_exclude_p2mp_ipv6_ipv6()
|
||||
echo "Data path: (*, G) EXCLUDE - P2MP - IPv6 overlay / IPv6 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
@@ -1732,6 +1752,7 @@ starg_include_p2mp_common()
|
||||
local mcast_grp=$1; shift
|
||||
local plen=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local valid_src=$1; shift
|
||||
local invalid_src=$1; shift
|
||||
local mz=$1; shift
|
||||
@@ -1749,12 +1770,12 @@ starg_include_p2mp_common()
|
||||
run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode include source_list $valid_src dst $mcast_grp src_vni 10010 via veth0"
|
||||
|
||||
# Check that invalid source is not forwarded.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 0
|
||||
log_test $? 0 "Block excluded source"
|
||||
|
||||
# Check that valid source is forwarded.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Forward valid source"
|
||||
|
||||
@@ -1762,7 +1783,7 @@ starg_include_p2mp_common()
|
||||
run_cmd "ip -n $ns2 address del $mcast_grp/$plen dev veth0"
|
||||
|
||||
# Check that valid source is not received anymore.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Receive of valid source after removal from group"
|
||||
}
|
||||
@@ -1774,6 +1795,7 @@ starg_include_p2mp_ipv4_ipv4()
|
||||
local mcast_grp=238.1.1.1
|
||||
local plen=32
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1781,7 +1803,7 @@ starg_include_p2mp_ipv4_ipv4()
|
||||
echo "Data path: (*, G) INCLUDE - P2MP - IPv4 overlay / IPv4 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
@@ -1792,6 +1814,7 @@ starg_include_p2mp_ipv6_ipv4()
|
||||
local mcast_grp=238.1.1.1
|
||||
local plen=32
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1799,7 +1822,7 @@ starg_include_p2mp_ipv6_ipv4()
|
||||
echo "Data path: (*, G) INCLUDE - P2MP - IPv6 overlay / IPv4 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
@@ -1810,6 +1833,7 @@ starg_include_p2mp_ipv4_ipv6()
|
||||
local mcast_grp=ff0e::2
|
||||
local plen=128
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local valid_src=192.0.2.129
|
||||
local invalid_src=192.0.2.145
|
||||
|
||||
@@ -1817,7 +1841,7 @@ starg_include_p2mp_ipv4_ipv6()
|
||||
echo "Data path: (*, G) INCLUDE - P2MP - IPv4 overlay / IPv6 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn"
|
||||
}
|
||||
|
||||
@@ -1828,6 +1852,7 @@ starg_include_p2mp_ipv6_ipv6()
|
||||
local mcast_grp=ff0e::2
|
||||
local plen=128
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local valid_src=2001:db8:100::1
|
||||
local invalid_src=2001:db8:200::1
|
||||
|
||||
@@ -1835,7 +1860,7 @@ starg_include_p2mp_ipv6_ipv6()
|
||||
echo "Data path: (*, G) INCLUDE - P2MP - IPv6 overlay / IPv6 underlay"
|
||||
echo "---------------------------------------------------------------"
|
||||
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \
|
||||
starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \
|
||||
$valid_src $invalid_src "mausezahn -6"
|
||||
}
|
||||
|
||||
@@ -1847,6 +1872,7 @@ egress_vni_translation_common()
|
||||
local plen=$1; shift
|
||||
local proto=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local src=$1; shift
|
||||
local mz=$1; shift
|
||||
|
||||
@@ -1882,20 +1908,20 @@ egress_vni_translation_common()
|
||||
# Make sure that packets sent from the first VTEP over VLAN 10 are
|
||||
# received by the SVI corresponding to the L3VNI (14000 / VLAN 4000) on
|
||||
# the second VTEP, since it is configured as PVID.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev br0.4000 ingress" 101 1
|
||||
log_test $? 0 "Egress VNI translation - PVID configured"
|
||||
|
||||
# Remove PVID flag from VLAN 4000 on the second VTEP and make sure
|
||||
# packets are no longer received by the SVI interface.
|
||||
run_cmd "bridge -n $ns2 vlan add vid 4000 dev vx0"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev br0.4000 ingress" 101 1
|
||||
log_test $? 0 "Egress VNI translation - no PVID configured"
|
||||
|
||||
# Reconfigure the PVID and make sure packets are received again.
|
||||
run_cmd "bridge -n $ns2 vlan add vid 4000 dev vx0 pvid"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev br0.4000 ingress" 101 2
|
||||
log_test $? 0 "Egress VNI translation - PVID reconfigured"
|
||||
}
|
||||
@@ -1908,6 +1934,7 @@ egress_vni_translation_ipv4_ipv4()
|
||||
local plen=32
|
||||
local proto="ipv4"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
@@ -1915,7 +1942,7 @@ egress_vni_translation_ipv4_ipv4()
|
||||
echo "----------------------------------------------------------------"
|
||||
|
||||
egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \
|
||||
$src "mausezahn"
|
||||
$grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
egress_vni_translation_ipv6_ipv4()
|
||||
@@ -1926,6 +1953,7 @@ egress_vni_translation_ipv6_ipv4()
|
||||
local plen=32
|
||||
local proto="ipv6"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
@@ -1933,7 +1961,7 @@ egress_vni_translation_ipv6_ipv4()
|
||||
echo "----------------------------------------------------------------"
|
||||
|
||||
egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \
|
||||
$src "mausezahn -6"
|
||||
$grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
egress_vni_translation_ipv4_ipv6()
|
||||
@@ -1944,6 +1972,7 @@ egress_vni_translation_ipv4_ipv6()
|
||||
local plen=128
|
||||
local proto="ipv4"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
@@ -1951,7 +1980,7 @@ egress_vni_translation_ipv4_ipv6()
|
||||
echo "----------------------------------------------------------------"
|
||||
|
||||
egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \
|
||||
$src "mausezahn"
|
||||
$grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
egress_vni_translation_ipv6_ipv6()
|
||||
@@ -1962,6 +1991,7 @@ egress_vni_translation_ipv6_ipv6()
|
||||
local plen=128
|
||||
local proto="ipv6"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
@@ -1969,7 +1999,7 @@ egress_vni_translation_ipv6_ipv6()
|
||||
echo "----------------------------------------------------------------"
|
||||
|
||||
egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \
|
||||
$src "mausezahn -6"
|
||||
$grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
all_zeros_mdb_common()
|
||||
@@ -1982,12 +2012,18 @@ all_zeros_mdb_common()
|
||||
local vtep4_ip=$1; shift
|
||||
local plen=$1; shift
|
||||
local ipv4_grp=239.1.1.1
|
||||
local ipv4_grp_dmac=01:00:5e:01:01:01
|
||||
local ipv4_unreg_grp=239.2.2.2
|
||||
local ipv4_unreg_grp_dmac=01:00:5e:02:02:02
|
||||
local ipv4_ll_grp=224.0.0.100
|
||||
local ipv4_ll_grp_dmac=01:00:5e:00:00:64
|
||||
local ipv4_src=192.0.2.129
|
||||
local ipv6_grp=ff0e::1
|
||||
local ipv6_grp_dmac=33:33:00:00:00:01
|
||||
local ipv6_unreg_grp=ff0e::2
|
||||
local ipv6_unreg_grp_dmac=33:33:00:00:00:02
|
||||
local ipv6_ll_grp=ff02::1
|
||||
local ipv6_ll_grp_dmac=33:33:00:00:00:01
|
||||
local ipv6_src=2001:db8:100::1
|
||||
|
||||
# Install all-zeros (catchall) MDB entries for IPv4 and IPv6 traffic
|
||||
@@ -2023,7 +2059,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send registered IPv4 multicast and make sure it only arrives to the
|
||||
# first VTEP.
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_grp_dmac -A $ipv4_src -B $ipv4_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "Registered IPv4 multicast - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 0
|
||||
@@ -2031,7 +2067,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send unregistered IPv4 multicast that is not link-local and make sure
|
||||
# it arrives to the first and second VTEPs.
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_unreg_grp_dmac -A $ipv4_src -B $ipv4_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 2
|
||||
log_test $? 0 "Unregistered IPv4 multicast - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -2039,7 +2075,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send IPv4 link-local multicast traffic and make sure it does not
|
||||
# arrive to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_ll_grp_dmac -A $ipv4_src -B $ipv4_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 2
|
||||
log_test $? 0 "Link-local IPv4 multicast - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 1
|
||||
@@ -2074,7 +2110,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send registered IPv6 multicast and make sure it only arrives to the
|
||||
# third VTEP.
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_grp_dmac -A $ipv6_src -B $ipv6_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 103 1
|
||||
log_test $? 0 "Registered IPv6 multicast - third VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 104 0
|
||||
@@ -2082,7 +2118,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send unregistered IPv6 multicast that is not link-local and make sure
|
||||
# it arrives to the third and fourth VTEPs.
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_unreg_grp_dmac -A $ipv6_src -B $ipv6_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 103 2
|
||||
log_test $? 0 "Unregistered IPv6 multicast - third VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 104 1
|
||||
@@ -2090,7 +2126,7 @@ all_zeros_mdb_common()
|
||||
|
||||
# Send IPv6 link-local multicast traffic and make sure it does not
|
||||
# arrive to any VTEP.
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_ll_grp_dmac -A $ipv6_src -B $ipv6_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 103 2
|
||||
log_test $? 0 "Link-local IPv6 multicast - third VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 104 1
|
||||
@@ -2165,6 +2201,7 @@ mdb_fdb_common()
|
||||
local plen=$1; shift
|
||||
local proto=$1; shift
|
||||
local grp=$1; shift
|
||||
local grp_dmac=$1; shift
|
||||
local src=$1; shift
|
||||
local mz=$1; shift
|
||||
|
||||
@@ -2188,7 +2225,7 @@ mdb_fdb_common()
|
||||
|
||||
# Send IP multicast traffic and make sure it is forwarded by the MDB
|
||||
# and only arrives to the first VTEP.
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "IP multicast - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 0
|
||||
@@ -2205,7 +2242,7 @@ mdb_fdb_common()
|
||||
# Remove the MDB entry and make sure that IP multicast is now forwarded
|
||||
# by the FDB to the second VTEP.
|
||||
run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep1_ip src_vni 10010"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 101 1
|
||||
log_test $? 0 "IP multicast after removal - first VTEP"
|
||||
tc_check_packets "$ns2" "dev vx0 ingress" 102 2
|
||||
@@ -2221,14 +2258,15 @@ mdb_fdb_ipv4_ipv4()
|
||||
local plen=32
|
||||
local proto="ipv4"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
echo "Data path: MDB with FDB - IPv4 overlay / IPv4 underlay"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \
|
||||
"mausezahn"
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \
|
||||
$grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
mdb_fdb_ipv6_ipv4()
|
||||
@@ -2240,14 +2278,15 @@ mdb_fdb_ipv6_ipv4()
|
||||
local plen=32
|
||||
local proto="ipv6"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
echo "Data path: MDB with FDB - IPv6 overlay / IPv4 underlay"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \
|
||||
"mausezahn -6"
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \
|
||||
$grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
mdb_fdb_ipv4_ipv6()
|
||||
@@ -2259,14 +2298,15 @@ mdb_fdb_ipv4_ipv6()
|
||||
local plen=128
|
||||
local proto="ipv4"
|
||||
local grp=239.1.1.1
|
||||
local grp_dmac=01:00:5e:01:01:01
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
echo "Data path: MDB with FDB - IPv4 overlay / IPv6 underlay"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \
|
||||
"mausezahn"
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \
|
||||
$grp_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
mdb_fdb_ipv6_ipv6()
|
||||
@@ -2278,14 +2318,15 @@ mdb_fdb_ipv6_ipv6()
|
||||
local plen=128
|
||||
local proto="ipv6"
|
||||
local grp=ff0e::1
|
||||
local grp_dmac=33:33:00:00:00:01
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
echo "Data path: MDB with FDB - IPv6 overlay / IPv6 underlay"
|
||||
echo "------------------------------------------------------"
|
||||
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \
|
||||
"mausezahn -6"
|
||||
mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \
|
||||
$grp_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
mdb_grp1_loop()
|
||||
@@ -2320,7 +2361,9 @@ mdb_torture_common()
|
||||
local vtep1_ip=$1; shift
|
||||
local vtep2_ip=$1; shift
|
||||
local grp1=$1; shift
|
||||
local grp1_dmac=$1; shift
|
||||
local grp2=$1; shift
|
||||
local grp2_dmac=$1; shift
|
||||
local src=$1; shift
|
||||
local mz=$1; shift
|
||||
local pid1
|
||||
@@ -2345,9 +2388,9 @@ mdb_torture_common()
|
||||
pid1=$!
|
||||
mdb_grp2_loop $ns1 $vtep1_ip $vtep2_ip $grp2 &
|
||||
pid2=$!
|
||||
ip netns exec $ns1 $mz br0.10 -A $src -B $grp1 -t udp sp=12345,dp=54321 -p 100 -c 0 -q &
|
||||
ip netns exec $ns1 $mz br0.10 -a own -b $grp1_dmac -A $src -B $grp1 -t udp sp=12345,dp=54321 -p 100 -c 0 -q &
|
||||
pid3=$!
|
||||
ip netns exec $ns1 $mz br0.10 -A $src -B $grp2 -t udp sp=12345,dp=54321 -p 100 -c 0 -q &
|
||||
ip netns exec $ns1 $mz br0.10 -a own -b $grp2_dmac -A $src -B $grp2 -t udp sp=12345,dp=54321 -p 100 -c 0 -q &
|
||||
pid4=$!
|
||||
|
||||
sleep 30
|
||||
@@ -2363,15 +2406,17 @@ mdb_torture_ipv4_ipv4()
|
||||
local vtep1_ip=198.51.100.100
|
||||
local vtep2_ip=198.51.100.200
|
||||
local grp1=239.1.1.1
|
||||
local grp1_dmac=01:00:5e:01:01:01
|
||||
local grp2=239.2.2.2
|
||||
local grp2_dmac=01:00:5e:02:02:02
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
echo "Data path: MDB torture test - IPv4 overlay / IPv4 underlay"
|
||||
echo "----------------------------------------------------------"
|
||||
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \
|
||||
"mausezahn"
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \
|
||||
$grp2_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
mdb_torture_ipv6_ipv4()
|
||||
@@ -2380,15 +2425,17 @@ mdb_torture_ipv6_ipv4()
|
||||
local vtep1_ip=198.51.100.100
|
||||
local vtep2_ip=198.51.100.200
|
||||
local grp1=ff0e::1
|
||||
local grp1_dmac=33:33:00:00:00:01
|
||||
local grp2=ff0e::2
|
||||
local grp2_dmac=33:33:00:00:00:02
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
echo "Data path: MDB torture test - IPv6 overlay / IPv4 underlay"
|
||||
echo "----------------------------------------------------------"
|
||||
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \
|
||||
"mausezahn -6"
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \
|
||||
$grp2_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
mdb_torture_ipv4_ipv6()
|
||||
@@ -2397,15 +2444,17 @@ mdb_torture_ipv4_ipv6()
|
||||
local vtep1_ip=2001:db8:1000::1
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local grp1=239.1.1.1
|
||||
local grp1_dmac=01:00:5e:01:01:01
|
||||
local grp2=239.2.2.2
|
||||
local grp2_dmac=01:00:5e:02:02:02
|
||||
local src=192.0.2.129
|
||||
|
||||
echo
|
||||
echo "Data path: MDB torture test - IPv4 overlay / IPv6 underlay"
|
||||
echo "----------------------------------------------------------"
|
||||
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \
|
||||
"mausezahn"
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \
|
||||
$grp2_dmac $src "mausezahn"
|
||||
}
|
||||
|
||||
mdb_torture_ipv6_ipv6()
|
||||
@@ -2414,15 +2463,17 @@ mdb_torture_ipv6_ipv6()
|
||||
local vtep1_ip=2001:db8:1000::1
|
||||
local vtep2_ip=2001:db8:2000::1
|
||||
local grp1=ff0e::1
|
||||
local grp1_dmac=33:33:00:00:00:01
|
||||
local grp2=ff0e::2
|
||||
local grp2_dmac=33:33:00:00:00:02
|
||||
local src=2001:db8:100::1
|
||||
|
||||
echo
|
||||
echo "Data path: MDB torture test - IPv6 overlay / IPv6 underlay"
|
||||
echo "----------------------------------------------------------"
|
||||
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \
|
||||
"mausezahn -6"
|
||||
mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \
|
||||
$grp2_dmac $src "mausezahn -6"
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user