make PCU tests send PS paging requests on BVCI zero

osmo-pcu discards PAGING-PS messages unless received on the
signalling BVCI 0. The BVCI value must be set to zero both
in the NS header and the BSSGP header. Create new ports between
the PCU_Test components which the TC_paging test case can use
to ensure that both layers send frames with BVCI value of zero.

This does not make PCU_Tests.tc_paging work yet, however the PS
paging request is now processed by osmo-pcu rather than discarded.

Change-Id: I0437123b04b7320a4f690f0646578c57abf6bc87
Related: OS#2404
diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn
index c7766dc..321c344 100644
--- a/library/BSSGP_Emulation.ttcn
+++ b/library/BSSGP_Emulation.ttcn
@@ -80,6 +80,7 @@
 
 type component BSSGP_Client_CT {
 	port BSSGP_PT BSSGP;
+	port BSSGP_PT BSSGP_SIG;
 	port BSSGP_PROC_PT BSSGP_PROC;
 };
 
@@ -99,10 +100,11 @@
 }
 
 type component BSSGP_CT {
-	/* UDP port towards the bottom (IUT) */
+	/* UDP ports towards the bottom (IUT) */
 	port NS_PT BSCP;
 	/* NS-User SAP towards the user */
 	port BSSGP_SP_PT BSSGP_SP;
+	port BSSGP_SP_PT BSSGP_SP_SIG;
 	port BSSGP_PROC_PT BSSGP_PROC;
 
 	var BssgpConfig g_cfg;
@@ -534,6 +536,10 @@
 		}
 	}
 
+	[] BSSGP_SP_SIG.receive(PDU_BSSGP:?)-> value bs_pdu sender vc_conn {
+		BSCP.send(f_BnsUdReq(bs_pdu, 0));
+	}
+
 	/* pass virtually any PDU from user to NS-UNITDATA PDU on network */
 	[] BSSGP_SP.receive(PDU_BSSGP:?) -> value bs_pdu sender vc_conn {
 		BSCP.send(f_BnsUdReq(bs_pdu, g_cfg.bvci));
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 12b63d6..6e36f68 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -60,6 +60,7 @@
 		bssgp_component := BSSGP_CT.create;
 		/* connect our BSSGP port to the BSSGP Emulation */
 		connect(self:BSSGP, bssgp_component:BSSGP_SP);
+		connect(self:BSSGP_SIG, bssgp_component:BSSGP_SP_SIG);
 		connect(self:BSSGP_PROC, bssgp_component:BSSGP_PROC);
 		/* connect lower-end of BSSGP with BSSGP_CODEC_PORT (maps to NS_PT*/
 		connect(bssgp_component:BSCP, ns_component:NS_SP);
@@ -200,8 +201,9 @@
 		g_mmctx.tlli := f_random_tlli();
 		f_init();
 
-		BSSGP.send(ts_BSSGP_PS_PAGING_IMSI(mp_gb_cfg.bvci, g_mmctx.imsi));
-		BSSGP.send(ts_BSSGP_PS_PAGING_PTMSI(mp_gb_cfg.bvci, g_mmctx.imsi, tmsi));
+		/* Send paging on signalling BVCI 0 since osmo-pcu does not support paging on PTP yet. */
+		BSSGP_SIG.send(ts_BSSGP_PS_PAGING_IMSI(0, g_mmctx.imsi));
+		BSSGP_SIG.send(ts_BSSGP_PS_PAGING_PTMSI(0, g_mmctx.imsi, tmsi));
 
 		while (true) {
 			var BssgpDecoded bd;