[MERGED] osmo-bts[master]: Cleanup SI scheduling

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Thu Jun 15 13:22:12 UTC 2017


Max has submitted this change and it was merged.

Change subject: Cleanup SI scheduling
......................................................................


Cleanup SI scheduling

* use GSM_BTS_HAS_SI() from OpenBSC instead of local copy
* arrange GSM_BTS_HAS_SI() checks to improve readability
* constify SI scheduler parameters

Change-Id: If74bc536fe7d2bfbc976c07d882151873ecda4f2
Related: OS#1660
---
M include/osmo-bts/bts.h
M src/common/sysinfo.c
2 files changed, 13 insertions(+), 21 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index 567772e..9e16e05 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -31,7 +31,7 @@
 int bts_ccch_copy_msg(struct gsm_bts *bts, uint8_t *out_buf, struct gsm_time *gt,
 		      int is_ag_res);
 
-uint8_t *bts_sysinfo_get(struct gsm_bts *bts, struct gsm_time *g_time);
+uint8_t *bts_sysinfo_get(struct gsm_bts *bts, const struct gsm_time *g_time);
 uint8_t *lchan_sacch_get(struct gsm_lchan *lchan);
 int lchan_init_lapdm(struct gsm_lchan *lchan);
 
diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c
index d8671c8..7a53627 100644
--- a/src/common/sysinfo.c
+++ b/src/common/sysinfo.c
@@ -25,10 +25,8 @@
 #include <osmo-bts/logging.h>
 #include <osmo-bts/gsm_data.h>
 
-#define BTS_HAS_SI(bts, sinum)	((bts)->si_valid & (1 << sinum))
-
 /* Apply the rules from 05.02 6.3.1.3 Mapping of BCCH Data */
-uint8_t *bts_sysinfo_get(struct gsm_bts *bts, struct gsm_time *g_time)
+uint8_t *bts_sysinfo_get(struct gsm_bts *bts, const struct gsm_time *g_time)
 {
 	struct gsm_bts_role_bts *btsb = bts_role_bts(bts);
 	unsigned int tc4_cnt = 0;
@@ -77,22 +75,20 @@
 		/* iterate over 2ter, 2quater, 9, 13 */
 		/* determine how many SI we need to send on TC=4,
 		 * and which of them we send when */
-		if (BTS_HAS_SI(bts, SYSINFO_TYPE_2ter) &&
-		    BTS_HAS_SI(bts, SYSINFO_TYPE_2bis)) {
+		if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter) && GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis)) {
 			tc4_sub[tc4_cnt] = SYSINFO_TYPE_2ter;
 			tc4_cnt += 1;
 		}
-		if (BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) &&
-		    (BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) ||
-		     BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))) {
+		if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) &&
+		    (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) || GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))) {
 			tc4_sub[tc4_cnt] = SYSINFO_TYPE_2quater;
 			tc4_cnt += 1;
 		}
-		if (BTS_HAS_SI(bts, SYSINFO_TYPE_13)) {
+		if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_13)) {
 			tc4_sub[tc4_cnt] = SYSINFO_TYPE_13;
 			tc4_cnt += 1;
 		}
-		if (BTS_HAS_SI(bts, SYSINFO_TYPE_9)) {
+		if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_9)) {
 			/* FIXME: check SI3 scheduling info! */
 			tc4_sub[tc4_cnt] = SYSINFO_TYPE_9;
 			tc4_cnt += 1;
@@ -107,21 +103,17 @@
 		}
 	case 5:
 		/* 2bis, 2ter, 2quater */
-		if (BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) &&
-		    !BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
+		if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) && !GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
 			return GSM_BTS_SI(bts, SYSINFO_TYPE_2bis);
 
-		else if (BTS_HAS_SI(bts, SYSINFO_TYPE_2ter) &&
-			 !BTS_HAS_SI(bts, SYSINFO_TYPE_2bis))
+		else if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter) && !GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis))
 			return GSM_BTS_SI(bts, SYSINFO_TYPE_2ter);
 
-		else if (BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) &&
-			 BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
+		else if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) && GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
 			return GSM_BTS_SI(bts, SYSINFO_TYPE_2bis);
 
-		else if (BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) &&
-			 !BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) &&
-			 !BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
+		else if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) &&
+			 !GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2bis) && !GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter))
 			return GSM_BTS_SI(bts, SYSINFO_TYPE_2quater);
 		break;
 	case 6:
@@ -137,7 +129,7 @@
 {
 	struct gsm_bts *b = trx->bts;
 	struct gsm48_system_information_type_3 *si3;
-	if (BTS_HAS_SI(b, SYSINFO_TYPE_3)) {
+	if (GSM_BTS_HAS_SI(b, SYSINFO_TYPE_3)) {
 		si3 = GSM_BTS_SI(b, SYSINFO_TYPE_3);
 		return si3->control_channel_desc.bs_ag_blks_res;
 	}

-- 
To view, visit https://gerrit.osmocom.org/2822
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If74bc536fe7d2bfbc976c07d882151873ecda4f2
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list