<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10153">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;">update sysinfo copies in all lchans upon SACCH FILL<br><br>When a SACCH FILL is received, loop over all lchans and update<br>their copies of system information data.<br><br>This change makes BTS_Tests.TC_sacch_multi_chg pass.<br><br>Change-Id: I3e63eeb5fcf320fb029de16e4d327e153cc34567<br>Related: OS#3173<br>---<br>M src/common/rsl.c<br>1 file changed, 32 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/common/rsl.c b/src/common/rsl.c</span><br><span>index 9295240..e28f313 100644</span><br><span>--- a/src/common/rsl.c</span><br><span>+++ b/src/common/rsl.c</span><br><span>@@ -563,12 +563,44 @@</span><br><span>   }</span><br><span>    if (TLVP_PRESENT(&tp, RSL_IE_L3_INFO)) {</span><br><span>                 uint16_t len = TLVP_LEN(&tp, RSL_IE_L3_INFO);</span><br><span style="color: hsl(120, 100%, 40%);">+             struct gsm_bts_trx *t;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>             lapdm_ui_prefix_bts(bts, TLVP_VAL(&tp, RSL_IE_L3_INFO), osmo_si, len);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+                /* Propagate SI change to all lchans. */</span><br><span style="color: hsl(120, 100%, 40%);">+              llist_for_each_entry(t, &bts->trx_list, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        int i, j;</span><br><span style="color: hsl(120, 100%, 40%);">+                     for (i = 0; i < ARRAY_SIZE(t->ts); i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               struct gsm_bts_trx_ts *ts = &t->ts[i];</span><br><span style="color: hsl(120, 100%, 40%);">+                         for (j = 0; j < ARRAY_SIZE(ts->lchan); j++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                   struct gsm_lchan *lchan = &ts->lchan[j];</span><br><span style="color: hsl(120, 100%, 40%);">+                                       if (lchan->state == LCHAN_S_NONE)</span><br><span style="color: hsl(120, 100%, 40%);">+                                          continue;</span><br><span style="color: hsl(120, 100%, 40%);">+                                     lapdm_ui_prefix_lchan(lchan, TLVP_VAL(&tp, RSL_IE_L3_INFO), osmo_si, 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%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>          LOGP(DRSL, LOGL_INFO, " Rx RSL SACCH FILLING (SI%s, %u bytes)\n",</span><br><span>               get_value_string(osmo_sitype_strs, osmo_si), len);</span><br><span>      } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              struct gsm_bts_trx *t;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>             bts->si_valid &= ~(1 << osmo_si);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+              /* Propagate SI change to all lchans. */</span><br><span style="color: hsl(120, 100%, 40%);">+              llist_for_each_entry(t, &bts->trx_list, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        int i, j;</span><br><span style="color: hsl(120, 100%, 40%);">+                     for (i = 0; i < ARRAY_SIZE(t->ts); i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               struct gsm_bts_trx_ts *ts = &t->ts[i];</span><br><span style="color: hsl(120, 100%, 40%);">+                         for (j = 0; j < ARRAY_SIZE(ts->lchan); j++) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                   struct gsm_lchan *lchan = &ts->lchan[j];</span><br><span style="color: hsl(120, 100%, 40%);">+                                       if (lchan->state == LCHAN_S_NONE)</span><br><span style="color: hsl(120, 100%, 40%);">+                                          continue;</span><br><span style="color: hsl(120, 100%, 40%);">+                                     lchan->si.valid &= ~(1 << osmo_si);</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%);">+             }</span><br><span>            LOGP(DRSL, LOGL_INFO, " Rx RSL Disabling SACCH FILLING (SI%s)\n",</span><br><span>                  get_value_string(osmo_sitype_strs, osmo_si));</span><br><span>        }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10153">change 10153</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/10153"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I3e63eeb5fcf320fb029de16e4d327e153cc34567 </div>
<div style="display:none"> Gerrit-Change-Number: 10153 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Stefan Sperling <ssperling@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>