<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10456">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">trxcon/scheduler: pass lchan to sched_bad_frame_ind()<br><br>Instead of passing the information about a logical channel, it<br>makes sense to pass the pointer to its state where everything<br>is stored. This approach would allow to avoid adding more<br>arguments every time, e.g. in case of AMR.<br><br>Change-Id: I91fe86fef43aac68776a58c9acc37ef2a9ee8042<br>---<br>M src/host/trxcon/sched_lchan_common.c<br>M src/host/trxcon/sched_lchan_tchf.c<br>M src/host/trxcon/sched_prim.c<br>M src/host/trxcon/sched_trx.h<br>4 files changed, 10 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/host/trxcon/sched_lchan_common.c b/src/host/trxcon/sched_lchan_common.c</span><br><span>index 47b0162..03cdc67 100644</span><br><span>--- a/src/host/trxcon/sched_lchan_common.c</span><br><span>+++ b/src/host/trxcon/sched_lchan_common.c</span><br><span>@@ -139,17 +139,17 @@</span><br><span>  * Composes a bad frame indication message</span><br><span>  * according to the current tch_mode.</span><br><span>  *</span><br><span style="color: hsl(0, 100%, 40%);">- * @param  l2       Pointer to allocated byte array</span><br><span style="color: hsl(0, 100%, 40%);">- * @param  tch_mode Current TCH mode</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param  l2       Caller-allocated byte array</span><br><span style="color: hsl(120, 100%, 40%);">+ * @param  lchan    Logical channel to generate BFI for</span><br><span>  * @return          How much bytes were written</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-size_t sched_bad_frame_ind(uint8_t *l2, uint8_t rsl_cmode, uint8_t tch_mode)</span><br><span style="color: hsl(120, 100%, 40%);">+size_t sched_bad_frame_ind(uint8_t *l2, struct trx_lchan_state *lchan)</span><br><span> {</span><br><span>   /* BFI is only required for speech */</span><br><span style="color: hsl(0, 100%, 40%);">-   if (rsl_cmode != RSL_CMOD_SPD_SPEECH)</span><br><span style="color: hsl(120, 100%, 40%);">+ if (lchan->rsl_cmode != RSL_CMOD_SPD_SPEECH)</span><br><span>              return 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   switch (tch_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+   switch (lchan->tch_mode) {</span><br><span>        case GSM48_CMODE_SIGN:</span><br><span>       case GSM48_CMODE_SPEECH_V1: /* Full Rate */</span><br><span>          memset(l2, 0x00, GSM_FR_BYTES);</span><br><span>@@ -163,7 +163,7 @@</span><br><span>                /* FIXME: AMR is not implemented yet */</span><br><span>              return 0;</span><br><span>    default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOGP(DSCH, LOGL_ERROR, "Invalid TCH mode: %u\n", tch_mode);</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGP(DSCH, LOGL_ERROR, "Invalid TCH mode: %u\n", lchan->tch_mode);</span><br><span>              return 0;</span><br><span>    }</span><br><span> }</span><br><span>diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c</span><br><span>index e20b461..86cdb12 100644</span><br><span>--- a/src/host/trxcon/sched_lchan_tchf.c</span><br><span>+++ b/src/host/trxcon/sched_lchan_tchf.c</span><br><span>@@ -166,7 +166,7 @@</span><br><span> </span><br><span> bfi:</span><br><span>        /* Bad frame indication */</span><br><span style="color: hsl(0, 100%, 40%);">-      l2_len = sched_bad_frame_ind(l2, rsl_cmode, tch_mode);</span><br><span style="color: hsl(120, 100%, 40%);">+        l2_len = sched_bad_frame_ind(l2, lchan);</span><br><span> </span><br><span>         /* Didn't try to decode */</span><br><span>       if (n_errors < 0)</span><br><span>diff --git a/src/host/trxcon/sched_prim.c b/src/host/trxcon/sched_prim.c</span><br><span>index acd08bf..2aeaa5d 100644</span><br><span>--- a/src/host/trxcon/sched_prim.c</span><br><span>+++ b/src/host/trxcon/sched_prim.c</span><br><span>@@ -373,12 +373,8 @@</span><br><span>      * other channels: LAPDm fill frame.</span><br><span>          */</span><br><span>  if (CHAN_IS_TCH(chan) && TCH_MODE_IS_SPEECH(tch_mode)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                /**</span><br><span style="color: hsl(0, 100%, 40%);">-              * Silence frame indication</span><br><span style="color: hsl(0, 100%, 40%);">-              * HACK: use actual rsl_cmode!</span><br><span style="color: hsl(0, 100%, 40%);">-           */</span><br><span style="color: hsl(0, 100%, 40%);">-             prim_len = sched_bad_frame_ind(prim_buffer,</span><br><span style="color: hsl(0, 100%, 40%);">-                     RSL_CMOD_SPD_SPEECH, tch_mode);</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Bad frame indication */</span><br><span style="color: hsl(120, 100%, 40%);">+            prim_len = sched_bad_frame_ind(prim_buffer, lchan);</span><br><span>  } else if (CHAN_IS_TCH(chan) && TCH_MODE_IS_DATA(tch_mode)) {</span><br><span>                /* FIXME: should we do anything for CSD? */</span><br><span>          return 0;</span><br><span>diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h</span><br><span>index f3fa9df..2aafbf0 100644</span><br><span>--- a/src/host/trxcon/sched_trx.h</span><br><span>+++ b/src/host/trxcon/sched_trx.h</span><br><span>@@ -317,7 +317,7 @@</span><br><span> /* Shared declarations for lchan handlers */</span><br><span> extern const uint8_t sched_nb_training_bits[8][26];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-size_t sched_bad_frame_ind(uint8_t *l2, uint8_t rsl_cmode, uint8_t tch_mode);</span><br><span style="color: hsl(120, 100%, 40%);">+size_t sched_bad_frame_ind(uint8_t *l2, struct trx_lchan_state *lchan);</span><br><span> int sched_send_dt_ind(struct trx_instance *trx, struct trx_ts *ts,</span><br><span>      struct trx_lchan_state *lchan, uint8_t *l2, size_t l2_len,</span><br><span>   int bit_error_count, bool dec_failed, bool traffic);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10456">change 10456</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/10456"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I91fe86fef43aac68776a58c9acc37ef2a9ee8042 </div>
<div style="display:none"> Gerrit-Change-Number: 10456 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>