<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/14117">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">cbch: Improve logging verbosity: Always indicate BASIC/EXTD CBCH<br><br>Change-Id: I6c8f9fc6215b616371e46c1f4ca4e44b8c7ac096<br>---<br>M src/common/cbch.c<br>1 file changed, 35 insertions(+), 19 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/14117/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/common/cbch.c b/src/common/cbch.c</span><br><span>index 6b65679..7ed11c2 100644</span><br><span>--- a/src/common/cbch.c</span><br><span>+++ b/src/common/cbch.c</span><br><span>@@ -71,6 +71,14 @@</span><br><span>               OSMO_ASSERT(0);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static const char *tb_to_chan_str(uint8_t tb)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    if (tb < 4)</span><br><span style="color: hsl(120, 100%, 40%);">+                return "CBCH-BASIC";</span><br><span style="color: hsl(120, 100%, 40%);">+        else</span><br><span style="color: hsl(120, 100%, 40%);">+          return "CBCH-EXTENDED";</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* construct a SMSCB NULL block in the user-provided output buffer at 'out' */</span><br><span> static int get_smscb_null_block(uint8_t *out)</span><br><span> {</span><br><span>@@ -86,24 +94,26 @@</span><br><span> }</span><br><span> </span><br><span> /* get the next block of the current CB message */</span><br><span style="color: hsl(0, 100%, 40%);">-static int get_smscb_block(struct bts_smscb_state *bts_ss, uint8_t *out, uint8_t block_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+static int get_smscb_block(struct bts_smscb_state *bts_ss, uint8_t *out, uint8_t tb,</span><br><span>                     const struct gsm_time *g_time)</span><br><span> {</span><br><span>       int to_copy;</span><br><span>         struct gsm412_block_type *block_type;</span><br><span>        struct smscb_msg *msg = bts_ss->cur_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+   uint8_t block_nr = tb % 4;</span><br><span style="color: hsl(120, 100%, 40%);">+    const char *chan_name = tb_to_chan_str(tb);</span><br><span> </span><br><span>      if (!msg) {</span><br><span>          /* No message: Send NULL block */</span><br><span style="color: hsl(0, 100%, 40%);">-               DEBUGPGT(DLSMS, g_time, "No cur_msg; requesting NULL block\n");</span><br><span style="color: hsl(120, 100%, 40%);">+             DEBUGPGT(DLSMS, g_time, "%s: No cur_msg; requesting NULL block\n", chan_name);</span><br><span>             return get_smscb_null_block(out);</span><br><span>    }</span><br><span>    OSMO_ASSERT(block_nr < 4);</span><br><span> </span><br><span>    if (block_nr >= msg->num_segs) {</span><br><span>               /* Higher block number than this message has blocks: Send NULL block */</span><br><span style="color: hsl(0, 100%, 40%);">-         DEBUGPGT(DLSMS, g_time, "cur_msg has only %u blocks; requesting NULL block\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                         msg->num_segs);</span><br><span style="color: hsl(120, 100%, 40%);">+           DEBUGPGT(DLSMS, g_time, "%s: cur_msg has only %u blocks; requesting NULL block\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   chan_name, msg->num_segs);</span><br><span>               return get_smscb_null_block(out);</span><br><span>    }</span><br><span> </span><br><span>@@ -136,12 +146,14 @@</span><br><span> </span><br><span>    if (block_nr == 4) {</span><br><span>                 if (msg != bts_ss->default_msg) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    DEBUGPGT(DLSMS, g_time, "deleting fully-transmitted message %p\n", msg);</span><br><span style="color: hsl(120, 100%, 40%);">+                    DEBUGPGT(DLSMS, g_time, "%s: deleting fully-transmitted message %p\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                               chan_name, msg);</span><br><span>                    /* delete any fully-transmitted normal message (or superseded default) */</span><br><span>                    talloc_free(bts_ss->cur_msg);</span><br><span>                     bts_ss->cur_msg = NULL;</span><br><span>           } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        DEBUGPGT(DLSMS, g_time, "keeping fully-transmitted default message %p\n", msg);</span><br><span style="color: hsl(120, 100%, 40%);">+                     DEBUGPGT(DLSMS, g_time, "%s: keeping fully-transmitted default message %p\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                chan_name, msg);</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>@@ -170,16 +182,19 @@</span><br><span> {</span><br><span>   struct smscb_msg *scm;</span><br><span>       struct bts_smscb_state *bts_ss;</span><br><span style="color: hsl(120, 100%, 40%);">+       const char *chan_name;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      if (extended_cbch)</span><br><span style="color: hsl(120, 100%, 40%);">+    if (extended_cbch) {</span><br><span style="color: hsl(120, 100%, 40%);">+          chan_name = tb_to_chan_str(4);</span><br><span>               bts_ss = &bts->smscb_extended;</span><br><span style="color: hsl(0, 100%, 40%);">-   else</span><br><span style="color: hsl(120, 100%, 40%);">+  } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              chan_name = tb_to_chan_str(0);</span><br><span>               bts_ss = &bts->smscb_basic;</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span> </span><br><span>        if (msg_len > sizeof(scm->msg)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGP(DLSMS, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-              "Cannot process SMSCB of %u bytes (max %zu)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               msg_len, sizeof(scm->msg));</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGP(DLSMS, LOGL_ERROR, "%s: Cannot process SMSCB of %u bytes (max %zu)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+              chan_name, msg_len, sizeof(scm->msg));</span><br><span>               return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span>@@ -197,8 +212,7 @@</span><br><span>  memcpy(scm->msg, msg, msg_len);</span><br><span> </span><br><span>       LOGP(DLSMS, LOGL_INFO, "RSL SMSCB COMMAND (chan=%s, type=%s, num_blocks=%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               extended_cbch ? "EXTENDED" : "BASIC",</span><br><span style="color: hsl(0, 100%, 40%);">-               get_value_string(rsl_cb_cmd_names, cmd_type.command), scm->num_segs);</span><br><span style="color: hsl(120, 100%, 40%);">+              chan_name, get_value_string(rsl_cb_cmd_names, cmd_type.command), scm->num_segs);</span><br><span> </span><br><span>      switch (cmd_type.command) {</span><br><span>  case RSL_CB_CMD_TYPE_NORMAL:</span><br><span>@@ -207,6 +221,8 @@</span><br><span>           /* def_bcast is ignored as per Section 9.3.41 of 3GPP TS 48.058 */</span><br><span>           /* limit queue size and optionally send CBCH LOAD Information (overflow) via RSL */</span><br><span>          if (bts_ss->queue_len >= bts->smscb_queue_max_len) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOGP(DLSMS, LOGL_NOTICE, "RSL SMSCB COMMAND (chan=%s, type=%s): OVERFLOW\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                             chan_name, get_value_string(rsl_cb_cmd_names, cmd_type.command));</span><br><span>                       rate_ctr_inc2(bts_ss->ctrs, CBCH_CTR_RCVD_DROPPED);</span><br><span>                       talloc_free(scm);</span><br><span>                    break;</span><br><span>@@ -241,6 +257,7 @@</span><br><span> static struct smscb_msg *select_next_smscb(struct gsm_bts *bts, uint8_t tb)</span><br><span> {</span><br><span>     struct bts_smscb_state *bts_ss = bts_smscb_state(bts, tb);</span><br><span style="color: hsl(120, 100%, 40%);">+    const char *chan_name = tb_to_chan_str(tb);</span><br><span>  struct smscb_msg *msg;</span><br><span> </span><br><span>   msg = llist_first_entry_or_null(&bts_ss->queue, struct smscb_msg, list);</span><br><span>@@ -248,7 +265,7 @@</span><br><span>                llist_del(&msg->list);</span><br><span>                bts_ss->queue_len--;</span><br><span>              check_and_send_cbch_load(bts, bts_ss);</span><br><span style="color: hsl(0, 100%, 40%);">-          DEBUGP(DLSMS, "%s: Dequeued msg\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+              DEBUGP(DLSMS, "%s: %s: Dequeued msg\n", __func__, chan_name);</span><br><span>              rate_ctr_inc2(bts_ss->ctrs, CBCH_CTR_SENT_SINGLE);</span><br><span>                return msg;</span><br><span>  }</span><br><span>@@ -259,12 +276,12 @@</span><br><span>    /* choose the default message, if any */</span><br><span>     msg = bts_ss->default_msg;</span><br><span>        if (msg) {</span><br><span style="color: hsl(0, 100%, 40%);">-              DEBUGP(DLSMS, "%s: Using default msg\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+         DEBUGP(DLSMS, "%s: %s: Using default msg\n", __func__, chan_name);</span><br><span>                 rate_ctr_inc2(bts_ss->ctrs, CBCH_CTR_SENT_DEFAULT);</span><br><span>               return msg;</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   DEBUGP(DLSMS, "%s: No queued msg nor default\n", __func__);</span><br><span style="color: hsl(120, 100%, 40%);">+ DEBUGP(DLSMS, "%s: %s: No queued msg nor default\n", __func__, chan_name);</span><br><span>         rate_ctr_inc2(bts_ss->ctrs, CBCH_CTR_SENT_NULL);</span><br><span>  return NULL;</span><br><span> }</span><br><span>@@ -277,7 +294,6 @@</span><br><span>      struct bts_smscb_state *bts_ss;</span><br><span>      /* According to 05.02 Section 6.5.4 */</span><br><span>       uint32_t tb = (fn / 51) % 8;</span><br><span style="color: hsl(0, 100%, 40%);">-    uint8_t block_nr = tb % 4;</span><br><span>   int rc = 0;</span><br><span> </span><br><span>      bts_ss = bts_smscb_state(bts, tb);</span><br><span>@@ -296,11 +312,11 @@</span><br><span>   case 4:</span><br><span>              /* select a new SMSCB message */</span><br><span>             bts_ss->cur_msg = select_next_smscb(bts, tb);</span><br><span style="color: hsl(0, 100%, 40%);">-                rc = get_smscb_block(bts_ss, outbuf, block_nr, g_time);</span><br><span style="color: hsl(120, 100%, 40%);">+               rc = get_smscb_block(bts_ss, outbuf, tb, g_time);</span><br><span>            break;</span><br><span>       case 1: case 2: case 3:</span><br><span>      case 5: case 6: case 7:</span><br><span style="color: hsl(0, 100%, 40%);">-         rc = get_smscb_block(bts_ss, outbuf, block_nr, g_time);</span><br><span style="color: hsl(120, 100%, 40%);">+               rc = get_smscb_block(bts_ss, outbuf, tb, g_time);</span><br><span>            break;</span><br><span>       }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/14117">change 14117</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/14117"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I6c8f9fc6215b616371e46c1f4ca4e44b8c7ac096 </div>
<div style="display:none"> Gerrit-Change-Number: 14117 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>