<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13871">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Vadim Yanitskiy: Looks good to me, but someone else must approve
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce LOGCHAN macro to standarize logging channel info<br><br>Change-Id: I67d869499aa16af58c863ca7b74c356bcd979936<br>---<br>M CommonLibs/Logger.h<br>M Transceiver52M/Transceiver.cpp<br>M Transceiver52M/device/lms/LMSDevice.cpp<br>3 files changed, 39 insertions(+), 36 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CommonLibs/Logger.h b/CommonLibs/Logger.h</span><br><span>index e18ecfb..9c665cd 100644</span><br><span>--- a/CommonLibs/Logger.h</span><br><span>+++ b/CommonLibs/Logger.h</span><br><span>@@ -56,6 +56,9 @@</span><br><span> #define LOGLV(category, level) \</span><br><span>    Log(category, level, __BASE_FILE__, __LINE__).get() <<  "[tid=" << pthread_self() << "] "</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGCHAN(chan, category, level) \</span><br><span style="color: hsl(120, 100%, 40%);">+ Log(category, LOGL_##level, __BASE_FILE__, __LINE__).get() <<  "[tid=" << pthread_self() << "][chan=" << chan << "] "</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /**</span><br><span>   A C++ stream-based thread-safe logger.</span><br><span>       This object is NOT the global logger;</span><br><span>diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp</span><br><span>index cfb36c3..54b9ddd 100644</span><br><span>--- a/Transceiver52M/Transceiver.cpp</span><br><span>+++ b/Transceiver52M/Transceiver.cpp</span><br><span>@@ -390,7 +390,7 @@</span><br><span>     state = &mStates[i];</span><br><span> </span><br><span>     while ((burst = mTxPriorityQueues[i].getStaleBurst(nowTime))) {</span><br><span style="color: hsl(0, 100%, 40%);">-      LOG(NOTICE) << "chan " << i << " dumping STALE burst in TRX->SDR interface ("</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGCHAN(i, DMAIN, NOTICE) << "dumping STALE burst in TRX->SDR interface ("</span><br><span>                   << burst->getTime() <<" vs " << nowTime << "), retrans=" << state->mRetrans;</span><br><span>       if (state->mRetrans)</span><br><span>         updateFillerTable(i, burst);</span><br><span>@@ -725,7 +725,7 @@</span><br><span> </span><br><span>   /* Set command pointer */</span><br><span>   command = buffer + 4;</span><br><span style="color: hsl(0, 100%, 40%);">-  LOGC(DTRXCTRL, INFO) << "chan " << chan << ": command is '" << command << "'";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGCHAN(chan, DTRXCTRL, INFO) << "command is '" << command << "'";</span><br><span> </span><br><span>   if (match_cmd(command, "POWEROFF", NULL)) {</span><br><span>     stop();</span><br><span>@@ -856,7 +856,7 @@</span><br><span>     sprintf(response,"RSP ERR 1");</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOGC(DTRXCTRL, INFO) << "chan " << chan << ": response is '" << response << "'";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGCHAN(chan, DTRXCTRL, INFO) << "response is '" << response << "'";</span><br><span>   mCtrlSockets[chan]->write(response, strlen(response) + 1);</span><br><span> }</span><br><span> </span><br><span>diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>index be51a12..75efa1e 100644</span><br><span>--- a/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>+++ b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>@@ -337,7 +337,7 @@</span><br><span> /* do rx/tx calibration - depends on gain, freq and bw */</span><br><span> bool LMSDevice::do_calib(size_t chan)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOGC(DDEV, INFO) << "Calibrating chan " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGCHAN(chan, DDEV, INFO) << "Calibrating";</span><br><span>  if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, chan, LMS_CALIBRATE_BW_HZ, 0) < 0)</span><br><span>                return false;</span><br><span>        if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, chan, LMS_CALIBRATE_BW_HZ, 0) < 0)</span><br><span>@@ -351,7 +351,7 @@</span><br><span>  lms_range_t range_lpfbw_rx, range_lpfbw_tx;</span><br><span>  float_type lpfbw_rx, lpfbw_tx;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      LOGC(DDEV, INFO) << "Setting filters on chan " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGCHAN(chan, DDEV, INFO) << "Setting filters";</span><br><span>      if (LMS_GetLPFBWRange(m_lms_dev, LMS_CH_RX, &range_lpfbw_rx))</span><br><span>            return false;</span><br><span>        print_range("LPFBWRange Rx", &range_lpfbw_rx);</span><br><span>@@ -362,9 +362,9 @@</span><br><span>   lpfbw_rx = OSMO_MIN(OSMO_MAX(1.4001e6, range_lpfbw_rx.min), range_lpfbw_rx.max);</span><br><span>     lpfbw_tx = OSMO_MIN(OSMO_MAX(5.2e6, range_lpfbw_tx.min), range_lpfbw_tx.max);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       LOGC(DDEV, INFO) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx;</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGCHAN(chan, DDEV, INFO) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOGC(DDEV, INFO) << "Setting LPFBW chan " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGCHAN(chan, DDEV, INFO) << "Setting LPFBW";</span><br><span>        if (LMS_SetLPFBW(m_lms_dev, LMS_CH_RX, chan, lpfbw_rx) < 0)</span><br><span>               return false;</span><br><span>        if (LMS_SetLPFBW(m_lms_dev, LMS_CH_TX, chan, lpfbw_tx) < 0)</span><br><span>@@ -400,10 +400,10 @@</span><br><span>       if (dB < minTxGain())</span><br><span>             dB = minTxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGC(DDEV, NOTICE) << "chan " << chan <<": Setting TX gain to " << dB << " dB";</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB";</span><br><span> </span><br><span>       if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERR) << "chan " << chan <<": Error setting TX gain to " << dB << " dB";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB";</span><br><span> </span><br><span>    return dB;</span><br><span> }</span><br><span>@@ -415,10 +415,10 @@</span><br><span>      if (dB < minRxGain())</span><br><span>             dB = minRxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOGC(DDEV, NOTICE) << "chan "<< chan << ": Setting RX gain to " << dB << " dB";</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGCHAN(chan, DDEV, NOTICE) << "Setting RX gain to " << dB << " dB";</span><br><span> </span><br><span>       if (LMS_SetGaindB(m_lms_dev, LMS_CH_RX, chan, dB) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERR) << "chan "<< chan << ": Error setting RX gain to " << dB << " dB";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGCHAN(chan, DDEV, ERR) << "Error setting RX gain to " << dB << " dB";</span><br><span> </span><br><span>    return dB;</span><br><span> }</span><br><span>@@ -476,12 +476,12 @@</span><br><span> </span><br><span>  idx = get_ant_idx(ant, LMS_CH_RX, chan);</span><br><span>     if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Invalid Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGCHAN(chan, DDEV, ERROR) << "Invalid Rx Antenna";</span><br><span>          return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetAntenna(m_lms_dev, LMS_CH_RX, chan, idx) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGC(DDEV, ERROR) << "Unable to set Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGCHAN(chan, DDEV, ERROR) << "Unable to set Rx Antenna";</span><br><span>    }</span><br><span> </span><br><span>        return true;</span><br><span>@@ -499,12 +499,12 @@</span><br><span> </span><br><span>     idx = LMS_GetAntenna(m_lms_dev, LMS_CH_RX, chan);</span><br><span>    if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Error getting Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGCHAN(chan, DDEV, ERROR) << "Error getting Rx Antenna";</span><br><span>            return "";</span><br><span>         }</span><br><span> </span><br><span>        if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, name_list) < idx) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Error getting Rx Antenna List";</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGCHAN(chan, DDEV, ERROR) << "Error getting Rx Antenna List";</span><br><span>               return "";</span><br><span>         }</span><br><span> </span><br><span>@@ -522,12 +522,12 @@</span><br><span> </span><br><span>    idx = get_ant_idx(ant, LMS_CH_TX, chan);</span><br><span>     if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Invalid Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGCHAN(chan, DDEV, ERROR) << "Invalid Rx Antenna";</span><br><span>          return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetAntenna(m_lms_dev, LMS_CH_TX, chan, idx) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOGC(DDEV, ERROR) << "Unable to set Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGCHAN(chan, DDEV, ERROR) << "Unable to set Rx Antenna";</span><br><span>    }</span><br><span> </span><br><span>        return true;</span><br><span>@@ -545,12 +545,12 @@</span><br><span> </span><br><span>     idx = LMS_GetAntenna(m_lms_dev, LMS_CH_TX, chan);</span><br><span>    if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Error getting Tx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGCHAN(chan, DDEV, ERROR) << "Error getting Tx Antenna";</span><br><span>            return "";</span><br><span>         }</span><br><span> </span><br><span>        if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, name_list) < idx) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGC(DDEV, ERROR) << "Error getting Tx Antenna List";</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGCHAN(chan, DDEV, ERROR) << "Error getting Tx Antenna List";</span><br><span>               return "";</span><br><span>         }</span><br><span> </span><br><span>@@ -573,24 +573,24 @@</span><br><span>        if (LMS_GetStreamStatus(&m_lms_stream_rx[chan], &status) == 0) {</span><br><span>             if (status.underrun > m_last_rx_underruns[chan]) {</span><br><span>                        *underrun = true;</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOGC(DDEV, ERROR) << "chan " << chan << ": recv Underrun! ("</span><br><span style="color: hsl(0, 100%, 40%);">-                                        << m_last_rx_underruns[chan] << " -> "</span><br><span style="color: hsl(0, 100%, 40%);">-                                         << status.underrun << ")";</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOGCHAN(chan, DDEV, ERROR) << "recv Underrun! ("</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 << m_last_rx_underruns[chan] << " -> "</span><br><span style="color: hsl(120, 100%, 40%);">+                                               << status.underrun << ")";</span><br><span>          }</span><br><span>            m_last_rx_underruns[chan] = status.underrun;</span><br><span> </span><br><span>             if (status.overrun > m_last_rx_overruns[chan]) {</span><br><span>                  *overrun = true;</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGC(DDEV, ERROR) << "chan " << chan << ": recv Overrun! ("</span><br><span style="color: hsl(0, 100%, 40%);">-                                         << m_last_rx_overruns[chan] << " -> "</span><br><span style="color: hsl(0, 100%, 40%);">-                                          << status.overrun << ")";</span><br><span style="color: hsl(120, 100%, 40%);">+                     LOGCHAN(chan, DDEV, ERROR) << "recv Overrun! ("</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  << m_last_rx_overruns[chan] << " -> "</span><br><span style="color: hsl(120, 100%, 40%);">+                                                << status.overrun << ")";</span><br><span>           }</span><br><span>            m_last_rx_overruns[chan] = status.overrun;</span><br><span> </span><br><span>               if (status.droppedPackets > m_last_rx_dropped[chan]) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOGC(DDEV, ERROR) << "chan " << chan << ": recv Dropped packets by HW! ("</span><br><span style="color: hsl(0, 100%, 40%);">-                                   << m_last_rx_dropped[chan] << " -> "</span><br><span style="color: hsl(0, 100%, 40%);">-                                   << status.droppedPackets << ")";</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGCHAN(chan, DDEV, ERROR) << "recv Dropped packets by HW! ("</span><br><span style="color: hsl(120, 100%, 40%);">+                                            << m_last_rx_dropped[chan] << " -> "</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 << status.droppedPackets << ")";</span><br><span>            }</span><br><span>            m_last_rx_dropped[chan] = m_last_rx_overruns[chan];</span><br><span>  }</span><br><span>@@ -619,12 +619,12 @@</span><br><span>            rc = LMS_RecvStream(&m_lms_stream_rx[i], bufs[i], len, &rx_metadata, 100);</span><br><span>           update_stream_stats(i, underrun, overrun);</span><br><span>           if (rc != len) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGC(DDEV, ERROR) << "LMS: Device receive timed out (" << rc << " vs exp " << len << ").";</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGCHAN(i, DDEV, ERROR) << "LMS: Device receive timed out (" << rc << " vs exp " << len << ").";</span><br><span>                         thread_enable_cancel(true);</span><br><span>                  return -1;</span><br><span>           }</span><br><span>            if (timestamp != (TIMESTAMP)rx_metadata.timestamp)</span><br><span style="color: hsl(0, 100%, 40%);">-                      LOGC(DDEV, ERROR) << "chan "<< i << " recv buffer of len " << rc << " expect " << std::hex << timestamp << " got " << std::hex << (TIMESTAMP)rx_metadata.timestamp << " (" << std::hex << rx_metadata.timestamp <<") diff=" << rx_metadata.timestamp - timestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGCHAN(i, DDEV, ERROR) << "recv buffer of len " << rc << " expect " << std::hex << timestamp << " got " << std::hex << (TIMESTAMP)rx_metadata.timestamp << " (" << std::hex << rx_metadata.timestamp <<") diff=" << rx_metadata.timestamp - timestamp;</span><br><span>              thread_enable_cancel(true);</span><br><span>  }</span><br><span> </span><br><span>@@ -659,11 +659,11 @@</span><br><span>        *underrun = false;</span><br><span> </span><br><span>       for (i = 0; i<chans; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGC(DDEV, DEBUG) << "chan "<< i << " send buffer of len " << len << " timestamp " << std::hex << tx_metadata.timestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGCHAN(i, DDEV, DEBUG) << "send buffer of len " << len << " timestamp " << std::hex << tx_metadata.timestamp;</span><br><span>             thread_enable_cancel(false);</span><br><span>                 rc = LMS_SendStream(&m_lms_stream_tx[i], bufs[i], len, &tx_metadata, 100);</span><br><span>           if (rc != len) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOGC(DDEV, ERROR) << "LMS: Device send timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOGCHAN(i, DDEV, ERROR) << "LMS: Device send timed out";</span><br><span>             }</span><br><span> </span><br><span>                if (LMS_GetStreamStatus(&m_lms_stream_tx[i], &status) == 0) {</span><br><span>@@ -684,10 +684,10 @@</span><br><span> </span><br><span> bool LMSDevice::setTxFreq(double wFreq, size_t chan)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOGC(DDEV, NOTICE) << "chan "<< chan << ": Setting Tx Freq to " << wFreq << " Hz";</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGCHAN(chan, DDEV, NOTICE) << "Setting Tx Freq to " << wFreq << " Hz";</span><br><span> </span><br><span>    if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGC(DDEV, ERROR) << "chan "<< chan << ": Error setting Tx Freq to " << wFreq << " Hz";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGCHAN(chan, DDEV, ERROR) << "Error setting Tx Freq to " << wFreq << " Hz";</span><br><span>           return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -696,10 +696,10 @@</span><br><span> </span><br><span> bool LMSDevice::setRxFreq(double wFreq, size_t chan)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOGC(DDEV, NOTICE) << "chan "<< chan << ": Setting Rx Freq to " << wFreq << " Hz";</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGCHAN(chan, DDEV, NOTICE) << "Setting Rx Freq to " << wFreq << " Hz";</span><br><span> </span><br><span>    if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGC(DDEV, ERROR) << "chan "<< chan << ": Error setting Rx Freq to " << wFreq << " Hz";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGCHAN(chan, DDEV, ERROR) << "Error setting Rx Freq to " << wFreq << " Hz";</span><br><span>           return false;</span><br><span>        }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13871">change 13871</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/13871"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I67d869499aa16af58c863ca7b74c356bcd979936 </div>
<div style="display:none"> Gerrit-Change-Number: 13871 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>