|
|
|
|
@@ -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"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
|