Bug #5856
closedVery annoying "this BTS model does not support TSC 7 != BSIC-BCC 0" error.
90%
Description
Since some months ago, when connecting osmo-bts-sysmo to a remote osmo-bsc that is not directly on the LAN, (and very occasionally on the LAN), but rather on some higher latency link, I am often seeing
common/oml.c:991 OC=CHANNEL INST=(00,00,00): SET CHAN ATTR: this BTS model does not support TSC 7 != BSIC-BCC 0
Seemingly because in the OML bringup we are sending Set CHAN attrs before we have sent Set BTS attrs
I don't know what controls this sequence, but maybe it would be good if that were a little more robust.
Files
Related issues
Updated by keith about 1 year ago
- File bsic_0.pcap bsic_0.pcap added
It might be of help to observe what happens if the TSC is set to 0 so that the OML bring up is not terminated, eventually we do send the set BTS attr. See bsic_0.cap
Updated by laforge about 1 year ago
- Has duplicate Bug #5977: osmo-bsc unable to bring up osmo-bts-sysmo (BSIC/TSC) added
Updated by fixeria about 1 year ago
I submitted a WIP patch with might solve the problem, but I am not 100% sure:
https://gerrit.osmocom.org/c/osmo-bsc/+/32090 nm_channel_fsm: do not send SET CHAN ATTR before SET BTS ATTR [WIP]
keith please give it a try. Thanks!
Updated by pespin 12 months ago
Relevant code in osmo-bts:
static int oml_rx_set_bts_attr(struct gsm_bts *bts, struct msgb *msg) /* 9.4.9 BSIC */ if (TLVP_PRES_LEN(&tp, NM_ATT_BSIC, 1)) bts->bsic = *TLVP_VAL(&tp, NM_ATT_BSIC);
#define BTS_TSC(bts) BSIC2BCC((bts)->bsic)
static int oml_rx_set_chan_attr(struct gsm_bts_trx_ts *ts, struct msgb *msg) { /* 9.4.60 TSC */ if (TLVP_PRES_LEN(&tp, NM_ATT_TSC, 1)) { ts->tsc_oml = ts->tsc = *TLVP_VAL(&tp, NM_ATT_TSC); if (ts->tsc != BTS_TSC(bts) && !osmo_bts_has_feature(bts->features, BTS_FEAT_MULTI_TSC)) { LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: this BTS model does not " "support TSC %u != BSIC-BCC %u\n", ts->tsc, BTS_TSC(bts)); talloc_free(tp_merged); return oml_fom_ack_nack(msg, NM_NACK_PARAM_RANGE); } } else { /* If there is no TSC specified, use the BCC */ ts->tsc_oml = ts->tsc = BTS_TSC(bts); } LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s", ts->tsc, gsm_pchan_name(ts->pchan)); if (ts->hopping.enabled) LOGPC(DOML, LOGL_INFO, " hsn=%u maio=%u chan_num=%u", ts->hopping.hsn, ts->hopping.maio, ts->hopping.arfcn_num); LOGPC(DOML, LOGL_INFO, ")\n"); /* call into BTS driver to apply new attributes to hardware */ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts);
Updated by pespin 12 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 50
I believe it should be fixed by this patch:
https://gerrit.osmocom.org/c/osmo-bts/+/32165 Clarify configuration of TSC on each timeslot
- manual osmo-bts-trx
- manual osmo-bts-sysmo
- TTCN BTS_Tests
Updated by pespin 12 months ago
- Status changed from In Progress to Feedback
- % Done changed from 50 to 90
Tested this patch on top of current osmo-bts master in 201705-nightly, with BSIC=0x0a and pSetChanAttr with TSC=0x02, it works fine as expected.
TTCN3 BTS_Tests seem to be happy too.
Once merged, this ticket can be assigned to keith for confirmation and closed.