<p>Piotr Krysik <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10424">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Piotr Krysik: Looks good to me, approved; Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gsm_trx_burst_if: allow to customize the bind address<br><br>Pleviously remote address for DATA interface was also used as the<br>bind address, what is definitely wrong. Let's change the API a bit<br>in order to allow one to specify a custom bind address.<br><br>Change-Id: I6e5f7b7119ac454217b8dd04f9ee0dd3b23972b6<br>---<br>M grc/trx/gsm_trx_burst_if.xml<br>M include/grgsm/misc_utils/udp_socket.h<br>M include/grgsm/trx/trx_burst_if.h<br>M lib/misc_utils/udp_socket.cc<br>M lib/trx/trx_burst_if_impl.cc<br>M lib/trx/trx_burst_if_impl.h<br>M python/trx/radio_if.py<br>7 files changed, 26 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/grc/trx/gsm_trx_burst_if.xml b/grc/trx/gsm_trx_burst_if.xml</span><br><span>index 99427b3..49979a3 100644</span><br><span>--- a/grc/trx/gsm_trx_burst_if.xml</span><br><span>+++ b/grc/trx/gsm_trx_burst_if.xml</span><br><span>@@ -3,7 +3,7 @@</span><br><span>   <name>TRX Burst Interface</name></span><br><span>   <key>gsm_trx_burst_if</key></span><br><span>   <import>import grgsm</import></span><br><span style="color: hsl(0, 100%, 40%);">-  <make>grgsm.trx_burst_if($remote_addr, $base_port)</make></span><br><span style="color: hsl(120, 100%, 40%);">+  <make>grgsm.trx_burst_if($bind_addr, $remote_addr, $base_port)</make></span><br><span> </span><br><span>   <param></span><br><span>     <name>base_port</name></span><br><span>@@ -13,6 +13,13 @@</span><br><span>   </param></span><br><span> </span><br><span>   <param></span><br><span style="color: hsl(120, 100%, 40%);">+    <name>bind_addr</name></span><br><span style="color: hsl(120, 100%, 40%);">+    <key>bind_addr</key></span><br><span style="color: hsl(120, 100%, 40%);">+    <value>0.0.0.0</value></span><br><span style="color: hsl(120, 100%, 40%);">+    <type>string</type></span><br><span style="color: hsl(120, 100%, 40%);">+  </param></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <param></span><br><span>     <name>remote_addr</name></span><br><span>     <key>remote_addr</key></span><br><span>     <value>127.0.0.1</value></span><br><span>diff --git a/include/grgsm/misc_utils/udp_socket.h b/include/grgsm/misc_utils/udp_socket.h</span><br><span>index 15b2c66..d1ceb9f 100644</span><br><span>--- a/include/grgsm/misc_utils/udp_socket.h</span><br><span>+++ b/include/grgsm/misc_utils/udp_socket.h</span><br><span>@@ -53,8 +53,9 @@</span><br><span> </span><br><span>     public:</span><br><span>       udp_socket(</span><br><span style="color: hsl(0, 100%, 40%);">-        const std::string &remote_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+        const std::string &bind_addr,</span><br><span>         const std::string &src_port,</span><br><span style="color: hsl(120, 100%, 40%);">+        const std::string &remote_addr,</span><br><span>         const std::string &dst_port,</span><br><span>         size_t mtu);</span><br><span>       ~udp_socket();</span><br><span>diff --git a/include/grgsm/trx/trx_burst_if.h b/include/grgsm/trx/trx_burst_if.h</span><br><span>index 0e7a35a..9277dc5 100644</span><br><span>--- a/include/grgsm/trx/trx_burst_if.h</span><br><span>+++ b/include/grgsm/trx/trx_burst_if.h</span><br><span>@@ -48,6 +48,7 @@</span><br><span>        * creating new instances.</span><br><span>        */</span><br><span>       static sptr make(</span><br><span style="color: hsl(120, 100%, 40%);">+        const std::string &bind_addr,</span><br><span>         const std::string &remote_addr,</span><br><span>         const std::string &base_port);</span><br><span>     };</span><br><span>diff --git a/lib/misc_utils/udp_socket.cc b/lib/misc_utils/udp_socket.cc</span><br><span>index 73393a0..c43f183 100644</span><br><span>--- a/lib/misc_utils/udp_socket.cc</span><br><span>+++ b/lib/misc_utils/udp_socket.cc</span><br><span>@@ -38,8 +38,9 @@</span><br><span>   namespace gsm {</span><br><span> </span><br><span>     udp_socket::udp_socket(</span><br><span style="color: hsl(0, 100%, 40%);">-      const std::string &remote_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+      const std::string &bind_addr,</span><br><span>       const std::string &src_port,</span><br><span style="color: hsl(120, 100%, 40%);">+      const std::string &remote_addr,</span><br><span>       const std::string &dst_port,</span><br><span>       size_t mtu)</span><br><span>     {</span><br><span>@@ -50,7 +51,7 @@</span><br><span>       udp::resolver resolver(d_io_service);</span><br><span> </span><br><span>       udp::resolver::query rx_query(</span><br><span style="color: hsl(0, 100%, 40%);">-        udp::v4(), remote_addr, src_port,</span><br><span style="color: hsl(120, 100%, 40%);">+        udp::v4(), bind_addr, src_port,</span><br><span>         boost::asio::ip::resolver_query_base::passive);</span><br><span>       udp::resolver::query tx_query(</span><br><span>         udp::v4(), remote_addr, dst_port,</span><br><span>diff --git a/lib/trx/trx_burst_if_impl.cc b/lib/trx/trx_burst_if_impl.cc</span><br><span>index e3fcc89..f72eecd 100644</span><br><span>--- a/lib/trx/trx_burst_if_impl.cc</span><br><span>+++ b/lib/trx/trx_burst_if_impl.cc</span><br><span>@@ -48,19 +48,22 @@</span><br><span> </span><br><span>     trx_burst_if::sptr</span><br><span>     trx_burst_if::make(</span><br><span style="color: hsl(120, 100%, 40%);">+      const std::string &bind_addr,</span><br><span>       const std::string &remote_addr,</span><br><span>       const std::string &base_port)</span><br><span>     {</span><br><span>       int base_port_int = boost::lexical_cast<int> (base_port);</span><br><span> </span><br><span>       return gnuradio::get_initial_sptr</span><br><span style="color: hsl(0, 100%, 40%);">-        (new trx_burst_if_impl(remote_addr, base_port_int));</span><br><span style="color: hsl(120, 100%, 40%);">+        (new trx_burst_if_impl(bind_addr, remote_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+          base_port_int));</span><br><span>     }</span><br><span> </span><br><span>     /*</span><br><span>      * The private constructor</span><br><span>      */</span><br><span>     trx_burst_if_impl::trx_burst_if_impl(</span><br><span style="color: hsl(120, 100%, 40%);">+      const std::string &bind_addr,</span><br><span>       const std::string &remote_addr,</span><br><span>       int base_port</span><br><span>     ) : gr::block("trx_burst_if",</span><br><span>@@ -79,8 +82,8 @@</span><br><span>         std::string data_dst_port = boost::lexical_cast<std::string> (base_port + 102);</span><br><span> </span><br><span>         // Init DATA interface</span><br><span style="color: hsl(0, 100%, 40%);">-        d_data_sock = new udp_socket(remote_addr,</span><br><span style="color: hsl(0, 100%, 40%);">-          data_src_port, data_dst_port, DATA_IF_MTU);</span><br><span style="color: hsl(120, 100%, 40%);">+        d_data_sock = new udp_socket(bind_addr, data_src_port,</span><br><span style="color: hsl(120, 100%, 40%);">+          remote_addr, data_dst_port, DATA_IF_MTU);</span><br><span> </span><br><span>         // Bind DATA interface handler</span><br><span>         d_data_sock->udp_rx_handler = boost::bind(</span><br><span>diff --git a/lib/trx/trx_burst_if_impl.h b/lib/trx/trx_burst_if_impl.h</span><br><span>index 27ec259..fdb49f2 100644</span><br><span>--- a/lib/trx/trx_burst_if_impl.h</span><br><span>+++ b/lib/trx/trx_burst_if_impl.h</span><br><span>@@ -40,7 +40,8 @@</span><br><span>       void burst_pack(pmt::pmt_t msg, uint8_t *buf);</span><br><span> </span><br><span>      public:</span><br><span style="color: hsl(0, 100%, 40%);">-      trx_burst_if_impl(const std::string &remote_addr, int base_port);</span><br><span style="color: hsl(120, 100%, 40%);">+      trx_burst_if_impl(const std::string &bind_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+        const std::string &remote_addr, int base_port);</span><br><span>       ~trx_burst_if_impl();</span><br><span> </span><br><span>       void handle_dl_burst(pmt::pmt_t msg);</span><br><span>diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py</span><br><span>index 2648cc9..25a35a5 100644</span><br><span>--- a/python/trx/radio_if.py</span><br><span>+++ b/python/trx/radio_if.py</span><br><span>@@ -81,7 +81,8 @@</span><br><span>       def __init__(self, phy_args, phy_sample_rate,</span><br><span>                        phy_rx_gain, phy_tx_gain, phy_ppm,</span><br><span>                   phy_rx_antenna, phy_tx_antenna,</span><br><span style="color: hsl(0, 100%, 40%);">-                 trx_remote_addr, trx_base_port):</span><br><span style="color: hsl(120, 100%, 40%);">+                      trx_remote_addr, trx_base_port,</span><br><span style="color: hsl(120, 100%, 40%);">+                       trx_bind_addr = "0.0.0.0"):</span><br><span> </span><br><span>            print("[i] Init Radio interface")</span><br><span> </span><br><span>@@ -95,8 +96,8 @@</span><br><span> </span><br><span>              # TRX Burst Interface</span><br><span>                self.trx_burst_if = grgsm.trx_burst_if(</span><br><span style="color: hsl(0, 100%, 40%);">-                 trx_remote_addr, str(trx_base_port))</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+                  trx_bind_addr, trx_remote_addr,</span><br><span style="color: hsl(120, 100%, 40%);">+                       str(trx_base_port))</span><br><span> </span><br><span>              # RX path definition</span><br><span>                 self.phy_src = uhd.usrp_source(phy_args,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10424">change 10424</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/10424"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: gr-gsm </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I6e5f7b7119ac454217b8dd04f9ee0dd3b23972b6 </div>
<div style="display:none"> Gerrit-Change-Number: 10424 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Piotr Krysik <ptrkrysik@gmail.com> </div>