dexter has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33796?usp=email )

Change subject: PCU_Tests: use PCUIF v.11 exclusively
......................................................................

PCU_Tests: use PCUIF v.11 exclusively

OsmoPCU has support for PCUIF v.11 for quite some time now. Let's
upgrade the testsuite as well.

Related: OS#5927
Change-Id: I6c4042f2224cd48aecc1b1499226f7d23caddd4f
---
M pcu/GPRS_Components.ttcn
M pcu/PCU_Tests.ttcn
2 files changed, 44 insertions(+), 20 deletions(-)

Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved




diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index 4b8ca5b..983ae8f 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -628,7 +628,7 @@
        ms.ul_tbf := f_ultbf_new_from_rr_imm_ass(rr_imm_ass);
 }

-function f_ms_exp_dl_tbf_ass_ccch(inout GprsMS ms, template PCUIF_Sapi sapi := 
PCU_IF_SAPI_PCH,
+function f_ms_exp_dl_tbf_ass_ccch(inout GprsMS ms, template PCUIF_Sapi sapi := 
PCU_IF_SAPI_PCH_2,
                                  template GsmRrMessage t_imm_ass := 
tr_IMM_TBF_ASS(true, ?, ?),
                                  template (present) TsTrxBtsNum nr := 
tr_TsTrxBtsNum)
 runs on MS_BTS_IFACE_CT {
@@ -882,19 +882,17 @@
 /* This function can be used to send DATA.cnf in response to the IUT 
originated DATA.req. */
 function f_pcuif_tx_data_cnf(in BTS_CCCH_Block data_msg)
 runs on MS_BTS_IFACE_CT {
-       var PCUIF_Message pcu_msg_cnf := {
-               msg_type := PCU_IF_MSG_DATA_CNF,
-               bts_nr := data_msg.bts_nr,
-               spare := '0000'O,
-               u := { data_cnf := data_msg.raw }
+        var PCUIF_data_cnf cnf := {
+           sapi := data_msg.raw.sapi,
+           msg_id := data_msg.msg_id
        };

-       /* PCU wants DATA.cnf containing basically everything that was in 
DATA.req,
-        * but PCU_IF_SAPI_PCH is a special case - paging group shall be 
excluded. */
-       if (data_msg.raw.sapi == PCU_IF_SAPI_PCH) {
-               pcu_msg_cnf.u.data_cnf.data := substr(data_msg.raw.data, 3,
-                                                     data_msg.raw.len - 3);
-       }
+       var PCUIF_Message pcu_msg_cnf := {
+               msg_type := PCU_IF_MSG_DATA_CNF_2,
+               bts_nr := data_msg.bts_nr,
+               spare := '0000'O,
+               u := { data_cnf2 := cnf}
+       };

        BTS.send(pcu_msg_cnf);
 }
@@ -1061,7 +1059,7 @@
        }
 }

-altstep as_ms_rx_imm_ass(template PCUIF_Sapi sapi := PCU_IF_SAPI_AGCH,
+altstep as_ms_rx_imm_ass(template PCUIF_Sapi sapi := PCU_IF_SAPI_AGCH_2,
                         template GsmRrMessage t_imm_ass := ?,
                         template (present) TsTrxBtsNum nr := ts_TsTrxBtsNum,
                         out GsmRrMessage rr_imm_ass)
@@ -1073,14 +1071,12 @@
                rr_imm_ass := data_msg.rr_msg;
                log("Rx Immediate Assignment: ", rr_imm_ass);
                /* Send DATA.cnf back to the IUT (only needed for PCH) */
-               if (data_msg.raw.sapi == PCU_IF_SAPI_PCH) {
-                       f_pcuif_tx_data_cnf(data_msg);
-               }
+               f_pcuif_tx_data_cnf(data_msg);
                setverdict(pass);
        }
 }

-function f_pcuif_rx_imm_ass(template PCUIF_Sapi sapi := PCU_IF_SAPI_AGCH,
+function f_pcuif_rx_imm_ass(template PCUIF_Sapi sapi := PCU_IF_SAPI_AGCH_2,
                            template GsmRrMessage t_imm_ass := ?,
                            template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum)
 runs on MS_BTS_IFACE_CT return GsmRrMessage {
@@ -1131,7 +1127,7 @@
        if (is_11bit != 0) { ra := 127; }

        /* Expect Immediate (TBF) Assignment on the same TS/TRX/BTS */
-       return f_pcuif_rx_imm_ass(PCU_IF_SAPI_AGCH, tr_IMM_TBF_ASS(false, ra, 
fn), nr);
+       return f_pcuif_rx_imm_ass(PCU_IF_SAPI_AGCH_2, tr_IMM_TBF_ASS(false, ra, 
fn), nr);
 }

 /* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
@@ -1174,7 +1170,7 @@

        var BTS_CCCH_Block data_msg;
        BTS.receive(tr_PCUIF_DATA_RR(nr.bts_nr,
-                                    tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := 
PCU_IF_SAPI_PCH),
+                                    tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := 
PCU_IF_SAPI_PCH_2),
                                     tr_PAG_REQ1(tr_MI_LV(mi1)))) -> value 
data_msg;
        rr_pag_req1 := data_msg.rr_msg;
        log("Rx Paging Request Type1: ", rr_pag_req1);
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index d844736..9829edb 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -4858,7 +4858,22 @@

        /* SGSN sends some DL data, PCU will page on CCCH (PCH) */
        BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, f_rnd_octstring(12)));
-       f_ms_exp_dl_tbf_ass_ccch(ms);
+
+       /* The PCU will send an IMMEDIATE ASSIGNMENT message on the AGCH. It
+        * should be noted that IMMEDIATE ASSIGNMENT messages for DL TBFs are
+        * commonly sent on the PCH. However in this case the IMSI is not
+        * known to the PCU and hence no paging group can be calculated. The
+        * PCU is then forced to use the AGCH.
+        *
+        * As a background information to this it should be noted that this
+        * works because the IMSI is commonly unknown during a GMM ATTACH
+        * REQUEST. In this phase the MS is in non-DRX mode, which means that
+        * it listens on all CCCH blocks (PCH and AGCH)
+        *
+        * See also: 3gpp TS 44.060, section 5.5.1.5 and
+         *           3gpp TS 45.002, section 6.5.3, 6.5.6
+         */
+       f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_AGCH_2);
 
        f_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.dl_tbf.rr_imm_ass);
        f_shutdown(__BFILE__, __LINE__, final := true);

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33796?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I6c4042f2224cd48aecc1b1499226f7d23caddd4f
Gerrit-Change-Number: 33796
Gerrit-PatchSet: 7
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to