[PATCH] osmo-gsm-tester[master]: bts_*: Add ready_for_pcu API

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/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Nov 28 15:07:50 UTC 2017


Review at  https://gerrit.osmocom.org/5067

bts_*: Add ready_for_pcu API

This is required to start osmo-pcu after osmo-bts is already setup and
activated. Otherwise osmo-pcu ends after connecting to socket with:
"pcu_l1_if.cpp:416 BTS not available"

Change-Id: I7209589f60bda63094336e417638906be5e273c4
---
M src/osmo_gsm_tester/bts_octphy.py
M src/osmo_gsm_tester/bts_osmotrx.py
M src/osmo_gsm_tester/bts_sysmo.py
M src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
M src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
M src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
6 files changed, 32 insertions(+), 9 deletions(-)


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

diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py
index bc93a3a..d9ffd6e 100644
--- a/src/osmo_gsm_tester/bts_octphy.py
+++ b/src/osmo_gsm_tester/bts_octphy.py
@@ -32,6 +32,7 @@
     values = None
     lac = None
     cellid = None
+    proc_bts = None
 
     BIN_BTS_OCTPHY = 'osmo-bts-octphy'
 
@@ -83,10 +84,9 @@
         self.log('Applying CAP_NET_RAW capability to', OsmoBtsOctphy.BIN_BTS_OCTPHY)
         util.setcap_net_raw(btsoct_path, self.run_dir.new_dir('setcap_net_raw'))
 
-        self.launch_process(OsmoBtsOctphy.BIN_BTS_OCTPHY, '-r', '1',
+        self.proc_bts = self.launch_process(OsmoBtsOctphy.BIN_BTS_OCTPHY, '-r', '1',
                             '-c', os.path.abspath(self.config_file),
                             '-i', self.bsc.addr(), '-t', str(self.num_trx()))
-        #self.launch_process(OsmoBtsOctphy.BIN_PCU, '-r', '1')
         self.suite_run.poll()
 
     def launch_process(self, binary_name, *args):
@@ -168,6 +168,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py
index a964169..d30c1ee 100644
--- a/src/osmo_gsm_tester/bts_osmotrx.py
+++ b/src/osmo_gsm_tester/bts_osmotrx.py
@@ -32,6 +32,7 @@
     pcu_sk_tmp_dir = None
     lac = None
     cellid = None
+    proc_bts = None
 
     BIN_BTS_TRX = 'osmo-bts-trx'
     BIN_PCU = 'osmo-pcu'
@@ -92,10 +93,9 @@
             raise RuntimeError('No lib/ in %r' % self.inst)
         self.env = { 'LD_LIBRARY_PATH': util.prepend_library_path(lib) }
 
-        self.launch_process(OsmoBtsTrx.BIN_BTS_TRX, '-r', '1',
+        self.proc_bts = self.launch_process(OsmoBtsTrx.BIN_BTS_TRX, '-r', '1',
                             '-c', os.path.abspath(self.config_file),
                             '-i', self.bsc.addr())
-        #self.launch_process(OsmoBtsTrx.BIN_PCU, '-r', '1')
         self.suite_run.poll()
 
     def launch_process(self, binary_name, *args):
@@ -146,6 +146,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py
index fc546ae..1a7b139 100644
--- a/src/osmo_gsm_tester/bts_sysmo.py
+++ b/src/osmo_gsm_tester/bts_sysmo.py
@@ -31,6 +31,7 @@
     remote_dir = None
     lac = None
     cellid = None
+    proc_bts = None
 
     REMOTE_DIR = '/osmo-gsm-tester'
     BTS_SYSMO_BIN = 'osmo-bts-sysmo'
@@ -76,11 +77,11 @@
 
         remote_lib = self.remote_inst.child('lib')
         remote_binary = self.remote_inst.child('bin', 'osmo-bts-sysmo')
-        self.launch_remote('osmo-bts-sysmo',
-            ('LD_LIBRARY_PATH=%s' % remote_lib,
-             remote_binary, '-c', remote_config_file, '-r', '1',
-             '-i', self.bsc.addr()),
-            remote_cwd=remote_run_dir)
+        self.proc_bts =  self.launch_remote('osmo-bts-sysmo',
+                            ('LD_LIBRARY_PATH=%s' % remote_lib,
+                             remote_binary, '-c', remote_config_file, '-r', '1',
+                             '-i', self.bsc.addr()),
+                            remote_cwd=remote_run_dir)
 
     def cleanup(self):
         pass
@@ -105,6 +106,7 @@
         proc = self._process_remote(name, popen_args, remote_cwd)
         self.suite_run.remember_to_stop(proc)
         proc.launch()
+        return proc
 
     def run_local(self, name, popen_args):
         run_dir = self.run_dir.new_dir(name)
@@ -153,6 +155,11 @@
         self.dbg(conf=values)
         return values
 
+    def ready_for_pcu(self):
+        if not self.proc_bts or not self.proc_bts.is_running:
+            return False
+        return 'BTS is up' in (self.proc_bts.get_stderr() or '')
+
     def set_bsc(self, bsc):
         self.bsc = bsc
 
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
index 13cdb1d..906e7b9 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-octphy.cfg.tmpl
@@ -9,6 +9,8 @@
   logging level rll debug
   logging level rr debug
   logging level rsl debug
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 
 %for phy in osmo_bts_octphy.phy_list:
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
index 69f7ac1..c9dde86 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-sysmo.cfg.tmpl
@@ -9,6 +9,8 @@
   logging level rll debug
   logging level rr debug
   logging level rsl debug
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 phy 0
  instance 0
diff --git a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
index c316e62..1931e9b 100644
--- a/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bts-trx.cfg.tmpl
@@ -12,6 +12,8 @@
   logging level l1c info
   logging level l1p error
   logging level trx info
+  ! Level required by ready_for_pcu(): pcu info
+  logging level pcu info
 !
 phy 0
  osmotrx ip local ${osmo_bts_trx.trx_local_ip}

-- 
To view, visit https://gerrit.osmocom.org/5067
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7209589f60bda63094336e417638906be5e273c4
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>



More information about the gerrit-log mailing list