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