<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/22834">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sccp: more SCMG handling: SSA and SSP message handling<br><br>When a SSP (Subsystem Prohibited) or SSA (Subsystem Available) SCMG<br>message is received, we must generate the respective primitives towards<br>the SCCP user.<br><br>Change-Id: I149166a25113f5d3e3536f9297bf89ff3139b9e3<br>---<br>M src/sccp_scmg.c<br>1 file changed, 31 insertions(+), 2 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/34/22834/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/sccp_scmg.c b/src/sccp_scmg.c</span><br><span>index ed16fe7..49e09ca 100644</span><br><span>--- a/src/sccp_scmg.c</span><br><span>+++ b/src/sccp_scmg.c</span><br><span>@@ -167,6 +167,33 @@</span><br><span> }</span><br><span> </span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Subsystem Allowed received */</span><br><span style="color: hsl(120, 100%, 40%);">+static int scmg_rx_ssa(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+                     const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssa)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Q.714 5.3.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+     if (ssa->affected_ssn == SCCP_SSN_MANAGEMENT)</span><br><span style="color: hsl(120, 100%, 40%);">+              return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* if the SSN is not marked as prohibited, ignore */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Q.714 5.3.2.2 a) */</span><br><span style="color: hsl(120, 100%, 40%);">+        sccp_scmg_rx_ssn_allowed(scu->inst, ssa->affected_pc, ssa->affected_ssn, ssa->smi);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* If the remote SCCP, at which the subsystem reported in the SSA message resides, is marked</span><br><span style="color: hsl(120, 100%, 40%);">+   * inaccessible, then the message is treated as an implicit indication of SCCP restart */</span><br><span style="color: hsl(120, 100%, 40%);">+     return 0;</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%);">+/* Subsystem Prohibited received */</span><br><span style="color: hsl(120, 100%, 40%);">+static int scmg_rx_ssp(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+                    const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *ssp)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Q.714 5.3.2.2 a) */</span><br><span style="color: hsl(120, 100%, 40%);">+        sccp_scmg_rx_ssn_prohibited(scu->inst, ssp->affected_pc, ssp->affected_ssn, ssp->smi);</span><br><span style="color: hsl(120, 100%, 40%);">+    return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Subsystem Test received */</span><br><span> static int scmg_rx_sst(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *calling_addr,</span><br><span>                     const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *sst)</span><br><span>@@ -191,10 +218,12 @@</span><br><span>              const struct osmo_sccp_addr *called_addr, const struct sccp_scmg_msg *scmg)</span><br><span> {</span><br><span>  switch (scmg->msg_type) {</span><br><span style="color: hsl(120, 100%, 40%);">+  case SCCP_SCMG_MSGT_SSA:</span><br><span style="color: hsl(120, 100%, 40%);">+              return scmg_rx_ssa(scu, calling_addr, called_addr, scmg);</span><br><span style="color: hsl(120, 100%, 40%);">+     case SCCP_SCMG_MSGT_SSP:</span><br><span style="color: hsl(120, 100%, 40%);">+              return scmg_rx_ssp(scu, calling_addr, called_addr, scmg);</span><br><span>    case SCCP_SCMG_MSGT_SST:</span><br><span>             return scmg_rx_sst(scu, calling_addr, called_addr, scmg);</span><br><span style="color: hsl(0, 100%, 40%);">-       case SCCP_SCMG_MSGT_SSP:</span><br><span style="color: hsl(0, 100%, 40%);">-        case SCCP_SCMG_MSGT_SSA:</span><br><span>     case SCCP_SCMG_MSGT_SOR:</span><br><span>     case SCCP_SCMG_MSGT_SOG:</span><br><span>     case SCCP_SCMG_MSGT_SSC:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/22834">change 22834</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/+/22834"/><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: I149166a25113f5d3e3536f9297bf89ff3139b9e3 </div>
<div style="display:none"> Gerrit-Change-Number: 22834 </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>