<p>tnt has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18125">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">om2k: Properly update the 'fake' 12.21 states using OM2000 status<br><br>Signed-off-by: Sylvain Munaut <tnt@246tNt.com><br>Change-Id: I1caafa2e87c6198bf3b1a77f0fa1edc774deeef9<br>---<br>M src/osmo-bsc/abis_om2000.c<br>1 file changed, 39 insertions(+), 3 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/25/18125/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 41b2317..72aa04c 100644</span><br><span>--- a/src/osmo-bsc/abis_om2000.c</span><br><span>+++ b/src/osmo-bsc/abis_om2000.c</span><br><span>@@ -310,6 +310,13 @@</span><br><span>      OM2K_DEI_MCTR_FEAT_STATUS_BMAP          = 0xab,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+enum abis_om2k_mostate {</span><br><span style="color: hsl(120, 100%, 40%);">+   OM2K_MOSTATE_RESET                      = 0x00,</span><br><span style="color: hsl(120, 100%, 40%);">+       OM2K_MOSTATE_STARTED                    = 0x01,</span><br><span style="color: hsl(120, 100%, 40%);">+       OM2K_MOSTATE_ENABLED                    = 0x02,</span><br><span style="color: hsl(120, 100%, 40%);">+       OM2K_MOSTATE_DISABLED                   = 0x03,</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> const struct tlv_definition om2k_att_tlvdef = {</span><br><span>     .def = {</span><br><span>             [OM2K_DEI_ACCORDANCE_IND] =     { TLV_TYPE_TV },</span><br><span>@@ -782,7 +789,6 @@</span><br><span>       case OM2K_MO_CLS_MCTR:</span><br><span>               mo = &bts->rbs2000.mctr.om2k_mo;</span><br><span>              break;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>       case OM2K_MO_CLS_TRXC:</span><br><span>               trx = gsm_bts_trx_num(bts, abis_mo->inst);</span><br><span>                if (!trx)</span><br><span>@@ -874,6 +880,9 @@</span><br><span>                      return NULL;</span><br><span>                 nm_state = &trx->ts[mo->inst].mo.nm_state;</span><br><span>                 break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OM2K_MO_CLS_MCTR:</span><br><span style="color: hsl(120, 100%, 40%);">+                nm_state = &bts->rbs2000.mctr.mo.nm_state;</span><br><span style="color: hsl(120, 100%, 40%);">+             break;</span><br><span>       case OM2K_MO_CLS_TF:</span><br><span>                 nm_state = &bts->rbs2000.tf.mo.nm_state;</span><br><span>              break;</span><br><span>@@ -922,6 +931,7 @@</span><br><span>                 if (mo->inst >= ARRAY_SIZE(trx->ts))</span><br><span>                        return NULL;</span><br><span>                 return &trx->ts[mo->inst];</span><br><span style="color: hsl(120, 100%, 40%);">+  case OM2K_MO_CLS_MCTR:</span><br><span>       case OM2K_MO_CLS_TF:</span><br><span>         case OM2K_MO_CLS_IS:</span><br><span>         case OM2K_MO_CLS_CON:</span><br><span>@@ -939,13 +949,39 @@</span><br><span>        struct gsm_nm_state *nm_state = mo2nm_state(bts, mo);</span><br><span>        struct gsm_nm_state new_state;</span><br><span>       struct nm_statechg_signal_data nsd;</span><br><span style="color: hsl(120, 100%, 40%);">+   bool has_enabled_state;</span><br><span> </span><br><span>  if (!nm_state)</span><br><span>               return;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   switch (mo->class) {</span><br><span style="color: hsl(120, 100%, 40%);">+       case OM2K_MO_CLS_CF:</span><br><span style="color: hsl(120, 100%, 40%);">+  case OM2K_MO_CLS_TRXC:</span><br><span style="color: hsl(120, 100%, 40%);">+                has_enabled_state = false;</span><br><span style="color: hsl(120, 100%, 40%);">+            break;</span><br><span style="color: hsl(120, 100%, 40%);">+        default:</span><br><span style="color: hsl(120, 100%, 40%);">+              has_enabled_state = true;</span><br><span style="color: hsl(120, 100%, 40%);">+             break;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  new_state = *nm_state;</span><br><span style="color: hsl(0, 100%, 40%);">-  /* NOTICE: 12.21 Availability state values != OM2000 */</span><br><span style="color: hsl(0, 100%, 40%);">- new_state.availability = mo_state;</span><br><span style="color: hsl(120, 100%, 40%);">+    switch (mo_state) {</span><br><span style="color: hsl(120, 100%, 40%);">+   case OM2K_MOSTATE_RESET:</span><br><span style="color: hsl(120, 100%, 40%);">+              new_state.availability = NM_AVSTATE_POWER_OFF;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OM2K_MOSTATE_STARTED:</span><br><span style="color: hsl(120, 100%, 40%);">+            new_state.availability = has_enabled_state ? NM_AVSTATE_OFF_LINE : NM_AVSTATE_OK;</span><br><span style="color: hsl(120, 100%, 40%);">+             break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OM2K_MOSTATE_ENABLED:</span><br><span style="color: hsl(120, 100%, 40%);">+            new_state.availability = NM_AVSTATE_OK;</span><br><span style="color: hsl(120, 100%, 40%);">+               break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case OM2K_MOSTATE_DISABLED:</span><br><span style="color: hsl(120, 100%, 40%);">+           new_state.availability = NM_AVSTATE_POWER_OFF;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        default:</span><br><span style="color: hsl(120, 100%, 40%);">+              new_state.availability = NM_AVSTATE_DEGRADED;</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span> </span><br><span>        memset(&nsd, 0, sizeof(nsd));</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/18125">change 18125</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/+/18125"/><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: I1caafa2e87c6198bf3b1a77f0fa1edc774deeef9 </div>
<div style="display:none"> Gerrit-Change-Number: 18125 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: tnt <tnt@246tNt.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>