pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-gprs/+/33566 )
Change subject: gmm: Accept event LOW_LVL_FAIL in RAU/SR_INITIATED states ......................................................................
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 =