aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libmsc
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-01-30 21:01:12 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-01-31 11:17:44 +0100
commit8e68b56fe580c25a74b3e6238547d4d3422bfb25 (patch)
tree868ab43de60efd029dcf5f4282a9b755e7815fc8 /openbsc/src/libmsc
parentdcf38e1c9623f997d9b87c1a5868862581aa05cf (diff)
sms/dtap: Add log messages to analyse SMS message loss
Incoming DTAP messages from MS are discarded during silent calls, which leads to the repeated delivery of SMS since the ACKs are not being processed. This patch adds some log messages that have been helpful to track this down. Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/src/libmsc')
-rw-r--r--openbsc/src/libmsc/gsm_04_08.c1
-rw-r--r--openbsc/src/libmsc/osmo_msc.c4
-rw-r--r--openbsc/src/libmsc/silent_call.c5
3 files changed, 10 insertions, 0 deletions
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index bc4a9c31b..cd2a0b5cd 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -3303,6 +3303,7 @@ int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg)
uint8_t pdisc = gh->proto_discr & 0x0f;
int rc = 0;
+ LOGP(DRLL, LOGL_DEBUG, "Dispatching 04.08 message, pdisc=%d\n", pdisc);
if (silent_call_reroute(conn, msg))
return silent_call_rx(conn, msg);
diff --git a/openbsc/src/libmsc/osmo_msc.c b/openbsc/src/libmsc/osmo_msc.c
index 31b72b925..f3badb779 100644
--- a/openbsc/src/libmsc/osmo_msc.c
+++ b/openbsc/src/libmsc/osmo_msc.c
@@ -59,6 +59,8 @@ static int msc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg
return BSC_API_CONN_POL_ACCEPT;
if (trans_has_conn(conn))
return BSC_API_CONN_POL_ACCEPT;
+
+ LOGP(DRR, LOGL_INFO, "MSC Complete L3: Rejecting connection.\n");
return BSC_API_CONN_POL_REJECT;
}
@@ -71,11 +73,13 @@ static void msc_assign_compl(struct gsm_subscriber_connection *conn,
uint8_t rr_cause, uint8_t chosen_channel,
uint8_t encr_alg_id, uint8_t speec)
{
+ LOGP(DRR, LOGL_DEBUG, "MSC assign complete (do nothing).\n");
}
static void msc_assign_fail(struct gsm_subscriber_connection *conn,
uint8_t cause, uint8_t *rr_cause)
{
+ LOGP(DRR, LOGL_DEBUG, "MSC assign failure (do nothing).\n");
}
static void msc_classmark_chg(struct gsm_subscriber_connection *conn,
diff --git a/openbsc/src/libmsc/silent_call.c b/openbsc/src/libmsc/silent_call.c
index cdc82b534..4462dfcba 100644
--- a/openbsc/src/libmsc/silent_call.c
+++ b/openbsc/src/libmsc/silent_call.c
@@ -76,6 +76,7 @@ static int paging_cb_silent(unsigned int hooknum, unsigned int event,
int silent_call_rx(struct gsm_subscriber_connection *conn, struct msgb *msg)
{
/* FIXME: do something like sending it through a UDP port */
+ LOGP(DLSMS, LOGL_NOTICE, "Discarding L3 message from a silent call.\n");
return 0;
}
@@ -109,6 +110,7 @@ int silent_call_reroute(struct gsm_subscriber_connection *conn, struct msgb *msg
}
/* otherwise, reroute */
+ LOGP(DLSMS, LOGL_INFO, "Rerouting L3 message from a silent call.\n");
return 1;
}
@@ -136,6 +138,9 @@ int gsm_silent_call_stop(struct gsm_subscriber *subscr)
if (!conn->silent_call)
return -EINVAL;
+ DEBUGPC(DLSMS, "Stopping silent call using Timeslot %u on ARFCN %u\n",
+ conn->lchan->ts->nr, conn->lchan->ts->trx->arfcn);
+
conn->silent_call = 0;
msc_release_connection(conn);