<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23488">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;">sched: Simplify usf selection code<br><br>Simply use the UL TBF pointer all along until the end, instead of setting<br>both the UL TBF pointer plus the usf var.<br><br>This commit is also a preparation for next commit which also selects UL<br>TBF when a poll is available, to set its USF in the DL message instead<br>of "USF_UNUSED".<br><br>Change-Id: I3aa3886932ef87db18ed7ff6991ea315f481990b<br>---<br>M src/gprs_rlcmac_sched.cpp<br>1 file changed, 6 insertions(+), 13 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp</span><br><span>index c54f533..25a3766 100644</span><br><span>--- a/src/gprs_rlcmac_sched.cpp</span><br><span>+++ b/src/gprs_rlcmac_sched.cpp</span><br><span>@@ -421,7 +421,7 @@</span><br><span> struct gprs_rlcmac_pdch *pdch;</span><br><span> struct tbf_sched_candidates tbf_cand = {0};</span><br><span> struct gprs_rlcmac_tbf *poll_tbf;</span><br><span style="color: hsl(0, 100%, 40%);">- struct gprs_rlcmac_ul_tbf *usf_tbf;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct gprs_rlcmac_ul_tbf *usf_tbf = NULL;</span><br><span> struct gprs_rlcmac_sba *sba;</span><br><span> uint8_t usf;</span><br><span> struct msgb *msg = NULL;</span><br><span>@@ -468,27 +468,19 @@</span><br><span> "TS=%d FN=%d block_nr=%d scheduling free USF for "</span><br><span> "polling at FN=%d of %s\n", trx, ts, fn,</span><br><span> block_nr, poll_fn, tbf_name(poll_tbf));</span><br><span style="color: hsl(0, 100%, 40%);">- usf = USF_UNUSED;</span><br><span> /* else. check for sba */</span><br><span> } else if ((sba = pdch_ulc_get_sba(pdch->ulc, poll_fn))) {</span><br><span> LOGPDCH(pdch, DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: "</span><br><span> "FN=%d block_nr=%d scheduling free USF for "</span><br><span> "single block allocation at FN=%d\n", fn, block_nr, sba->fn);</span><br><span style="color: hsl(0, 100%, 40%);">- usf = USF_UNUSED;</span><br><span> /* else, we search for uplink resource */</span><br><span> } else {</span><br><span> usf_tbf = sched_select_uplink(trx, ts, fn, block_nr, pdch, require_gprs_only);</span><br><span style="color: hsl(0, 100%, 40%);">- if (usf_tbf) {</span><br><span style="color: hsl(0, 100%, 40%);">- usf = usf_tbf->m_usf[ts];</span><br><span style="color: hsl(0, 100%, 40%);">- /* If MS selected for USF is GPRS-only, then it will</span><br><span style="color: hsl(0, 100%, 40%);">- * only be able to read USF if dl block uses GMSK</span><br><span style="color: hsl(0, 100%, 40%);">- * (CS1-4, MCS1-4)</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- if (req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS)</span><br><span style="color: hsl(120, 100%, 40%);">+ /* If MS selected for USF is GPRS-only, then it will only be</span><br><span style="color: hsl(120, 100%, 40%);">+ * able to read USF if dl block uses GMSK * (CS1-4, MCS1-4)</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (usf_tbf && req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS)</span><br><span> req_mcs_kind = EGPRS_GMSK;</span><br><span style="color: hsl(0, 100%, 40%);">- } else {</span><br><span style="color: hsl(0, 100%, 40%);">- usf = USF_UNUSED;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span> }</span><br><span> </span><br><span> get_tbf_candidates(bts, trx, ts, &tbf_cand);</span><br><span>@@ -521,6 +513,7 @@</span><br><span> </span><br><span> /* set USF */</span><br><span> OSMO_ASSERT(msgb_length(msg) > 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ usf = usf_tbf ? usf_tbf->m_usf[ts] : USF_UNUSED;</span><br><span> msg->data[0] = (msg->data[0] & 0xf8) | usf;</span><br><span> </span><br><span> /* Used to measure the leak rate, count all blocks */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/23488">change 23488</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/+/23488"/><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: I3aa3886932ef87db18ed7ff6991ea315f481990b </div>
<div style="display:none"> Gerrit-Change-Number: 23488 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </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: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>