GGSN_Tests: Randomize IMSIs and use different APN for v4 + v6
diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index 2066e0d..b269fb6 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -485,7 +485,9 @@
}
/* 'internet' in DNS encoding */
- template octetstring t_ApnInternet := '08696E7465726E6574'O;
+ const octetstring c_ApnInternet := '08696E7465726E6574'O;
+ const octetstring c_ApnInet6 := '05696E657436'O;
+ const octetstring c_ApnInet46 := '06696E65743436'O;
/* return random integer between 0 and max */
function f_rnd_int(integer max) return integer {
@@ -502,6 +504,35 @@
return int2oct(f_rnd_int(4294967296), 4);
}
+ /* return hexstring composed of random digits */
+ function f_rnd_hexstring(in integer len, in integer max := 15) return hexstring {
+ var integer i;
+ var hexstring ret := ''H;
+ for (i := 0; i < len; i := i + 1) {
+ ret := ret & int2hex(f_rnd_int(max), 1);
+ }
+ return ret;
+ }
+
+ /* return octetstring composed of random bytes */
+ function f_rnd_octstring(in integer len) return octetstring {
+ var integer i;
+ var octetstring ret := ''O;
+ for (i := 0; i < len; i := i + 1) {
+ ret := ret & int2oct(f_rnd_int(255), 1);
+ }
+ return ret;
+ }
+
+ function f_rnd_imsi(in hexstring prefix) return hexstring {
+ return prefix & f_rnd_hexstring(15 - lengthof(prefix), 9);
+ }
+
+ function f_rnd_msisdn(in octetstring prefix, integer len := 6) return octetstring {
+ return prefix & f_rnd_octstring(len - lengthof(prefix));
+ }
+
+
/* define an (internal) representation of a PDP context */
template PdpContext t_DefinePDP(hexstring imsi, octetstring msisdn, octetstring apn,
EndUserAddress eua) := {
@@ -764,7 +795,7 @@
testcase TC_pdp6_act_deact() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv6Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
f_pdp_ctx_act(ctx);
f_pdp_ctx_del(ctx, '1'B);
}
@@ -772,7 +803,7 @@
testcase TC_pdp6_act_deact_pcodns() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv6Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
f_pdp_ctx_act(ctx);
f_pdp_ctx_del(ctx, '1'B);
@@ -781,7 +812,7 @@
testcase TC_pdp6_act_deact_icmp6() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv6Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
f_pdp_ctx_act(ctx);
@@ -797,21 +828,21 @@
testcase TC_pdp4_act_deact() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv4Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
f_pdp_ctx_act(ctx);
f_pdp_ctx_del(ctx, '1'B);
}
testcase TC_pdp4_act_deact_ipcp() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv4Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
f_pdp_ctx_act(ctx);
f_pdp_ctx_del(ctx, '1'B);
}
testcase TC_pdp4_act_deact_pcodns() runs on GT_CT {
f_init();
- var PdpContext ctx := valueof(t_DefinePDP('262420123456789'H, '1234'O, valueof(t_ApnInternet), valueof(t_EuaIPv4Dyn)));
+ var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
f_pdp_ctx_act(ctx);
f_pdp_ctx_del(ctx, '1'B);
}