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. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14291 ) Change subject: BTS_Tests.ttcn: introduce TC_ho_rach() for handover RACH ...................................................................... BTS_Tests.ttcn: introduce TC_ho_rach() for handover RACH The idea of this test case (as can bee seen from its name) is to verify handover RACH detection. What we basically do is: 1. Activate a logical channel on the BTS side (HO_SYNC for now); 2. Switch the MS (e.g. trxcon) to that channel without waiting for Immediate Assignment and sending Access Burst; 3. Send an Access Burst on that channel using RA = HO_REF; 4. Wait for RSL HANDOver DETected from the BTS; 5. Release a dedicated connection. There is no way to verify if the Handover Reference received from the MS matches the one that was sent to the BTS. We can introduce a separate test case that would just send an Access Burst with RA != HO_REF. Change-Id: If2e8d9c9947823df62f4bcc9a7fcd20734ff7858 Depends on: (trxcon) Ia967820a536c99966ba2c60b63d2ea9edb093f46 --- M bts/BTS_Tests.ttcn M library/RSL_Types.ttcn 2 files changed, 79 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index edf056a..ed1d8e1 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1493,6 +1493,75 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +function f_TC_ho_rach(charstring id) runs on ConnHdlr { + var GsmFrameNumber fn; + var RSL_Message rm; + + f_l1_tune(L1CTL); + RSL.clear; + + /* Generate a random Handover Reference */ + var integer ho_ref := oct2int(f_rnd_octstring(1)); + + /* Handover Reference IE (see 3GPP TS 48.058, 9.3.9) */ + var RSL_IE ho_ref_ie := valueof(t_RSL_IE(RSL_IE_HANDO_REF, + RSL_IE_Body:{ handover_ref := ho_ref })); + + /* Activate a channel on the BTS side (no encryption) */ + f_rsl_chan_act(g_pars.chan_mode, more_ies := { ho_ref_ie }, + act_type := t_RSL_IE_ActType_HO_SYNC); + + /* Switch the MS side (e.g. trxcon) to a dedicated channel without + * waiting for Immediate Assignment and sending Access Burst */ + f_L1CTL_DM_EST_REQ(L1CTL, { false, mp_trx0_arfcn }, g_pars.chan_nr, 7); + + /* Send handover Access Burst */ + fn := f_L1CTL_RACH(L1CTL, ho_ref, chan_nr := g_pars.chan_nr); + + /* TODO: test mismatching Handover Reference, and missing IE */ + + /* Wait for handover detection */ + timer T := 3.0; + T.start; + alt { + [] RSL.receive(tr_RSL_HANDO_DET(g_pars.chan_nr)) -> value rm { + log("Handover RACH has been detected: ", rm); + setverdict(pass); + } + [] RSL.receive(tr_RSL_CHAN_RQD(?, ?, ?, ?)) -> value rm { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("RSL_CHAN_RQD was not expected: ", rm)); + } + [] RSL.receive { repeat; } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for handover RACH: FN=", fn, " RA=", ho_ref)); + } + } + + /* Release the channel */ + f_rsl_chan_deact(); + f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr); +} + +/* Test handover RACH detection */ +testcase TC_ho_rach() runs on test_CT { + var ConnHdlrPars pars; + var ConnHdlr vc_conn; + + f_init(); + + for (var integer i := 0; i < sizeof(g_AllChannels); i := i + 1) { + pars := valueof(t_Pars(g_AllChannels[i], ts_RSL_ChanMode_SIGN)); + log(testcasename(), ": Starting for ", g_AllChannels[i]); + vc_conn := f_start_handler(refers(f_TC_ho_rach), pars); + vc_conn.done; + } + + /* TODO: do the above in parallel, rather than sequentially? */ + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + /*********************************************************************** * Measurement Processing / Reporting ***********************************************************************/ @@ -5458,6 +5527,7 @@ execute( TC_rach_content() ); execute( TC_rach_count() ); execute( TC_rach_max_ta() ); + execute( TC_ho_rach() ); execute( TC_rach_load_idle_thresh0() ); execute( TC_rach_load_idle_below_thresh() ); execute( TC_rach_load_count() ); diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index 7f37720..588dc4b 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -1476,6 +1476,15 @@ t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}) } } + template RSL_Message tr_RSL_HANDO_DET(template RslChannelNr chan_nr, + template uint8_t acc_delay := ?) := { + msg_disc := tr_RSL_MsgDisc(RSL_MDISC_DCHAN, false), + msg_type := RSL_MT_HANDO_DET, + ies := { + tr_RSL_IE(RSL_IE_Body:{chan_nr := chan_nr}), + tr_RSL_IE(RSL_IE_Body:{access_delay := acc_delay}) + } + } /* COMMON CHANNEL MANAGEMENT MESSAGES */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2e8d9c9947823df62f4bcc9a7fcd20734ff7858 Gerrit-Change-Number: 14291 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy <axilirator at gmail.com> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190601/bb51a805/attachment.htm>