<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23485">View Change</a></p><div style="white-space:pre-wrap">Approvals:
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: Avoid early TBF release due to N3101 in TC_multiplex_dl_gprs_egprs<br><br>Also change a bit expectations, since it can actually happen that DL<br>blocks for GPRS-only MS never signal USF for itself, which is<br>still fine.<br><br>Change-Id: Iedff87cedf55ab18b32bd0f159d1145901878203<br>---<br>M pcu/PCU_Tests.ttcn<br>1 file changed, 35 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index bea9ddd..5f60cef 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -3717,7 +3717,7 @@</span><br><span> var octetstring data := f_rnd_octstring(10);</span><br><span> var RlcmacDlBlock dl_block;</span><br><span> var integer tx_data_remain := 5;</span><br><span style="color: hsl(0, 100%, 40%);">- var integer tgt_ms;</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer tgt_ms, usf_ms;</span><br><span> var integer ms_gprs_usf_count[num_ms] := { 0, 0 };</span><br><span> var integer ms_egprs_usf_count[num_ms] := { 0, 0 };</span><br><span> </span><br><span>@@ -3799,6 +3799,8 @@</span><br><span> break;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ usf_ms := -1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> if (ischosen(dl_block.ctrl)) {</span><br><span> setverdict(fail, "Unexpected DL CTRL block ", dl_block);</span><br><span> f_shutdown(__BFILE__, __LINE__);</span><br><span>@@ -3813,14 +3815,16 @@</span><br><span> setverdict(fail, "Signalling USF ", dl_block.data_egprs.mac_hdr.usf, " for GPRS-only MS using MCS > 4: ", dl_block);</span><br><span> f_shutdown(__BFILE__, __LINE__);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- ms_egprs_usf_count[0] := ms_egprs_usf_count[0] + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ usf_ms := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ms_egprs_usf_count[usf_ms] := ms_egprs_usf_count[usf_ms] + 1;</span><br><span> } else {</span><br><span> if (dl_block.data_egprs.mcs <= MCS_4) {</span><br><span> setverdict(fail, "Using too-low MCS for EGPRS MS: ", dl_block.data_egprs.mcs);</span><br><span> f_shutdown(__BFILE__, __LINE__);</span><br><span> }</span><br><span> if (match(dl_block.data_egprs.mac_hdr.usf, g_ms[1].ul_tbf.usf[7])) {</span><br><span style="color: hsl(0, 100%, 40%);">- ms_egprs_usf_count[1] := ms_egprs_usf_count[1] + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ usf_ms := 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ ms_egprs_usf_count[usf_ms] := ms_egprs_usf_count[usf_ms] + 1;</span><br><span> }</span><br><span> }</span><br><span> } else {</span><br><span>@@ -3830,9 +3834,11 @@</span><br><span> }</span><br><span> tgt_ms := 0;</span><br><span> if (match(dl_block.data.mac_hdr.mac_hdr.usf, g_ms[0].ul_tbf.usf[7])) {</span><br><span style="color: hsl(0, 100%, 40%);">- ms_gprs_usf_count[0] := ms_gprs_usf_count[0] + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ usf_ms := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ ms_gprs_usf_count[usf_ms] := ms_gprs_usf_count[usf_ms] + 1;</span><br><span> } else if (match(dl_block.data.mac_hdr.mac_hdr.usf, g_ms[1].ul_tbf.usf[7])) {</span><br><span style="color: hsl(0, 100%, 40%);">- ms_gprs_usf_count[1] := ms_gprs_usf_count[1] + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ usf_ms := 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ ms_gprs_usf_count[usf_ms] := ms_gprs_usf_count[usf_ms] + 1;</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -3849,15 +3855,36 @@</span><br><span> BSSGP[0].send(ts_BSSGP_DL_UD(g_ms[1].tlli, data));</span><br><span> tx_data_remain := tx_data_remain - 1;</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+ } else if (tx_data_remain != 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* keep sending UL blocks when requested by USF to avoid</span><br><span style="color: hsl(120, 100%, 40%);">+ * UL TBF timeout and hence stop receival of USFs */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (usf_ms != -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_ms_tx_ul_data_block(g_ms[usf_ms], f_rnd_octstring(10), cv := 15);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> }</span><br><span> </span><br><span> log("results: ms_gprs_usf_count=", ms_gprs_usf_count, " / ms_egprs_usf_count=", ms_egprs_usf_count);</span><br><span style="color: hsl(0, 100%, 40%);">- if (ms_gprs_usf_count[0] == 0 or ms_gprs_usf_count[1] == 0 or</span><br><span style="color: hsl(0, 100%, 40%);">- ms_egprs_usf_count[0] == 0 or ms_egprs_usf_count[1] == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- setverdict(fail, "USF thresholds not met!");</span><br><span style="color: hsl(120, 100%, 40%);">+ /* He we check that DL blocks scheduled at GPRS can still request UL</span><br><span style="color: hsl(120, 100%, 40%);">+ * blocks for EGPRS MS, and the other way around. Furthermore, the 2nd</span><br><span style="color: hsl(120, 100%, 40%);">+ * condition also ensures the downgrade to <=MCS4 condition is tested</span><br><span style="color: hsl(120, 100%, 40%);">+ * above */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (ms_gprs_usf_count[1] == 0 or ms_egprs_usf_count[0] == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "USF exchange thresholds not met!");</span><br><span> f_shutdown(__BFILE__, __LINE__);</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Here check for some level of fairness between them (at least ~40%): */</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer gprs_usf_cnt := ms_gprs_usf_count[0] + ms_egprs_usf_count[0];</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer egprs_usf_cnt := ms_gprs_usf_count[1] + ms_egprs_usf_count[1];</span><br><span style="color: hsl(120, 100%, 40%);">+ var integer total_usf_cnt := gprs_usf_cnt + egprs_usf_cnt;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (gprs_usf_cnt < total_usf_cnt * 4 / 10) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "USF GPRS-only MS ", gprs_usf_cnt, " < ", total_usf_cnt * 4 / 10);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ if (egprs_usf_cnt < total_usf_cnt * 4 / 10) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(fail, "USF EGPRS MS ", egprs_usf_cnt, " < ", total_usf_cnt * 4 / 10);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> </span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23485">change 23485</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-ttcn3-hacks/+/23485"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iedff87cedf55ab18b32bd0f159d1145901878203 </div>
<div style="display:none"> Gerrit-Change-Number: 23485 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>