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
Review at https://gerrit.osmocom.org/2692
Verify that BTS successfully connects to NITB
Change-Id: I1bbf9ac2b05d95a113ed4ad5e93093431496d44e
---
M example/defaults.conf
M selftest/template_test/osmo-nitb.cfg.tmpl
M src/osmo_gsm_tester/bts_sysmo.py
M src/osmo_gsm_tester/osmo_nitb.py
4 files changed, 68 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/92/2692/1
diff --git a/example/defaults.conf b/example/defaults.conf
index 3685446..5df0a8c 100644
--- a/example/defaults.conf
+++ b/example/defaults.conf
@@ -10,6 +10,7 @@
nitb_bts:
location_area_code: 23
base_station_id_code: 63
+ cell_identity: 0
stream_id: 255
osmobsc_bts_type: sysmobts
trx_list:
diff --git a/selftest/template_test/osmo-nitb.cfg.tmpl b/selftest/template_test/osmo-nitb.cfg.tmpl
index 3404b7f..a4df36d 100644
--- a/selftest/template_test/osmo-nitb.cfg.tmpl
+++ b/selftest/template_test/osmo-nitb.cfg.tmpl
@@ -59,7 +59,7 @@
bts ${loop.index}
type ${bts.type}
band ${bts.band}
- cell_identity 0
+ cell_identity ${bts.cell_identity}
location_area_code ${bts.location_area_code}
training_sequence_code 7
base_station_id_code ${bts.base_station_id_code}
diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py
index 771d303..8955ba8 100644
--- a/src/osmo_gsm_tester/bts_sysmo.py
+++ b/src/osmo_gsm_tester/bts_sysmo.py
@@ -37,6 +37,7 @@
def __init__(self, suite_run, conf):
self.suite_run = suite_run
self.conf = conf
+ self._conf_for_ntib = None
self.set_name('osmo-bts-sysmo')
self.set_log_category(log.C_RUN)
self.remote_env = {}
@@ -81,6 +82,8 @@
remote_binary, '-c', remote_config_file, '-r', '1',
'-i', self.nitb.addr()),
remote_cwd=remote_run_dir)
+ self.suite_run.wait(self.nitb.bts_is_connected, self)
+ self.dbg('connected to', self.nitb.name())
def _process_remote(self, name, popen_args, remote_cwd=None):
run_dir = self.run_dir.new_dir(name)
@@ -128,13 +131,17 @@
f.write(r)
def conf_for_nitb(self):
- values = config.get_defaults('nitb_bts')
- config.overlay(values, config.get_defaults('osmo_bts_sysmo'))
- config.overlay(values, self.conf)
- self.dbg(conf=values)
- return values
+ if not self._conf_for_ntib:
+ self._conf_for_ntib = config.get_defaults('nitb_bts')
+ config.overlay(self._conf_for_ntib, config.get_defaults('osmo_bts_sysmo'))
+ config.overlay(self._conf_for_ntib, self.conf)
+ self.dbg(conf=self._conf_for_ntib)
+ return self._conf_for_ntib
def set_nitb(self, nitb):
self.nitb = nitb
+ def cell_identity(self):
+ return int(self.conf_for_nitb()['cell_identity'])
+
# vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/osmo_nitb.py b/src/osmo_gsm_tester/osmo_nitb.py
index 13dfe27..c0c6de5 100644
--- a/src/osmo_gsm_tester/osmo_nitb.py
+++ b/src/osmo_gsm_tester/osmo_nitb.py
@@ -115,12 +115,21 @@
def running(self):
return not self.process.terminated()
+ def bts_is_connected(self, bts):
+ with self:
+ return OsmoNitbCtrl(self).bts_is_connected(bts)
class OsmoNitbCtrl(log.Origin):
PORT = 4249
SUBSCR_MODIFY_VAR = 'subscriber-modify-v1'
SUBSCR_MODIFY_REPLY_RE = re.compile("SET_REPLY (\d+) %s OK" % SUBSCR_MODIFY_VAR)
SUBSCR_LIST_ACTIVE_VAR = 'subscriber-list-active-v1'
+ NUM_BTS_VAR = "number-of-bts"
+ NUM_BTS_RE = re.compile("GET_REPLY (\d+) number-of-bts (?P<bts_count>\d+)")
+ BTS_CELL_IDENTITY_VAR = "bts.%d.cell-identity"
+ BTS_CELL_IDENTITY_RE = re.compile("GET_REPLY (\d+) bts.\d+.cell-identity (?P<cell_identity>\d+)")
+ BTS_OML_STATE_VAR = "bts.%d.oml-connection-state"
+ BTS_OML_STATE_RE = re.compile("GET_REPLY (\d+) bts.\d+.oml-connection-state (?P<oml_state>\w+)")
def __init__(self, nitb):
self.nitb = nitb
@@ -152,7 +161,6 @@
return True
def subscriber_list_active(self):
- var = 'subscriber-list-active-v1'
aslist_str = ""
with self.ctrl() as ctrl:
ctrl.do_get(OsmoNitbCtrl.SUBSCR_LIST_ACTIVE_VAR)
@@ -166,4 +174,49 @@
aslist_str = answer_str
return aslist_str
+ def count_bts_connected(self):
+ bts_count = 0
+ with self.ctrl() as ctrl:
+ ctrl.do_get(OsmoNitbCtrl.NUM_BTS_VAR)
+ data = ctrl.receive()
+ while len(data) > 0:
+ (answer, data) = ctrl.remove_ipa_ctrl_header(data)
+ answer_str = answer.decode('utf-8')
+ res = OsmoNitbCtrl.NUM_BTS_RE.match(answer_str)
+ if res:
+ bts_count = int(res.group('bts_count'))
+ else:
+ self.raise_exn('Failed to get number of BTSes connected with', self.nitb)
+ return bts_count
+
+ def bts_is_connected(self, bts):
+ num_bts = self.count_bts_connected()
+ with self.ctrl() as ctrl:
+ for i in range(0, num_bts):
+ ctrl.do_get(OsmoNitbCtrl.BTS_CELL_IDENTITY_VAR % i)
+ data = ctrl.receive()
+ while len(data) > 0:
+ (answer, data) = ctrl.remove_ipa_ctrl_header(data)
+ answer_str = answer.decode('utf-8')
+ res = OsmoNitbCtrl.BTS_CELL_IDENTITY_RE.match(answer_str)
+ if res:
+ cell_id = int(res.group('cell_identity'))
+ else:
+ continue
+ if cell_id != bts.cell_identity():
+ continue
+ ctrl.do_get(OsmoNitbCtrl.BTS_OML_STATE_VAR % i)
+ data = ctrl.receive()
+ (answer, data) = ctrl.remove_ipa_ctrl_header(data)
+ answer_str = answer.decode('utf-8')
+ res = OsmoNitbCtrl.BTS_OML_STATE_RE.match(answer_str)
+ if res:
+ oml_state = str(res.group('oml_state'))
+ if oml_state == 'connected':
+ return True
+ return False
+
+
+
+
# vim: expandtab tabstop=4 shiftwidth=4
--
To view, visit https://gerrit.osmocom.org/2692
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1bbf9ac2b05d95a113ed4ad5e93093431496d44e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>