diff mbox

[1/3] Add helper function to convert numerical BSSGP PDU type to string

Message ID 1457522965-27238-1-git-send-email-msuraev@sysmocom.de
State Accepted, archived
Delegated to: Harald Welte
Headers show

Commit Message

Max March 9, 2016, 11:29 a.m. UTC
From: Max <msuraev@sysmocom.de>

---
 include/osmocom/gprs/gprs_bssgp.h |  1 +
 src/gb/gprs_bssgp_util.c          | 46 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

Comments

Harald Welte March 11, 2016, 3:32 p.m. UTC | #1
thanks, applied.
diff mbox

Patch

diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h
index c0b3f65..b70487c 100644
--- a/include/osmocom/gprs/gprs_bssgp.h
+++ b/include/osmocom/gprs/gprs_bssgp.h
@@ -14,6 +14,7 @@  extern struct gprs_ns_inst *bssgp_nsi;
 struct msgb *bssgp_msgb_alloc(void);
 struct msgb *bssgp_msgb_copy(const struct msgb *msg, const char *name);
 const char *bssgp_cause_str(enum gprs_bssgp_cause cause);
+const char *bssgp_pdu_str(enum bssgp_pdu_type pdu);
 /* Transmit a simple response such as BLOCK/UNBLOCK/RESET ACK/NACK */
 int bssgp_tx_simple_bvci(uint8_t pdu_type, uint16_t nsei,
 			 uint16_t bvci, uint16_t ns_bvci);
diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c
index 19ae23a..6fff362 100644
--- a/src/gb/gprs_bssgp_util.c
+++ b/src/gb/gprs_bssgp_util.c
@@ -62,11 +62,57 @@  static const struct value_string bssgp_cause_strings[] = {
 	{ 0, NULL },
 };
 
+static const struct value_string bssgp_pdu_strings[] = {
+	{ BSSGP_PDUT_DL_UNITDATA,		"DL-UNITDATA" },
+	{ BSSGP_PDUT_UL_UNITDATA,		"UL-UNITDATA" },
+	{ BSSGP_PDUT_RA_CAPABILITY,		"RA-CAPABILITY" },
+	{ BSSGP_PDUT_PTM_UNITDATA,		"PTM-UNITDATA" },
+	{ BSSGP_PDUT_PAGING_PS,			"PAGING-PS" },
+	{ BSSGP_PDUT_PAGING_CS,			"PAGING-CS" },
+	{ BSSGP_PDUT_RA_CAPA_UDPATE,		"RA-CAPABILITY-UPDATE" },
+	{ BSSGP_PDUT_RA_CAPA_UPDATE_ACK,	"RA-CAPABILITY-UPDATE-ACK" },
+	{ BSSGP_PDUT_RADIO_STATUS,		"RADIO-STATUS" },
+	{ BSSGP_PDUT_SUSPEND,			"SUSPEND" },
+	{ BSSGP_PDUT_SUSPEND_ACK,		"SUSPEND-ACK" },
+	{ BSSGP_PDUT_SUSPEND_NACK,		"SUSPEND-NACK" },
+	{ BSSGP_PDUT_RESUME,			"RESUME" },
+	{ BSSGP_PDUT_RESUME_ACK,		"RESUME-ACK" },
+	{ BSSGP_PDUT_RESUME_NACK,		"RESUME-NACK" },
+	{ BSSGP_PDUT_BVC_BLOCK,			"BVC-BLOCK" },
+	{ BSSGP_PDUT_BVC_BLOCK_ACK,		"BVC-BLOCK-ACK" },
+	{ BSSGP_PDUT_BVC_RESET,			"BVC-RESET" },
+	{ BSSGP_PDUT_BVC_RESET_ACK,		"BVC-RESET-ACK" },
+	{ BSSGP_PDUT_BVC_UNBLOCK,		"BVC-UNBLOCK" },
+	{ BSSGP_PDUT_BVC_UNBLOCK_ACK,		"BVC-UNBLOCK-ACK" },
+	{ BSSGP_PDUT_FLOW_CONTROL_BVC,		"FLOW-CONTROL-BVC" },
+	{ BSSGP_PDUT_FLOW_CONTROL_BVC_ACK,	"FLOW-CONTROL-BVC-ACK" },
+	{ BSSGP_PDUT_FLOW_CONTROL_MS,		"FLOW-CONTROL-MS" },
+	{ BSSGP_PDUT_FLOW_CONTROL_MS_ACK,	"FLOW-CONTROL-MS-ACK" },
+	{ BSSGP_PDUT_FLUSH_LL,			"FLUSH-LL" },
+	{ BSSGP_PDUT_FLUSH_LL_ACK,		"FLUSH-LL-ACK" },
+	{ BSSGP_PDUT_LLC_DISCARD,		"LLC DISCARDED" },
+	{ BSSGP_PDUT_SGSN_INVOKE_TRACE,		"SGSN-INVOKE-TRACE" },
+	{ BSSGP_PDUT_STATUS,			"STATUS" },
+	{ BSSGP_PDUT_DOWNLOAD_BSS_PFC,		"DOWNLOAD-BSS-PFC" },
+	{ BSSGP_PDUT_CREATE_BSS_PFC,		"CREATE-BSS-PFC" },
+	{ BSSGP_PDUT_CREATE_BSS_PFC_ACK,	"CREATE-BSS-PFC-ACK" },
+	{ BSSGP_PDUT_CREATE_BSS_PFC_NACK,	"CREATE-BSS-PFC-NACK" },
+	{ BSSGP_PDUT_MODIFY_BSS_PFC,		"MODIFY-BSS-PFC" },
+	{ BSSGP_PDUT_MODIFY_BSS_PFC_ACK,	"MODIFY-BSS-PFC-ACK" },
+	{ BSSGP_PDUT_DELETE_BSS_PFC,		"DELETE-BSS-PFC" },
+	{ BSSGP_PDUT_DELETE_BSS_PFC_ACK,	"DELETE-BSS-PFC-ACK" },
+	{ 0, NULL },
+};
+
 const char *bssgp_cause_str(enum gprs_bssgp_cause cause)
 {
 	return get_value_string(bssgp_cause_strings, cause);
 }
 
+const char *bssgp_pdu_str(enum bssgp_pdu_type pdu)
+{
+	return get_value_string(bssgp_pdu_strings, pdu);
+}
 
 struct msgb *bssgp_msgb_alloc(void)
 {