Bug #5992
closedosmo-bts: Handle Opstart result from within nm_*_fsm
100%
Description
Right now, when BSC transmits an OPSTART message to osmo-bts, it is handled by common OML code in oml_rx_opstart(), which then calls BTS specific code bts_model_opstart().
This bts_mode_opstart() (hence each BTS type-specific implementation) dispatches an event to the related NM object depending on whether it went well or not: NM_EV_OPSTART_ACK or NM_EV_OPSTART_NACK
This means the FSM has not saying in whether an OPSTART should be ACKED or not, even before calling BTS low level specific implementation.
As a result, there's no easy way to for instance NACK an OPSTART if no attributes were yet applied for that NM object, or if the object is administratively locked, etc.
In order to do so, we should add a new FSM event NM_EV_RX_OML_OPSTART or alike. Each NM object should, when in proper state (DisabledOffline), call bts_mode_opstart() and if it returns an error, then send NM_EV_OPSTART_NACK.
Tip: according to TS 12.21, BTS is expected to answer with OPSTART ACK/NACK rather quickly, not necessarily after having went all the way Enabled. It's more only about signalling that it got the message and that it started the transition to Enabled state.
Related issues
Updated by pespin about 1 year ago
- Related to Bug #5961: BTS accepts OPSTART without prior SET ATTRIBUTES added
Updated by pespin about 1 year ago
Same applies for SetAttr:
NM_EV_SETATTR_ACK, /* data: struct nm_fsm_ev_setattr_data */ NM_EV_SETATTR_NACK, /* data: struct nm_fsm_ev_setattr_data */
Updated by pespin about 1 year ago
- Status changed from New to Feedback
- % Done changed from 0 to 90
remote: https://gerrit.osmocom.org/c/osmo-bts/+/32211 nm: Apply OPSTART through NM FSMs [NEW]
remote: https://gerrit.osmocom.org/c/osmo-bts/+/32212 NM: NACK received OML OPSTART if no attributes were set beforehand [NEW]
Can be closed when these patches are merged.
Updated by pespin about 1 year ago
- Subject changed from osmo-bts: Handle Opstart result from withing nm_*_fsm to osmo-bts: Handle Opstart result from within nm_*_fsm
Updated by pespin about 1 year ago
- Status changed from Feedback to Resolved
- % Done changed from 90 to 100
Merged, closing.