keep some internal statistics inside OpenBSC

the statistics will give us some idea about the network load and
performance.
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index 17a5831..579bb55 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -517,6 +517,8 @@
 	u_int8_t address_lv[12]; /* according to 03.40 / 9.1.2.5 */
 	int rc = 0;
 
+	bts->network->stats.sms.submitted++;
+
 	gsms = sms_alloc();
 	if (!gsms)
 		return GSM411_RP_CAUSE_MO_NET_OUT_OF_ORDER;
@@ -605,6 +607,7 @@
 	gsms->receiver = subscr_get_by_extension(bts->network, gsms->dest_addr);
 	if (!gsms->receiver) {
 		rc = 1; /* cause 1: unknown subscriber */
+		bts->network->stats.sms.no_receiver++;
 		goto out;
 	}
 
@@ -791,7 +794,9 @@
 		 * to store this in our database and wati for a SMMA message */
 		/* FIXME */
 		dispatch_signal(SS_SMS, S_SMS_MEM_EXCEEDED, trans->subscr);
-	}
+		trans->lchan->ts->trx->bts->network->stats.sms.rp_err_mem++;
+	} else
+		trans->lchan->ts->trx->bts->network->stats.sms.rp_err_other++;
 
 	sms_free(sms);
 	trans->sms.sms = NULL;
@@ -1064,6 +1069,8 @@
 
 	DEBUGP(DSMS, "TX: SMS DELIVER\n");
 
+	lchan->ts->trx->bts->network->stats.sms.delivered++;
+
 	return gsm411_rp_sendmsg(msg, trans, GSM411_MT_RP_DATA_MT, msg_ref);
 	/* FIXME: enter 'wait for RP-ACK' state, start TR1N */
 }