<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17293">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce LTE Transmission Mode and RLC DRB mode params<br><br>Change-Id: I38f247f266ba736cdbb6f36ba5673b8fd46a8d67<br>---<br>M example/defaults.conf<br>A example/scenarios/cfg-epc-rlcmode@.conf<br>A example/scenarios/mod-enb-txmode@.conf<br>M src/osmo_gsm_tester/resource.py<br>M src/osmo_gsm_tester/schema.py<br>M src/osmo_gsm_tester/srs_epc.py<br>M src/osmo_gsm_tester/templates/srsenb.conf.tmpl<br>M src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl<br>8 files changed, 42 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/93/17293/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/example/defaults.conf b/example/defaults.conf</span><br><span>index 0bff86a..9b92ad0 100644</span><br><span>--- a/example/defaults.conf</span><br><span>+++ b/example/defaults.conf</span><br><span>@@ -96,8 +96,10 @@</span><br><span> srsepc:</span><br><span>   mcc: 901</span><br><span>   mnc: 70</span><br><span style="color: hsl(120, 100%, 40%);">+  rlc_drb_mode: UM</span><br><span> </span><br><span> srsenb:</span><br><span>   mcc: 901</span><br><span>   mnc: 70</span><br><span>   num_prb: 100</span><br><span style="color: hsl(120, 100%, 40%);">+  transmission_mode: 1</span><br><span>diff --git a/example/scenarios/cfg-epc-rlcmode@.conf b/example/scenarios/cfg-epc-rlcmode@.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..2ddb044</span><br><span>--- /dev/null</span><br><span>+++ b/example/scenarios/cfg-epc-rlcmode@.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+config:</span><br><span style="color: hsl(120, 100%, 40%);">+  epc:</span><br><span style="color: hsl(120, 100%, 40%);">+    rlc_drb_mode: ${param1}</span><br><span>diff --git a/example/scenarios/mod-enb-txmode@.conf b/example/scenarios/mod-enb-txmode@.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e0c8d01</span><br><span>--- /dev/null</span><br><span>+++ b/example/scenarios/mod-enb-txmode@.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+modifiers:</span><br><span style="color: hsl(120, 100%, 40%);">+  enb:</span><br><span style="color: hsl(120, 100%, 40%);">+  - transmission_mode: ${param1}</span><br><span>diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py</span><br><span>index 31e8463..07d32e2 100644</span><br><span>--- a/src/osmo_gsm_tester/resource.py</span><br><span>+++ b/src/osmo_gsm_tester/resource.py</span><br><span>@@ -90,6 +90,7 @@</span><br><span>         'enb[].remote_user': schema.STR,</span><br><span>         'enb[].addr': schema.IPV4,</span><br><span>         'enb[].num_prb': schema.UINT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].transmission_mode': schema.LTE_TRANSMISSION_MODE,</span><br><span>         'enb[].rf_dev_type': schema.STR,</span><br><span>         'enb[].rf_dev_args': schema.STR,</span><br><span>         'arfcn[].arfcn': schema.INT,</span><br><span>@@ -115,7 +116,8 @@</span><br><span> </span><br><span> CONF_SCHEMA = util.dict_add(</span><br><span>     { 'defaults.timeout': schema.STR,</span><br><span style="color: hsl(0, 100%, 40%);">-      'config.bsc.net.codec_list[]': schema.CODEC },</span><br><span style="color: hsl(120, 100%, 40%);">+      'config.bsc.net.codec_list[]': schema.CODEC,</span><br><span style="color: hsl(120, 100%, 40%);">+      'config.epc.rlc_drb_mode': schema.LTE_RLC_DRB_MODE, },</span><br><span>     dict([('resources.%s' % key, val) for key, val in WANT_SCHEMA.items()]),</span><br><span>     dict([('modifiers.%s' % key, val) for key, val in WANT_SCHEMA.items()]))</span><br><span> </span><br><span>diff --git a/src/osmo_gsm_tester/schema.py b/src/osmo_gsm_tester/schema.py</span><br><span>index 14fe640..7fe6689 100644</span><br><span>--- a/src/osmo_gsm_tester/schema.py</span><br><span>+++ b/src/osmo_gsm_tester/schema.py</span><br><span>@@ -125,6 +125,17 @@</span><br><span>         return</span><br><span>     raise ValueError('Unknown OsmoTRX clock reference value: %r' % val)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+def lte_transmission_mode(val):</span><br><span style="color: hsl(120, 100%, 40%);">+    n = int(val)</span><br><span style="color: hsl(120, 100%, 40%);">+    if n <= 4:</span><br><span style="color: hsl(120, 100%, 40%);">+        return</span><br><span style="color: hsl(120, 100%, 40%);">+    raise ValueError('LTE Transmission Mode %d not in expected range' % n)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def lte_rlc_drb_mode(val):</span><br><span style="color: hsl(120, 100%, 40%);">+    if val.upper() in ('UM', 'AM'):</span><br><span style="color: hsl(120, 100%, 40%);">+        return</span><br><span style="color: hsl(120, 100%, 40%);">+    raise ValueError('Unknown LTE RLC DRB Mode value: %r' % val)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> INT = 'int'</span><br><span> STR = 'str'</span><br><span> UINT = 'uint'</span><br><span>@@ -144,6 +155,8 @@</span><br><span> GPRS_MODE = 'gprs_mode'</span><br><span> CODEC = 'codec'</span><br><span> OSMO_TRX_CLOCK_REF = 'osmo_trx_clock_ref'</span><br><span style="color: hsl(120, 100%, 40%);">+LTE_TRANSMISSION_MODE = 'lte_transmission_mode'</span><br><span style="color: hsl(120, 100%, 40%);">+LTE_RLC_DRB_MODE = 'lte_rlc_drb_mode'</span><br><span> </span><br><span> SCHEMA_TYPES = {</span><br><span>         INT: int,</span><br><span>@@ -165,6 +178,8 @@</span><br><span>         GPRS_MODE: gprs_mode,</span><br><span>         CODEC: codec,</span><br><span>         OSMO_TRX_CLOCK_REF: osmo_trx_clock_ref,</span><br><span style="color: hsl(120, 100%, 40%);">+        LTE_TRANSMISSION_MODE: lte_transmission_mode,</span><br><span style="color: hsl(120, 100%, 40%);">+        LTE_RLC_DRB_MODE: lte_rlc_drb_mode,</span><br><span>     }</span><br><span> </span><br><span> def validate(config, schema):</span><br><span>diff --git a/src/osmo_gsm_tester/srs_epc.py b/src/osmo_gsm_tester/srs_epc.py</span><br><span>index 0a0036e..a33a163 100644</span><br><span>--- a/src/osmo_gsm_tester/srs_epc.py</span><br><span>+++ b/src/osmo_gsm_tester/srs_epc.py</span><br><span>@@ -22,6 +22,13 @@</span><br><span> </span><br><span> from . import log, util, config, template, process, remote</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+def rlc_drb_mode2qci(rlc_drb_mode):</span><br><span style="color: hsl(120, 100%, 40%);">+    if rlc_drb_mode.upper() == "UM":</span><br><span style="color: hsl(120, 100%, 40%);">+        return 7;</span><br><span style="color: hsl(120, 100%, 40%);">+    elif rlc_drb_mode.upper() == "AM":</span><br><span style="color: hsl(120, 100%, 40%);">+        return 9;</span><br><span style="color: hsl(120, 100%, 40%);">+    raise log.Error('Unexpected rlc_drb_mode', rlc_drb_mode=rlc_drb_mode)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> class srsEPC(log.Origin):</span><br><span> </span><br><span>     REMOTE_DIR = '/osmo-gsm-tester-srsepc'</span><br><span>@@ -155,10 +162,16 @@</span><br><span>         self.dbg(config_file=self.config_file, db_file=self.db_file)</span><br><span> </span><br><span>         values = dict(epc=config.get_defaults('srsepc'))</span><br><span style="color: hsl(0, 100%, 40%);">-        config.overlay(values, dict(epc=dict(hss=dict(subscribers=self.subscriber_list))))</span><br><span>         config.overlay(values, self.suite_run.config())</span><br><span>         config.overlay(values, dict(epc={'run_addr': self.addr()}))</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        # Set qci for each subscriber:</span><br><span style="color: hsl(120, 100%, 40%);">+        rlc_drb_mode = values['epc'].get('rlc_drb_mode', None)</span><br><span style="color: hsl(120, 100%, 40%);">+        assert rlc_drb_mode is not None</span><br><span style="color: hsl(120, 100%, 40%);">+        for i in range(len(self.subscriber_list)):</span><br><span style="color: hsl(120, 100%, 40%);">+            self.subscriber_list[i]['qci'] = rlc_drb_mode2qci(rlc_drb_mode)</span><br><span style="color: hsl(120, 100%, 40%);">+        config.overlay(values, dict(epc=dict(hss=dict(subscribers=self.subscriber_list))))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         self.dbg('SRSEPC CONFIG:\n' + pprint.pformat(values))</span><br><span> </span><br><span>         with open(self.config_file, 'w') as f:</span><br><span>diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl</span><br><span>index f040156..12b3e18 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl</span><br><span>@@ -29,7 +29,7 @@</span><br><span> gtp_bind_addr = ${enb.addr}</span><br><span> s1c_bind_addr = ${enb.addr}</span><br><span> n_prb = ${enb.num_prb}</span><br><span style="color: hsl(0, 100%, 40%);">-#tm = 4</span><br><span style="color: hsl(120, 100%, 40%);">+tm = ${enb.transmission_mode}</span><br><span> #nof_ports = 2</span><br><span> </span><br><span> #####################################################################</span><br><span>diff --git a/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl b/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl</span><br><span>index 32df58d..c213e53 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/srsepc_user_db.csv.tmpl</span><br><span>@@ -20,5 +20,5 @@</span><br><span> #ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic</span><br><span> #ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001255,7,dynamic</span><br><span> %for sub in epc.hss.subscribers:</span><br><span style="color: hsl(0, 100%, 40%);">-ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic</span><br><span style="color: hsl(120, 100%, 40%);">+ogt${sub.id},${sub.auth_algo},${sub.imsi},${sub.ki},opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,${sub.qci},dynamic</span><br><span> %endfor</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17293">change 17293</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17293"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I38f247f266ba736cdbb6f36ba5673b8fd46a8d67 </div>
<div style="display:none"> Gerrit-Change-Number: 17293 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>