summaryrefslogtreecommitdiffstats
path: root/src/host
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-10-24 12:55:31 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-10-24 12:55:31 +0000
commitfbbb3ac953ab9387b498fa24300f4ab39b4f93b8 (patch)
treeecbaddb1f6b6e6592441d0b7ab9bf638323cae5d /src/host
parent5e819e682f75b4dd6b2bad914a3bf82a12617ece (diff)
[layer23] Fixed conditions for complete set of SYSTEM INFORMATION
Diffstat (limited to 'src/host')
-rw-r--r--src/host/layer23/src/mobile/gsm322.c18
-rw-r--r--src/host/layer23/src/mobile/gsm48_rr.c11
2 files changed, 8 insertions, 21 deletions
diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c
index 07e67d36..0b45f605 100644
--- a/src/host/layer23/src/mobile/gsm322.c
+++ b/src/host/layer23/src/mobile/gsm322.c
@@ -1990,11 +1990,7 @@ struct gsm322_ba_list *gsm322_cs_sysinfo_sacch(struct osmocom_ms *ms)
}
/* collect system information received during dedicated mode */
- if (s->si5
- && (!s->nb_ext_ind_si5
- || (s->si5bis && s->nb_ext_ind_si5 && !s->nb_ext_ind_si5bis)
- || (s->si5bis && s->si5ter && s->nb_ext_ind_si5
- && s->nb_ext_ind_si5bis))) {
+ if (s->si5 && (!s->nb_ext_ind_si5 || s->si5bis)) {
/* find or create ba list */
ba = gsm322_find_ba_list(cs, s->mcc, s->mnc);
if (!ba) {
@@ -2189,18 +2185,14 @@ static int gsm322_c_scan_sysinfo_bcch(struct osmocom_ms *ms, struct msgb *msg)
|| gm->sysinfo == GSM48_MT_RR_SYSINFO_2ter)
&& s->si1
&& s->si2
- && (!s->nb_ext_ind_si2
- || (s->si2bis && s->nb_ext_ind_si2 && !s->nb_ext_ind_si2bis)
- || (s->si2bis && s->si2ter && s->nb_ext_ind_si2
- && s->nb_ext_ind_si2bis)))
+ && (!s->nb_ext_ind_si2 || s->si2bis)
+ && (!s->si2ter_ind || s->si2ter))
gsm322_store_ba_list(cs, s);
/* all relevant system informations received */
if (s->si1 && s->si2 && s->si3
- && (!s->nb_ext_ind_si2
- || (s->si2bis && s->nb_ext_ind_si2 && !s->nb_ext_ind_si2bis)
- || (s->si2bis && s->si2ter && s->nb_ext_ind_si2
- && s->nb_ext_ind_si2bis))) {
+ && (!s->nb_ext_ind_si2 || s->si2bis)
+ && (!s->si2ter_ind || s->si2ter)) {
LOGP(DCS, LOGL_DEBUG, "Received relevant sysinfo.\n");
/* stop timer */
stop_cs_timer(cs);
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c
index 03f44b58..65fc05f3 100644
--- a/src/host/layer23/src/mobile/gsm48_rr.c
+++ b/src/host/layer23/src/mobile/gsm48_rr.c
@@ -2551,15 +2551,11 @@ static int gsm48_rr_tx_meas_rep(struct osmocom_ms *ms)
/* check if SI5* is completely received, check BA-IND */
if (s->si5
- && (!s->nb_ext_ind_si5
- || (s->si5bis && s->nb_ext_ind_si5 && !s->nb_ext_ind_si5bis)
- || (s->si5bis && s->si5ter && s->nb_ext_ind_si5
- && s->nb_ext_ind_si5bis))) {
+ && (!s->nb_ext_ind_si5 || s->si5bis)) {
rep_ba = s->nb_ba_ind_si5;
if ((s->si5bis && s->nb_ext_ind_si5
&& s->nb_ba_ind_si5bis != rep_ba)
- || (s->si5bis && s->si5ter && s->nb_ext_ind_si5
- && s->nb_ext_ind_si5bis && s->nb_ba_ind_si5ter != rep_ba)) {
+ || (s->si5ter && s->nb_ba_ind_si5ter != rep_ba)) {
LOGP(DRR, LOGL_NOTICE, "BA-IND missmatch on SI5*");
} else
rep_valid = 1;
@@ -2581,8 +2577,7 @@ static int gsm48_rr_tx_meas_rep(struct osmocom_ms *ms)
int i, index;
/* multiband reporting, if not: 0 = normal reporting */
- if (s->si5 && s->si5bis && s->si5ter && s->nb_ext_ind_si5
- && s->nb_ext_ind_si5bis)
+ if (s->si5ter)
multi_rep = s->nb_multi_rep_si5ter;
/* get 6 strongest measurements */