jolly submitted this change.

View Change



1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.

Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified
ASCI: Ignore cell selection event during group receive mode

Cell selection is not supported during group receive mode. If it
happens anyway, give an error message and select correct sub-state.

This fixes I05957182a57423ad947ab200b52f65fde859e110.

Related: OS#5364 and OS#6214
Change-Id: Iea6fe623956003130000c59ec0e1b24b3177052d
---
M src/host/layer23/src/mobile/gsm48_mm.c
1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/src/host/layer23/src/mobile/gsm48_mm.c b/src/host/layer23/src/mobile/gsm48_mm.c
index 0cf1fee..afc83f7 100644
--- a/src/host/layer23/src/mobile/gsm48_mm.c
+++ b/src/host/layer23/src/mobile/gsm48_mm.c
@@ -1358,7 +1358,13 @@
struct gsm322_cellsel *cs = &ms->cellsel;
struct gsm48_sysinfo *s = &cs->sel_si;
struct gsm_settings *set = &ms->settings;
- bool vgcs = mm->vgcs.enabled;
+
+ if (mm->vgcs.enabled) {
+ LOGP(DMM, LOGL_ERROR, "Cell selection in group receive mode, this should not happen.\n");
+ new_mm_state(mm, GSM48_MM_ST_MM_IDLE, (mm->vgcs.normal_service) ? GSM48_MM_SST_RX_VGCS_NORMAL
+ : GSM48_MM_SST_RX_VGCS_LIMITED);
+ return 0;
+ }

/* no SIM is inserted */
if (!subscr->sim_valid) {
@@ -1377,9 +1383,7 @@
struct msgb *nmsg;

LOGP(DMM, LOGL_INFO, "Valid in location area.\n");
- new_mm_state(mm, GSM48_MM_ST_MM_IDLE,
- (vgcs) ? GSM48_MM_SST_RX_VGCS_NORMAL
- : GSM48_MM_SST_NORMAL_SERVICE);
+ new_mm_state(mm, GSM48_MM_ST_MM_IDLE, GSM48_MM_SST_NORMAL_SERVICE);

/* send message to PLMN search process */
nmsg = gsm322_msgb_alloc(GSM322_EVENT_REG_SUCCESS);
@@ -1393,9 +1397,7 @@
struct msgb *nmsg;

LOGP(DMM, LOGL_INFO, "Attachment not required.\n");
- new_mm_state(mm, GSM48_MM_ST_MM_IDLE,
- (vgcs) ? GSM48_MM_SST_RX_VGCS_NORMAL
- : GSM48_MM_SST_NORMAL_SERVICE);
+ new_mm_state(mm, GSM48_MM_ST_MM_IDLE, GSM48_MM_SST_NORMAL_SERVICE);

/* send message to PLMN search process */
nmsg = gsm322_msgb_alloc(GSM322_EVENT_REG_SUCCESS);
@@ -1416,9 +1418,7 @@
struct msgb *nmsg;

LOGP(DMM, LOGL_INFO, "Selected cell is forbidden.\n");
- new_mm_state(mm, GSM48_MM_ST_MM_IDLE,
- (vgcs) ? GSM48_MM_SST_RX_VGCS_LIMITED
- : GSM48_MM_SST_LIMITED_SERVICE);
+ new_mm_state(mm, GSM48_MM_ST_MM_IDLE, GSM48_MM_SST_LIMITED_SERVICE);

/* send message to PLMN search process */
nmsg = gsm322_msgb_alloc(GSM322_EVENT_REG_FAILED);
@@ -1438,9 +1438,7 @@
struct msgb *nmsg;

LOGP(DMM, LOGL_INFO, "Selected cell not found.\n");
- new_mm_state(mm, GSM48_MM_ST_MM_IDLE,
- (vgcs) ? GSM48_MM_SST_RX_VGCS_LIMITED
- : GSM48_MM_SST_LIMITED_SERVICE);
+ new_mm_state(mm, GSM48_MM_ST_MM_IDLE, GSM48_MM_SST_LIMITED_SERVICE);

/* send message to PLMN search process */
nmsg = gsm322_msgb_alloc(GSM322_EVENT_REG_FAILED);

To view, visit change 34789. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: Iea6fe623956003130000c59ec0e1b24b3177052d
Gerrit-Change-Number: 34789
Gerrit-PatchSet: 2
Gerrit-Owner: jolly <andreas@eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: jolly <andreas@eversberg.eu>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged