<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/20936">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">tbf_dl: Don't fake EGPRS MS class when no related info is available<br><br>For instance if PCU received DL data to be sent to an MS from an SGSN,<br>and the MS is not currently cached in the PCU (because there's no TBF<br>active for it), it will page it and transmit the DL data to it.<br>The SGSN is capable of sending (EGPRS) MS Class information in that same<br>DL data message, so it's the one responsible for providing that<br>information if not available at the PCU.<br>In the PCU if we don't have information about that MS and SGSN didn't<br>provide us information about it, we cannot assume the MS is going to be<br>EGPRS capable and even less expecting a specific EGPRS MS class.<br>So let's drop this code.<br><br>Related: OS#4544<br>Change-Id: Icce66cadb51af25ae0c3b3719940eccb548fe33b<br>---<br>M src/tbf_dl.cpp<br>M tests/tbf/TbfTest.cpp<br>M tests/tbf/TbfTest.err<br>3 files changed, 22 insertions(+), 13 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index c25f2af..4b184b8 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -129,15 +129,6 @@</span><br><span> </span><br><span>       OSMO_ASSERT(ms != NULL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    if (ms->egprs_ms_class() == 0 && bts->egprs_enabled) {</span><br><span style="color: hsl(0, 100%, 40%);">-            if (ms->ms_class() > 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                 LOGP(DTBF, LOGL_NOTICE, "Not accepting non-EGPRS phone in EGPRS-only mode\n");</span><br><span style="color: hsl(0, 100%, 40%);">-                        bts->bts->do_rate_ctr_inc(CTR_TBF_FAILED_EGPRS_ONLY);</span><br><span style="color: hsl(0, 100%, 40%);">-                     return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-            }</span><br><span style="color: hsl(0, 100%, 40%);">-               ms->set_egprs_ms_class(1);</span><br><span style="color: hsl(0, 100%, 40%);">-   }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>    LOGP(DTBF, LOGL_DEBUG, "********** DL-TBF starts here **********\n");</span><br><span>      LOGP(DTBF, LOGL_INFO, "Allocating DL TBF: MS_CLASS=%d/%d\n",</span><br><span>            ms->ms_class(), ms->egprs_ms_class());</span><br><span>diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp</span><br><span>index 67ba74b..40b7b9c 100644</span><br><span>--- a/tests/tbf/TbfTest.cpp</span><br><span>+++ b/tests/tbf/TbfTest.cpp</span><br><span>@@ -2185,7 +2185,7 @@</span><br><span>   rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0,</span><br><span>             delay_csec, buf, sizeof(buf));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(rc == -EBUSY);</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_ASSERT(rc == 0);</span><br><span>        fprintf(stderr, "=== end %s ===\n", __func__);</span><br><span> </span><br><span>         gprs_bssgp_destroy(bts);</span><br><span>diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err</span><br><span>index 32f7aab..095aed6 100644</span><br><span>--- a/tests/tbf/TbfTest.err</span><br><span>+++ b/tests/tbf/TbfTest.err</span><br><span>@@ -2997,10 +2997,28 @@</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45</span><br><span> Modifying MS object, TLLI = 0x00000000, IMSI '' -> '001001123456789'</span><br><span> The MS object cannot fully confirm an unexpected TLLI: 0xc0006789, partly confirmed</span><br><span style="color: hsl(0, 100%, 40%);">-Not accepting non-EGPRS phone in EGPRS-only mode</span><br><span style="color: hsl(0, 100%, 40%);">-No PDCH resource</span><br><span style="color: hsl(120, 100%, 40%);">+********** DL-TBF starts here **********</span><br><span style="color: hsl(120, 100%, 40%);">+Allocating DL TBF: MS_CLASS=45/0</span><br><span style="color: hsl(120, 100%, 40%);">+[DL] algo A <single> (suggested TRX: -1): Alloc start</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 0, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 1, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 2, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 3, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 5, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 6, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+- Skipping TS 7, because not enabled</span><br><span style="color: hsl(120, 100%, 40%);">+[DL] Assign downlink TS=4 TFI=0</span><br><span style="color: hsl(120, 100%, 40%);">+PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL), 1 TBFs, USFs = 00, TFIs = 00000001.</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) Setting Control TS 4</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 10, dl_slots = 10</span><br><span style="color: hsl(120, 100%, 40%);">+Attaching TBF to MS object, TLLI = 0xc0006789, TBF = TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) [DOWNLINK] START</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001123456789)</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=NULL) changes state from NULL to ASSIGN</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=ASSIGN) TX: START Immediate Assignment Downlink (PCH)</span><br><span style="color: hsl(120, 100%, 40%);">+ - TRX=0 (0) TS=4 TA=220 pollFN=-1</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0xc0006789 DIR=DL STATE=ASSIGN) appending 256 bytes</span><br><span> === end test_tbf_gprs_egprs ===</span><br><span style="color: hsl(0, 100%, 40%);">-Destroying MS object, TLLI = 0xc0006789</span><br><span> === start test_tbf_ws ===</span><br><span> Creating MS object, TLLI = 0x00000000</span><br><span> Modifying MS object, TLLI = 0x00000000, MS class 0 -> 12</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/20936">change 20936</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-pcu/+/20936"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Icce66cadb51af25ae0c3b3719940eccb548fe33b </div>
<div style="display:none"> Gerrit-Change-Number: 20936 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </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-MessageType: merged </div>