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
This commit is contained in:
parent
81c131edb3
commit
426bb4749a
|
@ -628,7 +628,7 @@ runs on MS_BTS_IFACE_CT {
|
||||||
ms.ul_tbf := f_ultbf_new_from_rr_imm_ass(rr_imm_ass);
|
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 GsmRrMessage t_imm_ass := tr_IMM_TBF_ASS(true, ?, ?),
|
||||||
template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum)
|
template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum)
|
||||||
runs on MS_BTS_IFACE_CT {
|
runs on MS_BTS_IFACE_CT {
|
||||||
|
@ -882,19 +882,17 @@ function f_egprs_acknackdesc_ack_block(inout EgprsAckNackDescription desc, Rlcma
|
||||||
/* This function can be used to send DATA.cnf in response to the IUT originated DATA.req. */
|
/* 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)
|
function f_pcuif_tx_data_cnf(in BTS_CCCH_Block data_msg)
|
||||||
runs on MS_BTS_IFACE_CT {
|
runs on MS_BTS_IFACE_CT {
|
||||||
var PCUIF_Message pcu_msg_cnf := {
|
var PCUIF_data_cnf cnf := {
|
||||||
msg_type := PCU_IF_MSG_DATA_CNF,
|
sapi := data_msg.raw.sapi,
|
||||||
bts_nr := data_msg.bts_nr,
|
msg_id := data_msg.msg_id
|
||||||
spare := '0000'O,
|
|
||||||
u := { data_cnf := data_msg.raw }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* PCU wants DATA.cnf containing basically everything that was in DATA.req,
|
var PCUIF_Message pcu_msg_cnf := {
|
||||||
* but PCU_IF_SAPI_PCH is a special case - paging group shall be excluded. */
|
msg_type := PCU_IF_MSG_DATA_CNF_2,
|
||||||
if (data_msg.raw.sapi == PCU_IF_SAPI_PCH) {
|
bts_nr := data_msg.bts_nr,
|
||||||
pcu_msg_cnf.u.data_cnf.data := substr(data_msg.raw.data, 3,
|
spare := '0000'O,
|
||||||
data_msg.raw.len - 3);
|
u := { data_cnf2 := cnf}
|
||||||
}
|
};
|
||||||
|
|
||||||
BTS.send(pcu_msg_cnf);
|
BTS.send(pcu_msg_cnf);
|
||||||
}
|
}
|
||||||
|
@ -1061,7 +1059,7 @@ runs on MS_BTS_IFACE_CT {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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 GsmRrMessage t_imm_ass := ?,
|
||||||
template (present) TsTrxBtsNum nr := ts_TsTrxBtsNum,
|
template (present) TsTrxBtsNum nr := ts_TsTrxBtsNum,
|
||||||
out GsmRrMessage rr_imm_ass)
|
out GsmRrMessage rr_imm_ass)
|
||||||
|
@ -1073,14 +1071,12 @@ runs on MS_BTS_IFACE_CT {
|
||||||
rr_imm_ass := data_msg.rr_msg;
|
rr_imm_ass := data_msg.rr_msg;
|
||||||
log("Rx Immediate Assignment: ", rr_imm_ass);
|
log("Rx Immediate Assignment: ", rr_imm_ass);
|
||||||
/* Send DATA.cnf back to the IUT (only needed for PCH) */
|
/* 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);
|
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 GsmRrMessage t_imm_ass := ?,
|
||||||
template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum)
|
template (present) TsTrxBtsNum nr := tr_TsTrxBtsNum)
|
||||||
runs on MS_BTS_IFACE_CT return GsmRrMessage {
|
runs on MS_BTS_IFACE_CT return GsmRrMessage {
|
||||||
|
@ -1131,7 +1127,7 @@ runs on MS_BTS_IFACE_CT return GsmRrMessage {
|
||||||
if (is_11bit != 0) { ra := 127; }
|
if (is_11bit != 0) { ra := 127; }
|
||||||
|
|
||||||
/* Expect Immediate (TBF) Assignment on the same TS/TRX/BTS */
|
/* 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) */
|
/* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
|
||||||
|
@ -1174,7 +1170,7 @@ runs on MS_BTS_IFACE_CT return GsmRrMessage {
|
||||||
|
|
||||||
var BTS_CCCH_Block data_msg;
|
var BTS_CCCH_Block data_msg;
|
||||||
BTS.receive(tr_PCUIF_DATA_RR(nr.bts_nr,
|
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;
|
tr_PAG_REQ1(tr_MI_LV(mi1)))) -> value data_msg;
|
||||||
rr_pag_req1 := data_msg.rr_msg;
|
rr_pag_req1 := data_msg.rr_msg;
|
||||||
log("Rx Paging Request Type1: ", rr_pag_req1);
|
log("Rx Paging Request Type1: ", rr_pag_req1);
|
||||||
|
|
|
@ -29,7 +29,7 @@ SGSN_Components.mp_gb_cfg := {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoPCU";
|
Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoPCU";
|
||||||
PCUIF_Types.mp_pcuif_version := 10;
|
PCUIF_Types.mp_pcuif_version := 11;
|
||||||
|
|
||||||
[TESTPORT_PARAMETERS]
|
[TESTPORT_PARAMETERS]
|
||||||
*.PCU.socket_type := "SEQPACKET"
|
*.PCU.socket_type := "SEQPACKET"
|
||||||
|
|
|
@ -4858,7 +4858,22 @@ testcase TC_pcuif_fh_imm_ass_dl() runs on RAW_PCU_Test_CT {
|
||||||
|
|
||||||
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
|
/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
|
||||||
BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, f_rnd_octstring(12)));
|
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_TC_pcuif_fh_check_imm_ass(valueof(info_ind), ms.dl_tbf.rr_imm_ass);
|
||||||
f_shutdown(__BFILE__, __LINE__, final := true);
|
f_shutdown(__BFILE__, __LINE__, final := true);
|
||||||
|
|
Loading…
Reference in New Issue