<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/21441">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">power_control: generalize power control state structure<br><br>Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52<br>Related: SYS#4918<br>---<br>M include/osmo-bts/gsm_data.h<br>M src/common/power_control.c<br>M tests/power/ms_power_loop_test.c<br>3 files changed, 13 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h</span><br><span>index 64102f5..04c6629 100644</span><br><span>--- a/include/osmo-bts/gsm_data.h</span><br><span>+++ b/include/osmo-bts/gsm_data.h</span><br><span>@@ -161,6 +161,15 @@</span><br><span> uint32_t fn;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+struct lchan_power_ctrl_state {</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t current;</span><br><span style="color: hsl(120, 100%, 40%);">+ uint8_t max;</span><br><span style="color: hsl(120, 100%, 40%);">+ bool fixed;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Scaled up (100 times) average UL/DL RxLev (in dBm) */</span><br><span style="color: hsl(120, 100%, 40%);">+ int avg100_rxlev_dbm;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct gsm_lchan {</span><br><span> /* The TS that we're part of */</span><br><span> struct gsm_bts_trx_ts *ts;</span><br><span>@@ -306,15 +315,9 @@</span><br><span> enum lchan_rel_act_kind rel_act_kind;</span><br><span> /* RTP header Marker bit to indicate beginning of speech after pause */</span><br><span> bool rtp_tx_marker;</span><br><span style="color: hsl(0, 100%, 40%);">- /* power handling */</span><br><span style="color: hsl(0, 100%, 40%);">- struct {</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t current;</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t max;</span><br><span style="color: hsl(0, 100%, 40%);">- bool fixed;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Scaled up (100 times) average UL RSSI */</span><br><span style="color: hsl(0, 100%, 40%);">- int avg100_ul_rssi;</span><br><span style="color: hsl(0, 100%, 40%);">- } ms_power_ctrl;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* MS power control */</span><br><span style="color: hsl(120, 100%, 40%);">+ struct lchan_power_ctrl_state ms_power_ctrl;</span><br><span> </span><br><span> /* BTS power reduction (in dB) */</span><br><span> uint8_t bs_power_red;</span><br><span>diff --git a/src/common/power_control.c b/src/common/power_control.c</span><br><span>index e022e59..3328167 100644</span><br><span>--- a/src/common/power_control.c</span><br><span>+++ b/src/common/power_control.c</span><br><span>@@ -79,7 +79,7 @@</span><br><span> const int8_t Pwr)</span><br><span> {</span><br><span> const uint8_t A = bts->ul_power_ctrl.pf.ewma.alpha;</span><br><span style="color: hsl(0, 100%, 40%);">- int *Avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi;</span><br><span style="color: hsl(120, 100%, 40%);">+ int *Avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm;</span><br><span> </span><br><span> /* We don't have 'Avg[n - 1]' if this is the first run */</span><br><span> if (lchan->meas.res_nr == 0) {</span><br><span>diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c</span><br><span>index f1b910b..1abe532 100644</span><br><span>--- a/tests/power/ms_power_loop_test.c</span><br><span>+++ b/tests/power/ms_power_loop_test.c</span><br><span>@@ -152,7 +152,7 @@</span><br><span> </span><br><span> init_test(__func__);</span><br><span> lchan = &g_trx->ts[0].lchan[0];</span><br><span style="color: hsl(0, 100%, 40%);">- avg100 = &lchan->ms_power_ctrl.avg100_ul_rssi;</span><br><span style="color: hsl(120, 100%, 40%);">+ avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm;</span><br><span> </span><br><span> g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA;</span><br><span> g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/21441">change 21441</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-bts/+/21441"/><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-Change-Id: I8c6ad8d14349e8a05084c2912644c5202f951f52 </div>
<div style="display:none"> Gerrit-Change-Number: 21441 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>