laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/36213?usp=email )
Change subject: stats: Introduce basic counters for RANAP unit-data from CN links ...................................................................... stats: Introduce basic counters for RANAP unit-data from CN links Let's keep track of the various unit-data messages we receive from CN-link peers: RESET, RESET-ACK, PAGING, UNKNOWN, UNSUPPORTED, OVERLOAD_IND, ERROR_IND. Change-Id: Ibe4c73b0288ea20ca3d54519b42bc7cb0e9e61b2 --- M include/osmocom/hnbgw/hnbgw_cn.h M src/osmo-hnbgw/cnlink.c M src/osmo-hnbgw/hnbgw_cn.c 3 files changed, 71 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hnbgw refs/changes/13/36213/1 diff --git a/include/osmocom/hnbgw/hnbgw_cn.h b/include/osmocom/hnbgw/hnbgw_cn.h index 04498d8..9b26e6e 100644 --- a/include/osmocom/hnbgw/hnbgw_cn.h +++ b/include/osmocom/hnbgw/hnbgw_cn.h @@ -39,6 +39,16 @@ /* TODO: basic counters completely missing * ... */ + CNLINK_CTR_RANAP_RX_UDT_RESET, + CNLINK_CTR_RANAP_RX_UDT_RESET_ACK, + CNLINK_CTR_RANAP_RX_UDT_PAGING, + CNLINK_CTR_RANAP_RX_UDT_UNKNOWN, + CNLINK_CTR_RANAP_RX_UDT_UNSUPPORTED, + CNLINK_CTR_RANAP_RX_UDT_OVERLOAD_IND, + CNLINK_CTR_RANAP_RX_UDT_ERROR_IND, + + CNLINK_CTR_RANAP_TX_UDT_RESET, + CNLINK_CTR_RANAP_TX_UDT_RESET_ACK, /* Counters related to link selection from a CN pool. */ CNLINK_CTR_CNPOOL_SUBSCR_NEW, diff --git a/src/osmo-hnbgw/cnlink.c b/src/osmo-hnbgw/cnlink.c index 78cd72f..fc67fd3 100644 --- a/src/osmo-hnbgw/cnlink.c +++ b/src/osmo-hnbgw/cnlink.c @@ -174,7 +174,7 @@ } msg = ranap_new_msg_reset2(cnlink->pool->domain, &cause, use_grnc_id); - + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_TX_UDT_RESET); osmo_sccp_tx_unitdata_msg(cnlink->hnbgw_sccp_user->sccp_user, &cnlink->hnbgw_sccp_user->local_addr, &cnlink->remote_addr, @@ -225,7 +225,7 @@ } msg = ranap_new_msg_reset_ack(cnlink->pool->domain, use_grnc_id); - + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_TX_UDT_RESET_ACK); osmo_sccp_tx_unitdata_msg(cnlink->hnbgw_sccp_user->sccp_user, &cnlink->hnbgw_sccp_user->local_addr, &cnlink->remote_addr, diff --git a/src/osmo-hnbgw/hnbgw_cn.c b/src/osmo-hnbgw/hnbgw_cn.c index 63e233c..1def1a6 100644 --- a/src/osmo-hnbgw/hnbgw_cn.c +++ b/src/osmo-hnbgw/hnbgw_cn.c @@ -321,21 +321,27 @@ { switch (imsg->procedureCode) { case RANAP_ProcedureCode_id_Reset: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_RESET); return cn_ranap_rx_reset_cmd(cnlink, unitdata, imsg); case RANAP_ProcedureCode_id_Paging: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_PAGING); return cn_ranap_rx_paging_cmd(cnlink, imsg, data, len); case RANAP_ProcedureCode_id_OverloadControl: /* Overload ind */ + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_OVERLOAD_IND); break; case RANAP_ProcedureCode_id_ErrorIndication: /* Error ind */ + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_ERROR_IND); break; case RANAP_ProcedureCode_id_ResetResource: /* request */ case RANAP_ProcedureCode_id_InformationTransfer: case RANAP_ProcedureCode_id_DirectInformationTransfer: case RANAP_ProcedureCode_id_UplinkInformationExchange: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_UNSUPPORTED); LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " "Procedure %ld from CN, ignoring\n", imsg->procedureCode); break; default: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_UNKNOWN); LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP " "Procedure %ld from CN, ignoring\n", imsg->procedureCode); break; @@ -348,15 +354,18 @@ { switch (omsg->procedureCode) { case RANAP_ProcedureCode_id_Reset: /* Reset acknowledge */ + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_RESET); return cn_ranap_rx_reset_ack(cnlink, omsg); case RANAP_ProcedureCode_id_ResetResource: /* response */ case RANAP_ProcedureCode_id_InformationTransfer: case RANAP_ProcedureCode_id_DirectInformationTransfer: case RANAP_ProcedureCode_id_UplinkInformationExchange: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_UNSUPPORTED); LOGP(DRANAP, LOGL_NOTICE, "Received unsupported RANAP " "Procedure %ld from CN, ignoring\n", omsg->procedureCode); break; default: + CNLINK_CTR_INC(cnlink, CNLINK_CTR_RANAP_RX_UDT_UNKNOWN); LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP " "Procedure %ld from CN, ignoring\n", omsg->procedureCode); break; @@ -1128,6 +1137,43 @@ } static const struct rate_ctr_desc cnlink_ctr_description[] = { + [CNLINK_CTR_RANAP_RX_UDT_RESET] = { + "ranap:rx:udt:reset", + "RANAP Unitdata RESET messages received" + }, + [CNLINK_CTR_RANAP_RX_UDT_RESET_ACK] = { + "ranap:rx:udt:reset_ack", + "RANAP Unitdata RESET ACK messages received", + }, + [CNLINK_CTR_RANAP_RX_UDT_PAGING] = { + "ranap:rx:udt:paging", + "RANAP Unitdata PAGING messages received", + }, + [CNLINK_CTR_RANAP_RX_UDT_UNKNOWN] = { + "ranap:rx:udt:unknown", + "Unknown RANAP Unitdata messages received", + }, + [CNLINK_CTR_RANAP_RX_UDT_UNSUPPORTED] = { + "ranap:rx:udt:unsupported", + "Unsupported RANAP Unitdata messages received", + }, + [CNLINK_CTR_RANAP_RX_UDT_OVERLOAD_IND] = { + "ranap:rx:udt:overload_ind", + "RANAP Unitdata Overload Indications received", + }, + [CNLINK_CTR_RANAP_RX_UDT_ERROR_IND] = { + "ranap:rx:udt:error_ind", + "RANAP Unitdata Error Indications received", + }, + + [CNLINK_CTR_RANAP_TX_UDT_RESET] = { + "ranap:tx:udt:reset", + "RANAP Unitdata RESET messages transmitted", + }, + [CNLINK_CTR_RANAP_TX_UDT_RESET_ACK] = { + "ranap:tx:udt:reset_ack", + "RANAP Unitdata RESET ACK messages transmitted", + }, /* Indicators for CN pool usage */ [CNLINK_CTR_CNPOOL_SUBSCR_NEW] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/36213?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hnbgw Gerrit-Branch: master Gerrit-Change-Id: Ibe4c73b0288ea20ca3d54519b42bc7cb0e9e61b2 Gerrit-Change-Number: 36213 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <lafo...@osmocom.org> Gerrit-MessageType: newchange