enb/ue: Assign zmq binding ports dynamically at runtime
ports are assigned increasingly in blocks in the range 2000-2200.
Change-Id: If2abddeb2ad6819de4f3ce64daaf00d2f527f9d2
diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py
index 7af6283..f151850 100644
--- a/src/osmo_gsm_tester/obj/ms_amarisoft.py
+++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py
@@ -101,6 +101,9 @@
self.testenv = testenv
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))
+ if conf.get('rf_dev_type') == 'zmq':
+ # Define all 4 possible local RF ports (2x CA with 2x2 MIMO)
+ self._zmq_base_bind_port = self.testenv.suite().resource_pool().next_zmq_port_range(self, 4)
def bin_prefix(self):
if self._bin_prefix is None:
@@ -123,6 +126,9 @@
def netns(self):
return "amarisoftue1"
+ def zmq_base_bind_port(self):
+ return self._zmq_base_bind_port
+
def stop(self):
self.testenv.stop_process(self.process)
@@ -242,10 +248,11 @@
# 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.enb.num_prb())
- rf_dev_args = 'tx_port0=tcp://' + self.addr() + ':2001' \
- + ',tx_port1=tcp://' + self.addr() + ':2003' \
- + ',rx_port0=tcp://' + self.enb.addr() + ':2000' \
- + ',rx_port1=tcp://' + self.enb.addr() + ':2002' \
+ enb_base_port = self.enb.zmq_base_bind_port()
+ rf_dev_args = 'tx_port0=tcp://' + self.addr() + ':' + str(self._zmq_base_bind_port + 0) \
+ + ',tx_port1=tcp://' + self.addr() + ':' + str(self._zmq_base_bind_port + 1) \
+ + ',rx_port0=tcp://' + self.enb.addr() + ':' + str(enb_base_port + 0) \
+ + ',rx_port1=tcp://' + self.enb.addr() + ':' + str(enb_base_port + 1) \
+ ',tx_freq=2510e6,rx_freq=2630e6,tx_freq2=2530e6,rx_freq2=2650e6' \
+ ',id=ue,base_srate='+ str(base_srate)
config.overlay(values, dict(ue=dict(sample_rate = base_srate / (1000*1000),