<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19899">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bssap: do not send a Clear Request after a Clear Command<br><br>During handover cleanup due to a Clear Command from the MSC, do not send<br>another Clear Request to the MSC. Only send that when no Clear Command was<br>received yet.<br><br>Add a flag rx_clear_command per gscon instance, indicating whether a Clear<br>Command was received, and exit early in gscon_bssmap_clear() when true.<br><br>This is part of patches fixing the rate counters around handover, which uncover<br>some bugs:<br>- Another patch enables proper handover result handling when receiving a Clear<br>  Command.<br>- After that, the handover_end() handling would always cause sending a Clear<br>  Request, even if a Clear Command was already received.<br>- This patch removes the extraneous Clear Request, for this scenario and for<br>  all other corner cases that might still exist.<br><br>Related: OS#4736<br>Change-Id: Iab82cac0a7ffa7d36338c8ff7c0618a813025f13<br>---<br>M include/osmocom/bsc/gsm_data.h<br>M src/osmo-bsc/bsc_subscr_conn_fsm.c<br>2 files changed, 9 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/19899/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h</span><br><span>index 09c0214..ca96c56 100644</span><br><span>--- a/include/osmocom/bsc/gsm_data.h</span><br><span>+++ b/include/osmocom/bsc/gsm_data.h</span><br><span>@@ -303,6 +303,8 @@</span><br><span> </span><br><span>   /* MS Power Class, TS 05.05 sec 4.1.1 "Mobile station". 0 means unset. */</span><br><span>  uint8_t ms_power_class:3;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   bool rx_clear_command;</span><br><span> };</span><br><span> </span><br><span> </span><br><span>diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>index 281ab71..e7c6efe 100644</span><br><span>--- a/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>+++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c</span><br><span>@@ -141,6 +141,11 @@</span><br><span>     struct msgb *resp;</span><br><span>   int rc;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   if (conn->rx_clear_command) {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGPFSML(conn->fi, LOGL_DEBUG, "Not sending BSSMAP CLEAR REQUEST, already got CLEAR COMMAND from MSC\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  LOGPFSML(conn->fi, LOGL_DEBUG, "Tx BSSMAP CLEAR REQUEST(%s) to MSC\n", gsm0808_cause_name(cause));</span><br><span>      resp = gsm0808_create_clear_rqst(cause);</span><br><span>     if (!resp) {</span><br><span>@@ -764,6 +769,8 @@</span><br><span>   /* Regular allstate event processing */</span><br><span>      switch (event) {</span><br><span>     case GSCON_EV_A_CLEAR_CMD:</span><br><span style="color: hsl(120, 100%, 40%);">+            conn->rx_clear_command = true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>          OSMO_ASSERT(data);</span><br><span>           ccd = data;</span><br><span>          if (conn->lchan)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19899">change 19899</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-bsc/+/19899"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iab82cac0a7ffa7d36338c8ff7c0618a813025f13 </div>
<div style="display:none"> Gerrit-Change-Number: 19899 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>