<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/19789">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcuif_proto: version 10: add frequency hopping parameters<br><br>Change-Id: I6863830883d90954006a7126c22d348aa2a83271<br>Related: SYS#4868, OS#4547<br>---<br>M include/osmocom/pcu/pcuif_proto.h<br>M src/pcu_l1_if.cpp<br>2 files changed, 34 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h</span><br><span>index e88607e..61c63af 100644</span><br><span>--- a/include/osmocom/pcu/pcuif_proto.h</span><br><span>+++ b/include/osmocom/pcu/pcuif_proto.h</span><br><span>@@ -5,7 +5,7 @@</span><br><span> </span><br><span> #define PCU_SOCK_DEFAULT "/tmp/pcu_bts"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define PCU_IF_VERSION 0x09</span><br><span style="color: hsl(120, 100%, 40%);">+#define PCU_IF_VERSION 0x0a</span><br><span> #define TXT_MAX_LEN 128</span><br><span> </span><br><span> /* msg_type */</span><br><span>@@ -112,12 +112,21 @@</span><br><span> uint8_t ts_nr;</span><br><span> } __attribute__ ((packed));</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_pcu_if_info_ts {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t tsc;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t h;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t hsn;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t maio;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t ma_bit_len;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t ma[8];</span><br><span style="color: hsl(120, 100%, 40%);">+} __attribute__ ((packed));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct gsm_pcu_if_info_trx {</span><br><span> uint16_t arfcn;</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t pdch_mask; /* PDCH channels per TS */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t pdch_mask; /* PDCH timeslot mask */</span><br><span> uint8_t spare;</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t tsc[8]; /* TSC per channel */</span><br><span> uint32_t hlayer1;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gsm_pcu_if_info_ts ts[8]; /* timeslots per TRX */</span><br><span> } __attribute__ ((packed));</span><br><span> </span><br><span> struct gsm_pcu_if_info_ind {</span><br><span>diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp</span><br><span>index 2374606..c2cc2c1 100644</span><br><span>--- a/src/pcu_l1_if.cpp</span><br><span>+++ b/src/pcu_l1_if.cpp</span><br><span>@@ -630,6 +630,7 @@</span><br><span> }</span><br><span> </span><br><span> for (ts_nr = 0; ts_nr < ARRAY_SIZE(bts->trx[0].pdch); ts_nr++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct gsm_pcu_if_info_ts *its = &info_ind->trx[trx_nr].ts[ts_nr];</span><br><span> struct gprs_rlcmac_pdch *pdch = &bts->trx[trx_nr].pdch[ts_nr];</span><br><span> if ((info_ind->trx[trx_nr].pdch_mask & (1 << ts_nr))) {</span><br><span> /* FIXME: activate dynamically at RLCMAC */</span><br><span>@@ -643,9 +644,27 @@</span><br><span> pcu_tx_act_req(trx_nr, ts_nr, 1);</span><br><span> pdch->enable();</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- pdch->tsc = info_ind->trx[trx_nr].tsc[ts_nr];</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DL1IF, LOGL_INFO, "PDCH: trx=%d ts=%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- trx_nr, ts_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->tsc = its->tsc;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* (Optional) frequency hopping parameters */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (its->h) {</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->fh.enabled = true;</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->fh.maio = its->maio;</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->fh.hsn = its->hsn;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(its->ma_bit_len <= sizeof(pdch->fh.ma) * 8);</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->fh.ma_oct_len = OSMO_BYTES_FOR_BITS(its->ma_bit_len);</span><br><span style="color: hsl(120, 100%, 40%);">+ pdch->fh.ma_bit_len = its->ma_bit_len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Mobile Allocation + padding (byte/bit order as on the wire):</span><br><span style="color: hsl(120, 100%, 40%);">+ * | 00 00 00 00 00 cc bb aa | -> | cc bb aa 00 00 00 00 00 | */</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int offset = sizeof(pdch->fh.ma) - pdch->fh.ma_oct_len;</span><br><span style="color: hsl(120, 100%, 40%);">+ memcpy(pdch->fh.ma, its->ma + offset, pdch->fh.ma_oct_len);</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%);">+ LOGP(DL1IF, LOGL_INFO, "PDCH (trx=%u, ts=%u): tsc=%u, hopping=%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ trx_nr, ts_nr, pdch->tsc, pdch->fh.enabled ? "yes" : "no");</span><br><span> } else {</span><br><span> if (pdch->is_enabled()) {</span><br><span> pcu_tx_act_req(trx_nr, ts_nr, 0);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/19789">change 19789</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/+/19789"/><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: I6863830883d90954006a7126c22d348aa2a83271 </div>
<div style="display:none"> Gerrit-Change-Number: 19789 </div>
<div style="display:none"> Gerrit-PatchSet: 8 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-CC: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>