tests/qemu: add 05_ms_ip46_sgsn_ip4.sh

Change-Id: I1e306bc4534f14138249cd4034f54f77d940b261
This commit is contained in:
Oliver Smith 2024-02-21 10:58:06 +01:00
parent c95db93512
commit 099a907d09
3 changed files with 71 additions and 0 deletions

View File

@ -50,16 +50,52 @@ tunnel_start() {
ggsn_side gtp-tunnel list
}
# Add a second tunnel to test MS with IPv4v6
tunnel_start_2() {
test -n "$MS2_PROTO"
test -n "$MS2"
test -n "$MS2_PREFLEN"
test -n "$WEBSERVER2"
# SGSN side: add second IP to lo (MS)
ip addr add "$MS2"/"$MS2_PREFLEN" dev lo
# SGSN side: prepare second gtp-tunnel
gtp-tunnel add gtp_sgsn v1 200 100 "$MS2" "$GGSN"
ip route add "$WEBSERVER2"/"$MS2_PREFLEN" dev gtp_sgsn
# GGSN side: prepare add second IP to lo (WEBSERVER)
ggsn_side ip addr add "$WEBSERVER2"/"$MS2_PREFLEN" dev lo
# GGSN side: prepare second gtp-tunnel
ggsn_side gtp-tunnel add gtp_ggsn v1 100 200 "$MS2" "$SGSN"
ggsn_side ip route add "$MS2"/"$MS2_PREFLEN" dev gtp_ggsn
# List tunnels from both sides
gtp-tunnel list
ggsn_side gtp-tunnel list
}
tunnel_ping() {
ip addr show
ping -c 1 "$WEBSERVER"
ggsn_side ping -c 1 "$MS"
if [ -n "$MS2" ]; then
ping -c 1 "$WEBSERVER2"
ggsn_side ping -c 1 "$MS2"
fi
}
tunnel_stop() {
killall gtp-link
ip addr del "$MS"/"$MS_PREFLEN" dev lo
if [ -n "$MS2" ]; then
ip addr del "$MS2"/"$MS2_PREFLEN" dev lo
fi
ip link set veth_sgsn down
if [ "$SGSN_GGSN_PROTO" == "ip" ]; then # FIXME: doesn't work with ip6
@ -69,8 +105,19 @@ tunnel_stop() {
ip link del veth_sgsn
ip route del "$WEBSERVER"/"$MS_PREFLEN" dev gtp_sgsn
gtp-tunnel delete gtp_sgsn v1 200 "$MS_PROTO"
if [ -n "$MS2" ]; then
ip route del "$WEBSERVER2"/"$MS2_PREFLEN" dev gtp_sgsn
gtp-tunnel delete gtp_sgsn v1 200 "$MS2_PROTO"
fi
gtp-link del gtp_sgsn
ggsn_side gtp-tunnel delete gtp_ggsn v1 100 "$MS_PROTO"
if [ -n "$MS2" ]; then
ggsn_side gtp-tunnel delete gtp_ggsn v1 100 "$MS2_PROTO"
fi
ggsn_side gtp-link del gtp_ggsn
ip netns del ggsn_side
}

View File

@ -0,0 +1,23 @@
#!/bin/sh -ex
. /tests/00_test_functions.sh
MS_PROTO="ip"
MS="172.99.0.1"
MS_PREFLEN="32"
SGSN_GGSN_PROTO="ip"
SGSN="172.0.0.1"
SGSN_PREFLEN="24"
GGSN="172.0.0.2"
WEBSERVER="172.99.0.2"
tunnel_start
MS2_PROTO="ip6"
MS2_PROTO="ip6"
MS2="fd00::"
MS2_PREFLEN="64"
WEBSERVER2="fe00::2"
tunnel_start_2
tunnel_ping
tunnel_stop

View File

@ -29,6 +29,7 @@ run_test 01_ms_ip4_sgsn_ip4.sh
run_test 02_ms_ip4_sgsn_ip6.sh
run_test 03_ms_ip6_sgsn_ip4.sh
run_test 04_ms_ip6_sgsn_ip6.sh
run_test 05_ms_ip46_sgsn_ip4.sh
# Success (run-qemu.sh checks for this line)
echo "QEMU_TEST_SUCCESSFUL"