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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: fix send_gsmtap_rach(): properly pack 11 bit RA<br><br>According to 3GPP TS 44.004, section 7.4a, two alternative RACH<br>block formats are specified: 8 bit (1 octet) and 11 bit. The<br>bit order is LSB (right to left), byte order is MSB.<br><br>In PCUIF RACH.ind structure (see gsm_pcu_if_rach_ind) we use<br>a field of type uint16_t to store RA values regardles of the<br>block format. Thus when packing it to bytes, we cannot just<br>cast uint16_t* to uint8_t*, we need to do some bit shifting.<br><br>Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb<br>---<br>M src/bts.cpp<br>1 file changed, 14 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index 0482168..617cd78 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -434,9 +434,21 @@</span><br><span>                     const struct rach_ind_params *rip)</span><br><span> {</span><br><span>   struct pcu_l1_meas meas;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t ra_buf[2];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* 3GPP TS 44.004 defines 11 bit RA as follows: xxxx xxxx  .... .yyy</span><br><span style="color: hsl(120, 100%, 40%);">+   * On the PCUIF, we get 16 bit machne dependent number (LE/BE)</span><br><span style="color: hsl(120, 100%, 40%);">+         * Over GSMTAP we send the following:           xxxx xxxx  yyy. ....</span><br><span style="color: hsl(120, 100%, 40%);">+   * This simplifies parsing in Wireshark using its CSN.1 codec. */</span><br><span style="color: hsl(120, 100%, 40%);">+     if (rip->is_11bit) {</span><br><span style="color: hsl(120, 100%, 40%);">+               ra_buf[0] = (uint8_t) ((rip->ra >> 3) & 0xff);</span><br><span style="color: hsl(120, 100%, 40%);">+           ra_buf[1] = (uint8_t) ((rip->ra << 5) & 0xff);</span><br><span style="color: hsl(120, 100%, 40%);">+   } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              ra_buf[0] = (uint8_t) (rip->ra & 0xff);</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  send_gsmtap_meas(categ, true, rip->trx_nr, rip->ts_nr, channel,</span><br><span style="color: hsl(0, 100%, 40%);">-                    rfn_to_fn(rip->rfn), (uint8_t *) &rip->ra,</span><br><span style="color: hsl(0, 100%, 40%);">-                    /* TODO: properly pack 11 bit RA */</span><br><span style="color: hsl(120, 100%, 40%);">+                   rfn_to_fn(rip->rfn), ra_buf,</span><br><span>                      rip->is_11bit ? 2 : 1, &meas);</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17709">change 17709</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-pcu/+/17709"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb </div>
<div style="display:none"> Gerrit-Change-Number: 17709 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>