<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14333">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">LAPDm_RAW_PT: Fix handling of LAPDm on SACCH (L1 header)<br><br>The  existing implementation dind't account for the two-byte L1 header<br>preset on the SACCH in both uplink and downlink.<br><br>Change-Id: Iae97ad153e9d1688306b39b5fb43ade323dbe500<br>---<br>M library/LAPDm_RAW_PT.ttcn<br>1 file changed, 20 insertions(+), 2 deletions(-)<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/33/14333/1</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 222c1aa..6166576 100644</span><br><span>--- a/library/LAPDm_RAW_PT.ttcn</span><br><span>+++ b/library/LAPDm_RAW_PT.ttcn</span><br><span>@@ -173,6 +173,10 @@</span><br><span>                 /* channel description of the currently active DCH */</span><br><span>                var ChannelDescription chan_desc;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+         /* last SACCH downlink L1 header we received */</span><br><span style="color: hsl(120, 100%, 40%);">+               var uint5_t ms_power_lvl := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                var uint8_t timing_adv := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>               var TbfParsPerTs g_tbf_ul;</span><br><span>           var TbfParsPerTs g_tbf_dl;</span><br><span>   };</span><br><span>@@ -472,14 +476,21 @@</span><br><span> </span><br><span>                       /* decode any received DATA frames for the dedicated channel and pass them up */</span><br><span>                     [] L1CTL.receive(tr_L1CTL_DATA_IND(chan_desc.chan_nr)) -> value dl {</span><br><span style="color: hsl(120, 100%, 40%);">+                               var octetstring l2;</span><br><span>                          if (dl.dl_info.link_id.c == SACCH) {</span><br><span>                                         lpd.sacch := true;</span><br><span style="color: hsl(120, 100%, 40%);">+                                    var octetstring l1 := substr(dl.payload.data_ind.payload, 0, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+                                      l2 := substr(dl.payload.data_ind.payload, 2,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               lengthof(dl.payload.data_ind.payload)-2);</span><br><span style="color: hsl(120, 100%, 40%);">+                                        ms_power_lvl := oct2int(l1[0] and4b '1F'O);</span><br><span style="color: hsl(120, 100%, 40%);">+                                   timing_adv := oct2int(l1[1]);</span><br><span>                                        /* FIXME: how to deal with UI frames in B4 format (lo length!) */</span><br><span>                            } else {</span><br><span>                                     lpd.sacch := false;</span><br><span style="color: hsl(120, 100%, 40%);">+                                   l2 := dl.payload.data_ind.payload;</span><br><span>                           }</span><br><span>                            lpd.sapi := dl.dl_info.link_id.sapi;</span><br><span style="color: hsl(0, 100%, 40%);">-                            lpd.lapdm.ab := dec_LapdmFrameAB(dl.payload.data_ind.payload);</span><br><span style="color: hsl(120, 100%, 40%);">+                                lpd.lapdm.ab := dec_LapdmFrameAB(l2);</span><br><span>                                LAPDM_SP.send(lpd);</span><br><span>                  }</span><br><span> </span><br><span>@@ -490,11 +501,18 @@</span><br><span>                                if (lpd.sacch) {</span><br><span>                                     link_id := valueof(ts_RslLinkID_SACCH(lpd.sapi));</span><br><span>                                    buf := f_pad_oct(enc_LapdmFrame(lpd.lapdm), 21, '2B'O);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       var L1ctlDataReq l1hl2 := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                           l1header := valueof(ts_SacchL1Header(ms_power_lvl, false,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                                  timing_adv)),</span><br><span style="color: hsl(120, 100%, 40%);">+                                            l2_payload := buf</span><br><span style="color: hsl(120, 100%, 40%);">+                                     };</span><br><span style="color: hsl(120, 100%, 40%);">+                                    L1CTL.send(ts_L1CTL_DATA_REQ_SACCH(chan_desc.chan_nr, link_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                           l1hl2));</span><br><span>                          } else {</span><br><span>                                     link_id := valueof(ts_RslLinkID_DCCH(lpd.sapi));</span><br><span>                                     buf := f_pad_oct(enc_LapdmFrame(lpd.lapdm), 23, '2B'O);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       L1CTL.send(ts_L1CTL_DATA_REQ(chan_desc.chan_nr, link_id, buf));</span><br><span>                              }</span><br><span style="color: hsl(0, 100%, 40%);">-                               L1CTL.send(ts_L1CTL_DATA_REQ(chan_desc.chan_nr, link_id, buf));</span><br><span>                      }</span><br><span> </span><br><span>                        /* Release dedicated channel */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14333">change 14333</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/+/14333"/><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: Iae97ad153e9d1688306b39b5fb43ade323dbe500 </div>
<div style="display:none"> Gerrit-Change-Number: 14333 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>