{enb,ms}_srs: Add DL QAM-256 support
Due to the integration of DL-QAM256 another table for DL max rates is needed.
Therefore, I added the parameter 'qam256' to the feature list in the resource.cfg.
The patch also enables the correct UE settings in the config file.
Change-Id: I2d34395449cdcfb31db66ea887d9adbee551e757
diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py
index 72c2738..816f439 100644
--- a/src/osmo_gsm_tester/core/schema.py
+++ b/src/osmo_gsm_tester/core/schema.py
@@ -111,7 +111,7 @@
raise ValueError('Unknown Cipher value: %r' % val)
def modem_feature(val):
- if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g'):
+ if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g', 'dl_qam256'):
return True
raise ValueError('Unknown Modem Feature: %r' % val)
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index 93168bf..8319ba4 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -269,19 +269,30 @@
return rfemu_obj
def ue_max_rate(self, downlink=True, num_carriers=1):
- # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64
- max_phy_rate_tm1_dl = { 6 : 3.5e6,
- 15 : 11e6,
- 25 : 18e6,
- 50 : 36e6,
- 75 : 55e6,
- 100 : 75e6 }
+
+
+ # The max rate for a single UE per PRB configuration in TM1 with MCS 28
+ if 'dl_qam256' in self.ue.features():
+ max_phy_rate_tm1_dl = {6: 5.9e6,
+ 15: 14.6e6,
+ 25: 24.5e6,
+ 50: 48.9e6,
+ 75: 75.3e6,
+ 100: 97.8e6}
+ else:
+ max_phy_rate_tm1_dl = {6: 3.5e6,
+ 15: 11e6,
+ 25: 18e6,
+ 50: 36e6,
+ 75: 55e6,
+ 100: 75e6}
max_phy_rate_tm1_ul = { 6 : 1.7e6,
15 : 4.7e6,
25 : 10e6,
50 : 23e6,
75 : 34e6,
100 : 51e6 }
+
if downlink:
max_rate = max_phy_rate_tm1_dl[self.num_prb()]
else:
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index a3505c8..610d3e6 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -128,6 +128,9 @@
# Collect KPIs for each TC
self.testenv.test().set_kpis(self.get_kpis())
+ def features(self):
+ return self._conf.get('features', [])
+
def scp_back_metrics(self, raiseException=True):
''' Copy back metrics only if they have not been copied back yet '''
if not self.have_metrics_file:
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index 284922b..31642cd 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -150,6 +150,10 @@
% if int(ue.num_carriers) > 1:
ue_category = 7
release = 10
+% elif "dl_qam256" in ue.features:
+ue_category = 7
+release = 13
+ue_category_dl = 14
% else:
#ue_category = 4
#release = 8