Project

General

Profile

Bug #3789

BTS permits OPSTART of MO without attributes

Added by laforge 8 months ago. Updated 8 months ago.

Status:
Stalled
Priority:
Normal
Assignee:
Category:
Abis
Target version:
-
Start date:
02/07/2019
Due date:
% Done:

80%

Spec Reference:

Description

After writing some OML testcases, I discovered that it's currently possible to OPSTART a Managed Object which doesn't yet have all of its attributes set. This is a likely cause of OML initialization failures, and should be NACKed.

As per TS 12.21 Figure 2, the Attribute setting happens before OPSTART. The OPSTART then attempts to put the object into the ENABLED operational state.


Related issues

Related to OsmoBTS - Bug #3782: OML bringup fails for osmo-bts-oc2g on high latency linksNew02/06/2019

Related to OsmoBTS - Feature #2469: Proper OML MO (managed object) using osmo_fsmNew08/29/2017

History

#1 Updated by laforge 8 months ago

  • Related to Bug #3782: OML bringup fails for osmo-bts-oc2g on high latency links added

#2 Updated by laforge 8 months ago

  • Related to Feature #2469: Proper OML MO (managed object) using osmo_fsm added

#3 Updated by laforge 8 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 40

#4 Updated by laforge 8 months ago

  • % Done changed from 40 to 70

#5 Updated by laforge 8 months ago

The problem with the patch is on the OsmoBSC side. It seems there are two code paths that lead to the RADIO_CARRIER MO to be OPSTARTed:
  1. if the state changes to OPSTATE_DISABLED + AVSTATE_OK. Here we only try to OPSTART without ever setting attributes or changing admin state before.
  2. if there's a a SW ACTIVATE REPORT. Here we also set the attributes and change admin state

Now the problem is that if we reject the OPSTART without having all relevant attributes set, then "1" above will fail. Only "2" will succeed. Unfortuantely the normal OsmoBSC bring-up will transition through "1" before going through "2".

So we either have to make OsmoBTS survive any such NACKs (which is probably a sane choice these days, we don't need to terminate the process just because something was NACKed), or teach OsmoBSC to not OPSTART twice.

#6 Updated by laforge 8 months ago

I've just played with a nanoBTS. Confusingly, it also ACKs an OPSTART to a RADIO CARRIER MO that has no software installed nor any attributes set :(

So their implementation is also not really any better than ours in terms of a proper state machine?

#7 Updated by laforge 8 months ago

  • % Done changed from 70 to 80

laforge wrote:

  1. if the state changes to OPSTATE_DISABLED + AVSTATE_OK. Here we only try to OPSTART without ever setting attributes or changing admin state before.

If I deactivate this, it seems we can still successfully start a nanoBTS 165AU as well as a sysmobts 0.8.1+git29+bf87717cc8-r0.18.0. So I guess it's safe to remove this part. Will try to dig a bit further in the openbsc.git history.

#9 Updated by laforge 8 months ago

The underliyng fundamental question remains:

Sshould setting the attributes and subsequent opstart depend on
  1. a software activated report (like done for NM_OC_BASEB_TRANSC and NM_OC_RADIO_CARRIER), or
  2. a state changed event report (like for SITE_MANAGER, BTS, CHANNEL, NSE, CELL, NSVC)

RADIO_CARRIER is the only MO that's trying to do both, which is creating the problem here.

#10 Updated by laforge 8 months ago

  • Status changed from In Progress to Stalled

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)