<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13205">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BSSGP: add logging macro wrappers<br><br>Add BSSGP-specific wrappers for LOGP/DEBUGP to unify log messages<br>similar to LOGPFSM* wrappers.<br><br>Change-Id: I8cd2bdb12aa3a5a7dfcb7a85fee35ec3a3a9820b<br>---<br>M include/osmocom/gprs/gprs_bssgp.h<br>M src/gb/gprs_bssgp.c<br>M src/gb/gprs_bssgp_bss.c<br>M src/gb/gprs_bssgp_util.c<br>4 files changed, 74 insertions(+), 111 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/05/13205/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h</span><br><span>index 400c3e0..0b772cf 100644</span><br><span>--- a/include/osmocom/gprs/gprs_bssgp.h</span><br><span>+++ b/include/osmocom/gprs/gprs_bssgp.h</span><br><span>@@ -11,6 +11,12 @@</span><br><span> </span><br><span> #include <osmocom/gprs/protocol/gsm_08_18.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGBSSGP(bvci, nsei, lvl, fmt, args...) \</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGP(DBSSGP, lvl, "BSSGP (BVCI=%u, NSEI=%u) " fmt, bvci, nsei, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define DEBUGBSSGP(bvci, nsei, fmt, args...)                               \</span><br><span style="color: hsl(120, 100%, 40%);">+     DEBUGP(DBSSGP, "BSSGP (BVCI=%u, NSEI=%u) " fmt, bvci, nsei, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* gprs_bssgp_util.c */</span><br><span> extern struct gprs_ns_inst *bssgp_nsi;</span><br><span> struct msgb *bssgp_msgb_alloc(void);</span><br><span>diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c</span><br><span>index 7acc9d9..b0a1089 100644</span><br><span>--- a/src/gb/gprs_bssgp.c</span><br><span>+++ b/src/gb/gprs_bssgp.c</span><br><span>@@ -94,8 +94,7 @@</span><br><span> </span><br><span>       llist_for_each_entry(bctx, &bssgp_bvc_ctxts, list) {</span><br><span>             if (bctx->nsei == nsei && bctx->bvci != BVCI_SIGNALLING) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DBSSGP, LOGL_DEBUG, "NSEI=%u/BVCI=%u RESET due to %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                      nsei, bctx->bvci, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+                    DEBUGBSSGP(bctx->bvci, nsei, "RESET due to %s\n", bssgp_cause_str(cause));</span><br><span>                      rc = bssgp_tx_bvc_reset(bctx, bctx->bvci, cause);</span><br><span>                         if (rc < 0)</span><br><span>                               return rc;</span><br><span>@@ -262,8 +261,7 @@</span><br><span>     uint16_t bvci;</span><br><span> </span><br><span>   bvci = tlvp_val16be(tp, BSSGP_IE_BVCI);</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RESET cause=%s\n", bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-             bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE)));</span><br><span style="color: hsl(120, 100%, 40%);">+      DEBUGBSSGP(bvci, nsei, "Rx RESET cause=%s\n", bssgp_cause_str(*TLVP_VAL(tp, BSSGP_IE_CAUSE)));</span><br><span> </span><br><span>         /* look-up or create the BTS context for this BVC */</span><br><span>         bctx = btsctx_by_bvci_nsei(bvci, nsei);</span><br><span>@@ -277,15 +275,13 @@</span><br><span>       * informs us about its RAC + Cell ID, so we can create a mapping */</span><br><span>         if (bvci != 0 && bvci != 1) {</span><br><span>                if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                      LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESET "</span><br><span style="color: hsl(0, 100%, 40%);">-                            "missing mandatory IE\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx RESET missing mandatory IE\n");</span><br><span>                       return -EINVAL;</span><br><span>              }</span><br><span>            /* actually extract RAC / CID */</span><br><span>             bctx->cell_id = bssgp_parse_cell_id(&bctx->ra_id,</span><br><span>                                          TLVP_VAL(tp, BSSGP_IE_CELL_ID));</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DBSSGP, LOGL_NOTICE, "Cell %s CI %u on BVCI %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    osmo_rai_name(&bctx->ra_id), bctx->cell_id, bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGBSSGP(bvci, nsei, LOGL_NOTICE, "Cell %s CI %u\n", osmo_rai_name(&bctx->ra_id), bctx->cell_id);</span><br><span>        }</span><br><span> </span><br><span>        /* Send NM_BVC_RESET.ind to NM */</span><br><span>@@ -313,13 +309,11 @@</span><br><span>    bvci = tlvp_val16be(tp, BSSGP_IE_BVCI);</span><br><span>      if (bvci == BVCI_SIGNALLING) {</span><br><span>               /* 8.3.2: Signalling BVC shall never be blocked */</span><br><span style="color: hsl(0, 100%, 40%);">-              LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "received block for signalling BVC!?!\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     nsei, msgb_bvci(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGBSSGP(bvci, nsei, LOGL_ERROR, "received block for signalling BVC!?!\n");</span><br><span>                return 0;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_INFO, "BSSGP Rx BVCI=%u BVC-BLOCK\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGBSSGP(bvci, nsei, LOGL_INFO, "Rx BVC-BLOCK\n");</span><br><span> </span><br><span>     ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei);</span><br><span>   if (!ptp_ctx)</span><br><span>@@ -351,13 +345,11 @@</span><br><span>        bvci = tlvp_val16be(tp, BSSGP_IE_BVCI);</span><br><span>      if (bvci == BVCI_SIGNALLING) {</span><br><span>               /* 8.3.2: Signalling BVC shall never be blocked */</span><br><span style="color: hsl(0, 100%, 40%);">-              LOGP(DBSSGP, LOGL_ERROR, "NSEI=%u/BVCI=%u "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "received unblock for signalling BVC!?!\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   nsei, msgb_bvci(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGBSSGP(bvci, nsei, LOGL_ERROR, "received unblock for signalling BVC!?!\n");</span><br><span>              return 0;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx BVC-UNBLOCK\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+     DEBUGBSSGP(bvci, nsei, "Rx BVC-UNBLOCK\n");</span><br><span> </span><br><span>    ptp_ctx = btsctx_by_bvci_nsei(bvci, nsei);</span><br><span>   if (!ptp_ctx)</span><br><span>@@ -389,13 +381,13 @@</span><br><span>        /* extract TLLI and parse TLV IEs */</span><br><span>         msgb_tlli(msg) = osmo_ntohl(budh->tlli);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+   DEBUGBSSGP(ctx->bvci, ctx->nsei, "TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg));</span><br><span> </span><br><span>    /* Cell ID and LLC_PDU are the only mandatory IE */</span><br><span>  if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID) ||</span><br><span>       !TLVP_PRESENT(tp, BSSGP_IE_LLC_PDU)) {</span><br><span style="color: hsl(0, 100%, 40%);">-              LOGP(DBSSGP, LOGL_ERROR, "BSSGP TLLI=0x%08x Rx UL-UD "</span><br><span style="color: hsl(0, 100%, 40%);">-                        "missing mandatory IE\n", msgb_tlli(msg));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGBSSGP(ctx->bvci, ctx->nsei, LOGL_ERROR, "TLLI=0x%08x Rx UL-UD missing mandatory IE\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                      msgb_tlli(msg));</span><br><span>            return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg);</span><br><span>      }</span><br><span> </span><br><span>@@ -424,15 +416,13 @@</span><br><span> </span><br><span>    if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) ||</span><br><span>          !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx SUSPEND "</span><br><span style="color: hsl(0, 100%, 40%);">-                  "missing mandatory IE\n", ns_bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGBSSGP(ns_bvci, nsei, LOGL_ERROR, "Rx SUSPEND missing mandatory IE\n");</span><br><span>          return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg);</span><br><span>      }</span><br><span> </span><br><span>        tlli = tlvp_val32be(tp, BSSGP_IE_TLLI);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx SUSPEND\n",</span><br><span style="color: hsl(0, 100%, 40%);">-              ns_bvci, tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+       DEBUGBSSGP(ns_bvci, nsei, "TLLI=0x%08x Rx SUSPEND\n", tlli);</span><br><span> </span><br><span>   gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA));</span><br><span> </span><br><span>@@ -466,15 +456,14 @@</span><br><span>         if (!TLVP_PRESENT(tp, BSSGP_IE_TLLI) ||</span><br><span>          !TLVP_PRESENT(tp, BSSGP_IE_ROUTEING_AREA) ||</span><br><span>         !TLVP_PRESENT(tp, BSSGP_IE_SUSPEND_REF_NR)) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx RESUME "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "missing mandatory IE\n", ns_bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGBSSGP(ns_bvci, nsei, LOGL_ERROR, "Rx RESUME missing mandatory IE\n");</span><br><span>           return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg);</span><br><span>      }</span><br><span> </span><br><span>        tlli = tlvp_val32be(tp, BSSGP_IE_TLLI);</span><br><span>      suspend_ref = *TLVP_VAL(tp, BSSGP_IE_SUSPEND_REF_NR);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=0x%08x Rx RESUME\n", ns_bvci, tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+     DEBUGBSSGP(ns_bvci, nsei, "TLLI=0x%08x Rx RESUME\n", tlli);</span><br><span> </span><br><span>    gsm48_parse_ra(&raid, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA));</span><br><span> </span><br><span>@@ -509,15 +498,13 @@</span><br><span>             !TLVP_PRESENT(tp, BSSGP_IE_LLC_FRAMES_DISCARDED) ||</span><br><span>          !TLVP_PRESENT(tp, BSSGP_IE_BVCI) ||</span><br><span>          !TLVP_PRESENT(tp, BSSGP_IE_NUM_OCT_AFF)) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx LLC DISCARDED "</span><br><span style="color: hsl(0, 100%, 40%);">-                    "missing mandatory IE\n", ctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGBSSGP(ctx->bvci, nsei, LOGL_ERROR, "Rx LLC DISCARDED missing mandatory IE\n");</span><br><span>       }</span><br><span> </span><br><span>        if (TLVP_PRESENT(tp, BSSGP_IE_TLLI))</span><br><span>                 tlli = tlvp_val32be(tp, BSSGP_IE_TLLI);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     DEBUGP(DBSSGP, "BSSGP BVCI=%u TLLI=%08x Rx LLC DISCARDED\n",</span><br><span style="color: hsl(0, 100%, 40%);">-          ctx->bvci, tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+  DEBUGBSSGP(ctx->bvci, nsei, "TLLI=%08x Rx LLC DISCARDED\n", tlli);</span><br><span> </span><br><span>  rate_ctr_inc(&ctx->ctrg->ctr[BSSGP_CTR_DISCARDED]);</span><br><span> </span><br><span>@@ -541,22 +528,18 @@</span><br><span>    enum gprs_bssgp_cause cause;</span><br><span> </span><br><span>     if (!TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx STATUS "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "missing mandatory IE\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx STATUS missing mandatory IE\n");</span><br><span>              cause = BSSGP_CAUSE_PROTO_ERR_UNSPEC;</span><br><span>        } else {</span><br><span>             cause = *TLVP_VAL(tp, BSSGP_IE_CAUSE);</span><br><span>       }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Rx BVC STATUS, cause=%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-          bvci, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGBSSGP(bvci, nsei, LOGL_NOTICE, "Rx BVC STATUS, cause=%s\n", bssgp_cause_str(cause));</span><br><span> </span><br><span>        if (cause == BSSGP_CAUSE_BVCI_BLOCKED || cause == BSSGP_CAUSE_UNKNOWN_BVCI) {</span><br><span>                if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI))</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOGP(DBSSGP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-                                "BSSGP BVCI=%u Rx STATUS cause=%s "</span><br><span style="color: hsl(0, 100%, 40%);">-                           "missing conditional BVCI IE\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                              bvci, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx STATUS cause=%s missing conditional BVCI IE\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                                 bssgp_cause_str(cause));</span><br><span>    }</span><br><span> </span><br><span>        if (bctx)</span><br><span>@@ -805,16 +788,14 @@</span><br><span>    uint32_t old_r_def_ms = bctx->r_default_ms;</span><br><span>       uint16_t nsei = msgb_nsei(msg);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control BVC\n",</span><br><span style="color: hsl(0, 100%, 40%);">-         bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+       DEBUGBSSGP(bctx->bvci, nsei, "Rx Flow Control BVC\n");</span><br><span> </span><br><span>      if (!TLVP_PRESENT(tp, BSSGP_IE_TAG) ||</span><br><span>           !TLVP_PRESENT(tp, BSSGP_IE_BVC_BUCKET_SIZE) ||</span><br><span>       !TLVP_PRESENT(tp, BSSGP_IE_BUCKET_LEAK_RATE) ||</span><br><span>      !TLVP_PRESENT(tp, BSSGP_IE_BMAX_DEFAULT_MS) ||</span><br><span>       !TLVP_PRESENT(tp, BSSGP_IE_R_DEFAULT_MS)) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx FC BVC "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "missing mandatory IE\n", bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGBSSGP(bctx->bvci, nsei, LOGL_ERROR, "Rx FC BVC missing mandatory IE\n");</span><br><span>             return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg);</span><br><span>      }</span><br><span> </span><br><span>@@ -828,18 +809,18 @@</span><br><span>        bctx->r_default_ms = 100 * tlvp_val16be(tp, BSSGP_IE_R_DEFAULT_MS) / 8;</span><br><span> </span><br><span>       if (old_leak_rate != 0 && bctx->fc->bucket_leak_rate == 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak "</span><br><span style="color: hsl(0, 100%, 40%);">-                  "rate of 0, stopping all DL GPRS!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGBSSGP(bctx->bvci, nsei, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                     "BSS instructs us to bucket leak rate of 0, stopping all DL GPRS!\n");</span><br><span>    else if (old_leak_rate == 0 && bctx->fc->bucket_leak_rate != 0)</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to bucket leak "</span><br><span style="color: hsl(0, 100%, 40%);">-                  "rate of != 0, restarting all DL GPRS!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGBSSGP(bctx->bvci, nsei, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                     "BSS instructs us to bucket leak rate of != 0, restarting all DL GPRS!\n");</span><br><span> </span><br><span>   if (old_r_def_ms != 0 && bctx->r_default_ms == 0)</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "bucket leak rate of 0, stopping DL GPRS!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGBSSGP(bctx->bvci, nsei, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                     "BSS instructs us to MS default bucket leak rate of 0, stopping DL GPRS!\n");</span><br><span>     else if (old_r_def_ms == 0 && bctx->r_default_ms != 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DBSSGP, LOGL_NOTICE, "BSS instructs us to MS default "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "bucket leak rate != 0, restarting DL GPRS!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGBSSGP(bctx->bvci, nsei, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+                     "BSS instructs us to MS default bucket leak rate != 0, restarting DL GPRS!\n");</span><br><span> </span><br><span>       /* reconfigure the timer for flow control based on new values */</span><br><span>     fc_queue_timer_cfg(bctx->fc);</span><br><span>@@ -875,13 +856,12 @@</span><br><span>             break;</span><br><span>       case BSSGP_PDUT_RA_CAPABILITY:</span><br><span>               /* BSS requests RA capability or IMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-                DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RA CAPABILITY UPDATE\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+               DEBUGBSSGP(bctx->bvci, bctx->nsei, "Rx RA CAPABILITY UPDATE\n");</span><br><span>             /* FIXME: send GMM_RA_CAPABILITY_UPDATE.ind to GMM */</span><br><span>                /* FIXME: send RA_CAPA_UPDATE_ACK */</span><br><span>                 break;</span><br><span>       case BSSGP_PDUT_RADIO_STATUS:</span><br><span style="color: hsl(0, 100%, 40%);">-           DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx RADIO STATUS\n", bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+           DEBUGBSSGP(bctx->bvci, bctx->nsei, "Rx RADIO STATUS\n");</span><br><span>             /* BSS informs us of some exception */</span><br><span>               /* FIXME: send GMM_RADIO_STATUS.ind to GMM */</span><br><span>                break;</span><br><span>@@ -891,8 +871,7 @@</span><br><span>                 break;</span><br><span>       case BSSGP_PDUT_FLOW_CONTROL_MS:</span><br><span>             /* BSS informs us of available bandwidth to one MS */</span><br><span style="color: hsl(0, 100%, 40%);">-           DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx Flow Control MS\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                  bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+               DEBUGBSSGP(bctx->bvci, bctx->nsei, "Rx Flow Control MS\n");</span><br><span>          /* FIXME: actually implement flow control */</span><br><span>                 /* FIXME: Send FLOW_CONTROL_MS_ACK */</span><br><span>                break;</span><br><span>@@ -904,8 +883,7 @@</span><br><span>         case BSSGP_PDUT_CREATE_BSS_PFC_NACK:</span><br><span>         case BSSGP_PDUT_MODIFY_BSS_PFC:</span><br><span>      case BSSGP_PDUT_DELETE_BSS_PFC_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">-             DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s not [yet] "</span><br><span style="color: hsl(0, 100%, 40%);">-                     "implemented\n", bctx->bvci, bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+            DEBUGBSSGP(bctx->bvci, bctx->nsei, "Rx PDU type %s not [yet] implemented\n", bssgp_pdu_str(pdu_type));</span><br><span>               rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg);</span><br><span>                break;</span><br><span>       /* those only exist in the SGSN -> BSS direction */</span><br><span>@@ -915,14 +893,12 @@</span><br><span>       case BSSGP_PDUT_RA_CAPA_UPDATE_ACK:</span><br><span>  case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK:</span><br><span>        case BSSGP_PDUT_FLOW_CONTROL_MS_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">-            DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s only exists in DL\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                      bctx->bvci, bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+               DEBUGBSSGP(bctx->bvci, bctx->nsei, "PDU type %s only exists in DL\n", bssgp_pdu_str(pdu_type));</span><br><span>              bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);</span><br><span>            rc = -EINVAL;</span><br><span>                break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type %s unknown\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                bctx->bvci, bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+               DEBUGBSSGP(bctx->bvci, bctx->nsei, "PDU type %s unknown\n", bssgp_pdu_str(pdu_type));</span><br><span>                rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);</span><br><span>               break;</span><br><span>       }</span><br><span>@@ -940,6 +916,7 @@</span><br><span>      int rc = 0;</span><br><span>  uint16_t ns_bvci = msgb_bvci(msg);</span><br><span>   uint16_t bvci = bctx ? bctx->bvci : ns_bvci;</span><br><span style="color: hsl(120, 100%, 40%);">+       uint16_t nsei = bctx ? bctx->nsei : msgb_nsei(msg);</span><br><span> </span><br><span>   switch (bgph->pdu_type) {</span><br><span>         case BSSGP_PDUT_SUSPEND:</span><br><span>@@ -952,14 +929,13 @@</span><br><span>             break;</span><br><span>       case BSSGP_PDUT_FLUSH_LL_ACK:</span><br><span>                /* BSS informs us it has performed LL FLUSH */</span><br><span style="color: hsl(0, 100%, 40%);">-          DEBUGP(DBSSGP, "BSSGP Rx BVCI=%u FLUSH LL ACK\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+            DEBUGBSSGP(bvci, nsei, "Rx FLUSH LL ACK\n");</span><br><span>               /* FIXME: send NM_FLUSH_LL.res to NM */</span><br><span>              break;</span><br><span>       case BSSGP_PDUT_LLC_DISCARD:</span><br><span>                 /* BSS informs that some LLC PDU's have been discarded */</span><br><span>                if (!bctx) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    LOGP(DBSSGP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-                             "BSSGP Rx LLC-DISCARD missing mandatory BVCI\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx LLC-DISCARD missing mandatory BVCI\n");</span><br><span>                       goto err_mand_ie;</span><br><span>            }</span><br><span>            rc = bssgp_rx_llc_disc(msg, tp, bctx);</span><br><span>@@ -968,8 +944,7 @@</span><br><span>                 /* BSS tells us that BVC shall be blocked */</span><br><span>                 if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) ||</span><br><span>                  !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-BLOCK "</span><br><span style="color: hsl(0, 100%, 40%);">-                                "missing mandatory IE\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx BVC-BLOCK missing mandatory IE\n");</span><br><span>                   goto err_mand_ie;</span><br><span>            }</span><br><span>            rc = bssgp_rx_bvc_block(msg, tp);</span><br><span>@@ -977,21 +952,19 @@</span><br><span>    case BSSGP_PDUT_BVC_UNBLOCK:</span><br><span>                 /* BSS tells us that BVC shall be unblocked */</span><br><span>               if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-UNBLOCK "</span><br><span style="color: hsl(0, 100%, 40%);">-                              "missing mandatory IE\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx BVC-UNBLOCK missing mandatory IE\n");</span><br><span>                         goto err_mand_ie;</span><br><span>            }</span><br><span>            rc = bssgp_rx_bvc_unblock(msg, tp);</span><br><span>          break;</span><br><span>       case BSSGP_PDUT_BVC_RESET_ACK:</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DBSSGP, LOGL_ERROR, "BSSGP BVCI=%u Rx BVC-RESET-ACK\n", bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx BVC-RESET-ACK\n");</span><br><span>            break;</span><br><span>       case BSSGP_PDUT_BVC_RESET:</span><br><span>           /* BSS tells us that BVC init is required */</span><br><span>                 if (!TLVP_PRESENT(tp, BSSGP_IE_BVCI) ||</span><br><span>                  !TLVP_PRESENT(tp, BSSGP_IE_CAUSE)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGP(DBSSGP, LOGL_ERROR, "BSSGP Rx BVC-RESET "</span><br><span style="color: hsl(0, 100%, 40%);">-                                "missing mandatory IE\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOGBSSGP(bvci, nsei, LOGL_ERROR, "Rx BVC-RESET missing mandatory IE\n");</span><br><span>                   goto err_mand_ie;</span><br><span>            }</span><br><span>            rc = bssgp_rx_bvc_reset(msg, tp, ns_bvci);</span><br><span>@@ -1010,14 +983,12 @@</span><br><span>  case BSSGP_PDUT_BVC_BLOCK_ACK:</span><br><span>       case BSSGP_PDUT_BVC_UNBLOCK_ACK:</span><br><span>     case BSSGP_PDUT_SGSN_INVOKE_TRACE:</span><br><span style="color: hsl(0, 100%, 40%);">-              DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s only exists in DL\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                   bvci, bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+                DEBUGBSSGP(bvci, nsei, "Rx PDU type %s only exists in DL\n", bssgp_pdu_str(pdu_type));</span><br><span>             bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);</span><br><span>            rc = -EINVAL;</span><br><span>                break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type %s unknown\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                      bvci, bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+               DEBUGBSSGP(bvci, nsei, "Rx PDU type %s unknown\n", bssgp_pdu_str(pdu_type));</span><br><span>               rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);</span><br><span>               break;</span><br><span>       }</span><br><span>@@ -1053,7 +1024,7 @@</span><br><span>            rc = bssgp_tlv_parse(&tp, budh->data, data_len);</span><br><span>      }</span><br><span>    if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGBSSGP(ns_bvci, ns_nsei, LOGL_ERROR, "Failed to parse %s message. Invalid message was: %s\n",</span><br><span>                 bssgp_pdu_str(pdu_type), msgb_hexdump(msg));</span><br><span>            if (pdu_type != BSSGP_PDUT_STATUS)</span><br><span>                   return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg);</span><br><span>@@ -1083,9 +1054,8 @@</span><br><span>          * registered if a BVCI is given. */</span><br><span>         if (!bctx && bvci != BVCI_SIGNALLING &&</span><br><span>          pdu_type != BSSGP_PDUT_BVC_RESET) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU "</span><br><span style="color: hsl(0, 100%, 40%);">-                    "type %s for unknown BVCI\n", ns_nsei, bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                  bssgp_pdu_str(pdu_type));</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGBSSGP(ns_bvci, ns_nsei, LOGL_NOTICE, "Rejecting PDU type %s for unknown BVCI %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                       bssgp_pdu_str(pdu_type), bvci);</span><br><span>             return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &bvci, msg);</span><br><span>    }</span><br><span> </span><br><span>@@ -1096,10 +1066,8 @@</span><br><span>       else if (bctx)</span><br><span>               rc = bssgp_rx_ptp(msg, &tp, bctx);</span><br><span>       else</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DBSSGP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">-                       "NSEI=%u/BVCI=%u Cannot handle PDU type %s for "</span><br><span style="color: hsl(0, 100%, 40%);">-                      "unknown BVCI, NS BVCI %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                 ns_nsei, bvci, bssgp_pdu_str(pdu_type), ns_bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGBSSGP(ns_bvci, ns_nsei, LOGL_NOTICE, "Cannot handle PDU type %s for unknown BVCI %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   bssgp_pdu_str(pdu_type), bvci);</span><br><span> </span><br><span>         return rc;</span><br><span> }</span><br><span>@@ -1121,16 +1089,14 @@</span><br><span> </span><br><span>        /* Identifiers from UP: TLLI, BVCI, NSEI (all in msgb->cb) */</span><br><span>     if (bvci <= BVCI_PTM ) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to BVCI %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGBSSGP(bvci, nsei, LOGL_ERROR, "Cannot send DL-UD to BVCI\n");</span><br><span>           msgb_free(msg);</span><br><span>              return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span>        bctx = btsctx_by_bvci_nsei(bvci, nsei);</span><br><span>      if (!bctx) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGP(DBSSGP, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                    bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGBSSGP(bvci, nsei, LOGL_ERROR, "Cannot send DL-UD to unknown BVCI\n");</span><br><span>           msgb_free(msg);</span><br><span>              return -ENODEV;</span><br><span>      }</span><br><span>diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c</span><br><span>index f06c403..574b47a 100644</span><br><span>--- a/src/gb/gprs_bssgp_bss.c</span><br><span>+++ b/src/gb/gprs_bssgp_bss.c</span><br><span>@@ -60,8 +60,7 @@</span><br><span>       struct bssgp_normal_hdr *bgph =</span><br><span>                      (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx SUSPEND (TLLI=0x%04x)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGBSSGP(0, nsei, LOGL_NOTICE, "Tx SUSPEND (TLLI=0x%04x)\n", tlli);</span><br><span>        msgb_nsei(msg) = nsei;</span><br><span>       msgb_bvci(msg) = 0; /* Signalling */</span><br><span>         bgph->pdu_type = BSSGP_PDUT_SUSPEND;</span><br><span>@@ -80,7 +79,7 @@</span><br><span>  struct bssgp_normal_hdr *bgph =</span><br><span>                      (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=0) Tx RESUME (TLLI=0x%04x)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGBSSGP(0, nsei, LOGL_NOTICE, "Tx RESUME (TLLI=0x%04x)\n",</span><br><span>                tlli);</span><br><span>       msgb_nsei(msg) = nsei;</span><br><span>       msgb_bvci(msg) = 0; /* Signalling */</span><br><span>@@ -101,8 +100,7 @@</span><br><span>   struct bssgp_normal_hdr *bgph =</span><br><span>              (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RA-CAPA-UPD (TLLI=0x%04x)\n",</span><br><span style="color: hsl(0, 100%, 40%);">-           bctx->bvci, tlli);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBSSGP(bctx->bvci, bctx->nsei, LOGL_NOTICE, "Tx RA-CAPA-UPD (TLLI=0x%04x)\n", tlli);</span><br><span> </span><br><span>   /* set NSEI and BVCI in msgb cb */</span><br><span>   msgb_nsei(msg) = bctx->nsei;</span><br><span>@@ -123,8 +121,7 @@</span><br><span>        struct bssgp_normal_hdr *bgph =</span><br><span>              (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx RADIO-STATUS ",</span><br><span style="color: hsl(0, 100%, 40%);">-         bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGBSSGP(bctx->bvci, bctx->nsei, LOGL_NOTICE, "Tx RADIO-STATUS ");</span><br><span> </span><br><span>       /* set NSEI and BVCI in msgb cb */</span><br><span>   msgb_nsei(msg) = bctx->nsei;</span><br><span>@@ -232,9 +229,8 @@</span><br><span>        uint16_t _bvci = osmo_htons(bctx->bvci);</span><br><span>  uint32_t _oct_aff = osmo_htonl(num_octets & 0xFFFFFF);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx LLC-DISCARDED "</span><br><span style="color: hsl(0, 100%, 40%);">-      "TLLI=0x%04x, FRAMES=%u, OCTETS=%u\n", bctx->bvci, tlli,</span><br><span style="color: hsl(0, 100%, 40%);">-           num_frames, num_octets);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGBSSGP(bctx->bvci, bctx->nsei, LOGL_NOTICE, "Tx LLC-DISCARDED TLLI=0x%04x, FRAMES=%u, OCTETS=%u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+          tlli, num_frames, num_octets);</span><br><span>      msgb_nsei(msg) = bctx->nsei;</span><br><span>      msgb_bvci(msg) = 0; /* Signalling */</span><br><span>         bgph->pdu_type = BSSGP_PDUT_LLC_DISCARD;</span><br><span>@@ -256,8 +252,7 @@</span><br><span>                    (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span>    uint16_t _bvci = osmo_htons(bctx->bvci);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK "</span><br><span style="color: hsl(0, 100%, 40%);">-             "CAUSE=%s\n", bctx->bvci, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGBSSGP(bctx->bvci, bctx->nsei, LOGL_NOTICE, "Tx BVC-BLOCK CAUSE=%s\n", bssgp_cause_str(cause));</span><br><span> </span><br><span>        msgb_nsei(msg) = bctx->nsei;</span><br><span>      msgb_bvci(msg) = 0; /* Signalling */</span><br><span>@@ -277,7 +272,7 @@</span><br><span>                   (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span>    uint16_t _bvci = osmo_htons(bctx->bvci);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGBSSGP(bctx->bvci, bctx->nsei, LOGL_NOTICE, "Tx BVC-UNBLOCK\n");</span><br><span> </span><br><span>       msgb_nsei(msg) = bctx->nsei;</span><br><span>      msgb_bvci(msg) = 0; /* Signalling */</span><br><span>@@ -296,8 +291,7 @@</span><br><span>                   (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span>    uint16_t _bvci = osmo_htons(bvci);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET "</span><br><span style="color: hsl(0, 100%, 40%);">-             "CAUSE=%s\n", bvci, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGBSSGP(bvci, bctx->nsei, LOGL_NOTICE, "Tx BVC-RESET CAUSE=%s\n", bssgp_cause_str(cause));</span><br><span> </span><br><span>         msgb_nsei(msg) = bctx->nsei;</span><br><span>      msgb_bvci(msg) = 0; /* Signalling */</span><br><span>diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c</span><br><span>index 95bf8285..fdc4868 100644</span><br><span>--- a/src/gb/gprs_bssgp_util.c</span><br><span>+++ b/src/gb/gprs_bssgp_util.c</span><br><span>@@ -216,7 +216,7 @@</span><br><span> /* Chapter 10.4.14: Status */</span><br><span> int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     uint16_t nsei = msgb_nsei(orig_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+  uint16_t nsei = msgb_nsei(orig_msg), b = bvci ? *bvci : 0;</span><br><span>   struct msgb *msg = bssgp_msgb_alloc();</span><br><span>       struct bssgp_normal_hdr *bgph =</span><br><span>                      (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph));</span><br><span>@@ -225,18 +225,15 @@</span><br><span>       cause is either "BVCI blocked" or "BVCI unknown" */</span><br><span>   if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) {</span><br><span>                if (bvci == NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: "</span><br><span style="color: hsl(0, 100%, 40%);">-                             "missing conditional BVCI\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                         bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOGBSSGP(b, nsei, LOGL_ERROR, "Tx STATUS, cause=%s: missing conditional BVCI\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                             bssgp_cause_str(cause));</span><br><span>    } else {</span><br><span>             if (bvci != NULL)</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOGP(DBSSGP, LOGL_ERROR, "BSSGP Tx STATUS, cause=%s: "</span><br><span style="color: hsl(0, 100%, 40%);">-                             "unexpected conditional BVCI\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                      bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOGBSSGP(b, nsei, LOGL_ERROR, "Tx STATUS, cause=%s: unexpected conditional BVCI\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          bssgp_cause_str(cause));</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGP(DBSSGP, LOGL_NOTICE, "BSSGP BVCI=%u Tx STATUS, cause=%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">-              bvci ? *bvci : 0, bssgp_cause_str(cause));</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGBSSGP(b, nsei, LOGL_NOTICE, "Tx STATUS, cause=%s\n", bssgp_cause_str(cause));</span><br><span>   msgb_nsei(msg) = nsei;</span><br><span>       msgb_bvci(msg) = 0;</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13205">change 13205</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/13205"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I8cd2bdb12aa3a5a7dfcb7a85fee35ec3a3a9820b </div>
<div style="display:none"> Gerrit-Change-Number: 13205 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>