<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/23750">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">mm_state_{gb,iu}_fsm: Improve naming for detach event<br><br>The E_(P)MM_IMPLICIT_DETACH event was actually sent and handled when the<br>UE was considered to be detached, no matter the reason, be it due to<br>implicit detach, or Detach Request received, etc.<br>So, let's properly name the event to avoid confusions in the code.<br><br>Related: SYS#5389<br>Change-Id: I224ea9db80b4d96696934cea06349dab036f919b<br>---<br>M include/osmocom/sgsn/gprs_mm_state_gb_fsm.h<br>M include/osmocom/sgsn/gprs_mm_state_iu_fsm.h<br>M src/sgsn/gprs_gmm.c<br>M src/sgsn/gprs_gmm_fsm.c<br>M src/sgsn/gprs_mm_state_gb_fsm.c<br>M src/sgsn/gprs_mm_state_iu_fsm.c<br>6 files changed, 18 insertions(+), 20 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/50/23750/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h</span><br><span>index 02dcac7..4237c2f 100644</span><br><span>--- a/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h</span><br><span>+++ b/include/osmocom/sgsn/gprs_mm_state_gb_fsm.h</span><br><span>@@ -14,9 +14,8 @@</span><br><span> </span><br><span> enum mm_state_gb_fsm_events {</span><br><span>   E_MM_GPRS_ATTACH,</span><br><span style="color: hsl(0, 100%, 40%);">-       /* E_GPRS_DETACH, TODO: not used */</span><br><span style="color: hsl(120, 100%, 40%);">+   E_MM_GPRS_DETACH,  /* MS becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */</span><br><span>   E_MM_PDU_RECEPTION,</span><br><span style="color: hsl(0, 100%, 40%);">-     E_MM_IMPLICIT_DETACH, /* = E_MM_CANCEL_LOCATION */</span><br><span>   E_MM_READY_TIMER_EXPIRY,</span><br><span>     /* E_FORCE_TO_STANDBY, TODO: not used */</span><br><span>     /* E_ABNSORMAL_RLC_CONDITION, TODO: not used */</span><br><span>diff --git a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h</span><br><span>index 7e11ac9..6dae759 100644</span><br><span>--- a/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h</span><br><span>+++ b/include/osmocom/sgsn/gprs_mm_state_iu_fsm.h</span><br><span>@@ -13,10 +13,9 @@</span><br><span> </span><br><span> enum mm_state_iu_fsm_events {</span><br><span>   E_PMM_PS_ATTACH,</span><br><span style="color: hsl(0, 100%, 40%);">-        /* E_PS_DETACH, TODO: not used */</span><br><span style="color: hsl(120, 100%, 40%);">+     E_PMM_PS_DETACH, /* UE becomes detached: due to Detach Req, RAU reject, implicit detach, etc. */</span><br><span>     E_PMM_PS_CONN_RELEASE,</span><br><span>       E_PMM_PS_CONN_ESTABLISH,</span><br><span style="color: hsl(0, 100%, 40%);">-        E_PMM_IMPLICIT_DETACH, /* = E_PS_ATTACH_REJECT, E_RAU_REJECT */</span><br><span>      E_PMM_RA_UPDATE, /* = Serving RNC relocation */</span><br><span> };</span><br><span> </span><br><span>diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c</span><br><span>index f05167f..edddd2d 100644</span><br><span>--- a/src/sgsn/gprs_gmm.c</span><br><span>+++ b/src/sgsn/gprs_gmm.c</span><br><span>@@ -197,10 +197,10 @@</span><br><span> </span><br><span>       switch(ctx->ran_type) {</span><br><span>   case MM_CTX_T_UTRAN_Iu:</span><br><span style="color: hsl(0, 100%, 40%);">-         osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+         osmo_fsm_inst_dispatch(ctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL);</span><br><span>              break;</span><br><span>       case MM_CTX_T_GERAN_Gb:</span><br><span style="color: hsl(0, 100%, 40%);">-         osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_fsm_inst_dispatch(ctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL);</span><br><span>             break;</span><br><span>       }</span><br><span> </span><br><span>diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c</span><br><span>index caec586..78946b5 100644</span><br><span>--- a/src/sgsn/gprs_gmm_fsm.c</span><br><span>+++ b/src/sgsn/gprs_gmm_fsm.c</span><br><span>@@ -199,9 +199,9 @@</span><br><span>                         gmm_fsm_state_chg(fi, ST_GMM_DEREGISTERED);</span><br><span>          default:</span><br><span>                     if (mmctx->ran_type == MM_CTX_T_GERAN_Gb)</span><br><span style="color: hsl(0, 100%, 40%);">-                            osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_IMPLICIT_DETACH, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+                                osmo_fsm_inst_dispatch(mmctx->gb.mm_state_fsm, E_MM_GPRS_DETACH, NULL);</span><br><span>                   else if (mmctx->ran_type == MM_CTX_T_UTRAN_Iu) {</span><br><span style="color: hsl(0, 100%, 40%);">-                             osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_IMPLICIT_DETACH, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+                               osmo_fsm_inst_dispatch(mmctx->iu.mm_state_fsm, E_PMM_PS_DETACH, NULL);</span><br><span>                            mmctx->gb.llme = rat_chg->llme;</span><br><span>                        }</span><br><span> </span><br><span>diff --git a/src/sgsn/gprs_mm_state_gb_fsm.c b/src/sgsn/gprs_mm_state_gb_fsm.c</span><br><span>index f8653f6..6e812d3 100644</span><br><span>--- a/src/sgsn/gprs_mm_state_gb_fsm.c</span><br><span>+++ b/src/sgsn/gprs_mm_state_gb_fsm.c</span><br><span>@@ -71,7 +71,7 @@</span><br><span>   case E_MM_READY_TIMER_EXPIRY:</span><br><span>                mm_state_gb_fsm_state_chg(fi, ST_MM_STANDBY);</span><br><span>                break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case E_MM_IMPLICIT_DETACH:</span><br><span style="color: hsl(120, 100%, 40%);">+    case E_MM_GPRS_DETACH:</span><br><span>               mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE);</span><br><span>           break;</span><br><span>       case E_MM_PDU_RECEPTION:</span><br><span>@@ -90,7 +90,7 @@</span><br><span>         case E_MM_PDU_RECEPTION:</span><br><span>             mm_state_gb_fsm_state_chg(fi, ST_MM_READY);</span><br><span>          break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case E_MM_IMPLICIT_DETACH:</span><br><span style="color: hsl(120, 100%, 40%);">+    case E_MM_GPRS_DETACH:</span><br><span>               mm_state_gb_fsm_state_chg(fi, ST_MM_IDLE);</span><br><span>           break;</span><br><span>       }</span><br><span>@@ -105,13 +105,13 @@</span><br><span>            .action = st_mm_idle,</span><br><span>        },</span><br><span>   [ST_MM_READY] = {</span><br><span style="color: hsl(0, 100%, 40%);">-               .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_IMPLICIT_DETACH) | X(E_MM_PDU_RECEPTION),</span><br><span style="color: hsl(120, 100%, 40%);">+            .in_event_mask = X(E_MM_READY_TIMER_EXPIRY) | X(E_MM_RA_UPDATE) | X(E_MM_GPRS_DETACH) | X(E_MM_PDU_RECEPTION),</span><br><span>               .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_STANDBY),</span><br><span>          .name = "Ready",</span><br><span>           .action = st_mm_ready,</span><br><span>       },</span><br><span>   [ST_MM_STANDBY] = {</span><br><span style="color: hsl(0, 100%, 40%);">-             .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_IMPLICIT_DETACH),</span><br><span style="color: hsl(120, 100%, 40%);">+             .in_event_mask = X(E_MM_PDU_RECEPTION) | X(E_MM_GPRS_DETACH),</span><br><span>                .out_state_mask = X(ST_MM_IDLE) | X(ST_MM_READY),</span><br><span>            .name = "Standby",</span><br><span>                 .action = st_mm_standby,</span><br><span>@@ -121,7 +121,7 @@</span><br><span> const struct value_string mm_state_gb_fsm_event_names[] = {</span><br><span>        OSMO_VALUE_STRING(E_MM_GPRS_ATTACH),</span><br><span>         OSMO_VALUE_STRING(E_MM_PDU_RECEPTION),</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_VALUE_STRING(E_MM_IMPLICIT_DETACH),</span><br><span style="color: hsl(120, 100%, 40%);">+      OSMO_VALUE_STRING(E_MM_GPRS_DETACH),</span><br><span>         OSMO_VALUE_STRING(E_MM_READY_TIMER_EXPIRY),</span><br><span>  OSMO_VALUE_STRING(E_MM_RA_UPDATE),</span><br><span>   { 0, NULL }</span><br><span>diff --git a/src/sgsn/gprs_mm_state_iu_fsm.c b/src/sgsn/gprs_mm_state_iu_fsm.c</span><br><span>index 3f1336b..b1604f8 100644</span><br><span>--- a/src/sgsn/gprs_mm_state_iu_fsm.c</span><br><span>+++ b/src/sgsn/gprs_mm_state_iu_fsm.c</span><br><span>@@ -61,7 +61,7 @@</span><br><span>     case E_PMM_PS_ATTACH:</span><br><span>                mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED);</span><br><span>             break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case E_PMM_IMPLICIT_DETACH:</span><br><span style="color: hsl(120, 100%, 40%);">+   case E_PMM_PS_DETACH:</span><br><span>                break;</span><br><span>       }</span><br><span> }</span><br><span>@@ -75,7 +75,7 @@</span><br><span>           sgsn_ranap_iu_free(ctx);</span><br><span>             mm_state_iu_fsm_state_chg(fi, ST_PMM_IDLE);</span><br><span>          break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case E_PMM_IMPLICIT_DETACH:</span><br><span style="color: hsl(120, 100%, 40%);">+   case E_PMM_PS_DETACH:</span><br><span>                sgsn_ranap_iu_release_free(ctx, NULL);</span><br><span>               mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED);</span><br><span>              break;</span><br><span>@@ -98,7 +98,7 @@</span><br><span>   case E_PMM_PS_CONN_ESTABLISH:</span><br><span>                mm_state_iu_fsm_state_chg(fi, ST_PMM_CONNECTED);</span><br><span>             break;</span><br><span style="color: hsl(0, 100%, 40%);">-  case E_PMM_IMPLICIT_DETACH:</span><br><span style="color: hsl(120, 100%, 40%);">+   case E_PMM_PS_DETACH:</span><br><span>                mm_state_iu_fsm_state_chg(fi, ST_PMM_DETACHED);</span><br><span>              break;</span><br><span>       }</span><br><span>@@ -106,7 +106,7 @@</span><br><span> </span><br><span> static struct osmo_fsm_state mm_state_iu_fsm_states[] = {</span><br><span>     [ST_PMM_DETACHED] = {</span><br><span style="color: hsl(0, 100%, 40%);">-           .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_IMPLICIT_DETACH),</span><br><span style="color: hsl(120, 100%, 40%);">+               .in_event_mask = X(E_PMM_PS_ATTACH) | X(E_PMM_PS_DETACH),</span><br><span>            .out_state_mask = X(ST_PMM_CONNECTED),</span><br><span>               .name = "Detached",</span><br><span>                .action = st_pmm_detached,</span><br><span>@@ -115,14 +115,14 @@</span><br><span>           .in_event_mask =</span><br><span>                     X(E_PMM_PS_CONN_RELEASE) |</span><br><span>                   X(E_PMM_RA_UPDATE) |</span><br><span style="color: hsl(0, 100%, 40%);">-                    X(E_PMM_IMPLICIT_DETACH),</span><br><span style="color: hsl(120, 100%, 40%);">+                     X(E_PMM_PS_DETACH),</span><br><span>          .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_IDLE),</span><br><span>               .name = "Connected",</span><br><span>               .action = st_pmm_connected,</span><br><span>  },</span><br><span>   [ST_PMM_IDLE] = {</span><br><span>            .in_event_mask =</span><br><span style="color: hsl(0, 100%, 40%);">-                        X(E_PMM_IMPLICIT_DETACH) |</span><br><span style="color: hsl(120, 100%, 40%);">+                    X(E_PMM_PS_DETACH) |</span><br><span>                         X(E_PMM_PS_CONN_ESTABLISH) |</span><br><span>                         X(E_PMM_PS_ATTACH),</span><br><span>          .out_state_mask = X(ST_PMM_DETACHED) | X(ST_PMM_CONNECTED),</span><br><span>@@ -136,7 +136,7 @@</span><br><span>    OSMO_VALUE_STRING(E_PMM_PS_ATTACH),</span><br><span>  OSMO_VALUE_STRING(E_PMM_PS_CONN_RELEASE),</span><br><span>    OSMO_VALUE_STRING(E_PMM_PS_CONN_ESTABLISH),</span><br><span style="color: hsl(0, 100%, 40%);">-     OSMO_VALUE_STRING(E_PMM_IMPLICIT_DETACH),</span><br><span style="color: hsl(120, 100%, 40%);">+     OSMO_VALUE_STRING(E_PMM_PS_DETACH),</span><br><span>  OSMO_VALUE_STRING(E_PMM_RA_UPDATE),</span><br><span>  { 0, NULL }</span><br><span> };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/23750">change 23750</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-sgsn/+/23750"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-sgsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I224ea9db80b4d96696934cea06349dab036f919b </div>
<div style="display:none"> Gerrit-Change-Number: 23750 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>