dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33794 )
(
2 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: GPRS_Components: use more suitable SAPI for DL TBF assignment ......................................................................
GPRS_Components: use more suitable SAPI for DL TBF assignment
The function that assigns the downlink TBF f_ms_exp_dl_tbf_ass_ccch() uses SAPI PCU_IF_SAPI_AGCH as default but actually downlink TBFs are assigned via the PCH. This means we have to put PCU_IF_SAPI_PCH into the parameter list on every function call, so it makes sense to change the default to PCU_IF_SAPI_PCH and omit the SAPI when calling the function
Related: OS#5927 Change-Id: I49c59bad0162cb303669f6108201f154918b1db3 --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 47 insertions(+), 31 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 59c99d8..64a39dd 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_AGCH, +function f_ms_exp_dl_tbf_ass_ccch(inout GprsMS ms, template PCUIF_Sapi sapi := PCU_IF_SAPI_PCH, template GsmRrMessage t_imm_ass := tr_IMM_TBF_ASS(true, ?, ?), template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum) runs on MS_BTS_IFACE_CT { diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 76926ae..2598e7b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -447,7 +447,7 @@
/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -480,7 +480,7 @@ /* New data arrives, PCU should page the MS since no TBF active exists: */ /* Send some more data, it will never reach the MS */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
f_shutdown(__BFILE__, __LINE__, final := true); } @@ -593,7 +593,7 @@ /* 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))); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* 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 @@ -1060,7 +1060,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1103,7 +1103,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS */ f_sleep(X2002); @@ -1333,7 +1333,7 @@
/* 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)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1727,7 +1727,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1786,7 +1786,7 @@
/* The TBF should be freed now, so new data should trigger an Assignment: */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data2)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1828,7 +1828,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1861,7 +1861,7 @@
/* The TBF should be freed now, so new data should trigger an Assignment: */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data2)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1907,7 +1907,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -1981,7 +1981,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2054,7 +2054,7 @@
/* after T_3195 timeout, TBF is released */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data2)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2119,7 +2119,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2435,7 +2435,7 @@
/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2625,7 +2625,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2780,7 +2780,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2789,7 +2789,7 @@ /* Now we don't ack the dl block (emulate MS failed receiveing IMM ASS * or GPRS DL, or DL ACK was lost for some reason). As a result, PCU * should retrigger IMM ASS + GPRS DL procedure after poll timeout. */ - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -2831,7 +2831,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS */ f_sleep(X2002); @@ -3028,7 +3028,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data1)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -3047,7 +3047,7 @@ }
/* PCU starts whole process again */ - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -3132,7 +3132,7 @@ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi7)); BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi8)); BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data_sapi1)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS */ f_sleep(X2002); @@ -3574,7 +3574,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, racap_tmpl)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -3853,7 +3853,7 @@
/* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI(ms.imsi))); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); @@ -3945,7 +3945,7 @@
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS */ f_sleep(X2002); @@ -4040,7 +4040,7 @@
/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms); /* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ f_sleep(X2002); f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0); @@ -4107,7 +4107,7 @@
/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Now the PCU is waiting for the MS to move to PDCH in order to send data to it (timer X2002). * The MS decides it want to send new Ul TBF so it send RACH req to ask for it: */ @@ -4187,7 +4187,7 @@
/* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Now the PCU is waiting for the MS to move to PDCH in order to send data to it (timer X2002). * The MS decides it want to send new Ul TBF so it send RACH req to ask for it: */ @@ -4652,7 +4652,7 @@
/* 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, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
f_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.dl_tbf.rr_imm_ass); f_shutdown(__BFILE__, __LINE__, final := true); @@ -7137,7 +7137,7 @@ } else { BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_gprs)); } - f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + f_ms_exp_dl_tbf_ass_ccch(ms);
/* Wait timer X2002 and DL block is available after CCCH IMM ASS */ f_sleep(X2002);