<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-abis/+/16818">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">introduce and use logging macros with context on E1 line / timeslot<br><br>Change-Id: I447a2360757fed97ed50f9db1e2efbf2f90e46a0<br>---<br>M include/osmocom/abis/e1_input.h<br>M src/e1_input.c<br>M src/input/dahdi.c<br>M src/input/misdn.c<br>M src/input/rs232.c<br>M src/input/unixsocket.c<br>6 files changed, 123 insertions(+), 155 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/18/16818/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/abis/e1_input.h b/include/osmocom/abis/e1_input.h</span><br><span>index e6d5154..de1c504 100644</span><br><span>--- a/include/osmocom/abis/e1_input.h</span><br><span>+++ b/include/osmocom/abis/e1_input.h</span><br><span>@@ -14,6 +14,12 @@</span><br><span> #define NUM_E1_TS 32</span><br><span> #define E1INP_USE_DEFAULT (-1)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGPITS(e1ts, ss, level, fmt, args ...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(ss, level, "E1TS(%u:%u) " fmt, (e1ts)->line->num, (e1ts)->num, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGPIL(e1l, ss, level, fmt, args ...) \</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGP(ss, level, "E1L(%u) " fmt, (e1l)->num, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> enum e1inp_sign_type {</span><br><span> E1INP_SIGN_NONE,</span><br><span> E1INP_SIGN_OML,</span><br><span>diff --git a/src/e1_input.c b/src/e1_input.c</span><br><span>index 9e2f7b0..a707438 100644</span><br><span>--- a/src/e1_input.c</span><br><span>+++ b/src/e1_input.c</span><br><span>@@ -354,8 +354,7 @@</span><br><span> </span><br><span> line = e1inp_line_find(e1_nr);</span><br><span> if (line) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR, "E1 Line %u already exists\n",</span><br><span style="color: hsl(0, 100%, 40%);">- e1_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "E1 Line %u already exists\n", e1_nr);</span><br><span> return NULL;</span><br><span> }</span><br><span> </span><br><span>@@ -375,7 +374,7 @@</span><br><span> </span><br><span> line->rate_ctr = rate_ctr_group_alloc(line, &e1inp_ctr_g_d, line->num);</span><br><span> if (!line->rate_ctr) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR, "Cannot allocate counter group\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "Cannot allocate counter group\n");</span><br><span> talloc_free(line);</span><br><span> return NULL;</span><br><span> }</span><br><span>@@ -429,7 +428,7 @@</span><br><span> {</span><br><span> int old_refcnt = line->refcnt++;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count get: %d -> %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count get: %d -> %d\n",</span><br><span> line->name, line, old_refcnt, line->refcnt);</span><br><span> }</span><br><span> </span><br><span>@@ -437,7 +436,7 @@</span><br><span> {</span><br><span> int old_refcnt = line->refcnt--;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count put: %d -> %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count put: %d -> %d\n",</span><br><span> line->name, line, old_refcnt, line->refcnt);</span><br><span> </span><br><span> if (line->refcnt == 0) {</span><br><span>@@ -598,13 +597,13 @@</span><br><span> /* consult the list of signalling links */</span><br><span> link = e1inp_lookup_sign_link(ts, tei, sapi);</span><br><span> if (!link) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "didn't find signalling link for "</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(ts, DLMI, LOGL_ERROR, "didn't find signalling link for "</span><br><span> "tei %d, sapi %d\n", tei, sapi);</span><br><span> msgb_free(msg);</span><br><span> return -EINVAL;</span><br><span> }</span><br><span> if (!ts->line->ops->sign_link) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR, "Fix your application, "</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(ts, DLINP, LOGL_ERROR, "Fix your application, "</span><br><span> "no action set for signalling messages.\n");</span><br><span> msgb_free(msg);</span><br><span> return -ENOENT;</span><br><span>@@ -624,7 +623,7 @@</span><br><span> break;</span><br><span> default:</span><br><span> ret = -EINVAL;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "unknown TS type %u\n", ts->type);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(ts, DLMI, LOGL_ERROR, "unknown TS type %u\n", ts->type);</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span> }</span><br><span>@@ -652,7 +651,7 @@</span><br><span> else</span><br><span> tei = msg->data[1] >> 1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "<= len = %d, sapi(%d) tei(%d)\n", msg->len, sapi, tei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "<= len = %d, sapi(%d) tei(%d)\n", msg->len, sapi, tei);</span><br><span> </span><br><span> ret = lapd_receive(e1i_ts->lapd, msg, &error);</span><br><span> if (ret < 0) {</span><br><span>@@ -679,18 +678,18 @@</span><br><span> </span><br><span> switch (dp->oph.primitive) {</span><br><span> case PRIM_DL_EST:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "DL_EST: sapi(%d) tei(%d)\n", sapi, tei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "DL_EST: sapi(%d) tei(%d)\n", sapi, tei);</span><br><span> e1inp_event(e1i_ts, S_L_INP_TEI_UP, tei, sapi);</span><br><span> break;</span><br><span> case PRIM_DL_REL:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "DL_REL: sapi(%d) tei(%d)\n", sapi, tei);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "DL_REL: sapi(%d) tei(%d)\n", sapi, tei);</span><br><span> e1inp_event(e1i_ts, S_L_INP_TEI_DN, tei, sapi);</span><br><span> break;</span><br><span> case PRIM_DL_DATA:</span><br><span> case PRIM_DL_UNIT_DATA:</span><br><span> if (dp->oph.operation == PRIM_OP_INDICATION) {</span><br><span> msg->l2h = msg->l3h;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "RX: %s sapi=%d tei=%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "RX: %s sapi=%d tei=%d\n",</span><br><span> osmo_hexdump(msgb_l2(msg), msgb_l2len(msg)),</span><br><span> sapi, tei);</span><br><span> e1inp_rx_ts(e1i_ts, msg, tei, sapi);</span><br><span>@@ -698,7 +697,7 @@</span><br><span> }</span><br><span> break;</span><br><span> case PRIM_MDL_ERROR:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "MDL_EERROR: cause(%d)\n", dp->u.error_ind.cause);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "MDL_EERROR: cause(%d)\n", dp->u.error_ind.cause);</span><br><span> break;</span><br><span> default:</span><br><span> printf("ERROR: unknown prim\n");</span><br><span>@@ -738,8 +737,7 @@</span><br><span> return NULL;</span><br><span> len = subchan_mux_out(&e1i_ts->trau.mux, msg->data, 40);</span><br><span> if (len != 40) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "cannot transmit, failed to mux\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "cannot transmit, failed to mux\n");</span><br><span> msgb_free(msg);</span><br><span> return NULL;</span><br><span> }</span><br><span>@@ -754,7 +752,7 @@</span><br><span> msg = msgb_dequeue(&e1i_ts->hdlc.tx_queue);</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "unsupported E1 TS type %u\n", e1i_ts->type);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "unsupported E1 TS type %u\n", e1i_ts->type);</span><br><span> return NULL;</span><br><span> }</span><br><span> return msg;</span><br><span>diff --git a/src/input/dahdi.c b/src/input/dahdi.c</span><br><span>index 4d01fe0..6da1a02 100644</span><br><span>--- a/src/input/dahdi.c</span><br><span>+++ b/src/input/dahdi.c</span><br><span>@@ -134,7 +134,7 @@</span><br><span> if (rc < 0)</span><br><span> return;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "Line %u(%s) / TS %u DAHDI EVENT %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(ts, DLMI, LOGL_NOTICE, "Line %u(%s) / TS %u DAHDI EVENT %s\n",</span><br><span> ts->line->num, ts->line->name, ts->num,</span><br><span> get_value_string(dahdi_evt_names, evt));</span><br><span> </span><br><span>@@ -181,12 +181,12 @@</span><br><span> if (ret == -1)</span><br><span> handle_dahdi_exception(e1i_ts);</span><br><span> else if (ret < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> msgb_put(msg, ret - 2);</span><br><span> if (ret <= 3) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -199,7 +199,7 @@</span><br><span> * writeset, since it doesn't support poll() based</span><br><span> * write flow control */</span><br><span> if (e1i_ts->type == E1INP_TS_TYPE_TRAU) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "Trying to write TRAU ts\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "Trying to write TRAU ts\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -229,7 +229,7 @@</span><br><span> if (ret == -1)</span><br><span> handle_dahdi_exception(e1i_ts);</span><br><span> else if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span> }</span><br><span> </span><br><span> static int handle_ts1_write(struct osmo_fd *bfd)</span><br><span>@@ -249,7 +249,7 @@</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span> lapd_transmit(e1i_ts->lapd, sign_link->tei,</span><br><span> sign_link->sapi, msg);</span><br><span> </span><br><span>@@ -278,7 +278,7 @@</span><br><span> if (ret == -1)</span><br><span> handle_dahdi_exception(e1i_ts);</span><br><span> else if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span> }</span><br><span> </span><br><span> static int handle_hdlc_read(struct osmo_fd *bfd)</span><br><span>@@ -296,12 +296,12 @@</span><br><span> if (ret == -1)</span><br><span> handle_dahdi_exception(e1i_ts);</span><br><span> else if (ret < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> msgb_put(msg, ret - 2);</span><br><span> if (ret <= 3) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "%s read failed %d (%s)\n", __func__, ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -351,13 +351,12 @@</span><br><span> ret = subchan_mux_out(mx, tx_buf, D_BCHAN_TX_GRAN);</span><br><span> </span><br><span> if (ret != D_BCHAN_TX_GRAN) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "Huh, got ret of %d\n", ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "Huh, got ret of %d\n", ret);</span><br><span> if (ret < 0)</span><br><span> return ret;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "BCHAN TX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(tx_buf, D_BCHAN_TX_GRAN));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN TX: %s\n", osmo_hexdump(tx_buf, D_BCHAN_TX_GRAN));</span><br><span> </span><br><span> if (invertbits) {</span><br><span> flip_buf_bits(tx_buf, ret);</span><br><span>@@ -365,7 +364,7 @@</span><br><span> </span><br><span> ret = write(bfd->fd, tx_buf, ret);</span><br><span> if (ret < D_BCHAN_TX_GRAN)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "send returns %d instead of %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "send returns %d instead of %d\n",</span><br><span> ret, D_BCHAN_TX_GRAN);</span><br><span> </span><br><span> return ret;</span><br><span>@@ -386,8 +385,7 @@</span><br><span> </span><br><span> ret = read(bfd->fd, msg->data, D_TSX_ALLOC_SIZE);</span><br><span> if (ret < 0 || ret != D_TSX_ALLOC_SIZE) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "read error %d %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "read error %d %s\n", ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -398,8 +396,7 @@</span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span> msg->l2h = msg->data;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "BCHAN RX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msgb_l2(msg), ret));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN RX: %s\n", osmo_hexdump(msgb_l2(msg), ret));</span><br><span> ret = e1inp_rx_ts(e1i_ts, msg, 0, 0);</span><br><span> /* physical layer indicates that data has been sent,</span><br><span> * we thus can send some more data */</span><br><span>@@ -426,12 +423,11 @@</span><br><span> /* This might lead to a transmit underrun, as we call tx</span><br><span> * from the rx path, as there's no select/poll on dahdi</span><br><span> * */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_NOTICE, "unexpected msg->len = %u, "</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_NOTICE, "unexpected msg->len = %u, "</span><br><span> "expected %u\n", msg->len, D_BCHAN_TX_GRAN);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "RAW CHAN TX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "RAW CHAN TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span> </span><br><span> if (0/*invertbits*/) {</span><br><span> flip_buf_bits(msg->data, msg->len);</span><br><span>@@ -439,8 +435,7 @@</span><br><span> </span><br><span> ret = write(bfd->fd, msg->data, msg->len);</span><br><span> if (ret < msg->len)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "send returns %d instead of %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, msg->len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "send returns %d instead of %d\n", ret, msg->len);</span><br><span> msgb_free(msg);</span><br><span> </span><br><span> return ret;</span><br><span>@@ -459,8 +454,7 @@</span><br><span> </span><br><span> ret = read(bfd->fd, msg->data, D_TSX_ALLOC_SIZE);</span><br><span> if (ret < 0 || ret != D_TSX_ALLOC_SIZE) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "read error %d %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "read error %d %s\n", ret, strerror(errno));</span><br><span> return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -471,8 +465,7 @@</span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span> msg->l2h = msg->data;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "RAW CHAN RX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msgb_l2(msg), ret));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "RAW CHAN RX: %s\n", osmo_hexdump(msgb_l2(msg), ret));</span><br><span> ret = e1inp_rx_ts(e1i_ts, msg, 0, 0);</span><br><span> /* physical layer indicates that data has been sent,</span><br><span> * we thus can send some more data */</span><br><span>@@ -530,8 +523,7 @@</span><br><span> * write flow control */</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "unknown E1 TS type %u\n", e1i_ts->type);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_NOTICE, "unknown E1 TS type %u\n", e1i_ts->type);</span><br><span> break;</span><br><span> }</span><br><span> </span><br><span>@@ -641,9 +633,8 @@</span><br><span> </span><br><span> scfg = span_cfgs[line->port_nr];</span><br><span> if (!scfg) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "Line %u(%s): DAHDI Port %u (Span %u) "</span><br><span style="color: hsl(0, 100%, 40%);">- "doesn't exist\n", line->num, line->name, line->port_nr,</span><br><span style="color: hsl(0, 100%, 40%);">- line->port_nr+1);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "Line %u(%s): DAHDI Port %u (Span %u) doesn't exist\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line->num, line->name, line->port_nr, line->port_nr+1);</span><br><span> return -EIO;</span><br><span> }</span><br><span> </span><br><span>@@ -733,9 +724,7 @@</span><br><span> </span><br><span> ret = osmo_fd_register(bfd);</span><br><span> if (ret < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "could not register FD: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(ret));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_ERROR, "could not register FD: %s\n", strerror(ret));</span><br><span> return ret;</span><br><span> }</span><br><span> }</span><br><span>diff --git a/src/input/misdn.c b/src/input/misdn.c</span><br><span>index bdca9d5..fef1c0f 100644</span><br><span>--- a/src/input/misdn.c</span><br><span>+++ b/src/input/misdn.c</span><br><span>@@ -124,21 +124,21 @@</span><br><span> </span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "alen =%d, dev(%d) channel(%d) sapi(%d) tei(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "alen =%d, dev(%d) channel(%d) sapi(%d) tei(%d)\n",</span><br><span> alen, l2addr.dev, l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "<= len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "<= len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span> ret, hh->prim, hh->id, get_value_string(prim_names, hh->prim));</span><br><span> </span><br><span> switch (hh->prim) {</span><br><span> case DL_INFORMATION_IND:</span><br><span> /* mISDN tells us which channel number is allocated for this</span><br><span> * tuple of (SAPI, TEI). */</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "DL_INFORMATION_IND: use channel(%d) sapi(%d) tei(%d) for now\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "DL_INFORMATION_IND: use channel(%d) sapi(%d) tei(%d) for now\n",</span><br><span> l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> link = e1inp_lookup_sign_link(e1i_ts, l2addr.tei, l2addr.sapi);</span><br><span> if (!link) {</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGPC(DLMI, "mISDN message for unknown sign_link\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "mISDN message for unknown sign_link\n");</span><br><span> msgb_free(msg);</span><br><span> return -EINVAL;</span><br><span> }</span><br><span>@@ -147,14 +147,14 @@</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span> case DL_ESTABLISH_IND:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "DL_ESTABLISH_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "DL_ESTABLISH_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span> l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> /* For some strange reason, sometimes the DL_INFORMATION_IND tells</span><br><span> * us the wrong channel, and we only get the real channel number</span><br><span> * during the DL_ESTABLISH_IND */</span><br><span> link = e1inp_lookup_sign_link(e1i_ts, l2addr.tei, l2addr.sapi);</span><br><span> if (!link) {</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGPC(DLMI, "mISDN message for unknown sign_link\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "mISDN message for unknown sign_link\n");</span><br><span> msgb_free(msg);</span><br><span> return -EINVAL;</span><br><span> }</span><br><span>@@ -164,7 +164,7 @@</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span> case DL_RELEASE_IND:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "DL_RELEASE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "DL_RELEASE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span> l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> ret = e1inp_event(e1i_ts, S_L_INP_TEI_DN, l2addr.tei, l2addr.sapi);</span><br><span> msgb_free(msg);</span><br><span>@@ -172,33 +172,33 @@</span><br><span> case DL_DATA_IND:</span><br><span> case DL_UNITDATA_IND:</span><br><span> msg->l2h = msg->data + MISDN_HEADER_LEN;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "RX: %s\n", osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "RX: %s\n", osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));</span><br><span> if (mline->use_userspace_lapd) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "DL_DATA_IND but userspace LAPD ?!?\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "DL_DATA_IND but userspace LAPD ?!?\n");</span><br><span> msgb_free(msg);</span><br><span> return -EIO;</span><br><span> }</span><br><span> ret = e1inp_rx_ts(e1i_ts, msg, l2addr.tei, l2addr.sapi);</span><br><span> break;</span><br><span> case PH_ACTIVATE_IND:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "PH_ACTIVATE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "PH_ACTIVATE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span> l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span> case PH_DEACTIVATE_IND:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "PH_DEACTIVATE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "PH_DEACTIVATE_IND: channel(%d) sapi(%d) tei(%d)\n",</span><br><span> l2addr.channel, l2addr.sapi, l2addr.tei);</span><br><span> msgb_free(msg);</span><br><span> break;</span><br><span> case PH_DATA_IND:</span><br><span> if (!mline->use_userspace_lapd) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "PH_DATA_IND but kernel LAPD ?!?\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "PH_DATA_IND but kernel LAPD ?!?\n");</span><br><span> return -EIO;</span><br><span> }</span><br><span> /* remove the Misdn Header */</span><br><span> msgb_pull(msg, MISDN_HEADER_LEN);</span><br><span> /* hand into the LAPD code */</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "RX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "RX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span> ret = e1inp_rx_ts_lapd(e1i_ts, msg);</span><br><span> break;</span><br><span> default:</span><br><span>@@ -252,9 +252,8 @@</span><br><span> }</span><br><span> </span><br><span> if (mline->use_userspace_lapd) {</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "TX %u/%u/%u: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- line->num, sign_link->tei, sign_link->sapi,</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "TX %u/%u/%u: %s\n", line->num, sign_link->tei,</span><br><span style="color: hsl(120, 100%, 40%);">+ sign_link->sapi, osmo_hexdump(msg->data, msg->len));</span><br><span> lapd_transmit(e1i_ts->lapd, sign_link->tei,</span><br><span> sign_link->sapi, msg);</span><br><span> ret = 0;</span><br><span>@@ -265,7 +264,7 @@</span><br><span> hh = (struct mISDNhead *) msgb_push(msg, sizeof(*hh));</span><br><span> hh->prim = DL_DATA_REQ;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "TX channel(%d) TEI(%d) SAPI(%d): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "TX channel(%d) TEI(%d) SAPI(%d): %s\n",</span><br><span> sign_link->driver.misdn.channel, sign_link->tei,</span><br><span> sign_link->sapi, osmo_hexdump(l2_data, msg->len - MISDN_HEADER_LEN));</span><br><span> </span><br><span>@@ -295,13 +294,13 @@</span><br><span> static void misdn_write_msg(struct msgb *msg, void *cbdata)</span><br><span> {</span><br><span> struct osmo_fd *bfd = cbdata;</span><br><span style="color: hsl(0, 100%, 40%);">-// struct e1inp_line *line = bfd->data;</span><br><span style="color: hsl(0, 100%, 40%);">-// unsigned int ts_nr = bfd->priv_nr;</span><br><span style="color: hsl(0, 100%, 40%);">-// struct e1inp_ts *e1i_ts = &line->ts[ts_nr-1];</span><br><span style="color: hsl(120, 100%, 40%);">+ struct e1inp_line *line = bfd->data;</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int ts_nr = bfd->priv_nr;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct e1inp_ts *e1i_ts = &line->ts[ts_nr-1];</span><br><span> struct mISDNhead *hh;</span><br><span> int ret;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "PH_DATA_REQ: len=%d %s\n", msg->len,</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "PH_DATA_REQ: len=%d %s\n", msg->len,</span><br><span> osmo_hexdump(msg->data, msg->len));</span><br><span> </span><br><span> hh = (struct mISDNhead *) msgb_push(msg, MISDN_HEADER_LEN);</span><br><span>@@ -310,7 +309,7 @@</span><br><span> </span><br><span> ret = write(bfd->fd, msg->data, msg->len);</span><br><span> if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "write failed %d\n", ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_NOTICE, "write failed %d\n", ret);</span><br><span> </span><br><span> msgb_free(msg);</span><br><span> }</span><br><span>@@ -332,13 +331,11 @@</span><br><span> </span><br><span> subchan_mux_out(mx, tx_buf+sizeof(*hh), len);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "BCHAN TX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(tx_buf+sizeof(*hh), len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN TX: %s\n", osmo_hexdump(tx_buf+sizeof(*hh), len));</span><br><span> </span><br><span> ret = send(bfd->fd, tx_buf, sizeof(*hh) + len, 0);</span><br><span> if (ret < sizeof(*hh) + len)</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "send returns %d instead of %zu\n", ret,</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(*hh) + len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "send returns %d instead of %zu\n", ret, sizeof(*hh) + len);</span><br><span> </span><br><span> return ret;</span><br><span> }</span><br><span>@@ -368,14 +365,13 @@</span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span> if (hh->prim != PH_CONTROL_IND)</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "<= BCHAN len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, hh->prim, hh->id,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(prim_names, hh->prim));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "<= BCHAN len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ ret, hh->prim, hh->id, get_value_string(prim_names, hh->prim));</span><br><span> </span><br><span> switch (hh->prim) {</span><br><span> case PH_DATA_IND:</span><br><span> msg->l2h = msg->data + MISDN_HEADER_LEN;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "BCHAN RX: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN RX: %s\n",</span><br><span> osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));</span><br><span> /* the number of bytes received indicates that data to send */</span><br><span> handle_tsX_write(bfd, msgb_l2len(msg));</span><br><span>@@ -411,12 +407,10 @@</span><br><span> /* This might lead to a transmit underrun, as we call tx</span><br><span> * from the rx path, as there's no select/poll on dahdi</span><br><span> * */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_NOTICE, "unexpected msg->len = %u, "</span><br><span style="color: hsl(0, 100%, 40%);">- "expected %u\n", msg->len, len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_NOTICE, "unexpected msg->len = %u, expected %u\n", msg->len, len);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "RAW CHAN TX: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "RAW CHAN TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span> </span><br><span> hh = (struct mISDNhead *) msgb_push(msg, sizeof(*hh));</span><br><span> hh->prim = PH_DATA_REQ;</span><br><span>@@ -424,8 +418,7 @@</span><br><span> </span><br><span> ret = write(bfd->fd, msg->data, msg->len);</span><br><span> if (ret < msg->len)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "send returns %d instead of %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, msg->len);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "send returns %d instead of %d\n", ret, msg->len);</span><br><span> msgb_free(msg);</span><br><span> </span><br><span> return ret;</span><br><span>@@ -454,14 +447,13 @@</span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span> if (hh->prim != PH_CONTROL_IND)</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "<= RAW CHAN len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, hh->prim, hh->id,</span><br><span style="color: hsl(0, 100%, 40%);">- get_value_string(prim_names, hh->prim));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "<= RAW CHAN len = %d, prim(0x%x) id(0x%x): %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ ret, hh->prim, hh->id, get_value_string(prim_names, hh->prim));</span><br><span> </span><br><span> switch (hh->prim) {</span><br><span> case PH_DATA_IND:</span><br><span> msg->l2h = msg->data + MISDN_HEADER_LEN;</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMIB, "RAW CHAN RX: %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "RAW CHAN RX: %s\n",</span><br><span> osmo_hexdump(msgb_l2(msg), ret - MISDN_HEADER_LEN));</span><br><span> /* the number of bytes received indicates that data to send */</span><br><span> handle_ts_raw_write(bfd, msgb_l2len(msg));</span><br><span>@@ -661,8 +653,7 @@</span><br><span> addr.channel = ts;</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "unsupported E1 TS type: %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- e1i_ts->type);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "unsupported E1 TS type: %u\n", e1i_ts->type);</span><br><span> break;</span><br><span> }</span><br><span> </span><br><span>@@ -724,7 +715,7 @@</span><br><span> close(sk);</span><br><span> return -ENODEV;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- //DEBUGP(DLMI,"%d device%s found\n", cnt, (cnt==1)?"":"s");</span><br><span style="color: hsl(120, 100%, 40%);">+ //LOGPIL(line, DLMI, LOGL_DEBUG, "%d device%s found\n", cnt, (cnt==1)?"":"s");</span><br><span> printf("%d device%s found\n", cnt, (cnt==1)?"":"s");</span><br><span> #if 1</span><br><span> devinfo.id = line->port_nr;</span><br><span>diff --git a/src/input/rs232.c b/src/input/rs232.c</span><br><span>index c801ab2..dfbf97c 100644</span><br><span>--- a/src/input/rs232.c</span><br><span>+++ b/src/input/rs232.c</span><br><span>@@ -94,14 +94,14 @@</span><br><span> /* no message after tx delay timer */</span><br><span> return 0;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "rs232 TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "rs232 TX: %s\n", osmo_hexdump(msg->data, msg->len));</span><br><span> </span><br><span> rs232_build_msg(msg);</span><br><span> </span><br><span> /* send over serial line */</span><br><span> written = write(bfd->fd, msg->data, msg->len);</span><br><span> if (written < msg->len) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: short write\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "rs232: short write\n");</span><br><span> msgb_free(msg);</span><br><span> return -1;</span><br><span> }</span><br><span>@@ -118,6 +118,7 @@</span><br><span> static int handle_ser_read(struct osmo_fd *bfd)</span><br><span> {</span><br><span> struct serial_handle *sh = bfd->data;</span><br><span style="color: hsl(120, 100%, 40%);">+ struct e1inp_ts *e1i_ts = &sh->line->ts[0];</span><br><span> struct msgb *msg;</span><br><span> int rc = 0;</span><br><span> </span><br><span>@@ -131,7 +132,7 @@</span><br><span> if (msg->len < 2) {</span><br><span> rc = read(bfd->fd, msg->tail, 2 - msg->len);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: error reading from "</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "rs232: error reading from "</span><br><span> "serial port: %s\n", strerror(errno));</span><br><span> msgb_free(msg);</span><br><span> return rc;</span><br><span>@@ -141,16 +142,14 @@</span><br><span> if (msg->len >= 2) {</span><br><span> /* parse CRAPD payload length */</span><br><span> if (msg->data[0] != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Suspicious header byte 0: 0x%02x\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "Suspicious header byte 0: 0x%02x\n",</span><br><span> msg->data[0]);</span><br><span> }</span><br><span> sh->rxmsg_bytes_missing = msg->data[0] << 8;</span><br><span> sh->rxmsg_bytes_missing += msg->data[1];</span><br><span> </span><br><span> if (sh->rxmsg_bytes_missing < CRAPD_HDR_LEN -2) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Invalid length in hdr: %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "Invalid length in hdr: %u\n",</span><br><span> sh->rxmsg_bytes_missing);</span><br><span> }</span><br><span> }</span><br><span>@@ -158,8 +157,8 @@</span><br><span> /* try to read as many of the missing bytes as are available */</span><br><span> rc = read(bfd->fd, msg->tail, sh->rxmsg_bytes_missing);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: error reading from "</span><br><span style="color: hsl(0, 100%, 40%);">- "serial port: %s", strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "rs232: error reading from serial port: %s",</span><br><span style="color: hsl(120, 100%, 40%);">+ strerror(errno));</span><br><span> msgb_free(msg);</span><br><span> return rc;</span><br><span> }</span><br><span>@@ -167,7 +166,6 @@</span><br><span> sh->rxmsg_bytes_missing -= rc;</span><br><span> </span><br><span> if (sh->rxmsg_bytes_missing == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- struct e1inp_ts *e1i_ts = &sh->line->ts[0];</span><br><span> </span><br><span> /* we have one complete message now */</span><br><span> sh->rx_msg = NULL;</span><br><span>@@ -175,15 +173,13 @@</span><br><span> if (msg->len > CRAPD_HDR_LEN)</span><br><span> msg->l2h = msg->data + CRAPD_HDR_LEN;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- DEBUGP(DLMI, "rs232 RX: %s",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump(msg->data, msg->len));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_DEBUG, "rs232 RX: %s", osmo_hexdump(msg->data, msg->len));</span><br><span> </span><br><span> /* don't use e1inp_tx_ts() here, this header does not</span><br><span> * contain any SAPI and TEI values. */</span><br><span> if (!e1i_ts->line->ops->sign_link) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: no callback set, "</span><br><span style="color: hsl(0, 100%, 40%);">- "skipping message.\n");</span><br><span style="color: hsl(0, 100%, 40%);">- return -EINVAL;</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "rs232: no callback set, skipping message.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ return -EINVAL;</span><br><span> }</span><br><span> e1i_ts->line->ops->sign_link(msg);</span><br><span> }</span><br><span>@@ -226,8 +222,7 @@</span><br><span> </span><br><span> rc = open(serial_port, O_RDWR);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: cannot open serial port: %s",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "rs232: cannot open serial port: %s", strerror(errno));</span><br><span> return rc;</span><br><span> }</span><br><span> bfd->fd = rc;</span><br><span>@@ -235,8 +230,7 @@</span><br><span> /* set baudrate */</span><br><span> rc = tcgetattr(bfd->fd, &tio);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: tcgetattr says: %s",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "rs232: tcgetattr says: %s", strerror(errno));</span><br><span> return rc;</span><br><span> }</span><br><span> cfsetispeed(&tio, B19200);</span><br><span>@@ -249,16 +243,14 @@</span><br><span> tio.c_oflag &= ~(OPOST);</span><br><span> rc = tcsetattr(bfd->fd, TCSADRAIN, &tio);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: tcsetattr says: %s",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "rs232: tcsetattr says: %s", strerror(errno));</span><br><span> return rc;</span><br><span> }</span><br><span> </span><br><span> ser_handle = talloc_zero(tall_rs232_ctx, struct serial_handle);</span><br><span> if (ser_handle == NULL) {</span><br><span> close(bfd->fd);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: cannot allocate memory for "</span><br><span style="color: hsl(0, 100%, 40%);">- "serial handler\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "rs232: cannot allocate memory for serial handler\n");</span><br><span> return -ENOMEM;</span><br><span> }</span><br><span> ser_handle->line = line;</span><br><span>@@ -271,8 +263,7 @@</span><br><span> rc = osmo_fd_register(bfd);</span><br><span> if (rc < 0) {</span><br><span> close(bfd->fd);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "rs232: could not register FD: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- strerror(-rc));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "rs232: could not register FD: %s\n", strerror(-rc));</span><br><span> return rc;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/input/unixsocket.c b/src/input/unixsocket.c</span><br><span>index bc4b357..1d25ddf 100644</span><br><span>--- a/src/input/unixsocket.c</span><br><span>+++ b/src/input/unixsocket.c</span><br><span>@@ -58,15 +58,13 @@</span><br><span> {</span><br><span> struct e1inp_line *line = bfd->data;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Socket connection failure, reconnecting... (line=%p, fd=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- line, bfd->fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "Socket connection failure, reconnecting... (line=%p, fd=%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line, bfd->fd);</span><br><span> </span><br><span> /* Unregister faulty file descriptor from select loop */</span><br><span> if(osmo_fd_is_registered(bfd)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "removing inactive socket from select loop... (line=%p, fd=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- line, bfd->fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_DEBUG, "removing inactive socket from select loop... (line=%p, fd=%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line, bfd->fd);</span><br><span> osmo_fd_unregister(bfd);</span><br><span> }</span><br><span> </span><br><span>@@ -98,22 +96,21 @@</span><br><span> goto fail;</span><br><span> } else if (ret < 2) {</span><br><span> /* packet must be at least 2 byte long to hold version + control/data header */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "received to small packet: %d < 2", ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "received to small packet: %d < 2", ret);</span><br><span> ret = -1;</span><br><span> goto fail;</span><br><span> }</span><br><span> msgb_put(msg, ret);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_DEBUG, "rx msg: %s (fd=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump_nospc(msg->data, msg->len), bfd->fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_DEBUG, "rx msg: %s (fd=%d)\n", osmo_hexdump_nospc(msg->data, msg->len), bfd->fd);</span><br><span> </span><br><span> /* check version header */</span><br><span> version = msgb_pull_u8(msg);</span><br><span> controldata = msgb_pull_u8(msg);</span><br><span> </span><br><span> if (version != UNIXSOCKET_PROTO_VERSION) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "received message with invalid version %d. valid: %d",</span><br><span style="color: hsl(0, 100%, 40%);">- ret, UNIXSOCKET_PROTO_VERSION);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "received message with invalid version %d. valid: %d",</span><br><span style="color: hsl(120, 100%, 40%);">+ ret, UNIXSOCKET_PROTO_VERSION);</span><br><span> ret = -1;</span><br><span> goto fail;</span><br><span> }</span><br><span>@@ -122,11 +119,11 @@</span><br><span> case UNIXSOCKET_PROTO_DATA:</span><br><span> return e1inp_rx_ts_lapd(&line->ts[0], msg);</span><br><span> case UNIXSOCKET_PROTO_CONTROL:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "received (invalid) control message.");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "received (invalid) control message.");</span><br><span> ret = -1;</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_ERROR, "received invalid message.");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_ERROR, "received invalid message.");</span><br><span> ret = -1;</span><br><span> break;</span><br><span> }</span><br><span>@@ -156,8 +153,7 @@</span><br><span> msg = e1inp_tx_ts(e1i_ts, &sign_link);</span><br><span> if (!msg) {</span><br><span> /* no message after tx delay timer */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">- "no message available (line=%p)\n", line);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_INFO, "no message available (line=%p)\n", line);</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -166,8 +162,7 @@</span><br><span> </span><br><span> osmo_timer_schedule(&e1i_ts->sign.tx_timer, 0, e1i_ts->sign.delay);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "sending: %s (line=%p)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- msgb_hexdump(msg), line);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "sending: %s (line=%p)\n", msgb_hexdump(msg), line);</span><br><span> lapd_transmit(e1i_ts->lapd, sign_link->tei,</span><br><span> sign_link->sapi, msg);</span><br><span> </span><br><span>@@ -195,18 +190,20 @@</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static void unixsocket_write_msg(struct msgb *msg, struct osmo_fd *bfd) {</span><br><span style="color: hsl(120, 100%, 40%);">+static void unixsocket_write_msg(struct msgb *msg, struct osmo_fd *bfd)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct e1inp_line *line = bfd->data;</span><br><span> int ret;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_DEBUG, "tx msg: %s (fd=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- osmo_hexdump_nospc(msg->data, msg->len), bfd->fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_DEBUG, "tx msg: %s (fd=%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ osmo_hexdump_nospc(msg->data, msg->len), bfd->fd);</span><br><span> </span><br><span> ret = write(bfd->fd, msg->data, msg->len);</span><br><span> msgb_free(msg);</span><br><span> if (ret == -1)</span><br><span> unixsocket_exception_cb(bfd);</span><br><span> else if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLMI, LOGL_NOTICE, "%s write failed %d\n", __func__, ret);</span><br><span> }</span><br><span> </span><br><span> /*!</span><br><span>@@ -234,14 +231,13 @@</span><br><span> int ret = 0;</span><br><span> int i;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_NOTICE, "line update (line=%p)\n", line);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_NOTICE, "line update (line=%p)\n", line);</span><br><span> </span><br><span> if (!line->driver_data)</span><br><span> line->driver_data = talloc_zero(line, struct unixsocket_line);</span><br><span> </span><br><span> if (!line->driver_data) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "OOM in line update (line=%p)\n", line);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "OOM in line update (line=%p)\n", line);</span><br><span> return -ENOMEM;</span><br><span> }</span><br><span> </span><br><span>@@ -255,10 +251,10 @@</span><br><span> ret = snprintf(un.sun_path, sizeof(un.sun_path), "%s%d",</span><br><span> UNIXSOCKET_SOCK_PATH_DEFAULT, line->num);</span><br><span> if (ret == -1) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR, "Cannot create default socket path: %s\n", strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "Cannot create default socket path: %s\n", strerror(errno));</span><br><span> return -errno;</span><br><span> } else if (ret >= sizeof(un.sun_path)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR, "Default socket path exceeds %zd bytes: %s%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "Default socket path exceeds %zd bytes: %s%d\n",</span><br><span> sizeof(un.sun_path), UNIXSOCKET_SOCK_PATH_DEFAULT, line->num);</span><br><span> return -ENOSPC;</span><br><span> }</span><br><span>@@ -272,21 +268,18 @@</span><br><span> * opening the socket fails. The caller may want to call this</span><br><span> * function multiple times using config->fd.data as line</span><br><span> * parameter. Freeing now would destroy that reference. */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "unable to open socket: %s (line=%p, fd=%d)\n", sock_path,</span><br><span style="color: hsl(0, 100%, 40%);">- line, config->fd.fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "unable to open socket: %s (line=%p, fd=%d)\n", sock_path,</span><br><span style="color: hsl(120, 100%, 40%);">+ line, config->fd.fd);</span><br><span> return ret;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "successfully opend (new) socket: %s (line=%p, fd=%d, ret=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- sock_path, line, config->fd.fd, ret);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_DEBUG, "successfully opend (new) socket: %s (line=%p, fd=%d, ret=%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ sock_path, line, config->fd.fd, ret);</span><br><span> config->fd.fd = ret;</span><br><span> </span><br><span> /* Register socket in select loop */</span><br><span> if (osmo_fd_register(&config->fd) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "error registering new socket (line=%p, fd=%d)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- line, config->fd.fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(line, DLINP, LOGL_ERROR, "error registering new socket (line=%p, fd=%d)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line, config->fd.fd);</span><br><span> close(config->fd.fd);</span><br><span> return -EIO;</span><br><span> }</span><br><span>@@ -330,13 +323,13 @@</span><br><span> return;</span><br><span> </span><br><span> if (unixline->driver != &unixsocket_driver) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "altc is only supported by unixsocket\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(unixline, DLMI, LOGL_NOTICE, "altc is only supported by unixsocket\n");</span><br><span> return;</span><br><span> }</span><br><span> </span><br><span> config = unixline->driver_data;</span><br><span> if (!config) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMI, LOGL_NOTICE, "e1inp driver not yet initialized.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPIL(unixline, DLMI, LOGL_NOTICE, "e1inp driver not yet initialized.\n");</span><br><span> return;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-abis/+/16818">change 16818</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/libosmo-abis/+/16818"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: libosmo-abis </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I447a2360757fed97ed50f9db1e2efbf2f90e46a0 </div>
<div style="display:none"> Gerrit-Change-Number: 16818 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>