selftests: mptcp: add IPv4-mapped IPv6 testcases
Here, we make sure we support IPv4-mapped in IPv6 addresses in different contexts: - a v4-mapped address is received by the PM and can be used as v4. - a v4 address is received by the PM and can be used even with a v4 mapped socket. We also make sure we don't try to establish subflows between v4 and v6 addresses, e.g. if a real v6 address ends with a valid v4 address. Co-developed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Geliang Tang <geliangtang@gmail.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
1f2f1931b2
Коммит
a609478803
|
@ -790,6 +790,81 @@ chk_join_nr "remove subflow and signal IPv6" 2 2 2
|
|||
chk_add_nr 1 1
|
||||
chk_rm_nr 1 1
|
||||
|
||||
# subflow IPv4-mapped to IPv4-mapped
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add "::ffff:10.0.3.2" flags subflow
|
||||
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
||||
chk_join_nr "single subflow IPv4-mapped" 1 1 1
|
||||
|
||||
# signal address IPv4-mapped with IPv4-mapped sk
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 1 1
|
||||
ip netns exec $ns1 ./pm_nl_ctl add "::ffff:10.0.2.1" flags signal
|
||||
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
||||
chk_join_nr "signal address IPv4-mapped" 1 1 1
|
||||
chk_add_nr 1 1
|
||||
|
||||
# subflow v4-map-v6
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow
|
||||
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
||||
chk_join_nr "single subflow v4-map-v6" 1 1 1
|
||||
|
||||
# signal address v4-map-v6
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 1 1
|
||||
ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal
|
||||
run_tests $ns1 $ns2 "::ffff:10.0.1.1"
|
||||
chk_join_nr "signal address v4-map-v6" 1 1 1
|
||||
chk_add_nr 1 1
|
||||
|
||||
# subflow v6-map-v4
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add "::ffff:10.0.3.2" flags subflow
|
||||
run_tests $ns1 $ns2 10.0.1.1
|
||||
chk_join_nr "single subflow v6-map-v4" 1 1 1
|
||||
|
||||
# signal address v6-map-v4
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 1 1
|
||||
ip netns exec $ns1 ./pm_nl_ctl add "::ffff:10.0.2.1" flags signal
|
||||
run_tests $ns1 $ns2 10.0.1.1
|
||||
chk_join_nr "signal address v6-map-v4" 1 1 1
|
||||
chk_add_nr 1 1
|
||||
|
||||
# no subflow IPv6 to v4 address
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add dead:beef:2::2 flags subflow
|
||||
run_tests $ns1 $ns2 10.0.1.1
|
||||
chk_join_nr "no JOIN with diff families v4-v6" 0 0 0
|
||||
|
||||
# no subflow IPv6 to v4 address even if v6 has a valid v4 at the end
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add dead:beef:2::10.0.3.2 flags subflow
|
||||
run_tests $ns1 $ns2 10.0.1.1
|
||||
chk_join_nr "no JOIN with diff families v4-v6-2" 0 0 0
|
||||
|
||||
# no subflow IPv4 to v6 address, no need to slow down too then
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl limits 0 1
|
||||
ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow
|
||||
run_tests $ns1 $ns2 dead:beef:1::1
|
||||
chk_join_nr "no JOIN with diff families v6-v4" 0 0 0
|
||||
|
||||
# single subflow, backup
|
||||
reset
|
||||
ip netns exec $ns1 ./pm_nl_ctl limits 0 1
|
||||
|
|
Загрузка…
Ссылка в новой задаче