From f82bbb6829afbc341e34e4a8f736c7e15e723cc4 Mon Sep 17 00:00:00 2001 From: Stefan Sperling Date: Thu, 3 May 2018 19:14:28 +0200 Subject: 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 --- library/BSSGP_Emulation.ttcn | 8 +++++++- pcu/PCU_Tests.ttcn | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn index c7766dc9..321c344b 100644 --- a/library/BSSGP_Emulation.ttcn +++ b/library/BSSGP_Emulation.ttcn @@ -80,6 +80,7 @@ type port BSSGP_PROC_PT procedure { type component BSSGP_Client_CT { port BSSGP_PT BSSGP; + port BSSGP_PT BSSGP_SIG; port BSSGP_PROC_PT BSSGP_PROC; }; @@ -99,10 +100,11 @@ private function f_init() runs on BSSGP_CT { } 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 @@ altstep as_unblocked() runs on BSSGP_CT { } } + [] 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 12b63d63..6e36f682 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -60,6 +60,7 @@ module PCU_Tests { 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 @@ module PCU_Tests { 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; -- cgit v1.2.3