[PATCH 2/3] Improve BSSGP debug output

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/OpenBSC@lists.osmocom.org/.

msuraev at sysmocom.de msuraev at sysmocom.de
Wed Mar 9 11:29:24 UTC 2016


From: Max <msuraev at sysmocom.de>

Print string representation of Cause IE and PDU type in addition to
numerical value.
---
 src/gb/gprs_bssgp.c     | 28 ++++++++++++++--------------
 src/gb/gprs_bssgp_bss.c |  6 +++---
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c
index e3e69c9..c19f05a 100644
--- a/src/gb/gprs_bssgp.c
+++ b/src/gb/gprs_bssgp.c
@@ -896,8 +896,8 @@ static int bssgp_rx_ptp(struct msgb *msg, struct tlv_parsed *tp,
 	case BSSGP_PDUT_CREATE_BSS_PFC_NACK:
 	case BSSGP_PDUT_MODIFY_BSS_PFC:
 	case BSSGP_PDUT_DELETE_BSS_PFC_ACK:
-		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x not [yet] "
-			"implemented\n", bctx->bvci, pdu_type);
+		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x (%s) not [yet] "
+		       "implemented\n", bctx->bvci, pdu_type, bssgp_pdu_str(pdu_type));
 		rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg);
 		break;
 	/* those only exist in the SGSN -> BSS direction */
@@ -907,14 +907,14 @@ static int bssgp_rx_ptp(struct msgb *msg, struct tlv_parsed *tp,
 	case BSSGP_PDUT_RA_CAPA_UPDATE_ACK:
 	case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK:
 	case BSSGP_PDUT_FLOW_CONTROL_MS_ACK:
-		DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type 0x%02x only exists "
-			"in DL\n", bctx->bvci, pdu_type);
+		DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type 0x%02x (%s) only exists "
+			"in DL\n", bctx->bvci, pdu_type, bssgp_pdu_str(pdu_type));
 		bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);
 		rc = -EINVAL;
 		break;
 	default:
-		DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type 0x%02x unknown\n",
-			bctx->bvci, pdu_type);
+		DEBUGP(DBSSGP, "BSSGP BVCI=%u PDU type 0x%02x (%s) unknown\n",
+			bctx->bvci, pdu_type, bssgp_pdu_str(pdu_type));
 		rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);
 		break;
 	}
@@ -999,14 +999,14 @@ static int bssgp_rx_sign(struct msgb *msg, struct tlv_parsed *tp,
 	case BSSGP_PDUT_BVC_BLOCK_ACK:
 	case BSSGP_PDUT_BVC_UNBLOCK_ACK:
 	case BSSGP_PDUT_SGSN_INVOKE_TRACE:
-		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x only exists "
-			"in DL\n", bvci, pdu_type);
+		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x (%s) only exists "
+			"in DL\n", bvci, pdu_type, bssgp_pdu_str(pdu_type));
 		bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);
 		rc = -EINVAL;
 		break;
 	default:
-		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x unknown\n",
-			bvci, pdu_type);
+		DEBUGP(DBSSGP, "BSSGP BVCI=%u Rx PDU type 0x%02x (%s) unknown\n",
+			bvci, pdu_type, bssgp_pdu_str(pdu_type));
 		rc = bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg);
 		break;
 	}
@@ -1066,8 +1066,8 @@ int bssgp_rcvmsg(struct msgb *msg)
 	if (!bctx && bvci != BVCI_SIGNALLING &&
 	    pdu_type != BSSGP_PDUT_BVC_RESET) {
 		LOGP(DBSSGP, LOGL_NOTICE, "NSEI=%u/BVCI=%u Rejecting PDU "
-			"type %u for unknown BVCI\n", msgb_nsei(msg), bvci,
-			pdu_type);
+			"type %u (%s) for unknown BVCI\n", msgb_nsei(msg), bvci,
+			pdu_type, bssgp_pdu_str(pdu_type));
 		return bssgp_tx_status(BSSGP_CAUSE_UNKNOWN_BVCI, &bvci, msg);
 	}
 
@@ -1079,9 +1079,9 @@ int bssgp_rcvmsg(struct msgb *msg)
 		rc = bssgp_rx_ptp(msg, &tp, bctx);
 	else
 		LOGP(DBSSGP, LOGL_NOTICE,
-			"NSEI=%u/BVCI=%u Cannot handle PDU type %u for "
+			"NSEI=%u/BVCI=%u Cannot handle PDU type %u (%s) for "
 			"unknown BVCI, NS BVCI %u\n",
-			msgb_nsei(msg), bvci, pdu_type, ns_bvci);
+			msgb_nsei(msg), bvci, pdu_type, , bssgp_pdu_str(pdu_type), ns_bvci);
 
 	return rc;
 }
diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c
index 3a9012e..955e2b4 100644
--- a/src/gb/gprs_bssgp_bss.c
+++ b/src/gb/gprs_bssgp_bss.c
@@ -135,7 +135,7 @@ static struct msgb *common_tx_radio_status(struct bssgp_bvc_ctx *bctx)
 static int common_tx_radio_status2(struct msgb *msg, uint8_t cause)
 {
 	msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause);
-	LOGPC(DBSSGP, LOGL_NOTICE, "CAUSE=%u\n", cause);
+	LOGPC(DBSSGP, LOGL_NOTICE, "CAUSE=%u (%s)\n", cause, bssgp_cause_str(cause));
 
 	return gprs_ns_sendmsg(bssgp_nsi, msg);
 }
@@ -247,7 +247,7 @@ int bssgp_tx_bvc_block(struct bssgp_bvc_ctx *bctx, uint8_t cause)
 	uint16_t _bvci = htons(bctx->bvci);
 
 	LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK "
-	     "CAUSE=%u\n", bctx->bvci, cause);
+		"CAUSE=%u (%s)\n", bctx->bvci, cause, bssgp_cause_str(cause));
 
 	msgb_nsei(msg) = bctx->nsei;
 	msgb_bvci(msg) = 0; /* Signalling */
@@ -287,7 +287,7 @@ int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause)
 	uint16_t _bvci = htons(bvci);
 
 	LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-RESET "
-	     "CAUSE=%u\n", bvci, cause);
+		"CAUSE=%u (%s)\n", bvci, cause, bssgp_cause_str(cause));
 
 	msgb_nsei(msg) = bctx->nsei;
 	msgb_bvci(msg) = 0; /* Signalling */
-- 
2.7.2




More information about the OpenBSC mailing list