diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-06-22 17:57:01 +0200 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2020-06-23 14:21:20 +0000 |
commit | cce0ae11b62e69911024ffe3e27e79362e63830b (patch) | |
tree | 2318fdeb72316a89a39b807980b7e5ae4d0bc38b /src | |
parent | 6281d4f8692729dc0022ea7a6a2068972d58e9b6 (diff) |
Avoid selecting channels from administratively locked trx
Found while playing with "rf_locked 1" on a 2TRX setup with channel
allocator descend. After applying the setting, the 1st TRX is still used
to allocate the channels. After this patch is applied, the BSC correctly
allocates channels from TRX0.
Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3
Diffstat (limited to 'src')
-rw-r--r-- | src/osmo-bsc/abis_nm.c | 3 | ||||
-rw-r--r-- | src/osmo-bsc/gsm_data.c | 11 | ||||
-rw-r--r-- | src/osmo-bsc/osmo_bsc_main.c | 2 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index b6d1ec5c2..e17c6f5e4 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -848,9 +848,6 @@ bool all_trx_rsl_connected_unlocked(const struct gsm_bts *bts) if (!trx_is_usable(trx)) return false; - - if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) - return false; } return true; diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 2098f1345..f790b90d8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1459,10 +1459,13 @@ void gsm48_lchan2chan_desc_as_configured(struct gsm48_chan_desc *cd, } bool nm_is_running(const struct gsm_nm_state *s) { - return (s->operational == NM_OPSTATE_ENABLED) && ( - (s->availability == NM_AVSTATE_OK) || - (s->availability == 0xff) - ); + if (s->operational != NM_OPSTATE_ENABLED) + return false; + if ((s->availability != NM_AVSTATE_OK) && (s->availability != 0xff)) + return false; + if (s->administrative != NM_STATE_UNLOCKED) + return false; + return true; } /* determine the logical channel type based on the physical channel type */ diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 9eaaf2a7a..5fd02dda6 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -306,7 +306,7 @@ static void bootstrap_rsl(struct gsm_bts_trx *trx) * This ensures that RACH control in system information is configured correctly. * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. */ - if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + if (trx_is_usable(trx)) acc_ramp_trigger(&trx->bts->acc_ramp); gsm_bts_trx_set_system_infos(trx); |