aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/abis.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-09-22 18:15:12 +0200
committerpespin <pespin@sysmocom.de>2021-09-23 12:07:29 +0000
commit130e2e59c65aba55a2402ad8c09afc00a7c1c14a (patch)
tree66ccecc63f6a578e719155f0e5b33fc9ebdc9387 /src/common/abis.c
parent49979bb79444545756f52a028587fa092f9e1bbd (diff)
bts_trx: Drop non-executed path in trx_link_estab()
This function is only called during sign_link_up() e1inp callback, hence only the link!=NULL condition (UP) is ever executed. Let's drop the DOWN path and make it a function only used to trigger events when link becomes up, similar to what bts_link_estab() does with OML. Here it becomes clear the NM_EV_RSL_DOWN was never sent. It's not much of an issue though since it would only make transition RCARRIER/BBTRANSC Enabled->DisabledOffline. However, since due to libosmo-abis limitation we receive a sign_link_down() for the entire line when 1 of its links goes down, we don't care much since we go for shutdown of the entire BTS anyway. Ideally, libosmo-abis would support simply telling us 1 of the links in the line went down and if it was not OML and not RSL TRX==C0, then we could keep on running and simply disable the related TRX. Change-Id: Iac553c68339c0da32fd313676995747eb4344087
Diffstat (limited to 'src/common/abis.c')
-rw-r--r--src/common/abis.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/abis.c b/src/common/abis.c
index 1722f3de..1b489c17 100644
--- a/src/common/abis.c
+++ b/src/common/abis.c
@@ -214,6 +214,14 @@ static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *
e1inp_sign_link_destroy(trx->rsl_link);
trx->rsl_link = NULL;
}
+ /* Note: Here we could send NM_EV_RSL_DOWN to each
+ * trx->(bb_transc.)mo.fi, but we are starting shutdown of the
+ * entire BTS anyway through bts_model_abis_close(), so simply
+ * let bts_shutdown FSM take care of slowly powering down all
+ * the TRX. It would make sense to send NM_EV_RSL_DOWN only if a
+ * RSL link TRX!=C0 was going down, in order to selectively stop
+ * that TRX only. But libosmo-abis expects us to drop the entire
+ * line when something goes wrong... */
}
bts_model_abis_close(bts);
osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0);