[layer23] Fixed conditions for complete set of SYSTEM INFORMATION
This commit is contained in:
parent
5e819e682f
commit
fbbb3ac953
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue