mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-02 04:53:24 +00:00
The rate counter group is currently only referenced by an index. In a system with multiple trunks this makes it difficult to say which rate counter group belongs to which trunk sinde the index that is used does not necessarly corespond to a specific trunk. Since rate counter groups can now get a human readable name assigned, we should do that. Also E1 specific rate counters only make sense for E1-trunks, so they should not be present on the virtual trunk. Change-Id: I5e7f0e9081a06af48e284afa5c36a095b2847704
98 lines
2.8 KiB
C
98 lines
2.8 KiB
C
#pragma once
|
|
|
|
/* Global MCGP general rate counters */
|
|
enum {
|
|
MGCP_GENERAL_RX_MSGS_TOTAL,
|
|
MGCP_GENERAL_RX_MSGS_RETRANSMITTED,
|
|
MGCP_GENERAL_RX_MSGS_HANDLED,
|
|
MGCP_GENERAL_RX_MSGS_UNHANDLED,
|
|
MGCP_GENERAL_RX_FAIL_MSG_PARSE,
|
|
MGCP_GENERAL_RX_FAIL_NO_ENDPOINT,
|
|
};
|
|
|
|
/* Trunk-global MCGP CRCX related rate counters */
|
|
enum {
|
|
MGCP_CRCX_SUCCESS,
|
|
MGCP_CRCX_FAIL_BAD_ACTION,
|
|
MGCP_CRCX_FAIL_UNHANDLED_PARAM,
|
|
MGCP_CRCX_FAIL_MISSING_CALLID,
|
|
MGCP_CRCX_FAIL_INVALID_MODE,
|
|
MGCP_CRCX_FAIL_LIMIT_EXCEEDED,
|
|
MGCP_CRCX_FAIL_UNKNOWN_CALLID,
|
|
MGCP_CRCX_FAIL_ALLOC_CONN,
|
|
MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC,
|
|
MGCP_CRCX_FAIL_START_RTP,
|
|
MGCP_CRCX_FAIL_REJECTED_BY_POLICY,
|
|
MGCP_CRCX_FAIL_NO_OSMUX,
|
|
MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS,
|
|
MGCP_CRCX_FAIL_CODEC_NEGOTIATION,
|
|
MGCP_CRCX_FAIL_BIND_PORT,
|
|
MGCP_CRCX_FAIL_AVAIL,
|
|
MGCP_CRCX_FAIL_CLAIM,
|
|
};
|
|
|
|
/* Trunk-global MCGP MDCX related rate counters */
|
|
enum {
|
|
MGCP_MDCX_SUCCESS,
|
|
MGCP_MDCX_FAIL_WILDCARD,
|
|
MGCP_MDCX_FAIL_NO_CONN,
|
|
MGCP_MDCX_FAIL_INVALID_CALLID,
|
|
MGCP_MDCX_FAIL_INVALID_CONNID,
|
|
MGCP_MDCX_FAIL_UNHANDLED_PARAM,
|
|
MGCP_MDCX_FAIL_NO_CONNID,
|
|
MGCP_MDCX_FAIL_CONN_NOT_FOUND,
|
|
MGCP_MDCX_FAIL_INVALID_MODE,
|
|
MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS,
|
|
MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC,
|
|
MGCP_MDCX_FAIL_START_RTP,
|
|
MGCP_MDCX_FAIL_REJECTED_BY_POLICY,
|
|
MGCP_MDCX_DEFERRED_BY_POLICY,
|
|
MGCP_MDCX_FAIL_AVAIL,
|
|
};
|
|
|
|
/* Trunk-global MCGP DLCX related rate counters */
|
|
enum {
|
|
MGCP_DLCX_SUCCESS,
|
|
MGCP_DLCX_FAIL_WILDCARD,
|
|
MGCP_DLCX_FAIL_NO_CONN,
|
|
MGCP_DLCX_FAIL_INVALID_CALLID,
|
|
MGCP_DLCX_FAIL_INVALID_CONNID,
|
|
MGCP_DLCX_FAIL_UNHANDLED_PARAM,
|
|
MGCP_DLCX_FAIL_REJECTED_BY_POLICY,
|
|
MGCP_DLCX_DEFERRED_BY_POLICY,
|
|
MGCP_DLCX_FAIL_AVAIL,
|
|
};
|
|
|
|
/* Trunk-global E1 related counters */
|
|
enum {
|
|
E1_I460_TRAU_RX_FAIL_CTR,
|
|
E1_I460_TRAU_TX_FAIL_CTR,
|
|
E1_I460_TRAU_MUX_EMPTY_CTR,
|
|
};
|
|
|
|
/* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */
|
|
|
|
struct mgcp_ratectr_global {
|
|
/* Rate counter group which contains stats for generic MGCP events. */
|
|
struct rate_ctr_group *mgcp_general_ctr_group;
|
|
};
|
|
|
|
struct mgcp_ratectr_trunk {
|
|
/* Rate counter group which contains stats for processed CRCX commands. */
|
|
struct rate_ctr_group *mgcp_crcx_ctr_group;
|
|
/* Rate counter group which contains stats for processed MDCX commands. */
|
|
struct rate_ctr_group *mgcp_mdcx_ctr_group;
|
|
/* Rate counter group which contains stats for processed DLCX commands. */
|
|
struct rate_ctr_group *mgcp_dlcx_ctr_group;
|
|
/* Rate counter group which aggregates stats of individual RTP connections. */
|
|
struct rate_ctr_group *all_rtp_conn_stats;
|
|
/* Rate counter group which contains stats for E1 events (only valid for E1 trunks) */
|
|
struct rate_ctr_group *e1_stats;
|
|
};
|
|
|
|
struct mgcp_config;
|
|
struct mgcp_trunk;
|
|
|
|
int mgcp_ratectr_global_alloc(struct mgcp_config *cfg);
|
|
int mgcp_ratectr_trunk_alloc(struct mgcp_trunk *trunk);
|