<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/18365">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gsmtap: Set signal level and SNR fields<br><br>lqlual (containing C/I value) is passed instead of SNR, but let's have<br>that better than nothing.<br><br>Change-Id: Ibe9502d42c8bd1b984069e7fd805dde87ecbab0c<br>---<br>M src/bts.cpp<br>M src/bts.h<br>M src/pcu_l1_if.cpp<br>M src/pdch.cpp<br>4 files changed, 21 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/65/18365/1</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 2cf219a..a75de30 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -434,6 +434,13 @@</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> {</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, uplink, trx_no, ts_no, channel, fn, data, len, &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+void BTS::send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no,</span><br><span style="color: hsl(120, 100%, 40%);">+                      uint8_t ts_no, uint8_t channel, uint32_t fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                  const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span>    uint16_t arfcn;</span><br><span> </span><br><span>  /* check if category is activated at all */</span><br><span>@@ -444,7 +451,8 @@</span><br><span>    if (uplink)</span><br><span>          arfcn |= GSMTAP_ARFCN_F_UPLINK;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     gsmtap_send(m_bts.gsmtap, arfcn, ts_no, channel, 0, fn, 0, 0, data, len);</span><br><span style="color: hsl(120, 100%, 40%);">+     gsmtap_send(m_bts.gsmtap, arfcn, ts_no, channel, 0, fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                   meas->rssi, meas->link_qual, data, len);</span><br><span> }</span><br><span> </span><br><span> static inline bool tbf_check(gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t trx_no, uint8_t ts)</span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 9986bdc..aae8b43 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -316,6 +316,9 @@</span><br><span>    void 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 style="color: hsl(120, 100%, 40%);">+ void send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no,</span><br><span style="color: hsl(120, 100%, 40%);">+                          uint8_t ts_no, uint8_t channel, uint32_t fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                          const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas);</span><br><span> </span><br><span>  /*</span><br><span>    * Below for C interface for the VTY</span><br><span>diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp</span><br><span>index 30d22bd..40e933e 100644</span><br><span>--- a/src/pcu_l1_if.cpp</span><br><span>+++ b/src/pcu_l1_if.cpp</span><br><span>@@ -347,7 +347,7 @@</span><br><span> </span><br><span>      if (rc < 0 && (bts->gsmtap_categ_mask & (1 <<PCU_GSMTAP_C_UL_UNKNOWN))) {</span><br><span>            gsmtap_send(bts->gsmtap, data_ind->arfcn | GSMTAP_ARFCN_F_UPLINK, data_ind->ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                         GSMTAP_CHANNEL_UNKNOWN, 0, data_ind->fn, 0, 0, data_ind->data, data_ind->len);</span><br><span style="color: hsl(120, 100%, 40%);">+                       GSMTAP_CHANNEL_UNKNOWN, 0, data_ind->fn, meas.rssi, meas.link_qual, data_ind->data, data_ind->len);</span><br><span>     }</span><br><span> </span><br><span>        return rc;</span><br><span>diff --git a/src/pdch.cpp b/src/pdch.cpp</span><br><span>index f7cdd89..b97f4c7 100644</span><br><span>--- a/src/pdch.cpp</span><br><span>+++ b/src/pdch.cpp</span><br><span>@@ -704,9 +704,9 @@</span><br><span> </span><br><span>    rc = decode_gsm_rlcmac_uplink(rlc_block, ul_control_block);</span><br><span>  if (ul_control_block->u.MESSAGE_TYPE == MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK)</span><br><span style="color: hsl(0, 100%, 40%);">-                bts()->send_gsmtap(PCU_GSMTAP_C_UL_DUMMY, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len);</span><br><span style="color: hsl(120, 100%, 40%);">+                bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DUMMY, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas);</span><br><span>    else</span><br><span style="color: hsl(0, 100%, 40%);">-            bts()->send_gsmtap(PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len);</span><br><span style="color: hsl(120, 100%, 40%);">+         bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas);</span><br><span> </span><br><span>         if(rc < 0) {</span><br><span>              LOGP(DRLCMACUL, LOGL_ERROR, "Dropping Uplink Control Block with invalid "</span><br><span>@@ -789,8 +789,9 @@</span><br><span>     * control blocks (see 44.060, section 10.3, 1st par.)</span><br><span>        */</span><br><span>  if (mcs_is_edge(cs)) {</span><br><span style="color: hsl(0, 100%, 40%);">-          bts()->send_gsmtap(PCU_GSMTAP_C_UL_DATA_EGPRS, true, trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                 data, data_len);</span><br><span style="color: hsl(120, 100%, 40%);">+           bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DATA_EGPRS, true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data, data_len, meas);</span><br><span>               if (!bts()->bts_data()->egprs_enabled) {</span><br><span>                       LOGP(DRLCMACUL, LOGL_ERROR,</span><br><span>                          "Got %s RLC block but EGPRS is not enabled\n",</span><br><span>@@ -798,8 +799,9 @@</span><br><span>                       return 0;</span><br><span>            }</span><br><span>    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                bts()->send_gsmtap(PCU_GSMTAP_C_UL_DATA_GPRS, true, trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  data, data_len);</span><br><span style="color: hsl(120, 100%, 40%);">+           bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DATA_GPRS, true,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    data, data_len, meas);</span><br><span>       }</span><br><span> </span><br><span>        LOGP(DRLCMACUL, LOGL_DEBUG, "  UL data: %s\n", osmo_hexdump(data, len));</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/18365">change 18365</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/+/18365"/><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: Ibe9502d42c8bd1b984069e7fd805dde87ecbab0c </div>
<div style="display:none"> Gerrit-Change-Number: 18365 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>