<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15410">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">PCU_Tests_RAW.ttcn: introduce TC_ta_init_prach to test initial TA<br><br>Change-Id: I21f76ae723519c0eb54515922a05ca8045b00ade<br>---<br>M library/GSM_RR_Types.ttcn<br>M pcu/PCU_Tests_RAW.ttcn<br>2 files changed, 68 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/15410/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn</span><br><span>index 457f0f5..987f808 100644</span><br><span>--- a/library/GSM_RR_Types.ttcn</span><br><span>+++ b/library/GSM_RR_Types.ttcn</span><br><span>@@ -589,7 +589,8 @@</span><br><span>            /* TODO: starting time TLV */</span><br><span>                IaRestOctets                    rest_octets optional</span><br><span>         } with { variant (chan_desc) "PRESENCE(ded_or_tbf.tbf = false)"</span><br><span style="color: hsl(0, 100%, 40%);">-                variant (pkt_chan_desc) "PRESENCE(ded_or_tbf.tbf = true)" };</span><br><span style="color: hsl(120, 100%, 40%);">+                variant (pkt_chan_desc) "PRESENCE(ded_or_tbf.tbf = true)"</span><br><span style="color: hsl(120, 100%, 40%);">+           variant "PADDING(184), PADDING_PATTERN('00101011'B)" };</span><br><span> </span><br><span>       /* 9.1.20 */</span><br><span>         type record ReqRefWaitInd {</span><br><span>@@ -766,6 +767,31 @@</span><br><span>           }</span><br><span>    };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        template GsmRrMessage tr_IMM_TBF_ASS(template boolean dl := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template uint8_t ra := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template GsmFrameNumber fn := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      template TimingAdvance ta := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template PacketChannelDescription ch_desc := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template IaRestOctets rest := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            header := t_RrHeader(IMMEDIATE_ASSIGNMENT, ?),</span><br><span style="color: hsl(120, 100%, 40%);">+                payload := {</span><br><span style="color: hsl(120, 100%, 40%);">+                  imm_ass := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          ded_or_tbf := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       spare := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   tma := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     downlink := dl,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       tbf := true</span><br><span style="color: hsl(120, 100%, 40%);">+                           },</span><br><span style="color: hsl(120, 100%, 40%);">+                            page_mode := PAGE_MODE_NORMAL,</span><br><span style="color: hsl(120, 100%, 40%);">+                                chan_desc := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                            pkt_chan_desc := ch_desc,</span><br><span style="color: hsl(120, 100%, 40%);">+                             req_ref := tr_compute_ReqRef(ra, fn),</span><br><span style="color: hsl(120, 100%, 40%);">+                         timing_advance := ta,</span><br><span style="color: hsl(120, 100%, 40%);">+                         mobile_allocation := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                               rest_octets := rest</span><br><span style="color: hsl(120, 100%, 40%);">+                   }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     };</span><br><span> </span><br><span>       template (value) GsmRrL3Message ts_MEAS_REP(boolean valid, uint6_t rxl_f, uint6_t rxl_s,</span><br><span>                                               uint3_t rxq_f, uint3_t rxq_s,</span><br><span>diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn</span><br><span>index 4732da6..03d914c 100644</span><br><span>--- a/pcu/PCU_Tests_RAW.ttcn</span><br><span>+++ b/pcu/PCU_Tests_RAW.ttcn</span><br><span>@@ -438,6 +438,44 @@</span><br><span>  setverdict(pass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Test of correct Timing Advance at the time of TBF establishment</span><br><span style="color: hsl(120, 100%, 40%);">+ * (derived from timing offset during PRACH request). */</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_ta_init_prach() runs on RAW_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Initialize NS codec</span><br><span style="color: hsl(120, 100%, 40%);">+         * TODO: do we really need it? */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init_ns_codec();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Initialize PCU interface (emulate the BTS) */</span><br><span style="color: hsl(120, 100%, 40%);">+      f_init_pcuif();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Packet Immediate Assignment on AGCH */</span><br><span style="color: hsl(120, 100%, 40%);">+     var template PCUIF_Message data_req_tpl := tr_PCUIF_DATA_REQ(</span><br><span style="color: hsl(120, 100%, 40%);">+         bts_nr := 0, trx_nr := 0, ts_nr := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+         sapi := PCU_IF_SAPI_AGCH);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  for (var integer ta := 0; ta < 64; ta := ta + 16) {</span><br><span style="color: hsl(120, 100%, 40%);">+                /* Send an Access Burst (8-bit)</span><br><span style="color: hsl(120, 100%, 40%);">+                * FIXME: properly encode RA,</span><br><span style="color: hsl(120, 100%, 40%);">+          * HACK: we're using the same TDMA FN */</span><br><span style="color: hsl(120, 100%, 40%);">+          f_pcuif_tx(ts_PCUIF_RACH_IND(bts_nr := 0, ra := oct2int('3A'O), is_11bit := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             burst_type := BURST_TYPE_0,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           fn := 1337, arfcn := 871,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             qta := ta * 4));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Expect Immediate (TBF) Assignment on TS0/AGCH */</span><br><span style="color: hsl(120, 100%, 40%);">+           data_req_tpl.u.data_req.data := decmatch tr_IMM_TBF_ASS(</span><br><span style="color: hsl(120, 100%, 40%);">+                      dl := false, ra := oct2int('3A'O), fn := 1337, ta := ta);</span><br><span style="color: hsl(120, 100%, 40%);">+             alt {</span><br><span style="color: hsl(120, 100%, 40%);">+         [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, data_req_tpl)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     log("Rx Immediate Assignment for UL TBF");</span><br><span style="color: hsl(120, 100%, 40%);">+                  setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span style="color: hsl(120, 100%, 40%);">+             [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, PCUIF_Message:?)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> control {</span><br><span>        execute( TC_ns_reset() );</span><br><span>@@ -450,6 +488,9 @@</span><br><span>      execute( TC_ns_so_block() );</span><br><span> </span><br><span>     execute( TC_pcuif_suspend() );</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Timing Advance tests (see GSM TS 43.064, section 6) */</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_ta_init_prach() );</span><br><span> }</span><br><span> </span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15410">change 15410</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15410"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I21f76ae723519c0eb54515922a05ca8045b00ade </div>
<div style="display:none"> Gerrit-Change-Number: 15410 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>