ggsn: Append IMEISV IE to CreatePdpCtxReq
Change-Id: I00975328e94afd116e59c88fd96c5b0154810a1e
diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index e3d9341..c1ef7fb 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -99,7 +99,8 @@
OCT4 teic_remote,
OCT1 ratType optional,
UserLocationInformation uli optional,
- OCT2 charging_char optional
+ OCT2 charging_char optional,
+ OCT8 imeisv optional
}
type component GT_CT {
@@ -332,6 +333,11 @@
return int2oct(f_rnd_int(4294967296), 4);
}
+ /* return random IMEI(SV) */
+ function f_rnd_imeisv() return OCT8 {
+ return hex2oct(f_rnd_hexstring(16, 10));
+ }
+
/* define an (internal) representation of a PDP context */
template PdpContext t_DefinePDP(hexstring imsi, octetstring msisdn, octetstring apn,
EndUserAddress eua, OCT1 ratType := '02'O /* GERAN */) := {
@@ -352,7 +358,8 @@
geographicLocationCGI := ts_GeographicLocationCGI('262'H, '42F'H, '0001'O, '0002'O)
}
},
- charging_char := '0000'O
+ charging_char := '0000'O,
+ imeisv := f_rnd_imeisv()
}
/* send GTP-C for a given context and increment sequence number */
@@ -513,7 +520,7 @@
f_send_gtpc(ts_GTPC_CreatePDP(g_peer_c, g_c_seq_nr, ctx.imsi, g_restart_ctr,
ctx.teid, ctx.teic, ctx.nsapi, ctx.eua, ctx.apn,
g_sgsn_ip_c, g_sgsn_ip_u, ctx.msisdn, ctx.pco_req, ctx.ratType,
- ctx.uli, ctx.charging_char));
+ ctx.uli, ctx.charging_char, ctx.imeisv));
T_default.start;
d := activate(pingpong());
if (Gx_PROC.checkstate("Connected")) {
@@ -2009,7 +2016,7 @@
ctx[next_req_ctx].teid, ctx[next_req_ctx].teic, ctx[next_req_ctx].nsapi,
ctx[next_req_ctx].eua, ctx[next_req_ctx].apn, g_sgsn_ip_c, g_sgsn_ip_u,
ctx[next_req_ctx].msisdn, ctx[next_req_ctx].pco_req, ctx[next_req_ctx].ratType,
- ctx[next_req_ctx].uli, ctx[next_req_ctx].charging_char));
+ ctx[next_req_ctx].uli, ctx[next_req_ctx].charging_char, ctx[next_req_ctx].imeisv));
next_req_ctx := next_req_ctx + 1;
if (next_req_ctx < num_ctx) {
T_next.start;
@@ -2123,7 +2130,7 @@
ctx.teid, ctx.teic, ctx.nsapi,
ctx.eua, ctx.apn, g_sgsn_ip_c, g_sgsn_ip_u,
ctx.msisdn, ctx.pco_req, ctx.ratType,
- ctx.uli, ctx.charging_char));
+ ctx.uli, ctx.charging_char, ctx.imeisv));
next_req_ctx := next_req_ctx + 1;
}
T_next.start;