<p>Neels Hofmeyr <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12734">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;">handover_fsm: do not access conn->assignment.req, it may be outdated<br><br>handover_fsm.c accesses conn->assignment.req.s15_s0 to find out the current<br>lchan's AMR configuration. However, conn->assignment.* values are only valid<br>during an ongoing assignment.  Those values may be overwritten by any failed<br>Assignment attempt, at any time, and hence do not reflect the currently<br>assigned conn->lchan. Those realms must be kept separate.<br><br>The assignment.req.s15_s0 get passed to lchan_activate(), so it makes most<br>sense to store these values in struct gsm_lchan once the lchan activation<br>succeeded.<br><br>Add gsm_lchan.s15_s0, store the s15_s0 received in lchan_activate_info during<br>lchan_activate().<br><br>In handover_fsm.c, use conn->lchan->s15_s0 instead of conn->assignment.*.<br><br>Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929<br>---<br>M include/osmocom/bsc/gsm_data.h<br>M src/osmo-bsc/handover_fsm.c<br>M src/osmo-bsc/lchan_fsm.c<br>3 files changed, 4 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h</span><br><span>index a5fe1f1..867a46c 100644</span><br><span>--- a/include/osmocom/bsc/gsm_data.h</span><br><span>+++ b/include/osmocom/bsc/gsm_data.h</span><br><span>@@ -578,6 +578,8 @@</span><br><span>    /* AMR bits */</span><br><span>       uint8_t mr_ms_lv[7];</span><br><span>         uint8_t mr_bts_lv[7];</span><br><span style="color: hsl(120, 100%, 40%);">+ /* AMR bits were based on these rate bits: */</span><br><span style="color: hsl(120, 100%, 40%);">+ uint16_t s15_s0;</span><br><span> </span><br><span>         /* Established data link layer services */</span><br><span>   uint8_t sapis[8];</span><br><span>diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c</span><br><span>index 35f2e55..578cff3 100644</span><br><span>--- a/src/osmo-bsc/handover_fsm.c</span><br><span>+++ b/src/osmo-bsc/handover_fsm.c</span><br><span>@@ -715,7 +715,7 @@</span><br><span>             if (gscon_is_aoip(conn)) {</span><br><span>                   /* Extrapolate speech codec from speech mode */</span><br><span>                      gsm0808_speech_codec_from_chan_type(&sc, ho_perf_params.speech_version_chosen);</span><br><span style="color: hsl(0, 100%, 40%);">-                     sc.cfg = conn->assignment.req.s15_s0;</span><br><span style="color: hsl(120, 100%, 40%);">+                      sc.cfg = conn->lchan->s15_s0;</span><br><span>                  memcpy(&ho_perf_params.speech_codec_chosen, &sc, sizeof(sc));</span><br><span>                        ho_perf_params.speech_codec_chosen_present = true;</span><br><span>           }</span><br><span>diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c</span><br><span>index f344cf9..70f7622 100644</span><br><span>--- a/src/osmo-bsc/lchan_fsm.c</span><br><span>+++ b/src/osmo-bsc/lchan_fsm.c</span><br><span>@@ -544,6 +544,7 @@</span><br><span>                         lchan_fail("Can not generate multirate configuration IE\n");</span><br><span>                       return;</span><br><span>              }</span><br><span style="color: hsl(120, 100%, 40%);">+             lchan->s15_s0 = info->s15_s0;</span><br><span>  }</span><br><span> </span><br><span>        switch (info->chan_mode) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12734">change 12734</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/12734"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929 </div>
<div style="display:none"> Gerrit-Change-Number: 12734 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-CC: Max <msuraev@sysmocom.de> </div>