Introduce initial Amarisoft ENB support
* object class expects the amarisoft software to be placed in directory
provided by env var AMARISOFT_PATH_ENB. On local runs, it will run the
software from there. On remote runs it will copy over that directory to
the slave.
* Configuration provided works with 6 PRBs, but probably won't work for
other values (yet).
* ZMQ support not yet available, only UHD.
One can select the Amarisoft ENB by declaring it in resources.conf:
"""
- label: AmarisoftENB-B200
type: amarisoftenb
rf_dev_type: uhd
rf_dev_args: "type=b200,serial=317B9FE,recv_frame_size=9232,send_frame_size=9232"
remote_user: jenkins
addr: 10.12.1.206
"""
And running:
"""
$ export AMARISOFT_PATH_ENB=/path/to/binaries
$ osmo-gsm-tester.py ... -s 4g:amarisoftenb-rftype@uhd+srsue-rftype@UHD+mod-enb-nprb@6 -t ping
"""
Change-Id: I1ddf4962ea6438ad977382ab201b724028ca46b3
diff --git a/src/osmo_gsm_tester/srs_enb.py b/src/osmo_gsm_tester/srs_enb.py
index 772b447..f5d3fdf 100644
--- a/src/osmo_gsm_tester/srs_enb.py
+++ b/src/osmo_gsm_tester/srs_enb.py
@@ -21,6 +21,7 @@
import pprint
from . import log, util, config, template, process, remote
+from . import enb
def rf_type_valid(rf_type_str):
return rf_type_str in ('zmq', 'UHD', 'soapy', 'bladeRF')
@@ -44,7 +45,7 @@
def num_prb2base_srate(num_prb):
return num_prb2symbol_sz(num_prb) * 15 * 1000
-class srsENB(log.Origin):
+class srsENB(enb.eNodeB):
REMOTE_DIR = '/osmo-gsm-tester-srsenb'
BINFILE = 'srsenb'
@@ -56,12 +57,7 @@
PCAPFILE = 'srsenb.pcap'
def __init__(self, suite_run, conf):
- super().__init__(log.C_RUN, 'srsenb')
- self._conf = conf
- self._addr = conf.get('addr', None)
- if self._addr is None:
- raise log.Error('addr not set')
- self.set_name('srsenb_%s' % self._addr)
+ super().__init__(suite_run, conf, srsENB.BINFILE)
self.ue = None
self.epc = None
self.run_dir = None
@@ -188,7 +184,8 @@
def gen_conf_file(self, path, filename):
self.dbg(config_file=path)
- values = dict(enb=config.get_defaults('srsenb'))
+ values = dict(enb=config.get_defaults('enb'))
+ config.overlay(values, dict(enb=config.get_defaults('srsenb')))
config.overlay(values, dict(enb=self.suite_run.config().get('enb', {})))
config.overlay(values, dict(enb=self._conf))
config.overlay(values, dict(enb={ 'mme_addr': self.epc.addr() }))
@@ -245,9 +242,6 @@
def running(self):
return not self.process.terminated()
- def addr(self):
- return self._addr
-
def num_prb(self):
return self._num_prb