<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17708">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: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP<br><br>Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c<br>---<br>M src/bts.cpp<br>M src/bts.h<br>M src/pcu_vty.c<br>3 files changed, 18 insertions(+), 3 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 26cb258..0482168 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -430,6 +430,16 @@</span><br><span>     return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void BTS::send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel,</span><br><span style="color: hsl(120, 100%, 40%);">+                          const struct rach_ind_params *rip)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      struct pcu_l1_meas meas;</span><br><span style="color: hsl(120, 100%, 40%);">+      send_gsmtap_meas(categ, true, rip->trx_nr, rip->ts_nr, channel,</span><br><span style="color: hsl(120, 100%, 40%);">+                  rfn_to_fn(rip->rfn), (uint8_t *) &rip->ra,</span><br><span style="color: hsl(120, 100%, 40%);">+                  /* TODO: properly pack 11 bit RA */</span><br><span style="color: hsl(120, 100%, 40%);">+                   rip->is_11bit ? 2 : 1, &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void BTS::send_gsmtap(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no,</span><br><span>                  uint8_t ts_no, uint8_t channel, uint32_t fn,</span><br><span>                 const uint8_t *data, unsigned int len)</span><br><span>@@ -801,9 +811,7 @@</span><br><span>   uint32_t Fn = rfn_to_fn(rip->rfn);</span><br><span>        uint8_t ta = qta2ta(rip->qta);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, rip->trx_nr, rip->ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-              GSMTAP_CHANNEL_RACH, Fn, (uint8_t *) &rip->ra,</span><br><span style="color: hsl(0, 100%, 40%);">-                   rip->is_11bit ? 2 : 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        send_gsmtap_rach(PCU_GSMTAP_C_UL_RACH, GSMTAP_CHANNEL_RACH, rip);</span><br><span> </span><br><span>        LOGP(DRLCMAC, LOGL_DEBUG, "MS requests Uplink resource on CCCH/RACH: "</span><br><span>          "ra=0x%02x (%d bit) Fn=%u qta=%d\n", rip->ra,</span><br><span>@@ -908,6 +916,8 @@</span><br><span>        struct gprs_rlcmac_pdch *pdch;</span><br><span>       uint8_t ss;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       send_gsmtap_rach(PCU_GSMTAP_C_UL_PTCCH, GSMTAP_CHANNEL_PTCCH, rip);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>        /* Prevent buffer overflow */</span><br><span>        if (rip->trx_nr >= ARRAY_SIZE(bts->trx) || rip->ts_nr >= 8) {</span><br><span>                 LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Rx malformed "</span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index e6b7aa3..edccc28 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -67,6 +67,7 @@</span><br><span>       PCU_GSMTAP_C_UL_DATA_GPRS       = 18,   /* uplink GPRS data blocks */</span><br><span>        PCU_GSMTAP_C_UL_DATA_EGPRS      = 19,   /* uplink EGPRS data blocks */</span><br><span>       PCU_GSMTAP_C_UL_RACH            = 20,   /* uplink RACH bursts */</span><br><span style="color: hsl(120, 100%, 40%);">+      PCU_GSMTAP_C_UL_PTCCH           = 21,   /* uplink PTCCH bursts */</span><br><span> };</span><br><span> </span><br><span> struct BTS;</span><br><span>@@ -336,6 +337,8 @@</span><br><span>     void send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no,</span><br><span>                         uint8_t ts_no, uint8_t channel, uint32_t fn,</span><br><span>                         const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas);</span><br><span style="color: hsl(120, 100%, 40%);">+       void send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel,</span><br><span style="color: hsl(120, 100%, 40%);">+                              const struct rach_ind_params *rip);</span><br><span> </span><br><span>        /*</span><br><span>    * Below for C interface for the VTY</span><br><span>diff --git a/src/pcu_vty.c b/src/pcu_vty.c</span><br><span>index 9cae777..99c92b7 100644</span><br><span>--- a/src/pcu_vty.c</span><br><span>+++ b/src/pcu_vty.c</span><br><span>@@ -38,6 +38,7 @@</span><br><span>    { PCU_GSMTAP_C_UL_DATA_GPRS,    "ul-data-gprs" },</span><br><span>  { PCU_GSMTAP_C_UL_DATA_EGPRS,   "ul-data-egprs" },</span><br><span>         { PCU_GSMTAP_C_UL_RACH,         "ul-rach" },</span><br><span style="color: hsl(120, 100%, 40%);">+        { PCU_GSMTAP_C_UL_PTCCH,        "ul-ptcch" },</span><br><span> </span><br><span>  { 0, NULL }</span><br><span> };</span><br><span>@@ -58,6 +59,7 @@</span><br><span>        { PCU_GSMTAP_C_UL_DATA_GPRS,    "Uplink Data Blocks (GPRS)" },</span><br><span>     { PCU_GSMTAP_C_UL_DATA_EGPRS,   "Uplink Data Blocks (EGPRS)" },</span><br><span>    { PCU_GSMTAP_C_UL_RACH,         "Uplink RACH Bursts" },</span><br><span style="color: hsl(120, 100%, 40%);">+     { PCU_GSMTAP_C_UL_PTCCH,        "Uplink PTCCH Bursts" },</span><br><span> </span><br><span>       { 0, NULL }</span><br><span> };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/17708">change 17708</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/+/17708"/><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: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c </div>
<div style="display:none"> Gerrit-Change-Number: 17708 </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: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>