aboutsummaryrefslogtreecommitdiffstats
path: root/src/sgsn
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2022-10-08 21:34:19 +0300
committerMax <msuraev@sysmocom.de>2022-10-14 15:04:36 +0300
commitb43496a60de9b708712503ec8770ebd3fdb8417d (patch)
treeeb86d5a7d0f9c3837bf0c180bffeddc01b2c56ac /src/sgsn
parentcaff83e702e0f4dc5e203f9e9c0533830b9d2311 (diff)
GMM: permit E_GMM_COMMON_PROC_SUCCESS in normal state
The FSM might be moved out of ST_GMM_COMMON_PROC_INIT state either by E_GMM_ATTACH_SUCCESS or by E_GMM_COMMON_PROC_SUCCESS events which are not mutually exclusive. Hence the later event will arrive when we're already in the ST_GMM_REGISTERED_NORMAL state. Let's have both events permitted to keep the logs clean from useless error. Related: OS#5349 Change-Id: Ia97b50aac6c665812ddca9010de7f97b17b78bd5
Diffstat (limited to 'src/sgsn')
-rw-r--r--src/sgsn/gprs_gmm_fsm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c
index 78946b5b1..e9c31d052 100644
--- a/src/sgsn/gprs_gmm_fsm.c
+++ b/src/sgsn/gprs_gmm_fsm.c
@@ -80,6 +80,11 @@ static void st_gmm_registered_normal(struct osmo_fsm_inst *fi, uint32_t event, v
case E_GMM_COMMON_PROC_INIT_REQ:
gmm_fsm_state_chg(fi, ST_GMM_COMMON_PROC_INIT);
break;
+ case E_GMM_COMMON_PROC_SUCCESS:
+ /* If we were moved from ST_GMM_COMMON_PROC_INIT here by
+ * E_GMM_ATTACH_SUCCESS instead of E_GMM_COMMON_PROC_SUCCESS then we'll receive the latter here:
+ * we should simply ignore it */
+ break;
/* case E_GMM_NET_INIT_DETACH_REQ:
gmm_fsm_state_chg(fi, ST_GMM_DEREGISTERED_INIT);
break; */
@@ -141,6 +146,7 @@ static struct osmo_fsm_state gmm_fsm_states[] = {
[ST_GMM_REGISTERED_NORMAL] = {
.in_event_mask =
X(E_GMM_COMMON_PROC_INIT_REQ) |
+ X(E_GMM_COMMON_PROC_SUCCESS) |
/* X(E_GMM_NET_INIT_DETACH_REQ) | */
/* X(E_GMM_MS_INIT_DETACH_REQ) | */
X(E_GMM_SUSPEND),