<p>pespin <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/15702">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, but someone else must approve
  osmith: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts-trx: Log TRXC and TRXD socket recv()/send() failures<br><br>Related: OS#4215<br>Change-Id: Ic3e41d82b43459495d45873d612a3bd349ac174a<br>---<br>M src/osmo-bts-trx/trx_if.c<br>1 file changed, 23 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c</span><br><span>index 9933109..1b8ea45 100644</span><br><span>--- a/src/osmo-bts-trx/trx_if.c</span><br><span>+++ b/src/osmo-bts-trx/trx_if.c</span><br><span>@@ -94,14 +94,18 @@</span><br><span>       struct phy_link *plink = ofd->data;</span><br><span>       struct phy_instance *pinst = phy_instance_by_num(plink, 0);</span><br><span>  char buf[1500];</span><br><span style="color: hsl(0, 100%, 40%);">- int len;</span><br><span style="color: hsl(120, 100%, 40%);">+      ssize_t len;</span><br><span>         uint32_t fn;</span><br><span> </span><br><span>     OSMO_ASSERT(pinst);</span><br><span> </span><br><span>      len = recv(ofd->fd, buf, sizeof(buf) - 1, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-        if (len <= 0)</span><br><span style="color: hsl(120, 100%, 40%);">+      if (len <= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+            strerror_r(errno, (char *)buf, sizeof(buf));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGPPHI(pinst, DTRX, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+                      "recv() failed on TRXD with rc=%zd (%s)\n", len, buf);</span><br><span>             return len;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span>    buf[len] = '\0';</span><br><span> </span><br><span>         if (!!strncmp(buf, "IND CLOCK ", 10)) {</span><br><span>@@ -144,6 +148,7 @@</span><br><span>      struct trx_ctrl_msg *tcm;</span><br><span>    char buf[1500];</span><br><span>      int len;</span><br><span style="color: hsl(120, 100%, 40%);">+      ssize_t snd_len;</span><br><span> </span><br><span>         /* get first command */</span><br><span>      if (llist_empty(&l1h->trx_ctrl_list))</span><br><span>@@ -155,7 +160,12 @@</span><br><span> </span><br><span>      LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, "Sending control '%s'\n", buf);</span><br><span>        /* send command */</span><br><span style="color: hsl(0, 100%, 40%);">-      send(l1h->trx_ofd_ctrl.fd, buf, len+1, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ snd_len = send(l1h->trx_ofd_ctrl.fd, buf, len+1, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (snd_len <= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                strerror_r(errno, (char *)buf, sizeof(buf));</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+                   "send() failed on TRXC with rc=%zd (%s)\n", snd_len, buf);</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span> </span><br><span>        /* start timer */</span><br><span>    osmo_timer_schedule(&l1h->trx_ctrl_timer, 2, 0);</span><br><span>@@ -979,8 +989,9 @@</span><br><span> </span><br><span>    buf_len = recv(ofd->fd, buf, sizeof(buf), 0);</span><br><span>     if (buf_len <= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                strerror_r(errno, (char *)buf, sizeof(buf));</span><br><span>                 LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-                     "recv() failed on TRXD with rc=%zd\n", buf_len);</span><br><span style="color: hsl(120, 100%, 40%);">+                    "recv() failed on TRXD with rc=%zd (%s)\n", buf_len, buf);</span><br><span>                 return buf_len;</span><br><span>      }</span><br><span> </span><br><span>@@ -1058,6 +1069,7 @@</span><br><span> int trx_if_send_burst(struct trx_l1h *l1h, uint8_t tn, uint32_t fn, uint8_t pwr,</span><br><span>    const ubit_t *bits, uint16_t nbits)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+      ssize_t snd_len;</span><br><span>     uint8_t hdr_ver = l1h->config.trxd_hdr_ver_use;</span><br><span>   uint8_t buf[TRX_DATA_MSG_MAX_LEN];</span><br><span> </span><br><span>@@ -1094,7 +1106,13 @@</span><br><span> </span><br><span>  /* we must be sure that TRX is on */</span><br><span>         if (trx_if_powered(l1h)) {</span><br><span style="color: hsl(0, 100%, 40%);">-              send(l1h->trx_ofd_data.fd, buf, nbits + 6, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+             snd_len = send(l1h->trx_ofd_data.fd, buf, nbits + 6, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+           if (snd_len <= 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        strerror_r(errno, (char *)buf, sizeof(buf));</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+                           "send() failed on TRXD with rc=%zd (%s)\n", snd_len, buf);</span><br><span style="color: hsl(120, 100%, 40%);">+                  return -2;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span>    } else</span><br><span>               LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Ignoring TX data, transceiver powered off.\n");</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/15702">change 15702</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-bts/+/15702"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic3e41d82b43459495d45873d612a3bd349ac174a </div>
<div style="display:none"> Gerrit-Change-Number: 15702 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>