<p>Vadim Yanitskiy <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12549">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">trx_toolkit/transceiver.py: add optional transceiver name<br><br>Since fake_trx.py can handle multiple transceivers, it may be useful<br>to name transceivers. If transceiver has some name, it will appear<br>in logging messages, for example:<br><br>  [INFO] transceiver.py:104 Init transceiver 'BTS@127.0.0.1:5700'<br>  [INFO] transceiver.py:104 Init transceiver 'MS@127.0.0.1:6700'<br>  [INFO] transceiver.py:104 Init transceiver '127.0.0.1:5700/1'<br><br>This change additionally assigns names to the both default<br>transceivers, and extends the '--trx' option with ability<br>to specify some name, for example:<br><br>  --trx foo@127.0.0.1:5700 or --trx bar@127.0.0.1:5700/1<br>  --trx ipv6@[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:6700<br><br>Change-Id: I2f58f02e7819bb008b8aab1a8bf9e0adeb2e44ec<br>---<br>M src/target/trx_toolkit/fake_trx.py<br>M src/target/trx_toolkit/transceiver.py<br>2 files changed, 26 insertions(+), 13 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py</span><br><span>index 294a819..928333f 100755</span><br><span>--- a/src/target/trx_toolkit/fake_trx.py</span><br><span>+++ b/src/target/trx_toolkit/fake_trx.py</span><br><span>@@ -288,31 +288,34 @@</span><br><span>                 self.fake_pm.trx_list = self.trx_list</span><br><span> </span><br><span>            # Init TRX instance for BTS</span><br><span style="color: hsl(0, 100%, 40%);">-             self.append_trx(self.argv.bts_addr, self.argv.bts_base_port)</span><br><span style="color: hsl(120, 100%, 40%);">+          self.append_trx(self.argv.bts_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+                   self.argv.bts_base_port, name = "BTS")</span><br><span> </span><br><span>                 # Init TRX instance for BB</span><br><span style="color: hsl(0, 100%, 40%);">-              self.append_trx(self.argv.bb_addr, self.argv.bb_base_port)</span><br><span style="color: hsl(120, 100%, 40%);">+            self.append_trx(self.argv.bb_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+                    self.argv.bb_base_port, name = "MS")</span><br><span> </span><br><span>           # Additional transceivers (optional)</span><br><span>                 if self.argv.trx_list is not None:</span><br><span>                   for trx_def in self.argv.trx_list:</span><br><span style="color: hsl(0, 100%, 40%);">-                              (addr, port, idx) = trx_def</span><br><span style="color: hsl(0, 100%, 40%);">-                             self.append_child_trx(addr, port, idx)</span><br><span style="color: hsl(120, 100%, 40%);">+                                (name, addr, port, idx) = trx_def</span><br><span style="color: hsl(120, 100%, 40%);">+                             self.append_child_trx(addr, port, idx, name)</span><br><span> </span><br><span>             # Burst forwarding between transceivers</span><br><span>              self.burst_fwd = BurstForwarder(self.trx_list)</span><br><span> </span><br><span>           log.info("Init complete")</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- def append_trx(self, remote_addr, base_port):</span><br><span style="color: hsl(120, 100%, 40%);">+ def append_trx(self, remote_addr, base_port, name = None):</span><br><span>           trx = FakeTRX(self.argv.trx_bind_addr, remote_addr, base_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                  clck_gen = self.clck_gen, pwr_meas = self.fake_pm)</span><br><span style="color: hsl(120, 100%, 40%);">+                    clck_gen = self.clck_gen, pwr_meas = self.fake_pm,</span><br><span style="color: hsl(120, 100%, 40%);">+                    name = name)</span><br><span>                 self.trx_list.add_trx(trx)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  def append_child_trx(self, remote_addr, base_port, child_idx):</span><br><span style="color: hsl(120, 100%, 40%);">+        def append_child_trx(self, remote_addr, base_port, child_idx, name = None):</span><br><span>          # Index 0 corresponds to the first transceiver</span><br><span>               if child_idx is 0:</span><br><span style="color: hsl(0, 100%, 40%);">-                      self.append_trx(remote_addr, base_port)</span><br><span style="color: hsl(120, 100%, 40%);">+                       self.append_trx(remote_addr, base_port, name)</span><br><span>                        return</span><br><span> </span><br><span>           # Find 'parent' transceiver for a new child</span><br><span>@@ -323,7 +326,7 @@</span><br><span> </span><br><span>                # Allocate a new child</span><br><span>               trx_child = FakeTRX(self.argv.trx_bind_addr, remote_addr, base_port,</span><br><span style="color: hsl(0, 100%, 40%);">-                    child_idx = child_idx, pwr_meas = self.fake_pm)</span><br><span style="color: hsl(120, 100%, 40%);">+                       child_idx = child_idx, pwr_meas = self.fake_pm, name = name)</span><br><span>                 self.trx_list.add_trx(trx_child)</span><br><span> </span><br><span>                 # Link a new 'child' with its 'parent'</span><br><span>@@ -363,11 +366,12 @@</span><br><span>       # format: REMOTE_ADDR:BIND_PORT[/TRX_NUM]</span><br><span>    # e.g. [2001:0db8:85a3:0000:0000:8a2e:0370:7334]:5700/5</span><br><span>      # e.g. 127.0.0.1:5700 or 127.0.0.1:5700/1</span><br><span style="color: hsl(120, 100%, 40%);">+     # e.g. foo@127.0.0.1:5700 or bar@127.0.0.1:5700/1</span><br><span>    @staticmethod</span><br><span>        def trx_def(val):</span><br><span>            try:</span><br><span style="color: hsl(0, 100%, 40%);">-                    result = re.match("(.+):([0-9]+)(\/[0-9]+)?", val)</span><br><span style="color: hsl(0, 100%, 40%);">-                    (addr, port, idx) = result.groups()</span><br><span style="color: hsl(120, 100%, 40%);">+                   result = re.match("(.+@)?(.+):([0-9]+)(\/[0-9]+)?", val)</span><br><span style="color: hsl(120, 100%, 40%);">+                    (name, addr, port, idx) = result.groups()</span><br><span>            except:</span><br><span>                      raise argparse.ArgumentTypeError("Invalid TRX definition: %s" % val)</span><br><span> </span><br><span>@@ -376,7 +380,11 @@</span><br><span>            else:</span><br><span>                        idx = 0</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-             return (addr, int(port), idx)</span><br><span style="color: hsl(120, 100%, 40%);">+         # Cut '@' from TRX name</span><br><span style="color: hsl(120, 100%, 40%);">+               if name is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+                  name = name[:-1]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            return (name, addr, int(port), idx)</span><br><span> </span><br><span>      def parse_argv(self):</span><br><span>                parser = argparse.ArgumentParser(prog = "fake_trx",</span><br><span>diff --git a/src/target/trx_toolkit/transceiver.py b/src/target/trx_toolkit/transceiver.py</span><br><span>index 6c72a26..9c234fd 100644</span><br><span>--- a/src/target/trx_toolkit/transceiver.py</span><br><span>+++ b/src/target/trx_toolkit/transceiver.py</span><br><span>@@ -90,7 +90,7 @@</span><br><span> </span><br><span>       """</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  def __init__(self, bind_addr, remote_addr, base_port,</span><br><span style="color: hsl(120, 100%, 40%);">+ def __init__(self, bind_addr, remote_addr, base_port, name = None,</span><br><span>                   child_idx = 0, clck_gen = None, pwr_meas = None):</span><br><span>            # Connection info</span><br><span>            self.remote_addr = remote_addr</span><br><span>@@ -98,6 +98,9 @@</span><br><span>           self.base_port = base_port</span><br><span>           self.child_idx = child_idx</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+                # Meta info</span><br><span style="color: hsl(120, 100%, 40%);">+           self.name = name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>           log.info("Init transceiver '%s'" % self)</span><br><span> </span><br><span>               # Child transceiver cannot have its own clock</span><br><span>@@ -141,6 +144,8 @@</span><br><span>          desc = "%s:%d" % (self.remote_addr, self.base_port)</span><br><span>                if self.child_idx > 0:</span><br><span>                    desc += "/%d" % self.child_idx</span><br><span style="color: hsl(120, 100%, 40%);">+              if self.name is not None:</span><br><span style="color: hsl(120, 100%, 40%);">+                     desc = "%s@%s" % (self.name, desc)</span><br><span> </span><br><span>             return desc</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12549">change 12549</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/12549"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I2f58f02e7819bb008b8aab1a8bf9e0adeb2e44ec </div>
<div style="display:none"> Gerrit-Change-Number: 12549 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>