<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/23889">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ipa_asp_fsm_del_route(): Log what happens if we bail out early<br><br>Let's inform the user about situations in which we'd want to delete<br>the route for an IPA client, but we run into some problem and<br>bail out early.<br><br>Change-Id: Ie3f57d22901f169afb2c844476b5839cc36752aa<br>Related: SYS#5422<br>---<br>M src/xua_asp_fsm.c<br>1 file changed, 16 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/89/23889/1</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 c8dcac6..4630f5b 100644</span><br><span>--- a/src/xua_asp_fsm.c</span><br><span>+++ b/src/xua_asp_fsm.c</span><br><span>@@ -1010,8 +1010,9 @@</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void ipa_asp_fsm_del_route(struct ipa_asp_fsm_priv *iafp)</span><br><span style="color: hsl(120, 100%, 40%);">+static void ipa_asp_fsm_del_route(struct osmo_fsm_inst *fi)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+  struct ipa_asp_fsm_priv *iafp = fi->priv;</span><br><span>         struct osmo_ss7_asp *asp = iafp->asp;</span><br><span>     struct osmo_ss7_instance *inst = asp->inst;</span><br><span>       /* We use routing-context '0' here, as that's the only one we support in IPA */</span><br><span>@@ -1023,11 +1024,20 @@</span><br><span>        /* find the route which we have created if we ever reached ipa_asp_fsm_wait_id_ack2 */</span><br><span>       rt = osmo_ss7_route_find_dpc_mask(inst->rtable_system, as->cfg.routing_key.pc, 0xffffff);</span><br><span>      /* no route found, bail out */</span><br><span style="color: hsl(0, 100%, 40%);">-  if (!rt)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (!rt) {</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but cannot "</span><br><span style="color: hsl(120, 100%, 40%);">+                         "find route for DPC %s. Did you manually delete it?\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                     osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc));</span><br><span>                 return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* route points to different AS, bail out */</span><br><span style="color: hsl(0, 100%, 40%);">-    if (rt->dest.as != as)</span><br><span style="color: hsl(120, 100%, 40%);">+     if (rt->dest.as != as) {</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGPFSML(fi, LOGL_NOTICE, "Attempting to delete route for this IPA ASP, but found "</span><br><span style="color: hsl(120, 100%, 40%);">+                  "route for DPC %s points to different AS (%s)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                   osmo_ss7_pointcode_print(inst, as->cfg.routing_key.pc), rt->dest.as->cfg.name);</span><br><span>            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        osmo_ss7_route_destroy(rt);</span><br><span>  /* FIXME: Why don't we also delete this timer if we return early above?</span><br><span>@@ -1041,7 +1051,7 @@</span><br><span>  switch (event) {</span><br><span>     case XUA_ASP_E_M_ASP_DOWN_REQ:</span><br><span>       case XUA_ASP_E_M_ASP_INACTIVE_REQ:</span><br><span style="color: hsl(0, 100%, 40%);">-              ipa_asp_fsm_del_route(fi->priv);</span><br><span style="color: hsl(120, 100%, 40%);">+           ipa_asp_fsm_del_route(fi);</span><br><span>           osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0);</span><br><span>           break;</span><br><span>       }</span><br><span>@@ -1051,7 +1061,7 @@</span><br><span> {</span><br><span>       switch (event) {</span><br><span>     case XUA_ASP_E_M_ASP_DOWN_REQ:</span><br><span style="color: hsl(0, 100%, 40%);">-          ipa_asp_fsm_del_route(fi->priv);</span><br><span style="color: hsl(120, 100%, 40%);">+           ipa_asp_fsm_del_route(fi);</span><br><span>           osmo_fsm_inst_state_chg(fi, IPA_ASP_S_DOWN, 0, 0);</span><br><span>           break;</span><br><span>       }</span><br><span>@@ -1178,7 +1188,7 @@</span><br><span> </span><br><span> static void ipa_asp_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- ipa_asp_fsm_del_route(fi->priv);</span><br><span style="color: hsl(120, 100%, 40%);">+   ipa_asp_fsm_del_route(fi);</span><br><span> }</span><br><span> </span><br><span> struct osmo_fsm ipa_asp_fsm = {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/23889">change 23889</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/+/23889"/><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: Ie3f57d22901f169afb2c844476b5839cc36752aa </div>
<div style="display:none"> Gerrit-Change-Number: 23889 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>