From 3941cf44795f928046968036b180e478b7725ac8 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 17 Sep 2018 21:07:35 +0200 Subject: CBCH: Fix CBCH via L1SAP for osmo-bts-{sysmo,octphy,litecell15} This fixes a bug introduced in "CBCH: Move processing via L1SAP" commit 02d99db08b13589e1417c3448a07747f8805ba88 Author: Harald Welte Date: Fri Aug 24 23:37:45 2018 +0200 where the full channel number 0xc8 was used instead of the (right-shifted) C-bits only. Change-Id: I0fd8d7762e9cc3319a534f261e8857a1aa2220e0 --- src/osmo-bts-litecell15/l1_if.c | 4 +++- src/osmo-bts-octphy/l1_if.c | 4 +++- src/osmo-bts-sysmo/l1_if.c | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index 82299ff4..4093225f 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -383,6 +383,8 @@ static int ph_data_req(struct gsm_bts_trx *trx, struct msgb *msg, sapi = GsmL1_Sapi_Sdcch; } else if (L1SAP_IS_CHAN_BCCH(chan_nr)) { sapi = GsmL1_Sapi_Bcch; + } else if (L1SAP_IS_CHAN_CBCH(chan_nr)) { + sapi = GsmL1_Sapi_Cbch; } else if (L1SAP_IS_CHAN_AGCH_PCH(chan_nr)) { /* The sapi depends on DSP configuration, not * on the actual SYSTEM INFORMATION 3. */ @@ -700,7 +702,7 @@ static uint8_t chan_nr_by_sapi(struct gsm_bts_trx_ts *ts, cbits = 0x10; break; case GsmL1_Sapi_Cbch: - cbits = 0xc8; /* Osmocom extension for CBCH via L1SAP */ + cbits = 0xc8 >> 3; /* Osmocom extension for CBCH via L1SAP */ break; case GsmL1_Sapi_Sacch: switch(pchan) { diff --git a/src/osmo-bts-octphy/l1_if.c b/src/osmo-bts-octphy/l1_if.c index 35d0aa33..40d5300d 100644 --- a/src/osmo-bts-octphy/l1_if.c +++ b/src/osmo-bts-octphy/l1_if.c @@ -357,7 +357,7 @@ static uint8_t chan_nr_by_sapi(struct gsm_bts_trx_ts *ts, cbits = 0x10; break; case cOCTVC1_GSM_SAPI_ENUM_CBCH: - cbits = 0xc8; /* Osmocom extension for CBCH via L1SAP */ + cbits = 0xc8 >> 3; /* Osmocom extension for CBCH via L1SAP */ break; case cOCTVC1_GSM_SAPI_ENUM_SACCH: switch (pchan) { @@ -517,6 +517,8 @@ static int ph_data_req(struct gsm_bts_trx *trx, struct msgb *msg, sapi = cOCTVC1_GSM_SAPI_ENUM_SDCCH; } else if (L1SAP_IS_CHAN_BCCH(chan_nr)) { sapi = cOCTVC1_GSM_SAPI_ENUM_BCCH; + } else if (L1SAP_IS_CHAN_CBCH(chan_nr)) { + sapi = cOCTVC1_GSM_SAPI_ENUM_CBCH; } else if (L1SAP_IS_CHAN_AGCH_PCH(chan_nr)) { sapi = cOCTVC1_GSM_SAPI_ENUM_PCH_AGCH; } else { diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index c0b42b42..372e3322 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -380,6 +380,8 @@ static int ph_data_req(struct gsm_bts_trx *trx, struct msgb *msg, sapi = GsmL1_Sapi_Sdcch; } else if (L1SAP_IS_CHAN_BCCH(chan_nr)) { sapi = GsmL1_Sapi_Bcch; + } else if (L1SAP_IS_CHAN_CBCH(chan_nr)) { + sapi = GsmL1_Sapi_Cbch; } else if (L1SAP_IS_CHAN_AGCH_PCH(chan_nr)) { /* The sapi depends on DSP configuration, not * on the actual SYSTEM INFORMATION 3. */ @@ -697,7 +699,7 @@ static uint8_t chan_nr_by_sapi(struct gsm_bts_trx_ts *ts, cbits = 0x10; break; case GsmL1_Sapi_Cbch: - cbits = 0xc8; /* Osmocom extension for CBCH via L1SAP */ + cbits = 0xc8 >> 3; /* Osmocom extension for CBCH via L1SAP */ break; case GsmL1_Sapi_Sacch: switch(pchan) { -- cgit v1.2.3