diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-09-22 18:15:12 +0200 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2021-09-23 12:07:29 +0000 |
commit | 130e2e59c65aba55a2402ad8c09afc00a7c1c14a (patch) | |
tree | 66ccecc63f6a578e719155f0e5b33fc9ebdc9387 /src/common/abis.c | |
parent | 49979bb79444545756f52a028587fa092f9e1bbd (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.c | 8 |
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); |