Introduce rate counter tx_stale_bursts

This allows checking if there's timing issues on the downlink side
between osmo-bts-trx and osmo-trx. This counter is useful to find
information about osmo-bts-trx 'fn-advance' setting, since this counter
basically counts if burstrs from it arrived too late to osmo-trx.

Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97
This commit is contained in:
Pau Espin Pedrol
2020-06-29 14:34:59 +02:00
parent 6a3a2b8647
commit 92ba59dacf
6 changed files with 73 additions and 7 deletions

View File

@@ -420,18 +420,29 @@ void Transceiver::pushRadioVector(GSM::Time &nowTime)
std::vector<signalVector *> bursts(mChans);
std::vector<bool> zeros(mChans);
std::vector<bool> filler(mChans, true);
bool stale_bursts_changed;
for (size_t i = 0; i < mChans; i ++) {
state = &mStates[i];
stale_bursts_changed = false;
while ((burst = mTxPriorityQueues[i].getStaleBurst(nowTime))) {
LOGCHAN(i, DTRXDDL, NOTICE) << "dumping STALE burst in TRX->SDR interface ("
<< burst->getTime() <<" vs " << nowTime << "), retrans=" << state->mRetrans;
state->ctrs.tx_stale_bursts++;
stale_bursts_changed = true;
if (state->mRetrans)
updateFillerTable(i, burst);
delete burst;
}
if (stale_bursts_changed) {
thread_enable_cancel(false);
state->ctrs.chan = i;
osmo_signal_dispatch(SS_DEVICE, S_TRX_COUNTER_CHANGE, &state->ctrs);
thread_enable_cancel(true);
}
TN = nowTime.TN();
modFN = nowTime.FN() % state->fillerModulus[TN];