falconia has uploaded this change for review.
Nokia Flexi Multiradio: reset non-BCCH TRX
In the case of MetroSite and UltraSite BTS, it has been determined
empirically that TRX reset needs to be skipped for non-BCCH TRX.
However, the opposite situation holds on Flexi MR: non-BCCH TRX
do need to be reset, or they fail to come up. Solution:
conditionalize reset of non-BCCH TRX on Nokia BTS type.
Change-Id: I270c1ffab074c1e5a43ab9dfa103725a1518f718
---
M src/osmo-bsc/bts_nokia_site.c
1 file changed, 23 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/42727/1
diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c
index c8ac578..9c1e5a1 100644
--- a/src/osmo-bsc/bts_nokia_site.c
+++ b/src/osmo-bsc/bts_nokia_site.c
@@ -1174,6 +1174,21 @@
}
}
+static bool bts_is_flexi_mr(uint8_t bts_type)
+{
+ switch (bts_type) {
+ case 0x20: /* Flexi MultiRadio (no shared radio modules) */
+ case 0x21: /* Flexi MultiRadio (some or all radios shared, SW=GSM) */
+ case 0x25: /* Flexi MultiRadio (some or all radios shared, SW is other than GSM) */
+ case 0x28: /* Flexi MultiRadio 10 (no shared radio modules) */
+ case 0x29: /* Flexi MultiRadio 10 (some or all radios shared, SW=GSM) */
+ case 0x2A: /* Flexi MultiRadio 10 (some or all radios shared, SW is other than GSM) */
+ return true;
+ default:
+ return false;
+ }
+}
+
/* build the configuration data */
static int make_bts_config(struct gsm_bts *bts, uint8_t bts_type, int n_trx, uint8_t * fu_config,
int need_hopping, int hopping_type)
@@ -1787,6 +1802,7 @@
static int handle_conf_complete(struct e1inp_sign_link *sign_link, uint16_t ref)
{
struct gsm_bts *bts = sign_link->trx->bts;
+ bool is_flexi_mr = bts_is_flexi_mr(bts->nokia.bts_type);
struct gsm_bts_trx *trx;
int bcch_trx_nr = -1;
@@ -1808,6 +1824,13 @@
if (trx->nr != bcch_trx_nr) {
/* unlock TRX */
abis_nm_cha_adm_trx_unlock(bts, trx->nr+1, ref);
+ /* On Flexi Multiradio we have to reset non-BCCH TRX
+ * too, otherwise they never come up. But on
+ * MetroSite and UltraSite, non-BCCH TRX work
+ * correctly only when we *don't* reset them here!
+ */
+ if (is_flexi_mr)
+ abis_nm_trx_reset(bts, trx->nr+1, ref);
}
}
/* start TRX (RSL link) */
To view, visit change 42727. To unsubscribe, or for help writing mail filters, visit settings.