<p>fixeria <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15457">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library/LAPDm_RAW_PT.ttcn: use templates from GSM_RR_Types<br><br>Get rid of t_IMM_ASS_TBF_UL_DYN, use tr_IMM_TBF_ASS instead. Also,<br>use both tr_PacketUlDynAssign and tr_PacketUlSglAssign for matching<br>UL TBF assignment.<br><br>Change-Id: Icb7dab04a1e2a833c14754d872bd4b85af3d58a5<br>---<br>M library/LAPDm_RAW_PT.ttcn<br>1 file changed, 24 insertions(+), 16 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn</span><br><span>index 5a8d9ea..75d18d9 100644</span><br><span>--- a/library/LAPDm_RAW_PT.ttcn</span><br><span>+++ b/library/LAPDm_RAW_PT.ttcn</span><br><span>@@ -261,15 +261,6 @@</span><br><span>              a[idx] := tfi_usf;</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* Match an IMM.ASS for an Uplink TBF with a dynamic allocation</span><br><span style="color: hsl(0, 100%, 40%);">-  * FIXME: this template has nothing to do with LAPDm, move to GSM_RR_Types.ttcn */</span><br><span style="color: hsl(0, 100%, 40%);">-      template ImmediateAssignment t_IMM_ASS_TBF_UL_DYN(uint8_t ra, GsmFrameNumber fn) modifies t_IMM_ASS := {</span><br><span style="color: hsl(0, 100%, 40%);">-                ded_or_tbf := { spare := ?, tma := ?, downlink := false, tbf := true},</span><br><span style="color: hsl(0, 100%, 40%);">-          chan_desc := omit,</span><br><span style="color: hsl(0, 100%, 40%);">-              pkt_chan_desc := ?,</span><br><span style="color: hsl(0, 100%, 40%);">-             rest_octets := tr_IaRestOctets_ULAss(tr_PacketUlDynAssign())</span><br><span style="color: hsl(0, 100%, 40%);">-    };</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>   template (value) RLCMAC_ph_data_req ts_PH_DATA_ABS(uint8_t tbf_id, GprsCodingScheme cs,</span><br><span>                                                         uint8_t ts, uint32_t fn, Arfcn arfcn,</span><br><span>                                                        RlcmacUlBlock block) := {</span><br><span>@@ -283,8 +274,10 @@</span><br><span>          }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   private function f_establish_tbf(uint8_t ra) runs on lapdm_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+       private function f_establish_tbf(uint8_t ra) runs on lapdm_CT return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+                var template GsmRrMessage imm_ass_rr;</span><br><span>                var ImmediateAssignment imm_ass;</span><br><span style="color: hsl(120, 100%, 40%);">+              var PacketUlAssign pkt_ul_ass;</span><br><span>               var GsmFrameNumber rach_fn;</span><br><span>          var TfiUsfArr tua := f_TfiUsfArrInit();</span><br><span> </span><br><span>@@ -294,20 +287,35 @@</span><br><span>          /* wait for receiving matching IMM ASS */</span><br><span>            imm_ass := f_L1CTL_WAIT_IMM_ASS(L1CTL, ra, rach_fn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                if (match(imm_ass, t_IMM_ASS_TBF_UL_DYN(ra, rach_fn))) {</span><br><span style="color: hsl(120, 100%, 40%);">+              /* make sure we got *Packet* (Uplink) Immediate Assignment */</span><br><span style="color: hsl(120, 100%, 40%);">+         imm_ass_rr := tr_IMM_TBF_ASS(dl := false, ra := ra, fn := rach_fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         rest := tr_IaRestOctets_ULAss(?));</span><br><span style="color: hsl(120, 100%, 40%);">+               if (not match(imm_ass, imm_ass_rr.payload.imm_ass)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 log("Failed to match Packet Immediate Assignment");</span><br><span style="color: hsl(120, 100%, 40%);">+                 return false;</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%);">+           /* decapsulate PacketUlAssign for further matching */</span><br><span style="color: hsl(120, 100%, 40%);">+         pkt_ul_ass := imm_ass.rest_octets.hh.pa.uldl.ass.ul;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                /* Dynamic Block Allocation */</span><br><span style="color: hsl(120, 100%, 40%);">+                if (match(pkt_ul_ass, tr_PacketUlDynAssign)) {</span><br><span>                       set_ph_state(PH_STATE_TBF);</span><br><span> </span><br><span>                      /* store/save channel description */</span><br><span>                         //chan_desc := imm_ass.chan_desc;</span><br><span> </span><br><span>                        /* Important: ARFCN, TN, TSC, USF, USF_GRANULARITY, CH_CODING_CMD */</span><br><span style="color: hsl(0, 100%, 40%);">-                    f_TfiUsfArrSet(tua, imm_ass.pkt_chan_desc.tn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  imm_ass.rest_octets.hh.pa.uldl.ass.ul.dynamic.usf);</span><br><span style="color: hsl(120, 100%, 40%);">+                    f_TfiUsfArrSet(tua, imm_ass.pkt_chan_desc.tn, pkt_ul_ass.dynamic.usf);</span><br><span>                       f_L1CTL_TBF_CFG(L1CTL, true, tua);</span><br><span style="color: hsl(0, 100%, 40%);">-              } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        /* FIXME: single block uplink allocation */</span><br><span style="color: hsl(0, 100%, 40%);">-                     log("Failed to match ", t_IMM_ASS_TBF_UL_DYN(ra, rach_fn));</span><br><span style="color: hsl(120, 100%, 40%);">+                 return true;</span><br><span style="color: hsl(120, 100%, 40%);">+          /* FIXME: Single Block Allocation */</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (match(pkt_ul_ass, tr_PacketUlSglAssign)) {</span><br><span>                        log("Non-dynamic UL TBF assignment not supported yet");</span><br><span style="color: hsl(120, 100%, 40%);">+                     return false;</span><br><span style="color: hsl(120, 100%, 40%);">+         } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                      log("Failed to match Uplink Block Allocation: ", pkt_ul_ass);</span><br><span style="color: hsl(120, 100%, 40%);">+                       return false;</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/+/15457">change 15457</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/+/15457"/><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: Icb7dab04a1e2a833c14754d872bd4b85af3d58a5 </div>
<div style="display:none"> Gerrit-Change-Number: 15457 </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-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>