PCU_Tests: add an IMSI when sending data via BSSGP

In many of our tests we trigger a paging by the PCU by sending some data
through BSSGP. However, we often do this without putting an IMSI into
the ts_BSSGP_DL_UD template. The PCU then send the paging through the
AGCH because without IMSI no paging group can be calculated. The tests
still expect the paging to appear on the PCH and fail.

Let's fix this by adding an IMSI to the BSSGP request so that the PCU
knows the and the paging is sent through the PCU.

Change-Id: I7a70cc2a8af9d088071841861a8120afb9af86f9
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 9829edb..a6d3559 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -446,7 +446,7 @@
 	BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
 
 	/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1059,7 +1059,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1102,7 +1102,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS */
@@ -1332,7 +1332,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs_def));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs_def, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1726,7 +1726,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1827,7 +1827,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1906,7 +1906,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -1980,7 +1980,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2053,7 +2053,7 @@
 	}
 
 	/* after T_3195 timeout, TBF is released */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data2));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data2, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2118,7 +2118,7 @@
 	}
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2434,7 +2434,7 @@
 	BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
 
 	/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2624,7 +2624,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2779,7 +2779,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -2830,7 +2830,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS */
@@ -3027,7 +3027,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -3126,7 +3126,7 @@
 
 	/* SGSN sends some low prio DL data, PCU will page on CCCH (PCH) */
 	for (var integer i := 0; i < 10; i := i + 1) {
-		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi_other));
+		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi_other, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	}
 	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi2));
 	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi7));
@@ -3644,7 +3644,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, racap_tmpl));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, racap_tmpl, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
@@ -4150,7 +4150,7 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	f_ms_exp_dl_tbf_ass_ccch(ms);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS */
@@ -4242,7 +4242,7 @@
 	/* 1 UL block should be received in SGSN */
 	BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
 	/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 
 	/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
 	f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
@@ -4309,7 +4309,7 @@
 	/* 1 UL block should be received in SGSN */
 	BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
 	/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 
 	/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
 	f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
@@ -4389,7 +4389,7 @@
 	/* 1 UL block should be received in SGSN */
 	BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
 	/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi)));
 
 	/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
 	f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
@@ -7354,9 +7354,9 @@
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
 	var octetstring data := f_rnd_octstring(1400);
 	if (egprs) {
-		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs));
+		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	} else {
-		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_gprs));
+		BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_gprs, imsi := ts_BSSGP_IMSI(ms.imsi)));
 	}
 	f_ms_exp_dl_tbf_ass_ccch(ms);