add value_string definitions for RSL message types
diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c
index 12ac0cf..c497ba9 100644
--- a/src/gsm/rsl.c
+++ b/src/gsm/rsl.c
@@ -250,6 +250,82 @@
 	return get_value_string(rsl_err_vals, err);
 }
 
+/* Names for Radio Link Layer Management */
+static const struct value_string rsl_msgt_names[] = {
+	{ RSL_MT_DATA_REQ,		"DATA_REQ" },
+	{ RSL_MT_DATA_IND,		"DATA_IND" },
+	{ RSL_MT_ERROR_IND,		"ERROR_IND" },
+	{ RSL_MT_EST_REQ,		"EST_REQ" },
+	{ RSL_MT_EST_CONF,		"EST_CONF" },
+	{ RSL_MT_EST_IND,		"EST_IND" },
+	{ RSL_MT_REL_REQ,		"REL_REQ" },
+	{ RSL_MT_REL_CONF,		"REL_CONF" },
+	{ RSL_MT_REL_IND,		"REL_IND" },
+	{ RSL_MT_UNIT_DATA_REQ,		"UNIT_DATA_REQ" },
+	{ RSL_MT_UNIT_DATA_IND,		"UNIT_DATA_IND" },
+	{ RSL_MT_SUSP_REQ,		"SUSP_REQ" },
+	{ RSL_MT_SUSP_CONF,		"SUSP_CONF" },
+	{ RSL_MT_RES_REQ,		"RES_REQ" },
+	{ RSL_MT_RECON_REQ,		"RECON_REQ" },
+
+	{ RSL_MT_BCCH_INFO,		"BCCH_INFO" },
+	{ RSL_MT_CCCH_LOAD_IND,		"CCCH_LOAD_IND" },
+	{ RSL_MT_CHAN_RQD,		"CHAN_RQD" },
+	{ RSL_MT_DELETE_IND,		"DELETE_IND" },
+	{ RSL_MT_PAGING_CMD,		"PAGING_CMD" },
+	{ RSL_MT_IMMEDIATE_ASSIGN_CMD,	"IMM_ASS_CMD" },
+	{ RSL_MT_SMS_BC_REQ,		"SMS_BC_REQ" },
+	{ RSL_MT_CHAN_CONF,		"CHAN_CONF" },
+
+	{ RSL_MT_RF_RES_IND,		"RF_RES_IND" },
+	{ RSL_MT_SACCH_FILL,		"SACCH_FILL" },
+	{ RSL_MT_OVERLOAD,		"OVERLOAD" },
+	{ RSL_MT_ERROR_REPORT,		"ERROR_REPORT" },
+	{ RSL_MT_SMS_BC_CMD,		"SMS_BC_CMD" },
+	{ RSL_MT_CBCH_LOAD_IND,		"CBCH_LOAD_IND" },
+	{ RSL_MT_NOT_CMD,		"NOTIFY_CMD" },
+
+	{ RSL_MT_CHAN_ACTIV,		"CHAN_ACTIV" },
+	{ RSL_MT_CHAN_ACTIV_ACK,	"CHAN_ACTIV_ACK" },
+	{ RSL_MT_CHAN_ACTIV_NACK,	"CHAN_ACTIV_NACK" },
+	{ RSL_MT_CONN_FAIL,		"CONN_FAIL" },
+	{ RSL_MT_DEACTIVATE_SACCH,	"DEACTIVATE_SACCH" },
+	{ RSL_MT_ENCR_CMD,		"ENCR_CMD" },
+	{ RSL_MT_HANDO_DET,		"HANDOVER_DETECT" },
+	{ RSL_MT_MEAS_RES,		"MEAS_RES" },
+	{ RSL_MT_MODE_MODIFY_REQ,	"MODE_MODIFY_REQ" },
+	{ RSL_MT_MODE_MODIFY_ACK,	"MODE_MODIFY_ACK" },
+	{ RSL_MT_MODE_MODIFY_NACK,	"MODE_MODIFY_NACK" },
+	{ RSL_MT_PHY_CONTEXT_REQ,	"PHY_CONTEXT_REQ" },
+	{ RSL_MT_PHY_CONTEXT_CONF,	"PHY_CONTEXT_CONF" },
+	{ RSL_MT_RF_CHAN_REL,		"RF_CHAN_REL" },
+	{ RSL_MT_MS_POWER_CONTROL,	"MS_POWER_CONTROL" },
+	{ RSL_MT_BS_POWER_CONTROL,	"BS_POWER_CONTROL" },
+	{ RSL_MT_PREPROC_CONFIG,	"PREPROC_CONFIG" },
+	{ RSL_MT_PREPROC_MEAS_RES,	"PREPROC_MEAS_RES" },
+	{ RSL_MT_RF_CHAN_REL_ACK,	"RF_CHAN_REL_ACK" },
+	{ RSL_MT_SACCH_INFO_MODIFY,	"SACCH_INFO_MODIFY" },
+	{ RSL_MT_TALKER_DET,		"TALKER_DETECT" },
+	{ RSL_MT_LISTENER_DET,		"LISTENER_DETECT" },
+	{ RSL_MT_REMOTE_CODEC_CONF_REP,	"REM_CODEC_CONF_REP" },
+	{ RSL_MT_RTD_REP,		"RTD_REQ" },
+	{ RSL_MT_PRE_HANDO_NOTIF,	"HANDO_NOTIF" },
+	{ RSL_MT_MR_CODEC_MOD_REQ,	"CODEC_MOD_REQ" },
+	{ RSL_MT_MR_CODEC_MOD_ACK,	"CODEC_MOD_ACK" },
+	{ RSL_MT_MR_CODEC_MOD_NACK,	"CODEC_MOD_NACK" },
+	{ RSL_MT_MR_CODEC_MOD_PER,	"CODEC_MODE_PER" },
+	{ RSL_MT_TFO_REP,		"TFO_REP" },
+	{ RSL_MT_TFO_MOD_REQ,		"TFO_MOD_REQ" },
+	{ RSL_MT_LOCATION_INFO,		"LOCATION_INFO" },
+	{ 0,				NULL }
+};
+
+
+const char *rsl_msg_name(uint8_t msg_type)
+{
+	return get_value_string(rsl_msgt_names, msg_type);
+}
+
 static const struct value_string rsl_rlm_cause_strs[] = {
 	{ RLL_CAUSE_T200_EXPIRED,	"Timer T200 expired (N200+1) times" },
 	{ RLL_CAUSE_REEST_REQ,		"Re-establishment request" },