Harald Welte has submitted this change and it was merged.

Change subject: bts: TC_rach_max_ta
......................................................................


bts: TC_rach_max_ta

Change-Id: Idd7335f753f8b1a7d91274dc2c99d51d882309d3
---
M bts/BTS_Tests.ttcn
1 file changed, 64 insertions(+), 0 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 dc43cd1..9cb0f72 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -53,6 +53,10 @@
        /* L1CTL port (for classic tests) */
        port L1CTL_PT L1CTL;
 
+       /* TRXC port (for classic tests) */
+       port TRXC_CODEC_PT BB_TRXC;
+       var integer g_bb_trxc_conn_id;
+
        /* SI configuration */
        var SystemInformationConfig si_cfg := {
                bcch_extended := false,
@@ -554,6 +558,65 @@
        }
 }
 
+private function f_main_trxc_connect() runs on test_CT {
+       map(self:BB_TRXC, system:BB_TRXC);
+       var Result res;
+       res := TRXC_CodecPort_CtrlFunct.f_IPL4_connect(BB_TRXC, "127.0.0.1", 
mp_bb_trxc_port,
+                                                       "127.0.0.1", 0, -1, 
{udp:={}}, {});
+       g_bb_trxc_conn_id := res.connId;
+}
+
+private function f_rach_toffs(int16_t toffs256, boolean expect_pass) runs on 
test_CT {
+       /* tell fake_trx to use a given timing offset for all bursts */
+       BB_TRXC.send(ts_TRXC_Send(g_bb_trxc_conn_id, 
ts_TRXC_FAKE_TIMING(toffs256)));
+       f_sleep(0.5);
+
+       /* Transmit RACH request + wait for confirmation */
+       var OCT1 ra := f_rnd_ra_cs();
+       var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra));
+
+       /* Check for expected result */
+       timer T := 1.5;
+       T.start;
+       alt {
+       [expect_pass] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(ra, fn))) {
+               setverdict(pass);
+               }
+       [not expect_pass] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_CHAN_RQD(ra, fn))) 
{
+               setverdict(fail, "RACH passed but was expected to be dropped");
+               }
+       [] RSL_CCHAN.receive { repeat; }
+       [not expect_pass] T.timeout {
+               setverdict(pass);
+               }
+       [expect_pass] T.timeout {
+               setverdict(fail, "Timeout waiting for CHAN RQD");
+               }
+       }
+}
+
+/* Test if dropping of RACH Based on NM_ATT_MAX_TA works */
+testcase TC_rach_max_ta() runs on test_CT {
+       f_init(testcasename());
+       f_init_l1ctl();
+       f_l1_tune(L1CTL);
+       f_main_trxc_connect();
+       f_sleep(1.0);
+
+       /* default max-ta is 63 (full range of GSM timing advance */
+
+       /* negative TA must not happen */
+       f_rach_toffs(-10*256, false);
+
+       /* 0 / 32 / 63 bits is legal / permitted */
+       f_rach_toffs(0, true);
+       f_rach_toffs(32*256, true);
+       f_rach_toffs(63*256, true);
+
+       /* more than 63 bits is not legal / permitted */
+       f_rach_toffs(64*256, false);
+       f_rach_toffs(127*256, false);
+}
 
 /***********************************************************************
  * Measurement Processing / Reporting
@@ -1731,6 +1794,7 @@
        execute( TC_chan_act_wrong_nr() );
        execute( TC_rach_content() );
        execute( TC_rach_count() );
+       execute( TC_rach_max_ta() );
        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/6924
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idd7335f753f8b1a7d91274dc2c99d51d882309d3
Gerrit-PatchSet: 3
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder

Reply via email to