ms_srs: add 5G NSA support
extend the MS to allow for NR carriers
Change-Id: I7de9f867e7e32d0ab4f74eb7661928175f6c1a16
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index 54dc5de..ec4486f 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -36,6 +36,7 @@
'rf_dev_args': schema.STR,
'rf_dev_sync': schema.STR,
'num_carriers': schema.UINT,
+ 'num_nr_carriers': schema.UINT,
'additional_args[]': schema.STR,
'airplane_t_on_ms': schema.INT,
'airplane_t_off_ms': schema.INT,
@@ -54,7 +55,11 @@
'enable_pcap': schema.BOOL_STR,
'log_all_level': schema.STR,
'log_nas_level': schema.STR,
- 'nr_short_sn_support': schema.BOOL_STR
+ 'nr_short_sn_support': schema.BOOL_STR,
+ 'rrc_release': schema.INT,
+ 'ue_category': schema.INT,
+ 'ue_category_dl': schema.INT,
+ 'ue_category_ul': schema.INT,
}
schema.register_config_schema('modem', config_schema)
@@ -101,6 +106,7 @@
self.remote_metrics_file = None
self.enable_pcap = False
self.num_carriers = 1
+ self.num_nr_carriers = 0
self._additional_args = []
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))
@@ -270,6 +276,7 @@
self._additional_args += add_args.split()
self.num_carriers = int(values['ue'].get('num_carriers', 1))
+ self.num_nr_carriers = int(values['ue'].get('num_nr_carriers', 0))
# Simply pass-through the sync options
config.overlay(values, dict(ue={'rf_dev_sync': values['ue'].get('rf_dev_sync', None)}))
@@ -283,7 +290,7 @@
if self.num_carriers == 1:
# Single carrier
- if self.enb.num_ports() == 1:
+ if self.enb.num_ports() == 1 and self.num_nr_carriers == 0:
# SISO
rf_dev_args += ',rx_freq0=2630e6,tx_freq0=2510e6'
elif self.enb.num_ports() == 2:
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index 8d206fa..412dbda 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -22,22 +22,30 @@
device_args = ${ue.rf_dev_args},${ue.rf_dev_sync}
[rat.eutra]
-% if int(ue.num_carriers) == 4:
-dl_earfcn = 2850,3050,3250,3350
-% elif int(ue.num_carriers) == 2:
-dl_earfcn = 2850,3050
+
+% if ue.get('dl_earfcn', None) != None:
+dl_earfcn = ${ue.dl_earfcn}
+
% else:
-dl_earfcn = 2850
+ % if int(ue.num_carriers) == 4:
+ dl_earfcn = 2850,3050,3250,3350
+ % elif int(ue.num_carriers) == 2:
+ dl_earfcn = 2850,3050
+ % else:
+ dl_earfcn = 2850
+ % endif
% endif
-% if ue.get('dl_freq', -1) != -1:
+
+% if float(ue.get('dl_freq', -1)) != -1:
dl_freq = ${ue.dl_freq}
% endif
-% if ue.get('ul_freq', -1) != -1:
+% if float(ue.get('ul_freq', -1)) != -1:
ul_freq = ${ue.ul_freq}
% endif
-
nof_carriers = ${ue.num_carriers}
+[rat.nr]
+nof_carriers = ${ue.num_nr_carriers}
[pcap]
enable = ${'mac' if ue.enable_pcap else 'none'}
@@ -65,19 +73,18 @@
imsi = ${ue.imsi}
imei = 353490069873319
-
[rrc]
-% if "dl_qam256" in ue.features or "ul_qam64" in ue.features:
-ue_category = 8
-release = 13
-ue_category_dl = 14
-ue_category_ul = 5
-% elif int(ue.num_carriers) > 1:
-ue_category = 7
-release = 10
-% else:
-#ue_category = 4
-#release = 8
+% if ue.get('rrc_release', None) != None:
+release = ${ue.rrc_release}
+% endif
+% if ue.get('ue_category', None) != None:
+ue_category = ${ue.ue_category}
+% endif
+% if ue.get('ue_category_dl', None) != None:
+ue_category_dl = ${ue.ue_category_dl}
+% endif
+% if ue.get('ue_category_ul', None) != None:
+ue_category_ul = ${ue.ue_category_ul}
% endif