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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">amarisoft_enb: Support zmq rf_driver<br><br>Change-Id: I958834d99584e33f632b839a0bd0acccc2379049<br>---<br>M src/osmo_gsm_tester/amarisoft_enb.py<br>M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl<br>M src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl<br>3 files changed, 43 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/amarisoft_enb.py b/src/osmo_gsm_tester/amarisoft_enb.py</span><br><span>index 2ef713f..e4f3d64 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>@@ -24,7 +24,7 @@</span><br><span> from . import enb</span><br><span> </span><br><span> def rf_type_valid(rf_type_str):</span><br><span style="color: hsl(0, 100%, 40%);">-    return rf_type_str in ('uhd')</span><br><span style="color: hsl(120, 100%, 40%);">+    return rf_type_str in ('uhd', 'zmq')</span><br><span> </span><br><span> #reference: srsLTE.git srslte_symbol_sz()</span><br><span> def num_prb2symbol_sz(num_prb):</span><br><span>@@ -167,6 +167,38 @@</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%);">+        # We need to set some specific variables programatically here to match IP addresses:</span><br><span style="color: hsl(120, 100%, 40%);">+        if self._conf.get('rf_dev_type') == 'zmq':</span><br><span style="color: hsl(120, 100%, 40%);">+            base_srate = num_prb2base_srate(self.num_prb())</span><br><span style="color: hsl(120, 100%, 40%);">+            rf_dev_args = 'fail_on_disconnect=true' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',tx_port0=tcp://' + self.addr() + ':2000' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',tx_port1=tcp://' + self.addr() + ':2002' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',rx_port0=tcp://' + self.ue.addr() + ':2001' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',rx_port1=tcp://' + self.ue.addr() + ':2003' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',tx_freq=2630e6,rx_freq=2510e6,tx_freq2=2650e6,rx_freq2=2530e6' \</span><br><span style="color: hsl(120, 100%, 40%);">+                        + ',id=enb,base_srate=' + str(base_srate)</span><br><span style="color: hsl(120, 100%, 40%);">+            config.overlay(values, dict(enb=dict(sample_rate = base_srate / (1000*1000),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 rf_dev_args=rf_dev_args)))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Set UHD frame size as a function of the cell bandwidth on B2XX</span><br><span style="color: hsl(120, 100%, 40%);">+        if self._conf.get('rf_dev_type') == 'UHD' and values['enb'].get('rf_dev_args', None) is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+            if 'b200' in values['enb'].get('rf_dev_args'):</span><br><span style="color: hsl(120, 100%, 40%);">+                rf_dev_args = values['enb'].get('rf_dev_args', '')</span><br><span style="color: hsl(120, 100%, 40%);">+                rf_dev_args += ',' if rf_dev_args != '' and not rf_dev_args.endswith(',') else ''</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                if self._num_prb < 25:</span><br><span style="color: hsl(120, 100%, 40%);">+                    rf_dev_args += 'send_frame_size=512,recv_frame_size=512'</span><br><span style="color: hsl(120, 100%, 40%);">+                elif self._num_prb == 25:</span><br><span style="color: hsl(120, 100%, 40%);">+                    rf_dev_args += 'send_frame_size=1024,recv_frame_size=1024'</span><br><span style="color: hsl(120, 100%, 40%);">+                elif self._num_prb > 25:</span><br><span style="color: hsl(120, 100%, 40%);">+                    rf_dev_args += 'num_recv_frames=64,num_send_frames=64'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                if self._num_prb > 50:</span><br><span style="color: hsl(120, 100%, 40%);">+                    # Reduce over the wire format to sc12</span><br><span style="color: hsl(120, 100%, 40%);">+                    rf_dev_args += ',otw_format=sc12'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                config.overlay(values, dict(enb=dict(rf_dev_args=rf_dev_args)))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         logfile = self.log_file if self.setup_runs_locally() else self.remote_log_file</span><br><span>         config.overlay(values, dict(enb=dict(log_filename=logfile)))</span><br><span> </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 fab1649..532472a 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>@@ -10,6 +10,11 @@</span><br><span>   },</span><br><span> %endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+% if enb.rf_dev_type == 'zmq':</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Force sampling rate (if uncommented) */</span><br><span style="color: hsl(120, 100%, 40%);">+  sample_rate: ${enb.sample_rate},</span><br><span style="color: hsl(120, 100%, 40%);">+%endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   /* Log filter: syntax: layer.field=value[,...]</span><br><span> </span><br><span>      Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and</span><br><span>diff --git a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl</span><br><span>index bbf9b47..466bc8f 100644</span><br><span>--- a/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl</span><br><span>+++ b/src/osmo_gsm_tester/templates/amarisoft_rf_driver.cfg.tmpl</span><br><span>@@ -1,18 +1,13 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/* Parameters for b2x0 UHD device version 2018-10-18</span><br><span style="color: hsl(0, 100%, 40%);">- * Copyright (C) 2015-2018 Amarisoft</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span> rf_driver: {</span><br><span>     name: "${enb.rf_dev_type}",</span><br><span style="color: hsl(0, 100%, 40%);">-    sync: "none",</span><br><span style="color: hsl(120, 100%, 40%);">+    sync: "${'1' if enb.rf_dev_type == 'zmq' else 'none'}",</span><br><span> </span><br><span>     /* Use this for b2x0 devices. Bandwidth >= 10 Mhz */</span><br><span>     args: "${enb.rf_dev_args}",</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Use this for bandwidth == 5 Mhz */</span><br><span style="color: hsl(0, 100%, 40%);">-    //args: "send_frame_size=1024,recv_frame_size=1024",</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    /* Use this for bandwidth < 5 Mhz */</span><br><span style="color: hsl(0, 100%, 40%);">-    //args: "send_frame_size=512,recv_frame_size=512",</span><br><span style="color: hsl(120, 100%, 40%);">+% if enb.rf_dev_type == 'zmq':</span><br><span style="color: hsl(120, 100%, 40%);">+        dl_sample_bits: 16,</span><br><span style="color: hsl(120, 100%, 40%);">+        ul_sample_bits: 16,</span><br><span style="color: hsl(120, 100%, 40%);">+% endif</span><br><span> },</span><br><span> </span><br><span> tx_gain: 89.0, /* TX gain (in dB) B2x0: 0 to 89.8 dB */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17732">change 17732</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/+/17732"/><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: I958834d99584e33f632b839a0bd0acccc2379049 </div>
<div style="display:none"> Gerrit-Change-Number: 17732 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </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-MessageType: merged </div>