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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Improve DATA.ind logging<br><br>pdch object is obtained prior in the stack so it is available for<br>logging.<br><br>Change-Id: If51f7bdbd626a44c7b8e182a3460dad49fda6ec3<br>---<br>M src/osmo-bts-litecell15/lc15_l1_if.c<br>M src/osmo-bts-oc2g/oc2g_l1_if.c<br>M src/osmo-bts-sysmo/sysmo_l1_if.c<br>M src/pcu_l1_if.cpp<br>M src/pcu_l1_if.h<br>5 files changed, 46 insertions(+), 31 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-litecell15/lc15_l1_if.c b/src/osmo-bts-litecell15/lc15_l1_if.c</span><br><span>index c87edaf..99c82a1 100644</span><br><span>--- a/src/osmo-bts-litecell15/lc15_l1_if.c</span><br><span>+++ b/src/osmo-bts-litecell15/lc15_l1_if.c</span><br><span>@@ -194,11 +194,13 @@</span><br><span> {</span><br><span>    int rc = 0;</span><br><span>  struct gprs_rlcmac_bts *bts;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct gprs_rlcmac_pdch *pdch;</span><br><span>       struct pcu_l1_meas meas = {0};</span><br><span>       uint8_t *data;</span><br><span>       uint8_t data_len;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DL1IF, "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span>              get_value_string(lc15bts_l1sapi_names, data_ind->sapi),</span><br><span>           data_ind->hLayer2,</span><br><span>                osmo_hexdump(data_ind->msgUnitParam.u8Buffer,</span><br><span>@@ -224,12 +226,14 @@</span><br><span>                     data = NULL;</span><br><span>                         data_len = 0;</span><br><span>                }</span><br><span style="color: hsl(0, 100%, 40%);">-               pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  data_len, data_ind->u32Fn, &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+               pdch = &bts->trx[fl1h->trx_no].pdch[data_ind->u8Tn];</span><br><span style="color: hsl(120, 100%, 40%);">+             pcu_rx_data_ind_pdtch(bts, pdch, data, data_len, data_ind->u32Fn, &meas);</span><br><span>             break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DL1IF, LOGL_NOTICE, "Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   get_value_string(lc15bts_l1sapi_names, data_ind->sapi));</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGP(DL1IF, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                   "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span style="color: hsl(120, 100%, 40%);">+               get_value_string(lc15bts_l1sapi_names, data_ind->sapi));</span><br><span>             break;</span><br><span>       }</span><br><span> </span><br><span>diff --git a/src/osmo-bts-oc2g/oc2g_l1_if.c b/src/osmo-bts-oc2g/oc2g_l1_if.c</span><br><span>index 5d2ce69..101bd56 100644</span><br><span>--- a/src/osmo-bts-oc2g/oc2g_l1_if.c</span><br><span>+++ b/src/osmo-bts-oc2g/oc2g_l1_if.c</span><br><span>@@ -194,11 +194,13 @@</span><br><span> {</span><br><span>      int rc = 0;</span><br><span>  struct gprs_rlcmac_bts *bts;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct gprs_rlcmac_pdch *pdch;</span><br><span>       struct pcu_l1_meas meas = {0};</span><br><span>       uint8_t *data;</span><br><span>       uint8_t data_len;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DL1IF, "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span>              get_value_string(oc2gbts_l1sapi_names, data_ind->sapi),</span><br><span>           data_ind->hLayer2,</span><br><span>                osmo_hexdump(data_ind->msgUnitParam.u8Buffer,</span><br><span>@@ -229,12 +231,14 @@</span><br><span>                     data = NULL;</span><br><span>                         data_len = 0;</span><br><span>                }</span><br><span style="color: hsl(0, 100%, 40%);">-               pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  data_len, data_ind->u32Fn, &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+               pdch = &bts->trx[fl1h->trx_no].pdch[data_ind->u8Tn];</span><br><span style="color: hsl(120, 100%, 40%);">+             pcu_rx_data_ind_pdtch(bts, pdch, data, data_len, data_ind->u32Fn, &meas);</span><br><span>             break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DL1IF, LOGL_NOTICE, "Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   get_value_string(oc2gbts_l1sapi_names, data_ind->sapi));</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGP(DL1IF, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                   "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span style="color: hsl(120, 100%, 40%);">+               get_value_string(oc2gbts_l1sapi_names, data_ind->sapi));</span><br><span>             break;</span><br><span>       }</span><br><span> </span><br><span>diff --git a/src/osmo-bts-sysmo/sysmo_l1_if.c b/src/osmo-bts-sysmo/sysmo_l1_if.c</span><br><span>index 4faccaa..eb869e1 100644</span><br><span>--- a/src/osmo-bts-sysmo/sysmo_l1_if.c</span><br><span>+++ b/src/osmo-bts-sysmo/sysmo_l1_if.c</span><br><span>@@ -176,12 +176,14 @@</span><br><span> {</span><br><span>      int rc = 0;</span><br><span>  struct gprs_rlcmac_bts *bts;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct gprs_rlcmac_pdch *pdch;</span><br><span>       struct pcu_l1_meas meas = {0};</span><br><span>       uint8_t *data;</span><br><span>       uint8_t data_len;</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DL1IF, "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind %s (hL2 %08x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span>              get_value_string(femtobts_l1sapi_names, data_ind->sapi),</span><br><span>          data_ind->hLayer2,</span><br><span>                osmo_hexdump(data_ind->msgUnitParam.u8Buffer,</span><br><span>@@ -208,12 +210,14 @@</span><br><span>                     data = NULL;</span><br><span>                         data_len = 0;</span><br><span>                }</span><br><span style="color: hsl(0, 100%, 40%);">-               pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  data_len, data_ind->u32Fn, &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+               pdch = &bts->trx[fl1h->trx_no].pdch[data_ind->u8Tn];</span><br><span style="color: hsl(120, 100%, 40%);">+             pcu_rx_data_ind_pdtch(bts, pdch, data, data_len, data_ind->u32Fn, &meas);</span><br><span>             break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DL1IF, LOGL_NOTICE, "Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   get_value_string(femtobts_l1sapi_names, data_ind->sapi));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGP(DL1IF, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                   "(trx=%" PRIu8 ",ts=%u) FN=%u Rx PH-DATA.ind for unknown L1 SAPI %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   fl1h->trx_no, data_ind->u8Tn, data_ind->u32Fn,</span><br><span style="color: hsl(120, 100%, 40%);">+               get_value_string(femtobts_l1sapi_names, data_ind->sapi));</span><br><span>            rc = -1;</span><br><span>             break;</span><br><span>       }</span><br><span>diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp</span><br><span>index a14a4ee..5a5031c 100644</span><br><span>--- a/src/pcu_l1_if.cpp</span><br><span>+++ b/src/pcu_l1_if.cpp</span><br><span>@@ -281,12 +281,9 @@</span><br><span>    bts_set_current_block_frame_number(bts, fn, 5);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx_no, uint8_t ts_no, uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_pdch *pdch, uint8_t *data,</span><br><span>   uint8_t len, uint32_t fn, struct pcu_l1_meas *meas)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        struct gprs_rlcmac_pdch *pdch;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  pdch = &bts->trx[trx_no].pdch[ts_no];</span><br><span>         return pdch->rcv_block(data, len, fn, meas);</span><br><span> }</span><br><span> </span><br><span>@@ -366,27 +363,30 @@</span><br><span>     int rc;</span><br><span>      int current_fn = bts_current_frame_number(bts);</span><br><span>      struct pcu_l1_meas meas = {0};</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gprs_rlcmac_pdch *pdch;</span><br><span>       uint8_t gsmtap_chantype;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DL1IF, LOGL_DEBUG, "Data indication received: sapi=%d arfcn=%d "</span><br><span style="color: hsl(0, 100%, 40%);">-         "fn=%d cur_fn=%d block=%d data=%s\n", data_ind->sapi,</span><br><span style="color: hsl(0, 100%, 40%);">-              data_ind->arfcn, data_ind->fn, current_fn, data_ind->block_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-         osmo_hexdump(data_ind->data, data_ind->len));</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGP(DL1IF, LOGL_DEBUG, "(bts=%" PRIu8 ",trx=%" PRIu8 ",ts=%" PRIu8 ") FN=%u "</span><br><span style="color: hsl(120, 100%, 40%);">+                "Rx DATA.ind: sapi=%d arfcn=%d cur_fn=%d "</span><br><span style="color: hsl(120, 100%, 40%);">+          "block=%d data=%s\n", bts->nr, data_ind->trx_nr, data_ind->ts_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          data_ind->fn, data_ind->sapi, data_ind->arfcn, current_fn,</span><br><span style="color: hsl(120, 100%, 40%);">+           data_ind->block_nr, osmo_hexdump(data_ind->data, data_ind->len));</span><br><span> </span><br><span>       switch (data_ind->sapi) {</span><br><span>         case PCU_IF_SAPI_PDTCH:</span><br><span style="color: hsl(120, 100%, 40%);">+               pdch = &bts->trx[data_ind->trx_nr].pdch[data_ind->ts_nr];</span><br><span>               pcu_l1_meas_set_rssi(&meas, data_ind->rssi);</span><br><span>          /* convert BER to % value */</span><br><span>                 pcu_l1_meas_set_ber(&meas, data_ind->ber10k / 100);</span><br><span>           pcu_l1_meas_set_bto(&meas, data_ind->ta_offs_qbits);</span><br><span>          pcu_l1_meas_set_link_qual(&meas, data_ind->lqual_cb / 10);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           LOGP(DL1IF, LOGL_DEBUG, "Data indication with raw measurements received: BER10k = %d, BTO = %d, Q = %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                 data_ind->ber10k, data_ind->ta_offs_qbits, data_ind->lqual_cb);</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGPDCH(pdch, DL1IF, LOGL_DEBUG, "FN=%u Rx DATA.ind PDTCH: "</span><br><span style="color: hsl(120, 100%, 40%);">+                        "BER10k = %d, BTO = %d, Q = %d\n", data_ind->fn,</span><br><span style="color: hsl(120, 100%, 40%);">+                 data_ind->ber10k, data_ind->ta_offs_qbits, data_ind->lqual_cb);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            rc = pcu_rx_data_ind_pdtch(bts, data_ind->trx_nr, data_ind->ts_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                        data_ind->data, data_ind->len, data_ind->fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                   &meas);</span><br><span style="color: hsl(120, 100%, 40%);">+           rc = pcu_rx_data_ind_pdtch(bts, pdch, data_ind->data, data_ind->len,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       data_ind->fn, &meas);</span><br><span>              gsmtap_chantype = GSMTAP_CHANNEL_PDTCH;</span><br><span>              break;</span><br><span>       case PCU_IF_SAPI_BCCH:</span><br><span>@@ -394,8 +394,9 @@</span><br><span>                 gsmtap_chantype = GSMTAP_CHANNEL_BCCH;</span><br><span>               break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DL1IF, LOGL_ERROR, "Received PCU data indication with "</span><br><span style="color: hsl(0, 100%, 40%);">-                  "unsupported sapi %d\n", data_ind->sapi);</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGP(DL1IF, LOGL_ERROR, "(bts=%" PRIu8 ",trx=%" PRIu8 ",ts=%" PRIu8 ") "</span><br><span style="color: hsl(120, 100%, 40%);">+                   "FN=%u Rx DATA.ind with unsupported sapi %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     bts->nr, data_ind->trx_nr, data_ind->ts_nr, data_ind->fn, data_ind->sapi);</span><br><span>               rc = -EINVAL;</span><br><span>                gsmtap_chantype = GSMTAP_CHANNEL_UNKNOWN;</span><br><span>    }</span><br><span>diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h</span><br><span>index e4a46a9..aff23f5 100644</span><br><span>--- a/src/pcu_l1_if.h</span><br><span>+++ b/src/pcu_l1_if.h</span><br><span>@@ -34,6 +34,8 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "pdch.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static inline uint8_t qta2ta(int16_t qta)</span><br><span> {</span><br><span>   if (qta < 0)</span><br><span>@@ -171,7 +173,7 @@</span><br><span>        uint32_t fn, uint8_t block_nr);</span><br><span> </span><br><span> int pcu_rx_rach_ind_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta);</span><br><span style="color: hsl(0, 100%, 40%);">-int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_pdch *pdch, uint8_t *data,</span><br><span>  uint8_t len, uint32_t fn, struct pcu_l1_meas *meas);</span><br><span> </span><br><span> void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23289">change 23289</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/+/23289"/><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: If51f7bdbd626a44c7b8e182a3460dad49fda6ec3 </div>
<div style="display:none"> Gerrit-Change-Number: 23289 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@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-MessageType: merged </div>