Attention is currently required from: pespin, fixeria.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27620 )
Change subject: abis_rsl: always check return value of rsl_tlv_parse()
......................................................................
Patch Set 1: Code-Review+1
(1 comment)
File src/osmo-bsc/abis_rsl.c:
https://gerrit.osmocom.org/c/osmo-bsc/+/27620/comment/9073e797_aaec0ecc
PS1, Line 1224: if (rsl_tlv_parse(&tp, dh->data, msgb_l2len(msg) - sizeof(*dh)) < 0) {
> You probably need to check that msgb_l2len(msg) >= sizeof(*dh) before derreferencing dh below. […]
abis_rsl_rcvmsg() is checking for 'sizeof(struct abis_rsl_common_hdr)' length. Since only dh->c ('c' is the common part) is dereferenced, it's fine.
However, I think the check for the larger 'sizeof(struct abis_rsl_rx_dchan)' should go into the start of abis_rsl_rx_dchan(), whre we already dereference the chan_nr information element. Unrelated additional patch.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27620
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Id022628934e7d51ce66cb255baa88f24bf5c918a
Gerrit-Change-Number: 27620
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 31 Mar 2022 17:42:03 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27618 )
Change subject: fix gsm_bts_get_cbch(): CBCH can be allocated on Cn
......................................................................
fix gsm_bts_get_cbch(): CBCH can be allocated on Cn
According to 3GPP TS 45.002, table 3, unlike the CCCH+SDCCH/4+CBCH
combination, which can only be allocated on C0/TS0, the SDCCH/8+CBCH
can be allocated on C0..n/TS0..3. In other words, having CBCH on
e.g. TRX1/C1 is perfectly legal. This is why in gsm_bts_get_cbch()
we should check all transceivers, not just the C0.
Change-Id: Ie79ccff4f8f0f1134757ec0c35e18b58081cc158
Related: SYS#5905
---
M src/osmo-bsc/bts.c
1 file changed, 11 insertions(+), 10 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index d09aa48..843d711 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -562,22 +562,23 @@
/* return the gsm_lchan for the CBCH (if it exists at all) */
struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts)
{
- struct gsm_lchan *lchan = NULL;
struct gsm_bts_trx *trx = bts->c0;
+ /* According to 3GPP TS 45.002, table 3, CBCH can be allocated
+ * either on C0/TS0 (CCCH+SDCCH4) or on C0..n/TS0..3 (SDCCH/8). */
if (trx->ts[0].pchan_from_config == GSM_PCHAN_CCCH_SDCCH4_CBCH)
- lchan = &trx->ts[0].lchan[2];
- else {
- int i;
- for (i = 0; i < 8; i++) {
- if (trx->ts[i].pchan_from_config == GSM_PCHAN_SDCCH8_SACCH8C_CBCH) {
- lchan = &trx->ts[i].lchan[2];
- break;
- }
+ return &trx->ts[0].lchan[2]; /* C0/TS0 */
+
+ llist_for_each_entry(trx, &bts->trx_list, list) { /* C0..n */
+ unsigned int tn;
+ for (tn = 0; tn < 4; tn++) { /* TS0..3 */
+ struct gsm_bts_trx_ts *ts = &trx->ts[tn];
+ if (ts->pchan_from_config == GSM_PCHAN_SDCCH8_SACCH8C_CBCH)
+ return &ts->lchan[2];
}
}
- return lchan;
+ return NULL;
}
int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type)
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27618
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ie79ccff4f8f0f1134757ec0c35e18b58081cc158
Gerrit-Change-Number: 27618
Gerrit-PatchSet: 3
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
Attention is currently required from: fixeria.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/27619 )
Change subject: fix bts_cbch_send_one(): use proper RSL Channel Number
......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2:
the question is whether it really matters, and whether it is really specified. 48.058 section 9.3.1 doesn't give any encoding for the CBCH... and Section 8.5.8 doesn't really state anything about how to populate the Channel Number IE in this situation either.
Since the CBCH handling ina BTS is something "central" that only exists once, it doesn't really make sense at all sending it to a specific lchan at a specific TS.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27619
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ib5fd00bfd5e762ce0a56e73816162d0555976f8d
Gerrit-Change-Number: 27619
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 31 Mar 2022 17:37:22 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment