Bug #5157

osmo-bts-(sysmo) fails to come up if BSC has rf_locked 1

Added by keith about 1 month ago. Updated 29 days ago.

Target version:
Start date:
Due date:
% Done:


Spec Reference:


I'm pretty sure that osmo-bts-sysmo used to come up with RF MUTED if the BSC config has rf_locked 1

However I noticed that it fails. I went back quite far in the history, to tag 1.2.0 which still exhibits the behaviour:

DL1C ERROR <0006> oml.c:277 Rx MPH-CONNECT.conf, status: Invalid parameter
DOML INFO <0001> oml.c:285 NM_CHAN_OP(bts0-trx0-ts0)[0x561ed4cda310]{DISABLED_OFFLINE}: Received Event OPSTART_NACK
DLINP ERROR <0012> input/ipa.c:65 connection closed with server

oml_rf_locked_nack.pcap oml_rf_locked_nack.pcap 15.7 KB keith, 05/16/2021 10:37 PM

Associated revisions

Revision 0277cdda (diff)
Added by pespin about 1 month ago

sysmo,oc2g,lc15: Make RadioChannel MO depend on RadioCarrier MO

lower layer specific APIs require first to enable the TRX object
(GsmL1_PrimId_MphInitReq, which requires ARFCN received during Set
Radio Carrier Attributes) before enabling the per-TS structure.
Hence, OPSTART must happen in RCARRIER MO before OPSTART can be sent to
the Radio Channel MOs, otherwise the initialization of the TS objet will
fail and OPSTART for the RadioChannel MO will send back a NACK.
In order to avoid this, we need to keep the RadioChannel MO announced as
"Disabled Dependency" until RCARRIER is OPSTARTed.

Related: OS#5157
Change-Id: I8c6e5ff98c32a3cd5006f5e5ed6875bcabb1d85f


#1 Updated by fixeria about 1 month ago

  • Category set to osmo-bts-sysmo
  • Assignee set to pespin

Pau worked on the RF lock/ramping code some time ago, maybe he has some ideas?

#2 Updated by fixeria about 1 month ago

I managed to reproduce the problem, and here is what I see in '/dev/rtfifo/dsp_trace':

[ERROR] : DeviceMng_ValidateL1Handle() => Invalid layer 1 handle
PhyRf_DeviceType = ffff, PhyRf_DeviceUsedDownlink=0, PhyRf_DeviceUsedUplink=0 
[ERROR] : DeviceMng_ValidateL1Handle() => Invalid layer 1 handle

#3 Updated by pespin about 1 month ago

My guess is that osmo-bts-sysmo is unable to OPSTART a Channel (aka TS) without having previously having OPSTARTed (hence be in ENABLED state) the related Radio Carrier (TRX).

If that's the case, osmo-bts-sysmo shouldn't be announcing Channel state as Disabled Off-line, but Disabled Dependency.
As it can be been in the pcap trace, the Channels are initially set as "Disabled Dependency", but once that BaseBand Transceiver object is brought up (unlock + opstart), the state of the Channels become "Disabled Off-line",at which point the BSC decides it can OPSTART them.

So I'd say the BSC is doing good, and the bts-sysmo should either ACK the OPSTART if it internally supports doing so if the Radio Carrier was not yet OPSTARTed, or otherwise keep the Channel state as "Disabled Dependency".

#4 Updated by pespin about 1 month ago

It can be clearly seen that in the generic Channel mo FSM (applicable to all BTS flavours), the Channel is switched "Disabled Dependency"->"Disabled Off-line" when BB Transceiver becomes enabled (OPSTARTed). See osmo-bts.git/src/common/nm_channel_fsm.c:

static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data)
    struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv;

    switch (event) {
        nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_OFFLINE);

#5 Updated by pespin about 1 month ago

  • Status changed from New to Feedback
  • Assignee changed from pespin to keith
  • % Done changed from 0 to 90

Fixed by following patch: sysmo,oc2g,lc15: Make RadioChannel MO depend on RadioCarrier MO
keith please confirm it's working fine after applying it, it worked fine for me.

#6 Updated by keith 29 days ago

  • Status changed from Feedback to Resolved

Yep, Thanks pespin! All seems well now with that.

#7 Updated by keith 29 days ago

  • % Done changed from 90 to 100

#8 Updated by keith 29 days ago

Actually, just one thing. it appear the BSC logs

 DRSL ERROR (bts=0,trx=0,ts=0,pchan_from_config=CCCH,state=NOT_INITIALIZED) Abis RSL rx CCHAN: mismatching chan_nr=0x90 (abis_rsl.c:142)

Until the BTS is rf_(un)locked.

Seems like an unexpected error.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)