ggsn: Properly encode MISDN IE in GTP

ISDN-AddressString contains an initial byte at the start.
We didn't care so far because we were not yet checking the content of
msisdn, so the usual first '12'O byte was being considered as a header.

Let's store it in GTP format as before, but let's pass it as a
charstring when initializing the PdpContext, so that the human-style is
visible in the test for easy visualization/comparison (It will be
verified in a follow-up patch in Gy Diameter interface).

Change-Id: Ie1b65707d4b08f2201572e1fa44a1f9f985eb096
diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index c18e78e..965dcbe 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -11,6 +11,7 @@
  * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
+	import from TCCEncoding_Functions all;
 
 	import from General_Types all;
 	import from Osmocom_Types all;
@@ -340,10 +341,10 @@
 	}
 
 	/* define an (internal) representation of a PDP context */
-	template PdpContext t_DefinePDP(hexstring imsi, octetstring msisdn, octetstring apn,
+	template PdpContext t_DefinePDP(hexstring imsi, charstring msisdn, octetstring apn,
 					EndUserAddress eua, OCT1 ratType := '02'O /* GERAN */) := {
 		imsi := imsi,
-		msisdn := msisdn,
+		msisdn := '11'O  & f_enc_TBCD(msisdn), /* encoded as TS 29.060 7.7.33, TS 29.002 */
 		nsapi := f_rnd_nsapi(),
 		apn := apn,
 		pco_req := omit,
@@ -1104,7 +1105,7 @@
 	testcase TC_pdp6_act_deact() runs on GT_CT {
 		f_init();
 
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 		f_shutdown_helper();
@@ -1114,7 +1115,7 @@
 	testcase TC_pdp6_act_deact_pcodns() runs on GT_CT {
 		f_init();
 
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1138,7 +1139,7 @@
 	testcase TC_pdp6_act_deact_icmp6() runs on GT_CT {
 		f_init();
 
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1158,7 +1159,7 @@
 	   Test we can send ICMPv6 ping over GTPU to DNS server. */
 	testcase TC_pdp6_act_deact_gtpu_access() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1189,7 +1190,7 @@
 	/* Check that attempting RA with another ll src addr won't work, packet dropped: */
 	testcase TC_pdp6_act_deact_gtpu_access_wrong_ll_saddr() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1209,7 +1210,7 @@
 	/* Assert that packets with wrong global src addr are dropped by GGSN */
 	testcase TC_pdp6_act_deact_gtpu_access_wrong_global_saddr() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1230,7 +1231,7 @@
 	/* Send an IPv4 ICMP ECHO REQUEST to APN6, should fail (packet dropped */
 	testcase TC_pdp6_act_deact_gtpu_access_ipv4_apn6() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1250,8 +1251,8 @@
 	/* Validate if different clients (pdp ctx) can reach one another through GGSN. */
 	testcase TC_pdp6_clients_interact() runs on GT_CT {
 		f_init();
-		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
-		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
+		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet6, valueof(t_EuaIPv6Dyn)));
 		f_pdp_ctx_act(ctxA);
 		f_send_gtpu(ctxA, f_icmpv6_rs_for_pdp(ctxA));
 		f_wait_rtr_adv(ctxA);
@@ -1283,7 +1284,7 @@
 	/* Test PDP context activation for dynamic IPv4 EUA without DNS request */
 	testcase TC_pdp4_act_deact() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 		f_shutdown_helper();
@@ -1294,7 +1295,7 @@
 		f_init();
 		var OCT4 ggsn_ip4_dns1 := f_inet_addr(m_ggsn_ip4_dns1);
 		var OCT4 ggsn_ip4_dns2 := f_inet_addr(m_ggsn_ip4_dns2);
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_IPCP);
 		f_pdp_ctx_act(ctx);
 		f_PCO_ensure_no_duplicates(ctx.pco_neg);
@@ -1320,7 +1321,7 @@
 		f_init();
 		var OCT4 ggsn_ip4_dns1 := f_inet_addr(m_ggsn_ip4_dns1);
 		var OCT4 ggsn_ip4_dns2 := f_inet_addr(m_ggsn_ip4_dns2);
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_PAP_IPv4_DNS);
 		f_pdp_ctx_act(ctx);
 		f_PCO_ensure_no_duplicates(ctx.pco_neg);
@@ -1352,7 +1353,7 @@
 	/* Test PDP context activation for dynamic IPv4 EUA with IPv4 DNS in PCO */
 	testcase TC_pdp4_act_deact_pcodns() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1376,7 +1377,7 @@
 	   Test we can send ICMPv6 ping over GTPU to DNS server. */
 	testcase TC_pdp4_act_deact_gtpu_access() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1395,7 +1396,7 @@
 	/* Assert that packets with wrong global src addr are dropped by GGSN  */
 	testcase TC_pdp4_act_deact_gtpu_access_wrong_saddr() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1413,7 +1414,7 @@
 	/* Send an IPv6 RA to APN4, should fail (packet dropped) */
 	testcase TC_pdp4_act_deact_gtpu_access_ipv6_apn4() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1429,8 +1430,8 @@
 	/* Helper function for tests below. */
 	function f_pdp4_clients_interact() runs on GT_CT {
 		f_init();
-		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
-		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		f_pdp_ctx_act(ctxA);
 		f_pdp_ctx_act(ctxB);
 		var OCT4 addrA := ctxA.eua.endUserAddress.endUserAddressIPv4.ipv4_address;
@@ -1491,7 +1492,7 @@
 		 * see also: Change-Id Icffde89f9bc5d8fcadf6e2dd6c0b4de03440edd5 and OS#3288 */
 
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		var OCT4 ggsn_ip4_dns1 := f_inet_addr(m_ggsn_ip4_dns1);
 		var OCT4 ggsn_ip4_dns2 := f_inet_addr(m_ggsn_ip4_dns2);
 		var octetstring pco_neg_dns;
@@ -1516,7 +1517,7 @@
 		f_pdp_ctx_del(ctx, '1'B);
 
 		/* PCO with secondary DNS only */
-		ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_SEC_DNS_IPCP);
 		f_pdp_ctx_act(ctx);
 		pco_neg_dns := f_PCO_extract_proto(ctx.pco_neg, '8021'O, 1);
@@ -1538,7 +1539,7 @@
 		 * see also: Change-Id Icffde89f9bc5d8fcadf6e2dd6c0b4de03440edd5 and OS#3288 */
 
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		var OCT4 ggsn_ip4_dns1 := f_inet_addr(m_ggsn_ip4_dns1);
 		var OCT4 ggsn_ip4_dns2 := f_inet_addr(m_ggsn_ip4_dns2);
 		var octetstring pco_neg_dns;
@@ -1568,7 +1569,7 @@
 	/* Validate that SUT updates remote TEIC when requested through UpdatePDPContextRequest */
 	testcase TC_pdp4_act_update_teic() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1584,7 +1585,7 @@
 	/* Validate that SUT updates remote TEID when requested through UpdatePDPContextRequest */
 	testcase TC_pdp4_act_update_teid() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1612,7 +1613,7 @@
 	/* Test IPv4v6 context activation for dynamic IPv4v6 EUA without DNS request */
 	testcase TC_pdp46_act_deact() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 		f_shutdown_helper();
@@ -1623,7 +1624,7 @@
 		f_init();
 		var OCT4 ggsn_ip4_dns1 := f_inet_addr(m_ggsn_ip4_dns1);
 		var OCT4 ggsn_ip4_dns2 := f_inet_addr(m_ggsn_ip4_dns2);
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_IPCP);
 		f_pdp_ctx_act(ctx);
 		f_PCO_ensure_no_duplicates(ctx.pco_neg);
@@ -1648,7 +1649,7 @@
 	/* Test PDP context activation for dynamic IPv4v6 EUA with IPv6 DNS in PCO and router solicitation/advertisement */
 	testcase TC_pdp46_act_deact_icmp6() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1664,7 +1665,7 @@
 	testcase TC_pdp46_act_deact_pcodns4() runs on GT_CT {
 		f_init();
 
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1688,7 +1689,7 @@
 	testcase TC_pdp46_act_deact_pcodns6() runs on GT_CT {
 		f_init();
 
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1712,7 +1713,7 @@
 	   Test we can send ICMPv6 ping over GTPU to DNS server. */
 	testcase TC_pdp46_act_deact_gtpu_access() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1730,7 +1731,7 @@
 	/* Assert that packets with wrong ipv4 src addr are dropped by GGSN on APN IPv4v6 */
 	testcase TC_pdp46_act_deact_gtpu_access_wrong_saddr_ipv4() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1747,7 +1748,7 @@
 	/* Check that attempting RA with another ll src addr won't work, packet dropped: */
 	testcase TC_pdp46_act_deact_gtpu_access_wrong_ll_saddr_ipv6() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
@@ -1763,7 +1764,7 @@
 	/* Assert that packets with wrong ipv6 global src addr are dropped by GGSN on APN IPv4v6 */
 	testcase TC_pdp46_act_deact_gtpu_access_wrong_global_saddr_ipv6() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
 		f_pdp_ctx_act(ctx);
 
@@ -1784,8 +1785,8 @@
 	/* Validate if different clients (pdp ctx) can reach one another through GGSN. */
 	testcase TC_pdp46_clients_interact() runs on GT_CT {
 		f_init();
-		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
-		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		f_pdp_ctx_act(ctxA);
 		f_send_gtpu(ctxA, f_icmpv6_rs_for_pdp46(ctxA));
 		f_wait_rtr_adv(ctxA);
@@ -1822,7 +1823,7 @@
 		var CreatePDPContextResponse cpr;
 
 		f_init();
-		var PdpContext ctx46 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dynv6Dyn)));
+		var PdpContext ctx46 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dynv6Dyn)));
 		cpr := f_pdp_ctx_act(ctx46, (cause_unknown_pdp, cause_new_pdp_type));
 
 		if (cpr.cause.causevalue == cause_new_pdp_type) {
@@ -1842,10 +1843,10 @@
 			 * IPv4 PDP context and an IPv6 PDP context, both to the same APN. A
 			 * typical MS first attempts v4v6, and if rejected, then tries v4
 			 * and v6 separetly */
-			var PdpContext ctx4 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+			var PdpContext ctx4 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 			f_pdp_ctx_act(ctx4, cause_accept); /* Normal accept cause */
 
-			var PdpContext ctx6 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv6Dyn)));
+			var PdpContext ctx6 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv6Dyn)));
 			f_pdp_ctx_act(ctx6, cause_unknown_pdp); /* Cause: Unknown PDP address or PDP type */
 
 			f_pdp_ctx_del(ctx4, '1'B);
