diff options
-rw-r--r-- | include/osmocom/msc/gsm_data.h | 4 | ||||
-rw-r--r-- | src/libmsc/a_iface_bssap.c | 6 |
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)); |