fixeria has uploaded this change for review.

View Change

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);

To view, visit change 27619. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ib5fd00bfd5e762ce0a56e73816162d0555976f8d
Gerrit-Change-Number: 27619
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-MessageType: newchange