SMS stub

diff --git a/include/openbsc/debug.h b/include/openbsc/debug.h
index 6fea587..55a06d1 100644
--- a/include/openbsc/debug.h
+++ b/include/openbsc/debug.h
@@ -9,6 +9,7 @@
 #define DRR		0x0008
 #define DRSL		0x0010
 #define DNM		0x0020
+#define DSMS		0x0100
 #define DMI		0x1000
 #define DMIB		0x2000
 
diff --git a/include/openbsc/gsm_04_08.h b/include/openbsc/gsm_04_08.h
index 389daf5..f10d821 100644
--- a/include/openbsc/gsm_04_08.h
+++ b/include/openbsc/gsm_04_08.h
@@ -69,12 +69,19 @@
 	u_int8_t data[0];
 } __attribute__ ((packed));
 
-/* Section 10.2 */
+/* Section 10.2 + GSM 04.07 12.2.3.1.1 */
+#define GSM48_PDISC_GROUP_CC	0x00
+#define GSM48_PDISC_BCAST_CC	0x01
+#define GSM48_PDISC_PDSS1	0x02
 #define GSM48_PDISC_CC		0x03
+#define GSM48_PDISC_PDSS2	0x04
 #define GSM48_PDISC_MM		0x05
 #define GSM48_PDISC_RR		0x06
 #define GSM48_PDISC_MM_GPRS	0x08
-#define GSM48_PDISC_SM		0x0a
+#define GSM48_PDISC_SMS		0x09
+#define GSM48_PDISC_SM_GPRS	0x0a
+#define GSM48_PDISC_NC_SS	0x0b
+#define GSM48_PDISC_LOC		0x0c
 
 /* Section 10.4 */
 #define GSM48_MT_RR_INIT_REQ		0x3c
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 83399d0..6a797b7 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -349,8 +349,10 @@
 static int gsm48_rx_mm_serv_req(struct msgb *msg)
 {
 	struct gsm48_hdr *gh = msgb_l3(msg);
+	u_int8_t serv_type = gh->data[0] & 0x0f;
 
-	DEBUGP(DMM, "CM SERVICE REQUEST\n");
+	DEBUGP(DMM, "CM SERVICE REQUEST serv_type=0x%02x\n", serv_type);
+
 	return gsm48_tx_mm_serv_ack(msg->lchan);
 }
 
@@ -543,6 +545,12 @@
 	return rc;
 }
 
+static int gsm0408_rcv_sms(struct msgb *msg)
+{
+	DEBUGP(DSMS, "SMS Message\n");
+	return 0;
+}
+
 /* here we pass in a msgb from the RSL->RLL.  We expect the l3 pointer to be set */
 int gsm0408_rcvmsg(struct msgb *msg)
 {
@@ -560,8 +568,11 @@
 	case GSM48_PDISC_RR:
 		rc = gsm0408_rcv_rr(msg);
 		break;
+	case GSM48_PDISC_SMS:
+		rc = gsm0408_rcv_sms(msg);
+		break;
 	case GSM48_PDISC_MM_GPRS:
-	case GSM48_PDISC_SM:
+	case GSM48_PDISC_SM_GPRS:
 		fprintf(stderr, "Unimplemented GSM 04.08 discriminator 0x%02d\n",
 			pdisc);
 		break;