fixup pcu/GPRS_Components: do not duplicate existing functions
Both f_ms_rx_imm_ass_ccch() and f_ms_establish_ul_tbf() functions
are actually twin brothers of good old f_pcuif_rx_imm_ass() and
f_establish_tbf() with some minor changes.
The former accepts a GprsMS parameter, that is never used. The
latter simply calls f_ultbf_new_from_rr_imm_ass() in the end.
Let's avoid code duplication:
- call f_establish_tbf() from f_ms_establish_ul_tbf(),
- remove f_ms_rx_imm_ass_ccch(), use f_pcuif_rx_imm_ass().
After the removal of f_ms_rx_imm_ass_ccch(), the implementation
of TC_ta_idle_dl_tbf_ass() does not need the GprsMS state, so
let's make it look like it was before.
Change-Id: If6c0b8796500e96525b7b1cadb61ab2fc84b4744
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index ff5da82..8b9a471 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -266,7 +266,7 @@
for (var TimingAdvance ta := 0; ta < 64; ta := ta + 16) {
/* Establish an Uplink TBF (send RACH.ind with current TA) */
ms.ta := ta;
- f_ms_establish_ul_tbf(ms, fn := 1337 + ta);
+ f_ms_establish_ul_tbf(ms);
/* Make sure Timing Advance IE matches out expectations */
if (ms.ul_tbf.rr_imm_ass.payload.imm_ass.timing_advance != ta) {
@@ -285,29 +285,30 @@
* IUT that causes it to send an unreasonable Timing Advance value > 0 despite
* no active TBF exists at the moment of establishment (idle mode). */
testcase TC_ta_idle_dl_tbf_ass() runs on RAW_PCU_Test_CT {
- var GprsMS ms;
+ var OCT4 tlli := f_rnd_octstring(4);
+ var GsmRrMessage rr_imm_ass;
/* Initialize NS/BSSGP side */
f_init_bssgp();
- /* Initialize GPRS MS side */
- f_init_gprs_ms();
- ms := g_ms[0]; /* We only use first MS in this test */
/* Initialize the PCU interface abstraction */
f_init_raw(testcasename());
/* Establish BSSGP connection to the PCU */
f_bssgp_establish();
- f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli);
+ f_bssgp_client_llgmm_assign('FFFFFFFF'O, tlli);
/* SGSN sends some DL data, PCU will initiate Packet Downlink
* Assignment on CCCH (PCH). We don't care about the payload. */
- BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, f_rnd_octstring(10)));
+ BSSGP[0].send(ts_BSSGP_DL_UD(tlli, f_rnd_octstring(10)));
+ rr_imm_ass := f_pcuif_rx_imm_ass(PCU_IF_SAPI_PCH, tr_IMM_TBF_ASS(dl := true));
/* Make sure that Timing Advance is 0 (the actual value is not known yet).
* As per 3GPP S 44.018, section 3.5.3.1.2, the network *shall* initiate
* the procedures defined in 3GPP TS 44.060 or use the polling mechanism. */
- f_ms_rx_imm_ass_ccch(ms, PCU_IF_SAPI_PCH, tr_IMM_TBF_ASS(ta := 0));
+ if (rr_imm_ass.payload.imm_ass.timing_advance != 0) {
+ setverdict(fail, "Timing Advance value doesn't match");
+ }
f_shutdown(__BFILE__, __LINE__, final := true);
}