<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19965">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">abis_om2000: check result of gsm_bts_trx_set_system_infos()<br><br>Ensure that osmo-bsc would not continue to work as usual, if for<br>some reason we cannot encode or send System Information messages.<br><br>Introduce transitional state OM2K_TRX_S_SEND_SI, from where we<br>can generate and send System Information messages.  Otherwise<br>it's confusing if we fail to do something when we're already<br>in state OM2K_TRX_S_DONE.<br><br>Change-Id: Ia6df539d0914c57ea80fdb29882832678b47f267<br>---<br>M src/osmo-bsc/abis_om2000.c<br>1 file changed, 19 insertions(+), 4 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/65/19965/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c</span><br><span>index 5c8b378..802cdb8 100644</span><br><span>--- a/src/osmo-bsc/abis_om2000.c</span><br><span>+++ b/src/osmo-bsc/abis_om2000.c</span><br><span>@@ -2122,6 +2122,7 @@</span><br><span>     OM2K_TRX_S_WAIT_TX,</span><br><span>          OM2K_TRX_S_WAIT_RX,</span><br><span>          OM2K_TRX_S_WAIT_TS,</span><br><span style="color: hsl(120, 100%, 40%);">+   OM2K_TRX_S_SEND_SI,</span><br><span>          OM2K_TRX_S_DONE,</span><br><span>     OM2K_TRX_S_ERROR</span><br><span> };</span><br><span>@@ -2195,14 +2196,22 @@</span><br><span>                              &ts->rbs2000.om2k_mo);</span><br><span>      } else {</span><br><span>             /* only after all 8 TS */</span><br><span style="color: hsl(0, 100%, 40%);">-               osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_DONE, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+           osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_SEND_SI, 0, 0);</span><br><span>       }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void om2k_trx_s_send_si(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%);">+  struct om2k_trx_fsm_priv *otfp = fi->priv;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       if (gsm_bts_trx_set_system_infos(otfp->trx) == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_DONE, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+   else</span><br><span style="color: hsl(120, 100%, 40%);">+          osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_ERROR, 0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void om2k_trx_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    struct om2k_trx_fsm_priv *otfp = fi->priv;</span><br><span style="color: hsl(0, 100%, 40%);">-   gsm_bts_trx_set_system_infos(otfp->trx);</span><br><span>  osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL);</span><br><span> }</span><br><span> </span><br><span>@@ -2237,10 +2246,16 @@</span><br><span>      [OM2K_TRX_S_WAIT_TS] = {</span><br><span>             .in_event_mask = S(OM2K_TRX_EVT_TS_DONE),</span><br><span>            .out_state_mask = S(OM2K_TRX_S_ERROR) |</span><br><span style="color: hsl(0, 100%, 40%);">-                           S(OM2K_TRX_S_DONE),</span><br><span style="color: hsl(120, 100%, 40%);">+                           S(OM2K_TRX_S_SEND_SI),</span><br><span>             .name = "WAIT-TS",</span><br><span>                 .action = om2k_trx_s_wait_ts,</span><br><span>        },</span><br><span style="color: hsl(120, 100%, 40%);">+    [OM2K_TRX_S_SEND_SI] = {</span><br><span style="color: hsl(120, 100%, 40%);">+              .out_state_mask = S(OM2K_TRX_S_ERROR) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                 S(OM2K_TRX_S_DONE),</span><br><span style="color: hsl(120, 100%, 40%);">+         .name = "SEND-SI",</span><br><span style="color: hsl(120, 100%, 40%);">+          .action = om2k_trx_s_send_si,</span><br><span style="color: hsl(120, 100%, 40%);">+ },</span><br><span>   [OM2K_TRX_S_DONE] = {</span><br><span>                .name = "DONE",</span><br><span>            .onenter = om2k_trx_s_done_onenter,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/19965">change 19965</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/+/19965"/><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: Ia6df539d0914c57ea80fdb29882832678b47f267 </div>
<div style="display:none"> Gerrit-Change-Number: 19965 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>