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