ms_srs: add 5G NSA support

extend the MS to allow for NR carriers

Change-Id: I7de9f867e7e32d0ab4f74eb7661928175f6c1a16
This commit is contained in:
Andre Puschmann 2021-05-04 17:06:06 +02:00
parent 6e081aa1dc
commit 6c985372a1
3 changed files with 37 additions and 22 deletions

View File

@ -36,6 +36,7 @@ def on_register_schemas():
'rf_dev_args': schema.STR, 'rf_dev_args': schema.STR,
'rf_dev_sync': schema.STR, 'rf_dev_sync': schema.STR,
'num_carriers': schema.UINT, 'num_carriers': schema.UINT,
'num_nr_carriers': schema.UINT,
'additional_args[]': schema.STR, 'additional_args[]': schema.STR,
'airplane_t_on_ms': schema.INT, 'airplane_t_on_ms': schema.INT,
'airplane_t_off_ms': schema.INT, 'airplane_t_off_ms': schema.INT,
@ -54,7 +55,11 @@ def on_register_schemas():
'enable_pcap': schema.BOOL_STR, 'enable_pcap': schema.BOOL_STR,
'log_all_level': schema.STR, 'log_all_level': schema.STR,
'log_nas_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) schema.register_config_schema('modem', config_schema)
@ -101,6 +106,7 @@ class srsUE(MS, srslte_common):
self.remote_metrics_file = None self.remote_metrics_file = None
self.enable_pcap = False self.enable_pcap = False
self.num_carriers = 1 self.num_carriers = 1
self.num_nr_carriers = 0
self._additional_args = [] self._additional_args = []
if not rf_type_valid(conf.get('rf_dev_type', None)): 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)) raise log.Error('Invalid rf_dev_type=%s' % conf.get('rf_dev_type', None))
@ -270,6 +276,7 @@ class srsUE(MS, srslte_common):
self._additional_args += add_args.split() self._additional_args += add_args.split()
self.num_carriers = int(values['ue'].get('num_carriers', 1)) 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 # Simply pass-through the sync options
config.overlay(values, dict(ue={'rf_dev_sync': values['ue'].get('rf_dev_sync', None)})) config.overlay(values, dict(ue={'rf_dev_sync': values['ue'].get('rf_dev_sync', None)}))
@ -283,7 +290,7 @@ class srsUE(MS, srslte_common):
if self.num_carriers == 1: if self.num_carriers == 1:
# Single carrier # Single carrier
if self.enb.num_ports() == 1: if self.enb.num_ports() == 1 and self.num_nr_carriers == 0:
# SISO # SISO
rf_dev_args += ',rx_freq0=2630e6,tx_freq0=2510e6' rf_dev_args += ',rx_freq0=2630e6,tx_freq0=2510e6'
elif self.enb.num_ports() == 2: elif self.enb.num_ports() == 2:

View File

@ -22,22 +22,30 @@ device_name = ${ue.rf_dev_type}
device_args = ${ue.rf_dev_args},${ue.rf_dev_sync} device_args = ${ue.rf_dev_args},${ue.rf_dev_sync}
[rat.eutra] [rat.eutra]
% if int(ue.num_carriers) == 4:
dl_earfcn = 2850,3050,3250,3350 % if ue.get('dl_earfcn', None) != None:
% elif int(ue.num_carriers) == 2: dl_earfcn = ${ue.dl_earfcn}
dl_earfcn = 2850,3050
% else: % 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 % endif
% if ue.get('dl_freq', -1) != -1:
% if float(ue.get('dl_freq', -1)) != -1:
dl_freq = ${ue.dl_freq} dl_freq = ${ue.dl_freq}
% endif % endif
% if ue.get('ul_freq', -1) != -1: % if float(ue.get('ul_freq', -1)) != -1:
ul_freq = ${ue.ul_freq} ul_freq = ${ue.ul_freq}
% endif % endif
nof_carriers = ${ue.num_carriers} nof_carriers = ${ue.num_carriers}
[rat.nr]
nof_carriers = ${ue.num_nr_carriers}
[pcap] [pcap]
enable = ${'mac' if ue.enable_pcap else 'none'} enable = ${'mac' if ue.enable_pcap else 'none'}
@ -65,19 +73,18 @@ k = ${ue.ki}
imsi = ${ue.imsi} imsi = ${ue.imsi}
imei = 353490069873319 imei = 353490069873319
[rrc] [rrc]
% if "dl_qam256" in ue.features or "ul_qam64" in ue.features: % if ue.get('rrc_release', None) != None:
ue_category = 8 release = ${ue.rrc_release}
release = 13 % endif
ue_category_dl = 14 % if ue.get('ue_category', None) != None:
ue_category_ul = 5 ue_category = ${ue.ue_category}
% elif int(ue.num_carriers) > 1: % endif
ue_category = 7 % if ue.get('ue_category_dl', None) != None:
release = 10 ue_category_dl = ${ue.ue_category_dl}
% else: % endif
#ue_category = 4 % if ue.get('ue_category_ul', None) != None:
#release = 8 ue_category_ul = ${ue.ue_category_ul}
% endif % endif

View File

@ -184,6 +184,7 @@ srsue:
airplane_t_on_ms: -1 airplane_t_on_ms: -1
airplane_t_off_ms: -1 airplane_t_off_ms: -1
num_carriers: 1 num_carriers: 1
num_nr_carriers: 0
tx_gain: 80 tx_gain: 80
rx_gain: 40 rx_gain: 40
freq_offset: 0 freq_offset: 0