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/UmTRX@lists.osmocom.org/.
Tom Tsou tom at tsou.ccOn Sat, Jan 25, 2014 at 1:22 AM, Andreas Eversberg <andreas at eversberg.eu> wrote: > once a channel was activeated, > there will be RF power on the specific TS, even when osmo-bts does not send > bursts anymore. i guess that some filler table of osmo-trx causes it. i > think it would be nice if osmo-trx would stop transmitting, when there are > no more bursts comming from osmo-bts. (at least after a while.) Yes, this is the behaviour of the filler table, which will resend the previous frame until a new frame arrives. Sending an idle frame will disable output, which is how the filler table is managed in OpenBTS. You can disable the filler table with this patch. diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index e5ab476..9077465 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -197,19 +197,13 @@ void Transceiver::pushRadioVector(GSM::Time &nowTime) TransceiverState *state; std::vector<signalVector *> bursts(mChans); std::vector<bool> zeros(mChans); + std::vector<bool> filler(mChans, true); for (size_t i = 0; i < mChans; i ++) { state = &mStates[i]; while ((burst = mTxPriorityQueues[i].getStaleBurst(nowTime))) { LOG(NOTICE) << "dumping STALE burst in TRX->USRP interface"; - - TN = burst->getTime().TN(); - modFN = burst->getTime().FN() % state->fillerModulus[TN]; - - delete state->fillerTable[modFN][TN]; - state->fillerTable[modFN][TN] = burst->getVector(); - burst->setVector(NULL); delete burst; } @@ -220,9 +214,8 @@ void Transceiver::pushRadioVector(GSM::Time &nowTime) zeros[i] = state->chanType[TN] == NONE; if ((burst = mTxPriorityQueues[i].getCurrentBurst(nowTime))) { - delete state->fillerTable[modFN][TN]; - state->fillerTable[modFN][TN] = burst->getVector(); bursts[i] = burst->getVector(); + filler[i] = false; burst->setVector(NULL); delete burst; } @@ -230,6 +223,11 @@ void Transceiver::pushRadioVector(GSM::Time &nowTime) mRadioInterface->driveTransmitRadio(bursts, zeros); + for (size_t i = 0; i < mChans; i++) { + if (!filler[i]) + delete bursts[i]; + } + return; }