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 <laforge(a)osmocom.org>
Gerrit-MessageType: newchange