aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2018-11-02 16:01:03 +0100
committerHarald Welte <laforge@gnumonks.org>2018-11-02 22:06:09 +0000
commit366390d81ab61d3215892f5a49dd04d5a1b60764 (patch)
treeb0419d54a7ad2492c6012f0ba41287aa6b846d09
parent662e2ba73e6d4643b603476bf9ee95b8aef2423c (diff)
Add counters for BSSMAP cipher mode messages
Count COMPLETE and REJECT messages. Besides general troubleshooting that's also useful for TTCN-3 tests to check that OsmoMSC processed those messages as expected. Change-Id: I5822b2b38b64f1a691b26c926a8e2bece21dc624 Related: OS#3187
-rw-r--r--include/osmocom/msc/gsm_data.h4
-rw-r--r--src/libmsc/a_iface_bssap.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 579697e29..085248cc7 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -216,6 +216,8 @@ enum {
MSC_CTR_NC_SS_MO_ESTABLISHED,
MSC_CTR_NC_SS_MT_REQUESTS,
MSC_CTR_NC_SS_MT_ESTABLISHED,
+ MSC_CTR_BSSMAP_CIPHER_MODE_REJECT,
+ MSC_CTR_BSSMAP_CIPHER_MODE_COMPLETE,
};
static const struct rate_ctr_desc msc_ctr_description[] = {
@@ -247,6 +249,8 @@ static const struct rate_ctr_desc msc_ctr_description[] = {
[MSC_CTR_NC_SS_MO_ESTABLISHED] = {"nc_ss:mo_established", "Established MS-initiated call independent SS/USSD sessions."},
[MSC_CTR_NC_SS_MT_REQUESTS] = {"nc_ss:mt_requests", "Received network-initiated call independent SS/USSD requests."},
[MSC_CTR_NC_SS_MT_ESTABLISHED] = {"nc_ss:mt_established", "Established network-initiated call independent SS/USSD sessions."},
+ [MSC_CTR_BSSMAP_CIPHER_MODE_REJECT] = {"bssmap:cipher_mode_reject", "Number of CIPHER MODE REJECT messages processed by BSSMAP layer"},
+ [MSC_CTR_BSSMAP_CIPHER_MODE_COMPLETE] = {"bssmap:cipher_mode_complete", "Number of CIPHER MODE COMPLETE messages processed by BSSMAP layer"},
};
static const struct rate_ctr_group_desc msc_ctrg_desc = {
diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c
index 4666ae3a6..282fd73a9 100644
--- a/src/libmsc/a_iface_bssap.c
+++ b/src/libmsc/a_iface_bssap.c
@@ -400,6 +400,7 @@ static int bssmap_rx_ciph_compl(struct gsm_subscriber_connection *conn, struct m
* This needs to be discussed further! */
uint8_t alg_id = 1;
+ struct rate_ctr_group *msc = conn->network->msc_ctrs;
LOGPCONN(conn, LOGL_DEBUG, "Rx BSSMAP CIPHER MODE COMPLETE\n");
@@ -414,6 +415,8 @@ static int bssmap_rx_ciph_compl(struct gsm_subscriber_connection *conn, struct m
msg = NULL;
}
+ rate_ctr_inc(&msc->ctr[MSC_CTR_BSSMAP_CIPHER_MODE_COMPLETE]);
+
/* Hand over cipher mode complete message to the MSC */
msc_cipher_mode_compl(conn, msg, alg_id);
@@ -425,6 +428,7 @@ static int bssmap_rx_ciph_rej(struct gsm_subscriber_connection *conn,
struct msgb *msg, struct tlv_parsed *tp)
{
enum gsm0808_cause cause;
+ struct rate_ctr_group *msc = conn->network->msc_ctrs;
LOGPCONN(conn, LOGL_NOTICE, "RX BSSMAP CIPHER MODE REJECT\n");
@@ -433,6 +437,8 @@ static int bssmap_rx_ciph_rej(struct gsm_subscriber_connection *conn,
return -EINVAL;
}
+ rate_ctr_inc(&msc->ctr[MSC_CTR_BSSMAP_CIPHER_MODE_REJECT]);
+
/* FIXME: add support for 2-byte Cause values using libosmocore functions */
cause = *TLVP_VAL(tp, GSM0808_IE_CAUSE);
LOGPCONN(conn, LOGL_NOTICE, "Cipher mode rejection cause: %s\n", gsm0808_cause_name(cause));