diff options
Diffstat (limited to 'src/common/bts.c')
-rw-r--r-- | src/common/bts.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/common/bts.c b/src/common/bts.c index 3a64aac3..ea0cdfa7 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -414,6 +414,7 @@ int bts_init(struct gsm_bts *bts) int bts_link_estab(struct gsm_bts *bts) { int i, j; + bool has_vamos = osmo_bts_has_feature(bts->features, BTS_FEAT_VAMOS); LOGP(DSUM, LOGL_INFO, "Main link established, sending NM Status.\n"); @@ -431,6 +432,18 @@ int bts_link_estab(struct gsm_bts *bts) for (i = 0; i < bts->num_trx; i++) { struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, i); + /* For VAMOS shadow TRXs, skip all initial status reports. The existence of shadow TRXes is indicated by + * BTS_FEAT_VAMOS. (If osmo-bts sent status reports for shadow TRXes, these would appear as full primary + * TRXes to non-Osmocom BSCs.) */ + if (has_vamos && TRX_IS_SHADOW(trx)) { + LOGP(DLGLOBAL, LOGL_ERROR, "Skipping TRX %d\n", trx->nr); + printf("Skipping TRX %d\n", trx->nr); + continue; + } else { + LOGP(DLGLOBAL, LOGL_ERROR, "NOT Skipping TRX %d\n", trx->nr); + printf("NOT Skipping TRX %d\n", trx->nr); + } + oml_tx_state_changed(&trx->mo); oml_tx_state_changed(&trx->bb_transc.mo); |