SI: add RR short PD message types

Related: OS#5783
Change-Id: Ifbd0aabe826298fa4715eb4eb2ff8363e765933d
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h
index ea77e76..ff9eb64 100644
--- a/include/osmocom/gsm/protocol/gsm_04_08.h
+++ b/include/osmocom/gsm/protocol/gsm_04_08.h
@@ -1540,6 +1540,21 @@
 
 #define GSM48_MT_RR_APP_INFO		0x38
 
+/* 3GPP TS 44.018 Table 10.4.2 */
+#define GSM48_MT_RR_SH_SI10		0x0
+#define GSM48_MT_RR_SH_FACCH		0x1
+#define GSM48_MT_RR_SH_UL_FREE		0x2
+#define GSM48_MT_RR_SH_MEAS_REP		0x4
+#define GSM48_MT_RR_SH_MEAS_INFO	0x5
+#define GSM48_MT_RR_SH_VGCS_RECON	0x6
+#define GSM48_MT_RR_SH_VGCS_RECON2	0x7
+#define GSM48_MT_RR_SH_VGCS_INFO	0x8
+#define GSM48_MT_RR_SH_VGCS_SMS		0x9
+#define GSM48_MT_RR_SH_SI10bis		0xA
+#define GSM48_MT_RR_SH_SI10ter		0xB
+#define GSM48_MT_RR_SH_VGCS_NEIGH	0xC
+#define GSM48_MT_RR_SH_APP_DATA		0xD
+
 /* Table 10.2/3GPP TS 04.08 */
 #define GSM48_MT_MM_IMSI_DETACH_IND	0x01
 #define GSM48_MT_MM_LOC_UPD_ACCEPT	0x02
diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c
index c5fe550..6f5c3a3 100644
--- a/src/gsm/gsm48.c
+++ b/src/gsm/gsm48.c
@@ -419,6 +419,29 @@
 	return get_value_string(rr_msg_names, msgtype);
 }
 
+/* 3GPP TS 44.018 Table 10.4.2 */
+static const struct value_string rr_msg_type_short_names[] = {
+	{ GSM48_MT_RR_SH_SI10,		"System Information Type 10" },
+	{ GSM48_MT_RR_SH_FACCH,		"Notification/FACCH" },
+	{ GSM48_MT_RR_SH_UL_FREE,	"Uplink Free" },
+	{ GSM48_MT_RR_SH_MEAS_REP,	"Enhanced Measurement Report (uplink)" },
+	{ GSM48_MT_RR_SH_MEAS_INFO,	"Measurement Information (downlink)" },
+	{ GSM48_MT_RR_SH_VGCS_RECON,	"VBS/VGCS Reconfigure" },
+	{ GSM48_MT_RR_SH_VGCS_RECON2,	"VBS/VGCS Reconfigure2" },
+	{ GSM48_MT_RR_SH_VGCS_INFO,	"VGCS Additional Information" },
+	{ GSM48_MT_RR_SH_VGCS_SMS,	"VGCS SMS Information" },
+	{ GSM48_MT_RR_SH_SI10bis,	"System Information Type 10bis" },
+	{ GSM48_MT_RR_SH_SI10ter,	"System Information Type 10ter" },
+	{ GSM48_MT_RR_SH_VGCS_NEIGH,	"VGCS Neighbour Cell Information" },
+	{ GSM48_MT_RR_SH_APP_DATA,	"Notify Application Data" },
+	{ 0,				NULL }
+};
+
+/*! return string representation of RR Message Type using the RR short protocol discriminator */
+const char *gsm48_rr_msg_type_short_name(uint8_t msgtype)
+{
+	return get_value_string(rr_msg_type_short_names, msgtype);
+}
 
 const struct value_string gsm48_chan_mode_names[] = {
 	{ GSM48_CMODE_SIGN,		"SIGNALLING" },