<p>laforge <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/14439">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">logging: introduce LOG_BTS and LOG_TRX and use it everywhere<br><br>It's quite ugly to have manual "bts=%d" printf-statements all over<br>the BSC code.  Let's change this to use shared logging helper functions<br>all over the place, whenever we need to log something related to one<br>BTS or one TRX.<br><br>This can also help us as the first step to later add alternative logging<br>of BTS identities, e.g. by printing the Cell Global Identifier or<br>LAC+CI, or even a human-readable/vty-defined 'name' of the BTS, rather<br>than its numeric bts number.  With this change in place, we can<br>introduce such changes at a single location in the code.<br><br>Change-Id: I4a7814d164384eecfb6913c31802cf2faead6e6c<br>---<br>M include/osmocom/bsc/debug.h<br>M src/osmo-bsc/abis_nm.c<br>M src/osmo-bsc/abis_rsl.c<br>M src/osmo-bsc/acc_ramp.c<br>M src/osmo-bsc/bts_ipaccess_nanobts.c<br>M src/osmo-bsc/chan_alloc.c<br>M src/osmo-bsc/e1_config.c<br>M src/osmo-bsc/lchan_select.c<br>M src/osmo-bsc/paging.c<br>9 files changed, 89 insertions(+), 105 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h</span><br><span>index e78ba59..3260121 100644</span><br><span>--- a/include/osmocom/bsc/debug.h</span><br><span>+++ b/include/osmocom/bsc/debug.h</span><br><span>@@ -29,3 +29,9 @@</span><br><span>        DAS,</span><br><span>         Debug_LastEntry,</span><br><span> };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOG_BTS(bts, subsys, level, fmt, args...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(subsys, level, "(bts=%d) " fmt, (bts)->nr, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOG_TRX(trx, subsys, level, fmt, args...) \</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGP(subsys, level, "(bts=%d,trx=%d) " fmt, (trx)->bts->nr, (trx)->nr, ## args)</span><br><span>diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c</span><br><span>index bff6c12..7d059b5 100644</span><br><span>--- a/src/osmo-bsc/abis_nm.c</span><br><span>+++ b/src/osmo-bsc/abis_nm.c</span><br><span>@@ -1713,7 +1713,7 @@</span><br><span>              return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   DEBUGP(DNM, "Get Attr (bts=%u,trx=%u)\n", bts->nr, trx_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_BTS(bts, DNM, LOGL_DEBUG, "Get Attr (trx=%u)\n", trx_nr);</span><br><span> </span><br><span>  msg = nm_msgb_alloc();</span><br><span>       oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE);</span><br><span>@@ -1731,7 +1731,7 @@</span><br><span>     struct msgb *msg = nm_msgb_alloc();</span><br><span>  uint8_t *cur;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       DEBUGP(DNM, "Set BTS Attr (bts=%u)\n", bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DNM, LOGL_DEBUG, "Set BTS Attr\n");</span><br><span> </span><br><span>       oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE);</span><br><span>     fill_om_fom_hdr(oh, attr_len, NM_MT_SET_BTS_ATTR, NM_OC_BTS, bts->bts_nr, 0xff, 0xff);</span><br><span>@@ -1748,7 +1748,7 @@</span><br><span>    struct msgb *msg = nm_msgb_alloc();</span><br><span>  uint8_t *cur;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       DEBUGP(DNM, "Set TRX Attr (bts=%u,trx=%u)\n", trx->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_TRX(trx, DNM, LOGL_DEBUG, "Set TRX Attr\n");</span><br><span> </span><br><span>       oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE);</span><br><span>     fill_om_fom_hdr(oh, attr_len, NM_MT_SET_RADIO_ATTR, NM_OC_RADIO_CARRIER,</span><br><span>@@ -2849,7 +2849,7 @@</span><br><span>     struct gsm_bts_trx *trx = data;</span><br><span>      struct ipacc_ack_signal_data signal;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOGP(DRSL, LOGL_NOTICE, "(bts=%u,trx=%u) RSL connection request timed out\n", trx->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_TRX(trx, DRSL, LOGL_NOTICE, "RSL connection request timed out\n");</span><br><span> </span><br><span>         /* Fake an RSL CONECT NACK message from the BTS. */</span><br><span>  signal.trx = trx;</span><br><span>@@ -2880,8 +2880,8 @@</span><br><span>    if (ip == 0)</span><br><span>                 attr_len -= 5;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      LOGP(DNM, LOGL_INFO, "(bts=%u,trx=%u) IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n",</span><br><span style="color: hsl(0, 100%, 40%);">-         trx->bts->nr, trx->nr, inet_ntoa(ia), port, stream);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_TRX(trx, DNM, LOGL_INFO, "IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n",</span><br><span style="color: hsl(120, 100%, 40%);">+               inet_ntoa(ia), port, stream);</span><br><span> </span><br><span>    error = abis_nm_ipaccess_msg(trx->bts, NM_MT_IPACC_RSL_CONNECT,</span><br><span>                                NM_OC_BASEB_TRANSC, trx->bts->bts_nr,</span><br><span>@@ -2935,8 +2935,7 @@</span><br><span>             return;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DNM, LOGL_NOTICE, "(bts=%u,trx=%u) Requesting administrative state change %s -> %s [%s]\n",</span><br><span style="color: hsl(0, 100%, 40%);">-        trx->bts->nr, trx->nr,</span><br><span style="color: hsl(120, 100%, 40%);">+  LOG_TRX(trx, DNM, LOGL_NOTICE, "Requesting administrative state change %s -> %s [%s]\n",</span><br><span>             get_value_string(abis_nm_adm_state_names, trx->mo.nm_state.administrative),</span><br><span>       get_value_string(abis_nm_adm_state_names, new_state), reason);</span><br><span> </span><br><span>diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c</span><br><span>index 9db2115..0b68d7c 100644</span><br><span>--- a/src/osmo-bsc/abis_rsl.c</span><br><span>+++ b/src/osmo-bsc/abis_rsl.c</span><br><span>@@ -1357,10 +1357,8 @@</span><br><span> </span><br><span>        /* Determine channel request cause code */</span><br><span>   chreq_reason = get_reason_by_chreq(rqd_ref->ra, bts->network->neci);</span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DRSL, LOGL_NOTICE, "(bts=%d) CHAN RQD: reason: %s (ra=0x%02x, neci=0x%02x, chreq_reason=0x%02x)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-           msg->lchan->ts->trx->bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-            get_value_string(gsm_chreq_descs, chreq_reason),</span><br><span style="color: hsl(0, 100%, 40%);">-        rqd_ref->ra, bts->network->neci, chreq_reason);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: reason: %s (ra=0x%02x, neci=0x%02x, chreq_reason=0x%02x)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             get_value_string(gsm_chreq_descs, chreq_reason), rqd_ref->ra, bts->network->neci, chreq_reason);</span><br><span> </span><br><span>        /* Handle PDCH related rach requests (in case of BSC-co-located-PCU */</span><br><span>       if (chreq_reason == GSM_CHREQ_REASON_PDCH)</span><br><span>@@ -1381,24 +1379,18 @@</span><br><span>          */</span><br><span>  lchan = lchan_select_by_type(bts, GSM_LCHAN_SDCCH);</span><br><span>  if (!lchan) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGP(DRSL, LOGL_NOTICE, "(bts=%d) CHAN RQD: no resources for %s "</span><br><span style="color: hsl(0, 100%, 40%);">-                     "0x%x, retrying with %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   msg->lchan->ts->trx->bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                    gsm_lchant_name(GSM_LCHAN_SDCCH), rqd_ref->ra,</span><br><span style="color: hsl(0, 100%, 40%);">-                       gsm_lchant_name(GSM_LCHAN_TCH_H));</span><br><span style="color: hsl(120, 100%, 40%);">+            LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: no resources for %s 0x%x, retrying with %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   gsm_lchant_name(GSM_LCHAN_SDCCH), rqd_ref->ra, gsm_lchant_name(GSM_LCHAN_TCH_H));</span><br><span>                 lchan = lchan_select_by_type(bts, GSM_LCHAN_TCH_H);</span><br><span>  }</span><br><span>    if (!lchan) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGP(DRSL, LOGL_NOTICE, "(bts=%d) CHAN RQD: no resources for %s "</span><br><span style="color: hsl(0, 100%, 40%);">-                     "0x%x, retrying with %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   msg->lchan->ts->trx->bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                    gsm_lchant_name(GSM_LCHAN_SDCCH), rqd_ref->ra,</span><br><span style="color: hsl(0, 100%, 40%);">-                       gsm_lchant_name(GSM_LCHAN_TCH_F));</span><br><span style="color: hsl(120, 100%, 40%);">+            LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: no resources for %s 0x%x, retrying with %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   gsm_lchant_name(GSM_LCHAN_SDCCH), rqd_ref->ra, gsm_lchant_name(GSM_LCHAN_TCH_F));</span><br><span>                 lchan = lchan_select_by_type(bts, GSM_LCHAN_TCH_F);</span><br><span>  }</span><br><span>    if (!lchan) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGP(DRSL, LOGL_NOTICE, "(bts=%d) CHAN RQD: no resources for %s 0x%x\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   msg->lchan->ts->trx->bts->nr, gsm_lchant_name(lctype), rqd_ref->ra);</span><br><span style="color: hsl(120, 100%, 40%);">+           LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: no resources for %s 0x%x\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     gsm_lchant_name(lctype), rqd_ref->ra);</span><br><span>            rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_NO_CHANNEL]);</span><br><span>               rsl_tx_imm_ass_rej(bts, rqd_ref);</span><br><span>            return 0;</span><br><span>diff --git a/src/osmo-bsc/acc_ramp.c b/src/osmo-bsc/acc_ramp.c</span><br><span>index bc2e3fb..b79c0c2 100644</span><br><span>--- a/src/osmo-bsc/acc_ramp.c</span><br><span>+++ b/src/osmo-bsc/acc_ramp.c</span><br><span>@@ -46,7 +46,8 @@</span><br><span> {</span><br><span>  OSMO_ASSERT(acc <= 9);</span><br><span>    if (acc_ramp->barred_accs & (1 << acc))</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DRSL, LOGL_NOTICE, "(bts=%d) ACC RAMP: allowing Access Control Class %u\n", acc_ramp->bts->nr, acc);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOG_BTS(acc_ramp->bts, DRSL, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                  "ACC RAMP: allowing Access Control Class %u\n", acc);</span><br><span>      acc_ramp->barred_accs &= ~(1 << acc);</span><br><span> }</span><br><span> </span><br><span>@@ -54,7 +55,8 @@</span><br><span> {</span><br><span>         OSMO_ASSERT(acc <= 9);</span><br><span>    if ((acc_ramp->barred_accs & (1 << acc)) == 0)</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGP(DRSL, LOGL_NOTICE, "(bts=%d) ACC RAMP: barring Access Control Class %u\n", acc_ramp->bts->nr, acc);</span><br><span style="color: hsl(120, 100%, 40%);">+              LOG_BTS(acc_ramp->bts, DRSL, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                  "ACC RAMP: barring Access Control Class %u\n", acc);</span><br><span>       acc_ramp->barred_accs |= (1 << acc);</span><br><span> }</span><br><span> </span><br><span>@@ -92,8 +94,9 @@</span><br><span>   else if (acc_ramp->step_interval_sec > ACC_RAMP_STEP_INTERVAL_MAX)</span><br><span>             acc_ramp->step_interval_sec = ACC_RAMP_STEP_INTERVAL_MAX;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOGP(DRSL, LOGL_DEBUG, "(bts=%d) ACC RAMP: step interval set to %u seconds based on %u%% channel load average\n",</span><br><span style="color: hsl(0, 100%, 40%);">-          bts->nr, acc_ramp->step_interval_sec, bts->chan_load_avg);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_BTS(bts, DRSL, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                "ACC RAMP: step interval set to %u seconds based on %u%% channel load average\n",</span><br><span style="color: hsl(120, 100%, 40%);">+           acc_ramp->step_interval_sec, bts->chan_load_avg);</span><br><span>      return acc_ramp->step_interval_sec;</span><br><span> }</span><br><span> </span><br><span>@@ -156,12 +159,10 @@</span><br><span> </span><br><span>  trx = nsd->obj;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: administrative state %s -> %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-            acc_ramp->bts->nr, trx->nr,</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: administrative state %s -> %s\n",</span><br><span>         get_value_string(abis_nm_adm_state_names, nsd->old_state->administrative),</span><br><span>             get_value_string(abis_nm_adm_state_names, nsd->new_state->administrative));</span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: operational state %s -> %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-       acc_ramp->bts->nr, trx->nr,</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: operational state %s -> %s\n",</span><br><span>            abis_nm_opstate_name(nsd->old_state->operational),</span><br><span>             abis_nm_opstate_name(nsd->new_state->operational));</span><br><span> </span><br><span>@@ -171,8 +172,8 @@</span><br><span> </span><br><span>  /* RSL must already be up. We cannot send RACH system information to the BTS otherwise. */</span><br><span>   if (trx->rsl_link == NULL) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: ignoring state change because RSL link is down\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               acc_ramp->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+            LOG_TRX(trx, DRSL, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                        "ACC RAMP: ignoring state change because RSL link is down\n");</span><br><span>             return 0;</span><br><span>    }</span><br><span> </span><br><span>@@ -188,10 +189,10 @@</span><br><span>                                if (nsd->new_state->operational == NM_OPSTATE_ENABLED)</span><br><span>                                         trigger_ramping = true;</span><br><span>                              else</span><br><span style="color: hsl(0, 100%, 40%);">-                                    LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: ignoring state change "</span><br><span style="color: hsl(0, 100%, 40%);">-                                          "because TRX is transitioning into operational state '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                         acc_ramp->bts->nr, trx->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                                            abis_nm_opstate_name(nsd->new_state->operational));</span><br><span style="color: hsl(120, 100%, 40%);">+                                        LOG_TRX(trx, DRSL, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                "ACC RAMP: ignoring state change because TRX is "</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "transitioning into operational state '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                              abis_nm_opstate_name(nsd->new_state->operational));</span><br><span>                    } else {</span><br><span>                             /*</span><br><span>                            * Operational state has not changed.</span><br><span>@@ -200,8 +201,8 @@</span><br><span>                          if (trx_is_usable(trx))</span><br><span>                                      trigger_ramping = true;</span><br><span>                              else</span><br><span style="color: hsl(0, 100%, 40%);">-                                    LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: ignoring state change "</span><br><span style="color: hsl(0, 100%, 40%);">-                                          "because TRX is not usable\n", acc_ramp->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+                                   LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: ignoring state change "</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "because TRX is not usable\n");</span><br><span>                    }</span><br><span>                    break;</span><br><span>               case NM_STATE_LOCKED:</span><br><span>@@ -210,8 +211,8 @@</span><br><span>                  break;</span><br><span>               case NM_STATE_NULL:</span><br><span>          default:</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DRSL, LOGL_ERROR, "(bts=%d) ACC RAMP: unrecognized administrative state '0x%x' "</span><br><span style="color: hsl(0, 100%, 40%);">-                     "reported for TRX 0\n", acc_ramp->bts->nr, nsd->new_state->administrative);</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOG_TRX(trx, DRSL, LOGL_ERROR, "ACC RAMP: unrecognized administrative state '0x%x' "</span><br><span style="color: hsl(120, 100%, 40%);">+                                "reported for TRX 0\n", nsd->new_state->administrative);</span><br><span>                     break;</span><br><span>               }</span><br><span>    }</span><br><span>@@ -226,10 +227,9 @@</span><br><span>                             if (nsd->new_state->administrative == NM_STATE_UNLOCKED)</span><br><span>                                       trigger_ramping = true;</span><br><span>                              else</span><br><span style="color: hsl(0, 100%, 40%);">-                                    LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: ignoring state change "</span><br><span style="color: hsl(0, 100%, 40%);">-                                          "because TRX is transitioning into administrative state '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                      acc_ramp->bts->nr, trx->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                                            get_value_string(abis_nm_adm_state_names, nsd->new_state->administrative));</span><br><span style="color: hsl(120, 100%, 40%);">+                                        LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: ignoring state change "</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "because TRX is transitioning into administrative state '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                            get_value_string(abis_nm_adm_state_names, nsd->new_state->administrative));</span><br><span>                    } else {</span><br><span>                             /*</span><br><span>                            * Administrative state has not changed.</span><br><span>@@ -238,10 +238,9 @@</span><br><span>                              if (trx->mo.nm_state.administrative == NM_STATE_UNLOCKED)</span><br><span>                                         trigger_ramping = true;</span><br><span>                              else</span><br><span style="color: hsl(0, 100%, 40%);">-                                    LOGP(DRSL, LOGL_DEBUG, "(bts=%d,trx=%d) ACC RAMP: ignoring state change "</span><br><span style="color: hsl(0, 100%, 40%);">-                                          "because TRX is in administrative state '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                                      acc_ramp->bts->nr, trx->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                                            get_value_string(abis_nm_adm_state_names, trx->mo.nm_state.administrative));</span><br><span style="color: hsl(120, 100%, 40%);">+                                  LOG_TRX(trx, DRSL, LOGL_DEBUG, "ACC RAMP: ignoring state change "</span><br><span style="color: hsl(120, 100%, 40%);">+                                           "because TRX is in administrative state '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                            get_value_string(abis_nm_adm_state_names, trx->mo.nm_state.administrative));</span><br><span>                      }</span><br><span>                    break;</span><br><span>               case NM_OPSTATE_DISABLED:</span><br><span>@@ -249,8 +248,8 @@</span><br><span>                      break;</span><br><span>               case NM_OPSTATE_NULL:</span><br><span>                default:</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DRSL, LOGL_ERROR, "(bts=%d) ACC RAMP: unrecognized operational state '0x%x' "</span><br><span style="color: hsl(0, 100%, 40%);">-                         "reported for TRX 0\n", acc_ramp->bts->nr, nsd->new_state->administrative);</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOG_TRX(trx, DRSL, LOGL_ERROR, "ACC RAMP: unrecognized operational state '0x%x' "</span><br><span style="color: hsl(120, 100%, 40%);">+                        "reported for TRX 0\n", nsd->new_state->administrative);</span><br><span>                        break;</span><br><span>               }</span><br><span>    }</span><br><span>@@ -296,7 +295,7 @@</span><br><span>              return -ERANGE;</span><br><span> </span><br><span>  acc_ramp->step_size = step_size;</span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DRSL, LOGL_DEBUG, "(bts=%d) ACC RAMP: ramping step size set to %u\n", acc_ramp->bts->nr, step_size);</span><br><span style="color: hsl(120, 100%, 40%);">+     LOG_BTS(acc_ramp->bts, DRSL, LOGL_DEBUG, "ACC RAMP: ramping step size set to %u\n", step_size);</span><br><span>         return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -313,8 +312,8 @@</span><br><span> </span><br><span>         acc_ramp->step_interval_sec = step_interval;</span><br><span>      acc_ramp->step_interval_is_fixed = true;</span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DRSL, LOGL_DEBUG, "(bts=%d) ACC RAMP: ramping step interval set to %u seconds\n",</span><br><span style="color: hsl(0, 100%, 40%);">-             acc_ramp->bts->nr, step_interval);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(acc_ramp->bts, DRSL, LOGL_DEBUG, "ACC RAMP: ramping step interval set to %u seconds\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          step_interval);</span><br><span>      return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -326,8 +325,7 @@</span><br><span> void acc_ramp_set_step_interval_dynamic(struct acc_ramp *acc_ramp)</span><br><span> {</span><br><span>  acc_ramp->step_interval_is_fixed = false;</span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DRSL, LOGL_DEBUG, "(bts=%d) ACC RAMP: ramping step interval set to 'dynamic'\n",</span><br><span style="color: hsl(0, 100%, 40%);">-      acc_ramp->bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+        LOG_BTS(acc_ramp->bts, DRSL, LOGL_DEBUG, "ACC RAMP: ramping step interval set to 'dynamic'\n");</span><br><span> }</span><br><span> </span><br><span> /*!</span><br><span>diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c</span><br><span>index 56103b6..a5e697b 100644</span><br><span>--- a/src/osmo-bsc/bts_ipaccess_nanobts.c</span><br><span>+++ b/src/osmo-bsc/bts_ipaccess_nanobts.c</span><br><span>@@ -394,7 +394,7 @@</span><br><span>  if (!trx->rsl_link)</span><br><span>               return;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DLINP, LOGL_NOTICE, "(bts=%d,trx=%d) Dropping RSL link: %s\n", trx->bts->nr, trx->nr, reason);</span><br><span style="color: hsl(120, 100%, 40%);">+        LOG_TRX(trx, DLINP, LOGL_NOTICE, "Dropping RSL link: %s\n", reason);</span><br><span>       e1inp_sign_link_destroy(trx->rsl_link);</span><br><span>   trx->rsl_link = NULL;</span><br><span> </span><br><span>@@ -413,7 +413,7 @@</span><br><span>   if (!bts->oml_link)</span><br><span>               return;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DLINP, LOGL_NOTICE, "(bts=%d) Dropping OML link: %s\n", bts->nr, reason);</span><br><span style="color: hsl(120, 100%, 40%);">+   LOG_BTS(bts, DLINP, LOGL_NOTICE, "Dropping OML link: %s\n", reason);</span><br><span>       e1inp_sign_link_destroy(bts->oml_link);</span><br><span>   bts->oml_link = NULL;</span><br><span>     bts->uptime = 0;</span><br><span>@@ -459,7 +459,7 @@</span><br><span> void ipaccess_drop_oml_deferred(struct gsm_bts *bts)</span><br><span> {</span><br><span>       if (!osmo_timer_pending(&bts->oml_drop_link_timer) && bts->oml_link) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DLINP, LOGL_NOTICE, "(bts=%d) Deferring Drop of OML link.\n", bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOG_BTS(bts, DLINP, LOGL_NOTICE, "Deferring Drop of OML link.\n");</span><br><span>                 osmo_timer_setup(&bts->oml_drop_link_timer, ipaccess_drop_oml_deferred_cb, bts);</span><br><span>              osmo_timer_schedule(&bts->oml_drop_link_timer, 0, 0);</span><br><span>         }</span><br><span>diff --git a/src/osmo-bsc/chan_alloc.c b/src/osmo-bsc/chan_alloc.c</span><br><span>index 7f0aa31..669eb8e 100644</span><br><span>--- a/src/osmo-bsc/chan_alloc.c</span><br><span>+++ b/src/osmo-bsc/chan_alloc.c</span><br><span>@@ -113,8 +113,8 @@</span><br><span> </span><br><span>                 /* Ignore samples too large for fixed-point calculations (shouldn't happen). */</span><br><span>          if (lc->used > UINT16_MAX || lc->total > UINT16_MAX) {</span><br><span style="color: hsl(0, 100%, 40%);">-                      LOGP(DRLL, LOGL_NOTICE, "(bts=%d) numbers in channel load sample "</span><br><span style="color: hsl(0, 100%, 40%);">-                         "too large (used=%u / total=%u)\n", bts->nr, lc->used, lc->total);</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOG_BTS(bts, DRLL, LOGL_NOTICE, "numbers in channel load sample "</span><br><span style="color: hsl(120, 100%, 40%);">+                           "too large (used=%u / total=%u)\n", lc->used, lc->total);</span><br><span>                    continue;</span><br><span>            }</span><br><span> </span><br><span>@@ -124,8 +124,8 @@</span><br><span> </span><br><span>      /* Check for invalid samples (shouldn't happen). */</span><br><span>      if (total == 0 || used > total) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DRLL, LOGL_NOTICE, "(bts=%d) bogus channel load sample (used=%"PRIu64" / total=%"PRIu32")\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     bts->nr, used, total);</span><br><span style="color: hsl(120, 100%, 40%);">+                LOG_BTS(bts, DRLL, LOGL_NOTICE, "bogus channel load sample (used=%"PRIu64" / total=%"PRIu32")\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       used, total);</span><br><span>                bts->T3122 = 0; /* disable override of network-wide default value */</span><br><span>              bts->chan_load_samples_idx = 0; /* invalidate other samples collected so far */</span><br><span>           return;</span><br><span>@@ -153,8 +153,8 @@</span><br><span> </span><br><span>    /* Log channel load average. */</span><br><span>      load = ((used / total) * 100);</span><br><span style="color: hsl(0, 100%, 40%);">-  LOGP(DRLL, LOGL_DEBUG, "(bts=%d) channel load average is %"PRIu64".%.2"PRIu64"%%\n",</span><br><span style="color: hsl(0, 100%, 40%);">-           bts->nr, (load & 0xffffff00) >> 8, (load & 0xff) / 10);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DRLL, LOGL_DEBUG, "channel load average is %"PRIu64".%.2"PRIu64"%%\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             (load & 0xffffff00) >> 8, (load & 0xff) / 10);</span><br><span>         bts->chan_load_avg = ((load & 0xffffff00) >> 8);</span><br><span>        OSMO_ASSERT(bts->chan_load_avg <= 100);</span><br><span>        osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_CHAN_LOAD_AVERAGE], bts->chan_load_avg);</span><br><span>@@ -167,7 +167,7 @@</span><br><span>    else if (wait_ind > max_wait_ind)</span><br><span>                 wait_ind = max_wait_ind;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DRLL, LOGL_DEBUG, "(bts=%d) T3122 wait indicator set to %"PRIu64" seconds\n", bts->nr, wait_ind);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DRLL, LOGL_DEBUG, "T3122 wait indicator set to %"PRIu64" seconds\n", wait_ind);</span><br><span>     bts->T3122 = (uint8_t)wait_ind;</span><br><span>   osmo_stat_item_set(bts->bts_statg->items[BTS_STAT_T3122], wait_ind);</span><br><span> }</span><br><span>diff --git a/src/osmo-bsc/e1_config.c b/src/osmo-bsc/e1_config.c</span><br><span>index e7398ed..4389f66 100644</span><br><span>--- a/src/osmo-bsc/e1_config.c</span><br><span>+++ b/src/osmo-bsc/e1_config.c</span><br><span>@@ -72,17 +72,15 @@</span><br><span>   int i;</span><br><span> </span><br><span>   if (!e1_link->e1_ts) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DLINP, LOGL_ERROR, "TRX (%u/%u) RSL link without "</span><br><span style="color: hsl(0, 100%, 40%);">-                    "timeslot?\n", trx->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+                LOG_TRX(trx, DLINP, LOGL_ERROR, "RSL link without timeslot?\n");</span><br><span>           return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span>        /* RSL Link */</span><br><span>       line = e1inp_line_find(e1_link->e1_nr);</span><br><span>   if (!line) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DLINP, LOGL_ERROR, "TRX (%u/%u) RSL link referring "</span><br><span style="color: hsl(0, 100%, 40%);">-                  "to non-existing E1 line %u\n", trx->bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                   trx->nr, e1_link->e1_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+          LOG_TRX(trx, DLINP, LOGL_ERROR, "TRX RSL link referring to non-existing E1 line %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                      e1_link->e1_nr);</span><br><span>          return -ENOMEM;</span><br><span>      }</span><br><span>    sign_ts = &line->ts[e1_link->e1_ts-1];</span><br><span>@@ -93,8 +91,7 @@</span><br><span>                 oml_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_OML, trx,</span><br><span>                                                trx->rsl_tei, SAPI_OML);</span><br><span>                if (!oml_link) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DLINP, LOGL_ERROR, "TRX (%u/%u) OML link creation "</span><br><span style="color: hsl(0, 100%, 40%);">-                              "failed\n", trx->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOG_TRX(trx, DLINP, LOGL_ERROR, "TRX OML link creation failed\n");</span><br><span>                         return -ENOMEM;</span><br><span>              }</span><br><span>            if (trx->oml_link)</span><br><span>@@ -104,8 +101,7 @@</span><br><span>  rsl_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_RSL,</span><br><span>                                     trx, trx->rsl_tei, SAPI_RSL);</span><br><span>   if (!rsl_link) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DLINP, LOGL_ERROR, "TRX (%u/%u) RSL link creation "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "failed\n", trx->bts->nr, trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+           LOG_TRX(trx, DLINP, LOGL_ERROR, "TRX RSL link creation failed\n");</span><br><span>                 return -ENOMEM;</span><br><span>      }</span><br><span>    if (trx->rsl_link)</span><br><span>@@ -132,8 +128,8 @@</span><br><span>          break;</span><br><span>       case E1INP_SIGN_RSL:</span><br><span>                 if (link->trx->mo.nm_state.administrative == NM_STATE_LOCKED) {</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOGP(DLMI, LOGL_ERROR, "(bts=%d/trx=%d) discarding RSL message received "</span><br><span style="color: hsl(0, 100%, 40%);">-                          "in locked administrative state\n", link->trx->bts->nr, link->trx->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOG_TRX(link->trx, DLMI, LOGL_ERROR, "discarding RSL message received "</span><br><span style="color: hsl(120, 100%, 40%);">+                       "in locked administrative state\n");</span><br><span>                  msgb_free(msg);</span><br><span>                      break;</span><br><span>               }</span><br><span>@@ -161,17 +157,17 @@</span><br><span>    struct timespec tp;</span><br><span>  int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     DEBUGP(DLMI, "e1_reconfig_bts(%u)\n", bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+  LOG_BTS(bts, DLMI, LOGL_DEBUG, "e1_reconfig_bts\n");</span><br><span> </span><br><span>   line = e1inp_line_find(e1_link->e1_nr);</span><br><span>   if (!line) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DLINP, LOGL_ERROR, "BTS %u OML link referring to "</span><br><span style="color: hsl(0, 100%, 40%);">-                    "non-existing E1 line %u\n", bts->nr, e1_link->e1_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+           LOG_BTS(bts, DLINP, LOGL_ERROR, "BTS OML link referring to "</span><br><span style="color: hsl(120, 100%, 40%);">+                     "non-existing E1 line %u\n", e1_link->e1_nr);</span><br><span>              return -ENOMEM;</span><br><span>      }</span><br><span> </span><br><span>        if (!bts->model->e1line_bind_ops) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DLINP, LOGL_ERROR, "no callback to bind E1 line operations\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                LOG_BTS(bts, DLINP, LOGL_ERROR, "no callback to bind E1 line operations\n");</span><br><span>               return -EINVAL;</span><br><span>      }</span><br><span>    if (!line->ops)</span><br><span>@@ -184,8 +180,7 @@</span><br><span> </span><br><span>         /* OML link */</span><br><span>       if (!e1_link->e1_ts) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DLINP, LOGL_ERROR, "BTS %u OML link without timeslot?\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOG_BTS(bts, DLINP, LOGL_ERROR, "BTS OML link without timeslot?\n");</span><br><span>               return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span>@@ -194,8 +189,7 @@</span><br><span>  oml_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_OML,</span><br><span>                                     bts->c0, bts->oml_tei, SAPI_OML);</span><br><span>    if (!oml_link) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DLINP, LOGL_ERROR, "BTS %u OML link creation failed\n",</span><br><span style="color: hsl(0, 100%, 40%);">-               bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOG_BTS(bts, DLINP, LOGL_ERROR, "BTS OML link creation failed\n");</span><br><span>                 return -ENOMEM;</span><br><span>      }</span><br><span>    if (bts->oml_link)</span><br><span>diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c</span><br><span>index 0a9752e..6df3b4a 100644</span><br><span>--- a/src/osmo-bsc/lchan_select.c</span><br><span>+++ b/src/osmo-bsc/lchan_select.c</span><br><span>@@ -169,7 +169,7 @@</span><br><span>         struct gsm_lchan *lchan = NULL;</span><br><span>      enum gsm_phys_chan_config first, first_cbch, second, second_cbch;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DRLL, LOGL_DEBUG, "(bts=%d) lchan_select_by_type(%s)\n", bts->nr, gsm_lchant_name(type));</span><br><span style="color: hsl(120, 100%, 40%);">+   LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_select_by_type(%s)\n", gsm_lchant_name(type));</span><br><span> </span><br><span>   switch (type) {</span><br><span>      case GSM_LCHAN_SDCCH:</span><br><span>@@ -227,15 +227,15 @@</span><br><span>                }</span><br><span>            break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DRLL, LOGL_ERROR, "Unknown gsm_chan_t %u\n", type);</span><br><span style="color: hsl(120, 100%, 40%);">+            LOG_BTS(bts, DRLL, LOGL_ERROR, "Unknown gsm_chan_t %u\n", type);</span><br><span>   }</span><br><span> </span><br><span>        if (lchan) {</span><br><span>                 lchan->type = type;</span><br><span>               LOG_LCHAN(lchan, LOGL_INFO, "Selected\n");</span><br><span>         } else</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DRLL, LOGL_ERROR, "(bts=%d) Failed to select %s channel\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   bts->nr, gsm_lchant_name(type));</span><br><span style="color: hsl(120, 100%, 40%);">+              LOG_BTS(bts, DRLL, LOGL_ERROR, "Failed to select %s channel\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     gsm_lchant_name(type));</span><br><span> </span><br><span>  return lchan;</span><br><span> }</span><br><span>diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c</span><br><span>index f1fd2ad..ca52ee7 100644</span><br><span>--- a/src/osmo-bsc/paging.c</span><br><span>+++ b/src/osmo-bsc/paging.c</span><br><span>@@ -85,9 +85,9 @@</span><br><span> </span><br><span>  log_set_context(LOG_CTX_BSC_SUBSCR, request->bsub);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      LOGP(DPAG, LOGL_INFO, "(bts=%d) Going to send paging commands: imsi: %s tmsi: "</span><br><span style="color: hsl(0, 100%, 40%);">-            "0x%08x for ch. type %d (attempt %d)\n", bts->nr, request->bsub->imsi,</span><br><span style="color: hsl(0, 100%, 40%);">-       request->bsub->tmsi, request->chan_type, request->attempts);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DPAG, LOGL_INFO, "Going to send paging commands: imsi: %s tmsi: "</span><br><span style="color: hsl(120, 100%, 40%);">+              "0x%08x for ch. type %d (attempt %d)\n", request->bsub->imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+         request->bsub->tmsi, request->chan_type, request->attempts);</span><br><span> </span><br><span>         if (request->bsub->tmsi == GSM_RESERVED_TMSI)</span><br><span>          mi_len = gsm48_generate_mid_from_imsi(mi, request->bsub->imsi);</span><br><span>@@ -115,8 +115,7 @@</span><br><span> {</span><br><span>     struct gsm_bts_paging_state *paging_bts = data;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DPAG, LOGL_NOTICE, "(bts=%d) No PCH LOAD IND, adding 20 slots)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-            paging_bts->bts->nr);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOG_BTS(paging_bts->bts, DPAG, LOGL_NOTICE, "No PCH LOAD IND, adding 20 slots)\n");</span><br><span>     paging_bts->available_slots = 20;</span><br><span>         paging_handle_pending_requests(paging_bts);</span><br><span> }</span><br><span>@@ -315,8 +314,7 @@</span><br><span> </span><br><span>   /* ceiling in seconds + extra time */</span><br><span>        to = (to_us + 999999) / 1000000 + d->val;</span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Paging request: T3113 expires in %u seconds\n",</span><br><span style="color: hsl(0, 100%, 40%);">-           bts->nr, to);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOG_BTS(bts, DPAG, LOGL_DEBUG, "Paging request: T3113 expires in %u seconds\n", to);</span><br><span>       return to;</span><br><span> }</span><br><span> </span><br><span>@@ -336,14 +334,13 @@</span><br><span>  rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_PAGING_ATTEMPTED]);</span><br><span> </span><br><span>   if (paging_pending_request(bts_entry, bsub)) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DPAG, LOGL_INFO, "(bts=%d) Paging request already pending for %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                  bts->nr, bsc_subscr_name(bsub));</span><br><span style="color: hsl(120, 100%, 40%);">+              LOG_BTS(bts, DPAG, LOGL_INFO, "Paging request already pending for %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                    bsc_subscr_name(bsub));</span><br><span>              rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_PAGING_ALREADY]);</span><br><span>                 return -EEXIST;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Start paging of subscriber %s\n", bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-             bsc_subscr_name(bsub));</span><br><span style="color: hsl(120, 100%, 40%);">+  LOG_BTS(bts, DPAG, LOGL_DEBUG, "Start paging of subscriber %s\n", bsc_subscr_name(bsub));</span><br><span>  req = talloc_zero(tall_paging_ctx, struct gsm_paging_request);</span><br><span>       OSMO_ASSERT(req);</span><br><span>    req->bsub = bsc_subscr_get(bsub);</span><br><span>@@ -407,8 +404,7 @@</span><br><span>           if (req->bsub == bsub) {</span><br><span>                  /* now give up the data structure */</span><br><span>                         paging_remove_request(&bts->paging, req);</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Stop paging %s\n", bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                            bsc_subscr_name(bsub));</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOG_BTS(bts, DPAG, LOGL_DEBUG, "Stop paging %s\n", bsc_subscr_name(bsub));</span><br><span>                         return 0;</span><br><span>            }</span><br><span>    }</span><br><span>@@ -498,8 +494,7 @@</span><br><span>              if (msc && req->msc != msc)</span><br><span>                       continue;</span><br><span>            /* now give up the data structure */</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Stop paging %s (flush)\n", bts->nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                    bsc_subscr_name(req->bsub));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOG_BTS(bts, DPAG, LOGL_DEBUG, "Stop paging %s (flush)\n", bsc_subscr_name(req->bsub));</span><br><span>                 paging_remove_request(&bts->paging, req);</span><br><span>     }</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/14439">change 14439</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-bsc/+/14439"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I4a7814d164384eecfb6913c31802cf2faead6e6c </div>
<div style="display:none"> Gerrit-Change-Number: 14439 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>