<p>srs_andre has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">enb: refactor ue_max_rate() and move helper function back to sub classes<br><br>It turned out that the Amarisoft and SRS eNB scheduler produces<br>slightly different maximum data rates for both UL and DL.<br><br>Change-Id: I30fa7006906d101c53ba586fb06bced3945aa960<br>---<br>M src/osmo_gsm_tester/obj/enb.py<br>M src/osmo_gsm_tester/obj/enb_amarisoft.py<br>M src/osmo_gsm_tester/obj/enb_srs.py<br>3 files changed, 53 insertions(+), 25 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/34/18534/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py</span><br><span>index f0047e7..2b91ece 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/enb.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/enb.py</span><br><span>@@ -82,6 +82,7 @@</span><br><span>         self._num_prb = 0</span><br><span>         self._num_cells = None</span><br><span>         self._epc = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self._type = None</span><br><span> </span><br><span>     def configure(self, config_specifics_li):</span><br><span>         values = dict(enb=config.get_defaults('enb'))</span><br><span>@@ -103,6 +104,8 @@</span><br><span>         config.overlay(values, dict(enb={ 'gtp_bind_addr': self._gtp_bind_addr }))</span><br><span>         self._num_cells = int(values['enb'].get('num_cells', None))</span><br><span>         assert self._num_cells</span><br><span style="color: hsl(120, 100%, 40%);">+        self._type = values['enb'].get('type')</span><br><span style="color: hsl(120, 100%, 40%);">+        assert self._type</span><br><span> </span><br><span>         # adjust cell_list to num_cells length:</span><br><span>         len_cell_list = len(values['enb']['cell_list'])</span><br><span>@@ -220,29 +223,4 @@</span><br><span>     def addr(self):</span><br><span>         return self._addr</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def ue_max_rate(self, downlink=True):</span><br><span style="color: hsl(0, 100%, 40%);">-        # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64</span><br><span style="color: hsl(0, 100%, 40%);">-        max_phy_rate_tm1_dl = { 6 : 3.5e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               15 : 11e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               25 : 18e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               50 : 36e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               75 : 55e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               100 : 75e6 }</span><br><span style="color: hsl(0, 100%, 40%);">-        max_phy_rate_tm1_ul = { 6 : 0.9e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               15 : 4.7e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               25 : 10e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               50 : 23e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               75 : 34e6,</span><br><span style="color: hsl(0, 100%, 40%);">-                               100 : 51e6 }</span><br><span style="color: hsl(0, 100%, 40%);">-        if downlink:</span><br><span style="color: hsl(0, 100%, 40%);">-            max_rate = max_phy_rate_tm1_dl[self.num_prb()]</span><br><span style="color: hsl(0, 100%, 40%);">-        else:</span><br><span style="color: hsl(0, 100%, 40%);">-            max_rate = max_phy_rate_tm1_ul[self.num_prb()]</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        #TODO: calculate for non-standard prb numbers.</span><br><span style="color: hsl(0, 100%, 40%);">-        if downlink and self._txmode > 2:</span><br><span style="color: hsl(0, 100%, 40%);">-            max_rate *= 2</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        return max_rate</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span>diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py</span><br><span>index fa79cbf..4fec6e2 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/enb_amarisoft.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py</span><br><span>@@ -238,4 +238,29 @@</span><br><span>         rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg)</span><br><span>         return rfemu_obj</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    def ue_max_rate(self, downlink=True):</span><br><span style="color: hsl(120, 100%, 40%);">+        # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64</span><br><span style="color: hsl(120, 100%, 40%);">+        max_phy_rate_tm1_dl = { 6 : 3.2e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               15 : 9.2e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               25 : 18e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               50 : 36e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               75 : 55e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               100 : 75e6 }</span><br><span style="color: hsl(120, 100%, 40%);">+        max_phy_rate_tm1_ul = { 6 : 2.0e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               15 : 5.1e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               25 : 10e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               50 : 21e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               75 : 32e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               100 : 51e6 }</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate = max_phy_rate_tm1_dl[self.num_prb()]</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate = max_phy_rate_tm1_ul[self.num_prb()]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # MIMO only supported for Downlink</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink and self._txmode > 2:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate *= 2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        return max_rate</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span>diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py</span><br><span>index 47b373e..5cd379c 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/enb_srs.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/enb_srs.py</span><br><span>@@ -236,4 +236,29 @@</span><br><span>         rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg)</span><br><span>         return rfemu_obj</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    def ue_max_rate(self, downlink=True):</span><br><span style="color: hsl(120, 100%, 40%);">+        # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64</span><br><span style="color: hsl(120, 100%, 40%);">+        max_phy_rate_tm1_dl = { 6 : 3.5e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               15 : 11e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               25 : 18e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               50 : 36e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               75 : 55e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               100 : 75e6 }</span><br><span style="color: hsl(120, 100%, 40%);">+        max_phy_rate_tm1_ul = { 6 : 1.7e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               15 : 4.7e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               25 : 10e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               50 : 23e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               75 : 34e6,</span><br><span style="color: hsl(120, 100%, 40%);">+                               100 : 51e6 }</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate = max_phy_rate_tm1_dl[self.num_prb()]</span><br><span style="color: hsl(120, 100%, 40%);">+        else:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate = max_phy_rate_tm1_ul[self.num_prb()]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # MIMO only supported for Downlink</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink and self._txmode > 2:</span><br><span style="color: hsl(120, 100%, 40%);">+            max_rate *= 2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        return max_rate</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # vim: expandtab tabstop=4 shiftwidth=4</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534">change 18534</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-gsm-tester/+/18534"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I30fa7006906d101c53ba586fb06bced3945aa960 </div>
<div style="display:none"> Gerrit-Change-Number: 18534 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: srs_andre <andre@softwareradiosystems.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>