@@ -1861,8 +1862,8 @@
 		var boolean ctxB_created := false;
 
 		f_init();
-		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
-		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctxA := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctxB := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		f_pdp_ctx_act(ctxA);
 
 		g_restart_ctr := int2oct((oct2int(g_restart_ctr) + 1) mod 256, 1);
@@ -1922,7 +1923,7 @@
 	   detected, saved duplicate response should be sent back. */
 	testcase TC_act_deact_retrans_duplicate() runs on GT_CT {
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 		/* leave some time in between to make sure retransmit response queue keeps packets for a while */
@@ -1945,7 +1946,7 @@
 		g_use_echo_intval := 5;
 		timer T_echo;
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		f_pdp_ctx_act(ctx);
 
 		/* Wait to receive echo request and send initial Restart counter */
@@ -2000,7 +2001,7 @@
 		f_init();
 
 		for (var integer i := 0; i < num_ctx; i := i + 1) {
-			ctx[i] := valueof(t_DefinePDP(f_rnd_imsi('26242'H), f_rnd_msisdn('1234'O), c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+			ctx[i] := valueof(t_DefinePDP(f_rnd_imsi('26242'H), f_dec_TBCD(f_rnd_msisdn('1234'O)), c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 			ctx[i].teic := int2oct(i+1, 4); /* +1: skip TEIC=0 */
 			ctx[i].teid := int2oct(i+1, 4); /* +1: skip TEID=0 */
 			ctx[i].pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
@@ -2125,7 +2126,7 @@
 		[] T_next.timeout {
 			if (cont_req) {
 				if (next_req_ctx - rx_resp_ctx < 100) { /* if we have too many in progress, wait a bit to continue */
-					ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), f_rnd_msisdn('1234'O), c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+					ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), f_dec_TBCD(f_rnd_msisdn('1234'O)), c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 					ctx.nsapi := '0001'B;
 					ctx.teic := int2oct(next_req_ctx+1, 4); /* +1: skip TEIC=0 */
 					ctx.teid := int2oct(next_req_ctx+1, 4); /* +1: skip TEID=0 */
@@ -2208,7 +2209,7 @@
 
 		g_gy_validity_time := 3; /* Grant access for 3 seconds, needs to be re-validated afterwards */
 		f_init();
-		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234567890'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), "1234", c_ApnInternet, valueof(t_EuaIPv4Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);