pcu: Introduce func helper f_imm_ass_verify_ul_tbf_ass()

Change-Id: I5b8a7ca5a4d0f905bf68949978811b139568c237
This commit is contained in:
Pau Espin 2019-10-04 19:31:02 +02:00
parent f787b0953c
commit 6c1b4be6c3
1 changed files with 28 additions and 16 deletions

View File

@ -549,6 +549,28 @@ runs on RAW_PCU_Test_CT return boolean {
return false;
}
private function f_imm_ass_verify_ul_tbf_ass(GsmRrMessage rr_imm_ass, out PacketUlAssign ul_tbf_ass)
runs on RAW_PCU_Test_CT return boolean {
/* Make sure we received an UL TBF Assignment */
if (match(rr_imm_ass, tr_IMM_TBF_ASS(dl := false, rest := tr_IaRestOctets_ULAss(?)))) {
ul_tbf_ass := rr_imm_ass.payload.imm_ass.rest_octets.hh.pa.uldl.ass.ul;
log("Rx Uplink TBF assignment: ", ul_tbf_ass);
setverdict(pass);
} else {
setverdict(fail, "Failed to match UL TBF Assignment");
return false;
}
/* Make sure we have got a TBF with Dynamic Block Allocation */
if (ul_tbf_ass.dynamic == omit) {
setverdict(fail, "Single Block Allocation is not handled by ", testcasename());
return false;
}
return true;
}
/* Enqueue DATA.ind (both TDMA frame and block numbers to be patched) */
private function f_pcuif_tx_data_ind(octetstring data, int16_t lqual_cb := 0)
runs on RAW_PCU_Test_CT {
@ -847,10 +869,10 @@ private template integer CS3_lqual_dB_range := (7 .. 13);
private template integer CS4_lqual_dB_range := (12 .. infinity);
testcase TC_cs_lqual_ul_tbf() runs on RAW_PCU_Test_CT {
var GsmRrMessage rr_imm_ass;
var PacketUlAssign ul_tbf_ass;
var RlcmacDlBlock dl_block;
var PCUIF_Message pcu_msg;
var GsmRrMessage rr_msg;
var octetstring data;
var boolean ok;
@ -858,25 +880,15 @@ testcase TC_cs_lqual_ul_tbf() runs on RAW_PCU_Test_CT {
f_init_raw(testcasename());
/* Establish an Uplink TBF */
ok := f_establish_tbf(rr_msg);
ok := f_establish_tbf(rr_imm_ass);
if (not ok) {
setverdict(fail, "Failed to establish an Uplink TBF");
setverdict(fail, "Failed to establish TBF");
mtc.stop;
}
/* Make sure we received an UL TBF Assignment */
if (match(rr_msg, tr_IMM_TBF_ASS(dl := false, rest := tr_IaRestOctets_ULAss(?)))) {
ul_tbf_ass := rr_msg.payload.imm_ass.rest_octets.hh.pa.uldl.ass.ul;
log("Rx Uplink TBF assignment: ", ul_tbf_ass);
setverdict(pass);
} else {
setverdict(fail, "Failed to match UL TBF Assignment");
mtc.stop;
}
/* Make sure we have got a TBF with Dynamic Block Allocation */
if (ul_tbf_ass.dynamic == omit) {
setverdict(fail, "Single Block Allocation is not handled by ", testcasename());
ok := f_imm_ass_verify_ul_tbf_ass(rr_imm_ass, ul_tbf_ass);
if (not ok) {
setverdict(fail, "Immediate Assignment not an Uplink TBF");
mtc.stop;
}