From 3e997369336b1391d5498ba31b7b82f42cbfb8b9 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sat, 5 Sep 2020 21:08:34 +0700 Subject: BSC_Tests/hopping: also verify handling of ARFCN 0 in MA According to 3GPP TS 44.018, table 10.5.2.21.1 "Mobile Allocation information element", in the cell allocation frequency list the absolute RF channel numbers are placed in increasing order of ARFCN, except that ARFCN 0, if included in the set, is put in the last position in the list. Let's verify that the IUT handles this corner case correctly. Change-Id: I3afadfde03f6ea766c0756a181ef129e4b05c383 Related: SYS#4868, OS#4545 --- bsc/BSC_Tests.ttcn | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'bsc') diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index da2e41ae..8934f42f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -6864,8 +6864,8 @@ private function f_TC_fh_params_gen(template integer tr_tn := (1, 3, 5)) runs on test_CT return FHParamsTrx { var FHParamsTrx fhp; - /* TODO: generate a random ARFCN, including ARFCN 0 */ - fhp.arfcn := 1; + /* Generate a random ARFCN, including ARFCN 0 */ + fhp.arfcn := f_rnd_int(3); for (var integer tn := 0; tn < 8; tn := tn + 1) { if (not match(tn, tr_tn)) { @@ -6957,7 +6957,7 @@ return template MobileAllocationLV { } /* Finally, compose the Mobile Allocation bit-mask */ - for (var integer i := 0; i < lengthof(full_mask); i := i + 1) { + for (var integer i := 1; i < lengthof(full_mask); i := i + 1) { if (full_mask[i] != '1'B) { continue; } @@ -6969,6 +6969,16 @@ return template MobileAllocationLV { } } + /* ARFCN 0 (if present) goes to the last position of the bit-mask */ + if (full_mask[0] == '1'B) { + /* FIXME: ma_mask := ma_mask & slot_mask[0]; // triggers a bug in TITAN */ + if (slot_mask[0] == '1'B) { + ma_mask := ma_mask & '1'B; + } else { + ma_mask := ma_mask & '0'B; + } + } + /* Ensure that ma_mask is octet-aligned */ var integer ma_mask_len := (lengthof(ma_mask) + 8 - 1) / 8; ma_mask := f_pad_bit(ma_mask, ma_mask_len * 8, '0'B); -- cgit v1.2.3