<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17744">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">enb: add measurement modifier to scenario files<br><br>this commit adds basic support for configuring measurements in the<br>eNB config. It currently support A1, A2, and A3 events.<br>By default UE measurements are turned off and need to be enabled by<br>configuring an event with:<br><br>+mod-enb-meas-event@{name},{report_type},{value},{hysterisis},{time to trigger}<br><br>For example one can update the a2 and a3 event with:<br><br>+mod-enb-meas-event@a2,rsrq,-40,2,480+mod-enb-meas-event@a3,rsrp,6,1,512<br><br>Change-Id: Ia7657be2396886840570bc41645450a268b4cfff<br>---<br>M example/defaults.conf<br>A example/scenarios/mod-enb-meas-event@.conf<br>M src/osmo_gsm_tester/amarisoft_enb.py<br>M src/osmo_gsm_tester/resource.py<br>M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl<br>5 files changed, 63 insertions(+), 0 deletions(-)<br><br></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 5cda132..f3994bb 100644</span><br><span>--- a/example/defaults.conf</span><br><span>+++ b/example/defaults.conf</span><br><span>@@ -110,6 +110,19 @@</span><br><span>   mnc: 70</span><br><span>   transmission_mode: 1</span><br><span>   num_cells: 1</span><br><span style="color: hsl(120, 100%, 40%);">+  enable_measurements: false</span><br><span style="color: hsl(120, 100%, 40%);">+  a1_report_type: rsrp</span><br><span style="color: hsl(120, 100%, 40%);">+  a1_report_value: -105</span><br><span style="color: hsl(120, 100%, 40%);">+  a1_hysteresis: 0</span><br><span style="color: hsl(120, 100%, 40%);">+  a1_time_to_trigger: 640</span><br><span style="color: hsl(120, 100%, 40%);">+  a2_report_type: rsrp</span><br><span style="color: hsl(120, 100%, 40%);">+  a2_report_value: -110</span><br><span style="color: hsl(120, 100%, 40%);">+  a2_hysteresis: 0</span><br><span style="color: hsl(120, 100%, 40%);">+  a2_time_to_trigger: 640</span><br><span style="color: hsl(120, 100%, 40%);">+  a3_report_type: rsrp</span><br><span style="color: hsl(120, 100%, 40%);">+  a3_report_value: 6</span><br><span style="color: hsl(120, 100%, 40%);">+  a3_hysteresis: 0</span><br><span style="color: hsl(120, 100%, 40%);">+  a3_time_to_trigger: 480</span><br><span> </span><br><span> srsenb:</span><br><span>   num_prb: 100</span><br><span>diff --git a/example/scenarios/mod-enb-meas-event@.conf b/example/scenarios/mod-enb-meas-event@.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..44f4fcd</span><br><span>--- /dev/null</span><br><span>+++ b/example/scenarios/mod-enb-meas-event@.conf</span><br><span>@@ -0,0 +1,7 @@</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%);">+  - enable_measurements: true</span><br><span style="color: hsl(120, 100%, 40%);">+    ${param1}_report_type: ${param2}</span><br><span style="color: hsl(120, 100%, 40%);">+    ${param1}_report_value: ${param3}</span><br><span style="color: hsl(120, 100%, 40%);">+    ${param1}_hysteresis: ${param4}</span><br><span style="color: hsl(120, 100%, 40%);">+    ${param1}_time_to_trigger: ${param5}</span><br><span>diff --git a/src/osmo_gsm_tester/amarisoft_enb.py b/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>index e6e214f..df8e0db 100644</span><br><span>--- a/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>+++ b/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>@@ -77,6 +77,7 @@</span><br><span>         self.remote_config_rf_file = None</span><br><span>         self.remote_config_drb_file = None</span><br><span>         self.remote_log_file = None</span><br><span style="color: hsl(120, 100%, 40%);">+        self.enable_measurements = False</span><br><span>         self.suite_run = suite_run</span><br><span>         self.remote_user = conf.get('remote_user', None)</span><br><span>         if not rf_type_valid(conf.get('rf_dev_type', None)):</span><br><span>@@ -167,6 +168,10 @@</span><br><span>         self._num_cells = int(values['enb'].get('num_cells', None))</span><br><span>         assert self._num_cells</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        # Convert parsed boolean string to Python boolean:</span><br><span style="color: hsl(120, 100%, 40%);">+        self.enable_measurements = util.str2bool(values['enb'].get('enable_measurements', 'false'))</span><br><span style="color: hsl(120, 100%, 40%);">+        config.overlay(values, dict(enb={'enable_measurements': self.enable_measurements}))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         # We need to set some specific variables programatically here to match IP addresses:</span><br><span>         if self._conf.get('rf_dev_type') == 'zmq':</span><br><span>             base_srate = num_prb2base_srate(self.num_prb())</span><br><span>diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py</span><br><span>index ea1b543..c58bdc7 100644</span><br><span>--- a/src/osmo_gsm_tester/resource.py</span><br><span>+++ b/src/osmo_gsm_tester/resource.py</span><br><span>@@ -94,6 +94,19 @@</span><br><span>         'enb[].rf_dev_type': schema.STR,</span><br><span>         'enb[].rf_dev_args': schema.STR,</span><br><span>         'enb[].additional_args': schema.STR,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].enable_measurements': schema.BOOL_STR,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a1_report_type': schema.STR,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a1_report_value': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a1_hysteresis': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a1_time_to_trigger': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a2_report_type': schema.STR,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a2_report_value': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a2_hysteresis': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a2_time_to_trigger': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a3_report_type': schema.STR,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a3_report_value': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a3_hysteresis': schema.INT,</span><br><span style="color: hsl(120, 100%, 40%);">+        'enb[].a3_time_to_trigger': schema.INT,</span><br><span>         'arfcn[].arfcn': schema.INT,</span><br><span>         'arfcn[].band': schema.BAND,</span><br><span>         'modem[].type': schema.STR,</span><br><span>diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>index 763af08..d87e66a 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl</span><br><span>@@ -229,5 +229,30 @@</span><br><span> </span><br><span>     /* DRB configuration */</span><br><span>     drb_config: "amarisoft_drb.cfg",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+% if enb.enable_measurements:</span><br><span style="color: hsl(120, 100%, 40%);">+    /* measurement configuration */</span><br><span style="color: hsl(120, 100%, 40%);">+    meas_config_desc: {</span><br><span style="color: hsl(120, 100%, 40%);">+        a1_report_type: "${enb.a1_report_type}",</span><br><span style="color: hsl(120, 100%, 40%);">+        a1_${enb.a1_report_type}: ${enb.a1_report_value},</span><br><span style="color: hsl(120, 100%, 40%);">+        a1_hysteresis: ${enb.a1_hysteresis},</span><br><span style="color: hsl(120, 100%, 40%);">+        a1_time_to_trigger: ${enb.a1_time_to_trigger},</span><br><span style="color: hsl(120, 100%, 40%);">+        a2_report_type: "${enb.a2_report_type}",</span><br><span style="color: hsl(120, 100%, 40%);">+        a2_${enb.a2_report_type}: ${enb.a2_report_value},</span><br><span style="color: hsl(120, 100%, 40%);">+        a2_hysteresis: ${enb.a2_hysteresis},</span><br><span style="color: hsl(120, 100%, 40%);">+        a2_time_to_trigger: ${enb.a2_time_to_trigger},</span><br><span style="color: hsl(120, 100%, 40%);">+        a3_report_type: "${enb.a3_report_type}",</span><br><span style="color: hsl(120, 100%, 40%);">+        a3_offset: ${enb.a3_report_value},</span><br><span style="color: hsl(120, 100%, 40%);">+        a3_hysteresis: ${enb.a3_hysteresis},</span><br><span style="color: hsl(120, 100%, 40%);">+        a3_time_to_trigger: ${enb.a3_time_to_trigger},</span><br><span style="color: hsl(120, 100%, 40%);">+    },</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* measurement gap configuration */</span><br><span style="color: hsl(120, 100%, 40%);">+    meas_gap_config: "gp0",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* if true, initiate a handover when a suitable measurement report</span><br><span style="color: hsl(120, 100%, 40%);">+       is received */</span><br><span style="color: hsl(120, 100%, 40%);">+    ho_from_meas: true,</span><br><span style="color: hsl(120, 100%, 40%);">+% endif</span><br><span>   },</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17744">change 17744</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/+/17744"/><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: Ia7657be2396886840570bc41645450a268b4cfff </div>
<div style="display:none"> Gerrit-Change-Number: 17744 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: srs_andre <andre@softwareradiosystems.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: srs_andre <andre@softwareradiosystems.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>