<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>