pespin has uploaded this change for review.
gmm: Accept event LOW_LVL_FAIL in RAU/SR_INITIATED states
This even is triggered by the GSM itself due to internal timeouts as a
consequence of lower layers not resolving the request (with accept or
reject events).
Change-Id: Ic1072629595e75c411b421e71f6ffac5dd41da3b
---
M src/gmm/gmm_ms_fsm.c
1 file changed, 21 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/66/33566/1
diff --git a/src/gmm/gmm_ms_fsm.c b/src/gmm/gmm_ms_fsm.c
index 770ede7..f219bbe 100644
--- a/src/gmm/gmm_ms_fsm.c
+++ b/src/gmm/gmm_ms_fsm.c
@@ -243,6 +243,9 @@
enum gsm48_gmm_cause cause;
switch (event) {
+ case GPRS_GMM_MS_EV_LOW_LVL_FAIL:
+ gmm_ms_fsm_state_chg(fi, GPRS_GMM_MS_ST_REGISTERED);
+ break;
case GPRS_GMM_MS_EV_RAU_REJECTED:
cause = *(uint8_t *)data;
/* 3GPP TS 24.008 Figure 4.1b */
@@ -273,6 +276,9 @@
static void st_gmm_ms_sr_initiated(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
switch (event) {
+ case GPRS_GMM_MS_EV_LOW_LVL_FAIL:
+ gmm_ms_fsm_state_chg(fi, GPRS_GMM_MS_ST_REGISTERED);
+ break;
case GPRS_GMM_MS_EV_SR_REJECTED:
gmm_ms_fsm_state_chg(fi, GPRS_GMM_MS_ST_REGISTERED);
break;
@@ -357,6 +363,7 @@
},
[GPRS_GMM_MS_ST_RAU_INITIATED] = {
.in_event_mask =
+ X(GPRS_GMM_MS_EV_LOW_LVL_FAIL) |
X(GPRS_GMM_MS_EV_RAU_REJECTED) |
X(GPRS_GMM_MS_EV_RAU_ACCEPTED),
.out_state_mask =
@@ -367,6 +374,7 @@
},
[GPRS_GMM_MS_ST_SR_INITIATED] = {
.in_event_mask =
+ X(GPRS_GMM_MS_EV_LOW_LVL_FAIL) |
X(GPRS_GMM_MS_EV_SR_REJECTED) |
X(GPRS_GMM_MS_EV_SR_ACCEPTED),
.out_state_mask =
To view, visit change 33566. To unsubscribe, or for help writing mail filters, visit settings.