<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>