Make amarisoft license server optional
* Since license_server_addr logic is generic among all amarisoft software, let's move it to its own config category "amarisoft", which all amarisoft classes (amarisoft_{enb,epc}.py as of now) will import during configure(). * The license server is disabled by default (value 0.0.0.0) since the usual case is to have a license in the local system. * the license server can be enabled using scenario cfg-amarisoft-license@A.B.C.D where A.B.C.D is the address to use. Change-Id: Id5456ad9497e91370857b80ff9a389111d3611ff
This commit is contained in:
parent
7225d52e39
commit
c04528cb1f
|
@ -101,8 +101,8 @@ srsepc:
|
||||||
rlc_drb_mode: UM
|
rlc_drb_mode: UM
|
||||||
enable_pcap: false
|
enable_pcap: false
|
||||||
|
|
||||||
amarisoftepc:
|
amarisoft:
|
||||||
license_server_addr: 10.12.1.139
|
license_server_addr: 0.0.0.0
|
||||||
|
|
||||||
enb:
|
enb:
|
||||||
mcc: 901
|
mcc: 901
|
||||||
|
@ -115,7 +115,6 @@ srsenb:
|
||||||
enable_pcap: false
|
enable_pcap: false
|
||||||
|
|
||||||
amarisoftenb:
|
amarisoftenb:
|
||||||
license_server_addr: 10.12.1.139
|
|
||||||
num_prb: 100
|
num_prb: 100
|
||||||
enable_pcap: false
|
enable_pcap: false
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
config:
|
||||||
|
amarisoft:
|
||||||
|
license_server_addr: ${param1}
|
|
@ -159,7 +159,7 @@ class AmarisoftENB(enb.eNodeB):
|
||||||
self.remote_config_drb_file = remote_run_dir.child(AmarisoftENB.CFGFILE_DRB)
|
self.remote_config_drb_file = remote_run_dir.child(AmarisoftENB.CFGFILE_DRB)
|
||||||
self.remote_log_file = remote_run_dir.child(AmarisoftENB.LOGFILE)
|
self.remote_log_file = remote_run_dir.child(AmarisoftENB.LOGFILE)
|
||||||
|
|
||||||
values = super().configure('amarisoftenb')
|
values = super().configure(['amarisoft', 'amarisoftenb'])
|
||||||
self._num_cells = int(values['enb'].get('num_cells', None))
|
self._num_cells = int(values['enb'].get('num_cells', None))
|
||||||
assert self._num_cells
|
assert self._num_cells
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ class AmarisoftEPC(epc.EPC):
|
||||||
self.remote_log_file = remote_run_dir.child(AmarisoftEPC.LOGFILE)
|
self.remote_log_file = remote_run_dir.child(AmarisoftEPC.LOGFILE)
|
||||||
self.remote_ifup_file = remote_run_dir.child(AmarisoftEPC.IFUPFILE)
|
self.remote_ifup_file = remote_run_dir.child(AmarisoftEPC.IFUPFILE)
|
||||||
|
|
||||||
values = super().configure('amarisoftepc')
|
values = super().configure(['amarisoft', 'amarisoftepc'])
|
||||||
|
|
||||||
logfile = self.log_file if self._run_node.is_local() else self.remote_log_file
|
logfile = self.log_file if self._run_node.is_local() else self.remote_log_file
|
||||||
ifupfile = self.ifup_file if self._run_node.is_local() else self.remote_ifup_file
|
ifupfile = self.ifup_file if self._run_node.is_local() else self.remote_ifup_file
|
||||||
|
|
|
@ -37,10 +37,13 @@ class eNodeB(log.Origin, metaclass=ABCMeta):
|
||||||
self._num_prb = 0
|
self._num_prb = 0
|
||||||
self._epc = None
|
self._epc = None
|
||||||
|
|
||||||
def configure(self, default_specifics):
|
def configure(self, config_specifics_li):
|
||||||
values = dict(enb=config.get_defaults('enb'))
|
values = dict(enb=config.get_defaults('enb'))
|
||||||
config.overlay(values, dict(enb=config.get_defaults(default_specifics)))
|
for config_specifics in config_specifics_li:
|
||||||
|
config.overlay(values, dict(enb=config.get_defaults(config_specifics)))
|
||||||
config.overlay(values, dict(enb=self.suite_run.config().get('enb', {})))
|
config.overlay(values, dict(enb=self.suite_run.config().get('enb', {})))
|
||||||
|
for config_specifics in config_specifics_li:
|
||||||
|
config.overlay(values, dict(enb=self.suite_run.config().get(config_specifics, {})))
|
||||||
config.overlay(values, dict(enb=self._conf))
|
config.overlay(values, dict(enb=self._conf))
|
||||||
self._num_prb = int(values['enb'].get('num_prb', None))
|
self._num_prb = int(values['enb'].get('num_prb', None))
|
||||||
assert self._num_prb
|
assert self._num_prb
|
||||||
|
|
|
@ -33,10 +33,13 @@ class EPC(log.Origin, metaclass=ABCMeta):
|
||||||
self.suite_run = suite_run
|
self.suite_run = suite_run
|
||||||
self._run_node = run_node
|
self._run_node = run_node
|
||||||
|
|
||||||
def configure(self, default_specifics):
|
def configure(self, config_specifics_li):
|
||||||
values = dict(epc=config.get_defaults('epc'))
|
values = dict(epc=config.get_defaults('epc'))
|
||||||
config.overlay(values, dict(epc=config.get_defaults(default_specifics)))
|
for config_specifics in config_specifics_li:
|
||||||
|
config.overlay(values, dict(epc=config.get_defaults(config_specifics)))
|
||||||
config.overlay(values, dict(epc=self.suite_run.config().get('epc', {})))
|
config.overlay(values, dict(epc=self.suite_run.config().get('epc', {})))
|
||||||
|
for config_specifics in config_specifics_li:
|
||||||
|
config.overlay(values, dict(epc=self.suite_run.config().get(config_specifics, {})))
|
||||||
config.overlay(values, dict(epc={'run_addr': self.addr()}))
|
config.overlay(values, dict(epc={'run_addr': self.addr()}))
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,7 @@ CONF_SCHEMA = util.dict_add(
|
||||||
'config.epc.rlc_drb_mode': schema.LTE_RLC_DRB_MODE,
|
'config.epc.rlc_drb_mode': schema.LTE_RLC_DRB_MODE,
|
||||||
'config.epc.enable_pcap': schema.BOOL_STR,
|
'config.epc.enable_pcap': schema.BOOL_STR,
|
||||||
'config.modem.enable_pcap': schema.BOOL_STR,
|
'config.modem.enable_pcap': schema.BOOL_STR,
|
||||||
|
'config.amarisoft.license_server_addr': schema.IPV4,
|
||||||
},
|
},
|
||||||
dict([('resources.%s' % key, val) for key, val in WANT_SCHEMA.items()]),
|
dict([('resources.%s' % key, val) for key, val in WANT_SCHEMA.items()]),
|
||||||
dict([('modifiers.%s' % key, val) for key, val in WANT_SCHEMA.items()]))
|
dict([('modifiers.%s' % key, val) for key, val in WANT_SCHEMA.items()]))
|
||||||
|
|
|
@ -187,7 +187,7 @@ class srsENB(enb.eNodeB):
|
||||||
f.write(r)
|
f.write(r)
|
||||||
|
|
||||||
def configure(self):
|
def configure(self):
|
||||||
values = super().configure('srsenb')
|
values = super().configure(['srsenb'])
|
||||||
|
|
||||||
# Convert parsed boolean string to Python boolean:
|
# Convert parsed boolean string to Python boolean:
|
||||||
self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false'))
|
self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false'))
|
||||||
|
|
|
@ -158,7 +158,7 @@ class srsEPC(epc.EPC):
|
||||||
self.pcap_file = self.run_dir.child(srsEPC.PCAPFILE)
|
self.pcap_file = self.run_dir.child(srsEPC.PCAPFILE)
|
||||||
self.dbg(config_file=self.config_file, db_file=self.db_file)
|
self.dbg(config_file=self.config_file, db_file=self.db_file)
|
||||||
|
|
||||||
values = super().configure('srsepc')
|
values = super().configure(['srsepc'])
|
||||||
|
|
||||||
# Convert parsed boolean string to Python boolean:
|
# Convert parsed boolean string to Python boolean:
|
||||||
self.enable_pcap = util.str2bool(values['epc'].get('enable_pcap', 'false'))
|
self.enable_pcap = util.str2bool(values['epc'].get('enable_pcap', 'false'))
|
||||||
|
|
|
@ -3,11 +3,12 @@
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
|
||||||
|
%if enb.license_server_addr != '0.0.0.0':
|
||||||
license_server: {
|
license_server: {
|
||||||
server_addr: "${enb.license_server_addr}",
|
server_addr: "${enb.license_server_addr}",
|
||||||
name: "amarisoft",
|
name: "amarisoft",
|
||||||
},
|
},
|
||||||
|
%endif
|
||||||
|
|
||||||
/* Log filter: syntax: layer.field=value[,...]
|
/* Log filter: syntax: layer.field=value[,...]
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,12 @@
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
|
||||||
|
%if epc.license_server_addr != '0.0.0.0':
|
||||||
license_server: {
|
license_server: {
|
||||||
server_addr: "${epc.license_server_addr}",
|
server_addr: "${epc.license_server_addr}",
|
||||||
name: "amarisoft",
|
name: "amarisoft",
|
||||||
},
|
},
|
||||||
|
%endif
|
||||||
|
|
||||||
/* Log filter: syntax: layer.field=value[,...]
|
/* Log filter: syntax: layer.field=value[,...]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue