fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27619 )
Change subject: fix bts_cbch_send_one(): use proper RSL Channel Number ......................................................................
fix bts_cbch_send_one(): use proper RSL Channel Number
Currently bts_cbch_send_one() blindly assumes that CBCH is on C0/TS0. According to 3GPP TS 45.002, table 3, it can also be on C0..n/TS0..3.
Change-Id: Ib5fd00bfd5e762ce0a56e73816162d0555976f8d Related: SYS#5905 --- M src/osmo-bsc/cbch_scheduler.c 1 file changed, 12 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/19/27619/1
diff --git a/src/osmo-bsc/cbch_scheduler.c b/src/osmo-bsc/cbch_scheduler.c index c66f743..891edb5 100644 --- a/src/osmo-bsc/cbch_scheduler.c +++ b/src/osmo-bsc/cbch_scheduler.c @@ -202,8 +202,10 @@ { struct bts_smscb_page *page; struct gsm_bts *bts = cstate->bts; + const struct gsm_lchan *cbch_lchan; struct rsl_ie_cb_cmd_type cb_cmd; bool is_extended = false; + uint8_t chan_nr;
if (cstate == &bts->cbch_extended) is_extended = true; @@ -240,7 +242,16 @@ default: osmo_panic("SMSCB Page must have 1..4 blocks, not %d\n", page->num_blocks); } - rsl_sms_cb_command(bts, RSL_CHAN_SDCCH4_ACCH, cb_cmd, is_extended, + + /* Get RSL Channel Number for the CBCH logical channel */ + if ((cbch_lchan = gsm_bts_get_cbch(bts)) == NULL) + return; + if (cbch_lchan->ts->pchan_is == GSM_PCHAN_SDCCH8_SACCH8C_CBCH) + chan_nr = RSL_CHAN_SDCCH8_ACCH | cbch_lchan->ts->nr; + else + chan_nr = RSL_CHAN_SDCCH4_ACCH; /* always TS0 */ + + rsl_sms_cb_command(bts, chan_nr, cb_cmd, is_extended, page->data, sizeof(page->data));
bts_smscb_page_done(cstate, page);