Introduce LTE Transmission Mode and RLC DRB mode params
Change-Id: I38f247f266ba736cdbb6f36ba5673b8fd46a8d67
This commit is contained in:
parent
9b8823efd7
commit
b69377112c
|
@ -96,8 +96,10 @@ osmo_bts_oc2g:
|
||||||
srsepc:
|
srsepc:
|
||||||
mcc: 901
|
mcc: 901
|
||||||
mnc: 70
|
mnc: 70
|
||||||
|
rlc_drb_mode: UM
|
||||||
|
|
||||||
srsenb:
|
srsenb:
|
||||||
mcc: 901
|
mcc: 901
|
||||||
mnc: 70
|
mnc: 70
|
||||||
num_prb: 100
|
num_prb: 100
|
||||||
|
transmission_mode: 1
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
config:
|
||||||
|
epc:
|
||||||
|
rlc_drb_mode: ${param1}
|
|
@ -0,0 +1,3 @@
|
||||||
|
modifiers:
|
||||||
|
enb:
|
||||||
|
- transmission_mode: ${param1}
|
|
@ -90,6 +90,7 @@ RESOURCES_SCHEMA = {
|
||||||
'enb[].remote_user': schema.STR,
|
'enb[].remote_user': schema.STR,
|
||||||
'enb[].addr': schema.IPV4,
|
'enb[].addr': schema.IPV4,
|
||||||
'enb[].num_prb': schema.UINT,
|
'enb[].num_prb': schema.UINT,
|
||||||
|
'enb[].transmission_mode': schema.LTE_TRANSMISSION_MODE,
|
||||||
'enb[].rf_dev_type': schema.STR,
|
'enb[].rf_dev_type': schema.STR,
|
||||||
'enb[].rf_dev_args': schema.STR,
|
'enb[].rf_dev_args': schema.STR,
|
||||||
'arfcn[].arfcn': schema.INT,
|
'arfcn[].arfcn': schema.INT,
|
||||||
|
@ -115,7 +116,8 @@ WANT_SCHEMA = util.dict_add(
|
||||||
|
|
||||||
CONF_SCHEMA = util.dict_add(
|
CONF_SCHEMA = util.dict_add(
|
||||||
{ 'defaults.timeout': schema.STR,
|
{ 'defaults.timeout': schema.STR,
|
||||||
'config.bsc.net.codec_list[]': schema.CODEC },
|
'config.bsc.net.codec_list[]': schema.CODEC,
|
||||||
|
'config.epc.rlc_drb_mode': schema.LTE_RLC_DRB_MODE, },
|
||||||
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()]))
|
||||||
|
|
||||||
|
|
|
@ -125,6 +125,17 @@ def osmo_trx_clock_ref(val):
|
||||||
return
|
return
|
||||||
raise ValueError('Unknown OsmoTRX clock reference value: %r' % val)
|
raise ValueError('Unknown OsmoTRX clock reference value: %r' % val)
|
||||||
|
|
||||||
|
def lte_transmission_mode(val):
|
||||||
|
n = int(val)
|
||||||
|
if n <= 4:
|
||||||
|
return
|
||||||
|
raise ValueError('LTE Transmission Mode %d not in expected range' % n)
|
||||||
|
|
||||||
|
def lte_rlc_drb_mode(val):
|
||||||
|
if val.upper() in ('UM', 'AM'):
|
||||||
|
return
|
||||||
|
raise ValueError('Unknown LTE RLC DRB Mode value: %r' % val)
|
||||||
|
|
||||||
INT = 'int'
|
INT = 'int'
|
||||||
STR = 'str'
|
STR = 'str'
|
||||||
UINT = 'uint'
|
UINT = 'uint'
|
||||||
|
@ -144,6 +155,8 @@ CHAN_ALLOCATOR = 'chan_allocator'
|
||||||
GPRS_MODE = 'gprs_mode'
|
GPRS_MODE = 'gprs_mode'
|
||||||
CODEC = 'codec'
|
CODEC = 'codec'
|
||||||
OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref'
|
OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref'
|
||||||
|
LTE_TRANSMISSION_MODE = 'lte_transmission_mode'
|
||||||
|
LTE_RLC_DRB_MODE = 'lte_rlc_drb_mode'
|
||||||
|
|
||||||
SCHEMA_TYPES = {
|
SCHEMA_TYPES = {
|
||||||
INT: int,
|
INT: int,
|
||||||
|
@ -165,6 +178,8 @@ SCHEMA_TYPES = {
|
||||||
GPRS_MODE: gprs_mode,
|
GPRS_MODE: gprs_mode,
|
||||||
CODEC: codec,
|
CODEC: codec,
|
||||||
OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref,
|
OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref,
|
||||||
|
LTE_TRANSMISSION_MODE: lte_transmission_mode,
|
||||||
|
LTE_RLC_DRB_MODE: lte_rlc_drb_mode,
|
||||||
}
|
}
|
||||||
|
|
||||||
def validate(config, schema):
|
def validate(config, schema):
|
||||||
|
|
|
@ -22,6 +22,13 @@ import pprint
|
||||||
|
|
||||||
from . import log, util, config, template, process, remote
|
from . import log, util, config, template, process, remote
|
||||||
|
|
||||||
|
def rlc_drb_mode2qci(rlc_drb_mode):
|
||||||
|
if rlc_drb_mode.upper() == "UM":
|
||||||
|
return 7;
|
||||||
|
elif rlc_drb_mode.upper() == "AM":
|
||||||
|
return 9;
|
||||||
|
raise log.Error('Unexpected rlc_drb_mode', rlc_drb_mode=rlc_drb_mode)
|
||||||
|
|
||||||
class srsEPC(log.Origin):
|
class srsEPC(log.Origin):
|
||||||
|
|
||||||
REMOTE_DIR = '/osmo-gsm-tester-srsepc'
|
REMOTE_DIR = '/osmo-gsm-tester-srsepc'
|
||||||
|
@ -155,10 +162,16 @@ class srsEPC(log.Origin):
|
||||||
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 = dict(epc=config.get_defaults('srsepc'))
|
values = dict(epc=config.get_defaults('srsepc'))
|
||||||
config.overlay(values, dict(epc=dict(hss=dict(subscribers=self.subscriber_list))))
|
|
||||||
config.overlay(values, self.suite_run.config())
|
config.overlay(values, self.suite_run.config())
|
||||||
config.overlay(values, dict(epc={'run_addr': self.addr()}))
|
config.overlay(values, dict(epc={'run_addr': self.addr()}))
|
||||||
|
|
||||||
|
# Set qci for each subscriber:
|
||||||
|
rlc_drb_mode = values['epc'].get('rlc_drb_mode', None)
|
||||||
|
assert rlc_drb_mode is not None
|
||||||
|
for i in range(len(self.subscriber_list)):
|
||||||
|
self.subscriber_list[i]['qci'] = rlc_drb_mode2qci(rlc_drb_mode)
|
||||||
|
config.overlay(values, dict(epc=dict(hss=dict(subscribers=self.subscriber_list))))
|
||||||
|
|
||||||
self.dbg('SRSEPC CONFIG:\n' + pprint.pformat(values))
|
self.dbg('SRSEPC CONFIG:\n' + pprint.pformat(values))
|
||||||
|
|
||||||
with open(self.config_file, 'w') as f:
|
with open(self.config_file, 'w') as f:
|
||||||
|
|
|
@ -29,7 +29,7 @@ mme_addr = ${enb.mme_addr}
|
||||||
gtp_bind_addr = ${enb.addr}
|
gtp_bind_addr = ${enb.addr}
|
||||||
s1c_bind_addr = ${enb.addr}
|
s1c_bind_addr = ${enb.addr}
|
||||||
n_prb = ${enb.num_prb}
|
n_prb = ${enb.num_prb}
|
||||||
#tm = 4
|
tm = ${enb.transmission_mode}
|
||||||
#nof_ports = 2
|
#nof_ports = 2
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
|
@ -20,5 +20,5 @@
|
||||||
#ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic
|
#ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic
|
||||||
#ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001255,7,dynamic
|
#ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001255,7,dynamic
|
||||||
%for sub in epc.hss.subscribers:
|
%for sub in epc.hss.subscribers:
|
||||||
ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic
|
ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,${sub.qci},dynamic
|
||||||
%endfor
|
%endfor
|
||||||
|
|
Loading…
Reference in New Issue