<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24621">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcuif: Support receiving System Information 2<br><br>OsmoPCU will need this SI2 in order to gain knowledge of the BCCH<br>Frequency List being broadcasted, in order to build a per-MS specific<br>Neighbour List using NC_FREQUENCY_LIST bits in Packet Measurement Order.<br><br>Related: SYS#5303<br>Change-Id: I4a9c4f70beac6805322a19835a0d30f7247780b4<br>---<br>M src/bts.h<br>M src/pcu_l1_if.cpp<br>2 files changed, 33 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 2a7d883..a2f4598 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -231,6 +231,9 @@</span><br><span> </span><br><span>         uint8_t si1[GSM_MACBLOCK_LEN];</span><br><span>       bool si1_is_set;</span><br><span style="color: hsl(120, 100%, 40%);">+      uint8_t si2[GSM_MACBLOCK_LEN];</span><br><span style="color: hsl(120, 100%, 40%);">+        bool si2_is_set;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct gsm_sysinfo_freq si2_bcch_cell_list[1024];</span><br><span>    uint8_t si3[GSM_MACBLOCK_LEN];</span><br><span>       bool si3_is_set;</span><br><span>     uint8_t si13[GSM_MACBLOCK_LEN];</span><br><span>diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp</span><br><span>index 0453b92..818cb1a 100644</span><br><span>--- a/src/pcu_l1_if.cpp</span><br><span>+++ b/src/pcu_l1_if.cpp</span><br><span>@@ -286,9 +286,28 @@</span><br><span>      return rc;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int list_arfcn(const struct gprs_rlcmac_bts *bts, const struct gsm_sysinfo_freq *freq, const char *text)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       int n = 0, i;</span><br><span style="color: hsl(120, 100%, 40%);">+ for (i = 0; i < 1024; i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+               if (freq[i].mask) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (!n)</span><br><span style="color: hsl(120, 100%, 40%);">+                               LOGP(DL1IF, LOGL_INFO, "BTS%d: %s", bts->nr, text);</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGPC(DL1IF, LOGL_INFO, " %d", i);</span><br><span style="color: hsl(120, 100%, 40%);">+                  n++;</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%);">+     if (n)</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGPC(DL1IF, LOGL_INFO, "\n");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    return n;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int pcu_rx_data_ind_bcch(struct gprs_rlcmac_bts *bts, uint8_t *data, uint8_t len)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+       struct gsm48_system_information_type_2 *si2;</span><br><span>         const uint8_t *si_ro;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      switch (len) {</span><br><span>       case 0:</span><br><span>              /* Due to historical reasons also accept a completely empty message as</span><br><span>@@ -305,6 +324,9 @@</span><br><span>                 case SYSINFO_TYPE_1:</span><br><span>                         bts->si1_is_set = false;</span><br><span>                  break;</span><br><span style="color: hsl(120, 100%, 40%);">+                case SYSINFO_TYPE_2:</span><br><span style="color: hsl(120, 100%, 40%);">+                  bts->si2_is_set = false;</span><br><span style="color: hsl(120, 100%, 40%);">+                   break;</span><br><span>               case SYSINFO_TYPE_3:</span><br><span>                         bts->si3_is_set = false;</span><br><span>                  break;</span><br><span>@@ -328,6 +350,14 @@</span><br><span>                        memcpy(bts->si1, data, GSM_MACBLOCK_LEN);</span><br><span>                         bts->si1_is_set = true;</span><br><span>                   break;</span><br><span style="color: hsl(120, 100%, 40%);">+                case GSM48_MT_RR_SYSINFO_2:</span><br><span style="color: hsl(120, 100%, 40%);">+                   memcpy(bts->si2, data, GSM_MACBLOCK_LEN);</span><br><span style="color: hsl(120, 100%, 40%);">+                  bts->si2_is_set = true;</span><br><span style="color: hsl(120, 100%, 40%);">+                    si2 = (struct gsm48_system_information_type_2 *)bts->si2;</span><br><span style="color: hsl(120, 100%, 40%);">+                  gsm48_decode_freq_list(bts->si2_bcch_cell_list, si2->bcch_frequency_list,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              sizeof(si2->bcch_frequency_list), 0xce, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+                 list_arfcn(bts, bts->si2_bcch_cell_list, "SI2 Neighbour cells in same band:");</span><br><span style="color: hsl(120, 100%, 40%);">+                   break;</span><br><span>               case GSM48_MT_RR_SYSINFO_3:</span><br><span>                  memcpy(bts->si3, data, GSM_MACBLOCK_LEN);</span><br><span>                         bts->si3_is_set = true;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24621">change 24621</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-pcu/+/24621"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I4a9c4f70beac6805322a19835a0d30f7247780b4 </div>
<div style="display:none"> Gerrit-Change-Number: 24621 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>