<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>At 3 am the trx stopped again. This time it exited (itself) after
      logging large amounts of packet loss,</p>
    <p>within 1 second or so....(as far back as the terminal history
      displays).</p>
    <p>Restarting it signal came back within a few seconds.</p>
    <p>UHD used: UHD_003.009.005-0-unknown installed with apt.</p>
    <p>trx: osmo-trx-uhd_0.4.0.124.42c1_armhf.deb</p>
    <p>It seems the interaction beween UHD and TRX is the problem, ( or
      the TRX itself ) since just rerunning</p>
    <p>trx fixes everything, and the rest of the BTS components seem
      functionally intact.<br>
    </p>
    <p><br>
    </p>
    <p>Gullik<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2018-12-21 13:21, Gullik Webjorn
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:4c1991aa-3e36-a9ed-c004-c4181aed9690@corevalue.se">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Hmm, is the event code actually generated by the uhd driver? It
        looks like</p>
      <p>the definition of EVENT_CODE_SEQ_ERROR that generates this log
        item comes</p>
      <p>from include/uhd/types/<a class="el"
          href="https://files.ettus.com/manual/metadata_8hpp_source.html"
          moz-do-not-send="true">metadata.hpp</a></p>
      <p>Gullik<br>
      </p>
      <p><br>
      </p>
      <pre><code><pre><span class="kt">bool</span> <span class="n">uhd_device</span><span class="o">::</span><span class="n">recv_async_msg</span><span class="p">()</span>
<span class="p">{</span>
        <span class="n">uhd</span><span class="o">::</span><span class="n">async_metadata_t</span> <span class="n">md</span><span class="p">;</span>

        <span class="n">thread_enable_cancel</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
        <span class="kt">bool</span> <span class="n">rc</span> <span class="o">=</span> <span class="n">usrp_dev</span><span class="o">-></span><span class="n">get_device</span><span class="p">()</span><span class="o">-></span><span class="n">recv_async_msg</span><span class="p">(</span><span class="n">md</span><span class="p">);</span>
        <span class="n">thread_enable_cancel</span><span class="p">(</span><span class="nb">true</span><span class="p">);</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">rc</span><span class="p">)</span>
                <span class="k">return</span> <span class="nb">false</span><span class="p">;</span>

        <span class="c1">// Assume that any error requires resynchronization</span>
        <span class="k">if</span> <span class="p">(</span><span class="n">md</span><span class="p">.</span><span class="n">event_code</span> <span class="o">!=</span> <span class="n">uhd</span><span class="o">::</span><span class="n">async_metadata_t</span><span class="o">::</span><span class="n">EVENT_CODE_BURST_ACK</span><span class="p">)</span> <span class="p">{</span>
                <span class="n">aligned</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">((</span><span class="n">md</span><span class="p">.</span><span class="n">event_code</span> <span class="o">!=</span> <span class="n">uhd</span><span class="o">::</span><span class="n">async_metadata_t</span><span class="o">::</span><span class="n">EVENT_CODE_UNDERFLOW</span><span class="p">)</span> <span class="o">&&</span>
                    <span class="p">(</span><span class="n">md</span><span class="p">.</span><span class="n">event_code</span> <span class="o">!=</span> <span class="n">uhd</span><span class="o">::</span><span class="n">async_metadata_t</span><span class="o">::</span><span class="n">EVENT_CODE_TIME_ERROR</span><span class="p">))</span> <span class="p">{</span>
                        <span class="n">LOGC</span><span class="p">(</span><span class="n">DDEV</span><span class="p">,</span> <span class="n">ERR</span><span class="p">)</span> <span class="o"><<</span> <span class="n">str_code</span><span class="p">(</span><span class="n">md</span><span class="p">);</span>
                <span class="p">}</span>
        <span class="p">}</span>

        <span class="k">return</span> <span class="nb">true</span><span class="p">;</span>
<span class="p">}</span></pre></code></pre>
      <br>
    </blockquote>
  </body>
</html>