<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/24637">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, but someone else must approve
  dexter: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">cosmetic: xua_asp_fsm.c: reorder functions in file<br><br>Reorder functions to follow usual order in FSM files:<br>1- structs and helper functions<br>2- for each state: first _oneneter, then the action func<br>3- generic state fsm functions (timers, all_state)<br>4- struct osmo_fsm_state<br>5- FSM allocator and public functions<br><br>Change-Id: Ic143db3dda48750effddaa0cafadf960f5b5c38c<br>---<br>M src/xua_asp_fsm.c<br>1 file changed, 44 insertions(+), 36 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c</span><br><span>index dd1dddb..e4fb928 100644</span><br><span>--- a/src/xua_asp_fsm.c</span><br><span>+++ b/src/xua_asp_fsm.c</span><br><span>@@ -338,6 +338,21 @@</span><br><span>    [XUA_ASP_E_ASPSM_BEAT] = XUA_ASP_E_ASPSM_BEAT_ACK,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Helper function to dispatch an ASP->AS event to all AS of which this</span><br><span style="color: hsl(120, 100%, 40%);">+ * ASP is a memmber.  Ignores routing contexts for now. */</span><br><span style="color: hsl(120, 100%, 40%);">+static void dispatch_to_all_as(struct osmo_fsm_inst *fi, uint32_t event)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     struct xua_asp_fsm_priv *xafp = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+  struct osmo_ss7_asp *asp = xafp->asp;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct osmo_ss7_instance *inst = asp->inst;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct osmo_ss7_as *as;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     llist_for_each_entry(as, &inst->as_list, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+               if (!osmo_ss7_as_has_asp(as, asp))</span><br><span style="color: hsl(120, 100%, 40%);">+                    continue;</span><br><span style="color: hsl(120, 100%, 40%);">+             osmo_fsm_inst_dispatch(as->fi, event, asp);</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> /* check if expected message was received + stop t_ack */</span><br><span> static void check_stop_t_ack(struct osmo_fsm_inst *fi, uint32_t event)</span><br><span>@@ -381,6 +396,16 @@</span><br><span>               }                                                       \</span><br><span>    } while(0)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/***************</span><br><span style="color: hsl(120, 100%, 40%);">+** FSM states **</span><br><span style="color: hsl(120, 100%, 40%);">+***************/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void xua_asp_fsm_down_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      dispatch_to_all_as(fi, XUA_ASPAS_ASP_DOWN_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void xua_asp_fsm_down(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>      struct xua_asp_fsm_priv *xafp = fi->priv;</span><br><span>@@ -436,25 +461,9 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Helper function to dispatch an ASP->AS event to all AS of which this</span><br><span style="color: hsl(0, 100%, 40%);">- * ASP is a memmber.  Ignores routing contexts for now. */</span><br><span style="color: hsl(0, 100%, 40%);">-static void dispatch_to_all_as(struct osmo_fsm_inst *fi, uint32_t event)</span><br><span style="color: hsl(120, 100%, 40%);">+static void xua_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct xua_asp_fsm_priv *xafp = fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">-    struct osmo_ss7_asp *asp = xafp->asp;</span><br><span style="color: hsl(0, 100%, 40%);">-        struct osmo_ss7_instance *inst = asp->inst;</span><br><span style="color: hsl(0, 100%, 40%);">-  struct osmo_ss7_as *as;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- llist_for_each_entry(as, &inst->as_list, list) {</span><br><span style="color: hsl(0, 100%, 40%);">-         if (!osmo_ss7_as_has_asp(as, asp))</span><br><span style="color: hsl(0, 100%, 40%);">-                      continue;</span><br><span style="color: hsl(0, 100%, 40%);">-               osmo_fsm_inst_dispatch(as->fi, event, asp);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static void xua_asp_fsm_down_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  dispatch_to_all_as(fi, XUA_ASPAS_ASP_DOWN_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+       dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span> }</span><br><span> </span><br><span> static void xua_asp_fsm_inactive(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -571,9 +580,9 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void xua_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(120, 100%, 40%);">+static void xua_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+   dispatch_to_all_as(fi, XUA_ASPAS_ASP_ACTIVE_IND);</span><br><span> }</span><br><span> </span><br><span> static void xua_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span>@@ -652,11 +661,6 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void xua_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        dispatch_to_all_as(fi, XUA_ASPAS_ASP_ACTIVE_IND);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static void xua_asp_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>        struct xua_asp_fsm_priv *xafp = fi->priv;</span><br><span>@@ -850,6 +854,10 @@</span><br><span>  return ofd->fd;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/***************</span><br><span style="color: hsl(120, 100%, 40%);">+** FSM states **</span><br><span style="color: hsl(120, 100%, 40%);">+***************/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Server + Client: Initial State, wait for M-ASP-UP.req */</span><br><span> static void ipa_asp_fsm_down(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>@@ -999,6 +1007,12 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void ipa_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+   dispatch_to_all_as(fi, XUA_ASPAS_ASP_ACTIVE_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Server + Client: We're actively transmitting user data */</span><br><span> static void ipa_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>@@ -1010,6 +1024,11 @@</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void ipa_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void ipa_asp_fsm_inactive(struct osmo_fsm_inst *fi, uint32_t event, void *data)</span><br><span> {</span><br><span>      switch (event) {</span><br><span>@@ -1046,17 +1065,6 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void ipa_asp_fsm_active_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span style="color: hsl(0, 100%, 40%);">-     dispatch_to_all_as(fi, XUA_ASPAS_ASP_ACTIVE_IND);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static void ipa_asp_fsm_inactive_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      dispatch_to_all_as(fi, XUA_ASPAS_ASP_INACTIVE_IND);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> static void ipa_pong_timer_cb(void *_fi)</span><br><span> {</span><br><span>        struct osmo_fsm_inst *fi = _fi;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/24637">change 24637</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/libosmo-sccp/+/24637"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-sccp </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic143db3dda48750effddaa0cafadf960f5b5c38c </div>
<div style="display:none"> Gerrit-Change-Number: 24637 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>