This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. Change subject: bts: Add TC_rach_content and TC_rach_count ...................................................................... bts: Add TC_rach_content and TC_rach_count Change-Id: I87abd7172b52aaaaf59bb079de1df99a9edd7381 --- M bts/BTS_Tests.ttcn 1 file changed, 86 insertions(+), 11 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 0679df7..dc43cd1 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -465,21 +465,95 @@ * RACH Handling ***********************************************************************/ -function f_TC_chan_req(charstring id) runs on ConnHdlr { +/* like L1SAP_IS_PACKET_RACH */ +private function ra_is_ps(OCT1 ra) return boolean { + if (ra and4b 'F0'O == '70'O) { + return true; + } else if (ra and4b '0F'O == '0F'O) { + return true; + } + return false; +} + +/* generate a random RACH for circuit-switched */ +private function f_rnd_ra_cs() return OCT1 { + var OCT1 ra; + do { + ra := f_rnd_octstring(1); + } while (ra_is_ps(ra)); + return ra; +} + +/* Send 1000 RACH requests and check their RA+FN on the RSL side */ +testcase TC_rach_content() runs on test_CT { + f_init(testcasename()); + f_init_l1ctl(); f_l1_tune(L1CTL); - RSL.clear; - //L1.send(DCCH_establish_req:{ra := 23}); - /* This arrives on CCHAN, so we cannot test here */ - //RSL.receive(tr_RSL_CHAN_RQD(int2oct(23,1))); + var GsmFrameNumber fn_last := 0; + for (var integer i := 0; i < 1000; i := i+1) { + var OCT1 ra := f_rnd_ra_cs(); + var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); + if (fn == fn_last) { + setverdict(fail, "Two RACH in same FN?!?"); + self.stop; + } + fn_last := fn; + + timer T := 5.0; + alt { + [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(ra, fn, ?))) { + T.stop; + } + [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(?, ?, ?))) { + setverdict(fail, "Unexpected CHAN RQD"); + self.stop; + } + [] RSL_CCHAN.receive { repeat; } + [] T.timeout { + setverdict(fail, "Timeout waiting for CHAN RQD"); + self.stop; + } + } + } + setverdict(pass); } -testcase TC_chan_req() runs on test_CT { - var ConnHdlr vc_conn; - var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN)); + +/* Send 1000 RACH Requests (flood ~ 89/s) and count if count(Abis) == count(Um) */ +testcase TC_rach_count() runs on test_CT { f_init(testcasename()); - vc_conn := f_start_handler(refers(f_TC_chan_req), pars); - vc_conn.done; + f_init_l1ctl(); + f_l1_tune(L1CTL); + + var GsmFrameNumber fn_last := 0; + for (var integer i := 0; i < 1000; i := i+1) { + var OCT1 ra := f_rnd_ra_cs(); + var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); + if (fn == fn_last) { + setverdict(fail, "Two RACH in same FN?!?"); + self.stop; + } + fn_last := fn; + } + var integer rsl_chrqd := 0; + timer T := 3.0; + alt { + [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(?,?))) { + rsl_chrqd := rsl_chrqd + 1; + T.stop; + T.start; + repeat; + } + [] RSL_CCHAN.receive { repeat; } + [] T.timeout { } + } + if (rsl_chrqd == 1000) { + setverdict(pass); + } else { + setverdict(fail, "Received only ", rsl_chrqd, " out of 1000 RACH"); + } } + /*********************************************************************** * Measurement Processing / Reporting @@ -1655,7 +1729,8 @@ execute( TC_chan_act_react() ); execute( TC_chan_deact_not_active() ); execute( TC_chan_act_wrong_nr() ); - execute( TC_chan_req() ); + execute( TC_rach_content() ); + execute( TC_rach_count() ); execute( TC_meas_res_sign_tchf() ); execute( TC_meas_res_sign_tchh() ); execute( TC_meas_res_sign_sdcch4() ); -- To view, visit https://gerrit.osmocom.org/6923 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I87abd7172b52aaaaf59bb079de1df99a9edd7381 Gerrit-PatchSet: 3 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder