aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/gsm_data_shared.h7
-rw-r--r--openbsc/include/openbsc/rest_octets.h6
-rw-r--r--openbsc/src/libbsc/bsc_init.c2
-rw-r--r--openbsc/src/libbsc/system_information.c4
-rw-r--r--openbsc/tests/gsm0408/gsm0408_test.c2
5 files changed, 11 insertions, 10 deletions
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index b72ed2d63..a507606e8 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -26,6 +26,12 @@
#include <openbsc/common_cs.h>
+/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018: 4-bit index is used (2#1111 = 10#15) */
+#define SI2Q_MAX_NUM 16
+/* length in bits (for single SI2quater message) */
+#define SI2Q_MAX_LEN 160
+#define SI2Q_MIN_LEN 18
+
struct osmo_bsc_data;
struct osmo_bsc_sccp_con;
@@ -486,6 +492,7 @@ struct gsm_bts_trx {
};
#define GSM_BTS_SI2Q(bts) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater])
+#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i))
#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i])
#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i])
diff --git a/openbsc/include/openbsc/rest_octets.h b/openbsc/include/openbsc/rest_octets.h
index 7b324d3ff..49a231296 100644
--- a/openbsc/include/openbsc/rest_octets.h
+++ b/openbsc/include/openbsc/rest_octets.h
@@ -5,12 +5,6 @@
#include <openbsc/gsm_04_08.h>
#include <osmocom/gsm/sysinfo.h>
-/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018: 4-bit index is used */
-#define SI2Q_MAX_NUM 16
-/* length in bits (for single SI2quater message) */
-#define SI2Q_MAX_LEN 160
-#define SI2Q_MIN_LEN 18
-
/* generate SI1 rest octets */
int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net);
int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts);
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index e5226a9c1..25f3fdcee 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -186,7 +186,7 @@ int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx)
for (n = 0; n < n_si; n++) {
i = gen_si[n];
- if (!(bts->si_valid & (1 << i)))
+ if (!GSM_BTS_HAS_SI(bts, i))
continue;
rc = rsl_si(trx, i, si_len[i]);
if (rc < 0)
diff --git a/openbsc/src/libbsc/system_information.c b/openbsc/src/libbsc/system_information.c
index 644bebdf4..a074a783a 100644
--- a/openbsc/src/libbsc/system_information.c
+++ b/openbsc/src/libbsc/system_information.c
@@ -774,13 +774,13 @@ static int generate_si3(enum osmo_sysinfo_type t, struct gsm_bts *bts)
/* allow/disallow DTXu */
gsm48_set_dtx(&si3->cell_options, bts->dtxu, bts->dtxu, true);
- if ((bts->si_valid & (1 << SYSINFO_TYPE_2ter))) {
+ if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2ter)) {
LOGP(DRR, LOGL_INFO, "SI 2ter is included.\n");
si_info.si2ter_indicator = 1;
} else {
si_info.si2ter_indicator = 0;
}
- if ((bts->si_valid & (1 << SYSINFO_TYPE_2quater))) {
+ if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater)) {
LOGP(DRR, LOGL_INFO, "SI 2quater is included, based on %zu EARFCNs and %zu UARFCNs.\n",
si2q_earfcn_count(&bts->si_common.si2quater_neigh_list), bts->si_common.uarfcn_length);
si_info.si2quater_indicator = 1;
diff --git a/openbsc/tests/gsm0408/gsm0408_test.c b/openbsc/tests/gsm0408/gsm0408_test.c
index 36f6993be..5a78505d6 100644
--- a/openbsc/tests/gsm0408/gsm0408_test.c
+++ b/openbsc/tests/gsm0408/gsm0408_test.c
@@ -105,7 +105,7 @@ static inline void gen(struct gsm_bts *bts, const char *s)
r = gsm_generate_si(bts, SYSINFO_TYPE_2quater);
if (r > 0)
printf("generated %s SI2quater [%02u/%02u]: [%d] %s\n",
- (bts->si_valid & (1 << SYSINFO_TYPE_2quater)) ? "valid" : "invalid",
+ GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) ? "valid" : "invalid",
bts->si2q_index, bts->si2q_count, r,
osmo_hexdump((void *)GSM_BTS_SI2Q(bts), GSM_MACBLOCK_LEN));
else