Change in osmo-gsm-tester[master]: enb: refactored rf_args handling for ZMQ-based radio

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
Wed Apr 22 21:22:13 UTC 2020


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17922 )

Change subject: enb: refactored rf_args handling for ZMQ-based radio
......................................................................

enb: refactored rf_args handling for ZMQ-based radio

this patch moves the rf_dev_args creation for both eNB types
into the eNB base class, since they are identical.

the patch also fixes the arguments for all CA and MIMO configurations

Change-Id: I8ca3ed83e65dc07927385267e5970bc4f5b120d5
---
M src/osmo_gsm_tester/obj/enb.py
M src/osmo_gsm_tester/obj/enb_amarisoft.py
M src/osmo_gsm_tester/obj/enb_srs.py
3 files changed, 57 insertions(+), 54 deletions(-)

Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved



diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py
index e0f7be0..3c1f771 100644
--- a/src/osmo_gsm_tester/obj/enb.py
+++ b/src/osmo_gsm_tester/obj/enb.py
@@ -99,6 +99,59 @@
     def num_prb(self):
         return self._num_prb
 
+    #reference: srsLTE.git srslte_symbol_sz()
+    def num_prb2symbol_sz(self, 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(self, num_prb):
+        return self.num_prb2symbol_sz(num_prb) * 15 * 1000
+
+    def get_zmq_rf_dev_args(self):
+        base_srate = self.num_prb2base_srate(self.num_prb())
+        # Define all 8 possible RF ports (2x CA with 2x2 MIMO)
+        rf_dev_args = 'fail_on_disconnect=true' \
+                    + ',tx_port0=tcp://' + self.addr() + ':2000' \
+                    + ',tx_port1=tcp://' + self.addr() + ':2002' \
+                    + ',tx_port2=tcp://' + self.addr() + ':2004' \
+                    + ',tx_port3=tcp://' + self.addr() + ':2006' \
+                    + ',rx_port0=tcp://' + self.ue.addr() + ':2001' \
+                    + ',rx_port1=tcp://' + self.ue.addr() + ':2003' \
+                    + ',rx_port2=tcp://' + self.ue.addr() + ':2005' \
+                    + ',rx_port3=tcp://' + self.ue.addr() + ':2007'
+
+        if self._num_cells == 1:
+            # Single carrier
+            if self.num_ports() == 1:
+                # SISO
+                rf_dev_args += ',tx_freq0=2630e6,rx_freq0=2510e6'
+            elif self.num_ports() == 2:
+                # MIMO
+                rf_dev_args += ',tx_freq0=2630e6,tx_freq1=2630e6,rx_freq0=2510e6,rx_freq1=2510e6'
+        elif self._num_cells == 2:
+            # 2x class
+            if self.num_ports() == 1:
+                # SISO
+                rf_dev_args += ',tx_freq0=2630e6,tx_freq1=2650e6,rx_freq0=2510e6,rx_freq1=2530e6'
+            elif self.num_ports() == 2:
+                # MIMO
+                rf_dev_args += ',tx_freq0=2630e6,tx_freq1=2630e6,tx_freq2=2650e6,tx_freq3=2650e6,rx_freq0=2510e6,rx_freq1=2510e6,rx_freq2=2530e6,rx_freq3=2530e6'
+
+        rf_dev_args += ',id=enb,base_srate=' + str(base_srate)
+
+        return rf_dev_args
+
 ###################
 # PUBLIC (test API included)
 ###################
diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py
index bb48880..ec7063c 100644
--- a/src/osmo_gsm_tester/obj/enb_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py
@@ -27,25 +27,6 @@
 def rf_type_valid(rf_type_str):
     return rf_type_str in ('uhd', 'zmq')
 
-#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 AmarisoftENB(enb.eNodeB):
 
     REMOTE_DIR = '/osmo-gsm-tester-amarisoftenb'
@@ -174,15 +155,10 @@
 
         # We need to set some specific variables programatically here to match IP addresses:
         if self._conf.get('rf_dev_type') == 'zmq':
-            base_srate = num_prb2base_srate(self.num_prb())
-            rf_dev_args = 'fail_on_disconnect=true' \
-                        + ',tx_port0=tcp://' + self.addr() + ':2000' \
-                        + ',tx_port1=tcp://' + self.addr() + ':2002' \
-                        + ',rx_port0=tcp://' + self.ue.addr() + ':2001' \
-                        + ',rx_port1=tcp://' + self.ue.addr() + ':2003' \
-                        + ',id=enb,base_srate=' + str(base_srate)
+            base_srate = self.num_prb2base_srate(self.num_prb())
+            rf_dev_args = self.get_zmq_rf_dev_args()
             config.overlay(values, dict(enb=dict(sample_rate = base_srate / (1000*1000),
-                                                 rf_dev_args=rf_dev_args)))
+                                                 rf_dev_args = rf_dev_args)))
 
         # Set UHD frame size as a function of the cell bandwidth on B2XX
         if self._conf.get('rf_dev_type') == 'uhd' and values['enb'].get('rf_dev_args', None) is not None:
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index e657b04..243ffaa 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -27,25 +27,6 @@
 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(enb.eNodeB):
 
     REMOTE_DIR = '/osmo-gsm-tester-srsenb'
@@ -194,14 +175,7 @@
 
         # We need to set some specific variables programatically here to match IP addresses:
         if self._conf.get('rf_dev_type') == 'zmq':
-            base_srate = num_prb2base_srate(self.num_prb())
-            rf_dev_args = 'fail_on_disconnect=true' \
-                        + ',tx_port=tcp://' + self.addr() + ':2000' \
-                        + ',tx_port2=tcp://' + self.addr() + ':2002' \
-                        + ',rx_port=tcp://' + self.ue.addr() + ':2001' \
-                        + ',rx_port2=tcp://' + self.ue.addr() + ':2003' \
-                        + ',tx_freq=2630e6,rx_freq=2510e6,tx_freq2=2650e6,rx_freq2=2530e6' \
-                        + ',id=enb,base_srate=' + str(base_srate)
+            rf_dev_args = self.get_zmq_rf_dev_args()
             config.overlay(values, dict(enb=dict(rf_dev_args=rf_dev_args)))
 
         # Set UHD frame size as a function of the cell bandwidth on B2XX

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17922
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: I8ca3ed83e65dc07927385267e5970bc4f5b120d5
Gerrit-Change-Number: 17922
Gerrit-PatchSet: 2
Gerrit-Owner: srs_andre <andre at softwareradiosystems.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: srs_andre <andre at softwareradiosystems.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200422/05a5fbed/attachment.htm>


More information about the gerrit-log mailing list