Change in libosmo-abis[master]: introduce and use logging macros with context on E1 line / timeslot

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.org
Sun Jan 12 12:57:58 UTC 2020


laforge 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>


More information about the gerrit-log mailing list