[PATCH] osmo-trx[master]: transceiver: Avoid sending clock indications when trx is not...

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Jul 4 16:01:16 UTC 2017


Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/3120

to look at the new patch set (#2).

transceiver: Avoid sending clock indications when trx is not powered on

Otherwise this fools osmo-bts-trx clock skew check because it is
always sending a clock indication with the same fn when it issues any
commands during the time in between CMD POWEOFF and RSP POWERON.

Also delay send of first IND CLOCK until we start serving frames,
otherwise we send it then wait a long time until start sending the next
ones and that also makes osmo-bts-trx unhappy because it expects to
receive an IND CLOCK aprox at least every 400 frames.

Change-Id: I91b81a4d7627cec39c1814a39ed4be306681b874
---
M Transceiver52M/Transceiver.cpp
M Transceiver52M/Transceiver.h
2 files changed, 6 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/20/3120/2

diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index d5b75d7..bf2dd6e 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -121,7 +121,7 @@
     mClockSocket(wBasePort, wTRXAddress, mBasePort + 100),
     mTransmitLatency(wTransmitLatency), mRadioInterface(wRadioInterface),
     rssiOffset(wRssiOffset),
-    mSPSTx(tx_sps), mSPSRx(rx_sps), mChans(chans), mEdge(false), mOn(false),
+    mSPSTx(tx_sps), mSPSRx(rx_sps), mChans(chans), mEdge(false), mOn(false), mForceClockInterface(false),
     mTxFreq(0.0), mRxFreq(0.0), mTSC(0), mMaxExpectedDelayAB(0), mMaxExpectedDelayNB(0),
     mWriteBurstToDiskMask(0)
 {
@@ -273,7 +273,7 @@
                             TxUpperLoopAdapter, (void*) chan);
   }
 
-  writeClockInterface();
+  mForceClockInterface = true;
   mOn = true;
   return true;
 }
@@ -677,9 +677,6 @@
 
   sscanf(buffer,"%3s %s",cmdcheck,command);
 
-  if (!chan)
-    writeClockInterface();
-
   if (strcmp(cmdcheck,"CMD")!=0) {
     LOG(WARNING) << "bogus message on control interface";
     return;
@@ -873,9 +870,9 @@
 {
   if (!mRadioInterface->driveReceiveRadio()) {
     usleep(100000);
-  } else {
-    if (mTransmitDeadlineClock > mLastClockUpdateTime + GSM::Time(216,0))
-      writeClockInterface();
+  } else if (mForceClockInterface || mTransmitDeadlineClock > mLastClockUpdateTime + GSM::Time(216,0)) {
+    mForceClockInterface = false;
+    writeClockInterface();
   }
 }
 
diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h
index 26d6c3c..1eb1d1d 100644
--- a/Transceiver52M/Transceiver.h
+++ b/Transceiver52M/Transceiver.h
@@ -208,6 +208,7 @@
 
   bool mEdge;
   bool mOn;	                           ///< flag to indicate that transceiver is powered on
+  bool mForceClockInterface;           ///< flag to indicate whether IND CLOCK shall be sent unconditionally after transceiver is started
   bool mHandover[8][8];                ///< expect handover to the timeslot/subslot
   double mTxFreq;                      ///< the transmit frequency
   double mRxFreq;                      ///< the receive frequency

-- 
To view, visit https://gerrit.osmocom.org/3120
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I91b81a4d7627cec39c1814a39ed4be306681b874
Gerrit-PatchSet: 2
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list