Change in osmo-gsm-tester[master]: srsue, srsenb: Fix zmq base_rate calculation and share value

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon Mar 2 11:08:03 UTC 2020


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17312 )


Change subject: srsue,srsenb: Fix zmq base_rate calculation and share value
......................................................................

srsue,srsenb: Fix zmq base_rate calculation and share value

Change-Id: I3e7817e822fb4d1f8bc9ef798162edf95a74d442
---
M src/osmo_gsm_tester/srs_enb.py
M src/osmo_gsm_tester/srs_ue.py
2 files changed, 52 insertions(+), 14 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/17312/1

diff --git a/src/osmo_gsm_tester/srs_enb.py b/src/osmo_gsm_tester/srs_enb.py
index 85180e4..1cfd212 100644
--- a/src/osmo_gsm_tester/srs_enb.py
+++ b/src/osmo_gsm_tester/srs_enb.py
@@ -25,6 +25,25 @@
 def rf_type_valid(rf_type_str):
     return rf_type_str in ('zmq', 'UHD', 'soapy', 'bladeRF')
 
+#reference: srsLTE.git srslte_symbol_sz()
+def num_prb2symbol_sz(num_prb):
+    if num_prb <= 6:
+        return 128
+    if num_prb <= 15:
+        return 256
+    if num_prb <= 25:
+        return 384
+    if num_prb <= 50:
+        return 768
+    if num_prb <= 75:
+        return 1024
+    if num_prb <= 110:
+        return 1536
+    raise log.Error('invalid num_prb %r', num_prb)
+
+def num_prb2base_srate(num_prb):
+    return num_prb2symbol_sz(num_prb) * 15 * 1000
+
 class srsENB(log.Origin):
 
     REMOTE_DIR = '/osmo-gsm-tester-srsenb'
@@ -56,6 +75,7 @@
         self.remote_config_rr_file = None
         self.remote_config_drb_file = None
         self.remote_log_file = None
+        self._num_prb = 0
         self.suite_run = suite_run
         self.remote_user = conf.get('remote_user', None)
         if not rf_type_valid(conf.get('rf_dev_type', None)):
@@ -161,15 +181,12 @@
 
         # We need to set some specific variables programatically here to match IP addresses:
         if self._conf.get('rf_dev_type') == 'zmq':
-            num_prb = values['enb'].get('num_prb', None)
-            assert num_prb
-            if num_prb == 75:
-              base_srate=15.36e6
-            else:
-              base_srate=23.04e6
+            self._num_prb = int(values['enb'].get('num_prb', None))
+            assert self._num_prb
+            base_srate = num_prb2base_srate(self._num_prb)
             rf_dev_args = 'fail_on_disconnect=true,tx_port=tcp://' + self.addr() \
-                        + ':2000,rx_port=tcp://'+ self.ue.addr() \
-                        + ':2001,id=enb,base_srate='+ str(base_srate)
+                        + ':2000,rx_port=tcp://' + self.ue.addr() \
+                        + ':2001,id=enb,base_srate=' + str(base_srate)
             config.overlay(values, dict(enb=dict(rf_dev_args=rf_dev_args)))
 
         self.dbg('srsENB ' + filename + ':\n' + pprint.pformat(values))
@@ -202,4 +219,7 @@
     def addr(self):
         return self._addr
 
+    def num_prb(self):
+        return self._num_prb
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/srs_ue.py b/src/osmo_gsm_tester/srs_ue.py
index 8c6f73a..cbd8a68 100644
--- a/src/osmo_gsm_tester/srs_ue.py
+++ b/src/osmo_gsm_tester/srs_ue.py
@@ -27,6 +27,25 @@
 def rf_type_valid(rf_type_str):
     return rf_type_str in ('zmq', 'UHD', 'soapy', 'bladeRF')
 
+#reference: srsLTE.git srslte_symbol_sz()
+def num_prb2symbol_sz(num_prb):
+    if num_prb <= 6:
+        return 128
+    if num_prb <= 15:
+        return 256
+    if num_prb <= 25:
+        return 384
+    if num_prb <= 50:
+        return 768
+    if num_prb <= 75:
+        return 1024
+    if num_prb <= 110:
+        return 1536
+    raise log.Error('invalid num_prb %r', num_prb)
+
+def num_prb2base_srate(num_prb):
+    return num_prb2symbol_sz(num_prb) * 15 * 1000
+
 class srsUE(MS):
 
     REMOTE_DIR = '/osmo-gsm-tester-srsue'
@@ -54,11 +73,6 @@
         self.remote_pcap_file = None
         self.remote_metrics_file = None
         self.suite_run = suite_run
-        self.nof_prb=50
-        if self.nof_prb == 75:
-          self.base_srate=15.36e6
-        else:
-          self.base_srate=23.04e6
         self.remote_user = conf.get('remote_user', None)
         if not rf_type_valid(conf.get('rf_dev_type', None)):
             raise log.Error('Invalid rf_dev_type=%s' % conf.get('rf_dev_type', None))
@@ -198,7 +212,11 @@
 
         # We need to set some specific variables programatically here to match IP addresses:
         if self._conf.get('rf_dev_type') == 'zmq':
-            config.overlay(values, dict(ue=dict(rf_dev_args='tx_port=tcp://'+ self.addr() +':2001,rx_port=tcp://'+ self.enb.addr() +':2000,id=ue,base_srate='+ str(self.base_srate))))
+            base_srate = num_prb2base_srate(self.enb.num_prb())
+            config.overlay(values, dict(ue=dict(rf_dev_args='tx_port=tcp://' + self.addr()
+                                                           +':2001,rx_port=tcp://' + self.enb.addr()
+                                                           +':2000,id=ue,base_srate='+ str(base_srate)
+                                                )))
 
         self.dbg('SRSUE CONFIG:\n' + pprint.pformat(values))
 

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17312
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Change-Id: I3e7817e822fb4d1f8bc9ef798162edf95a74d442
Gerrit-Change-Number: 17312
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200302/a2377482/attachment.htm>


More information about the gerrit-log mailing list