110 lines
3.2 KiB
C
110 lines
3.2 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_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_AVAIL,
|
|
};
|
|
|
|
/* Trunk-global MCGP DLCX related rate counters */
|
|
enum {
|
|
MGCP_DLCX_SUCCESS,
|
|
MGCP_DLCX_FAIL_NO_CONN,
|
|
MGCP_DLCX_FAIL_INVALID_CALLID,
|
|
MGCP_DLCX_FAIL_INVALID_CONNID,
|
|
MGCP_DLCX_FAIL_UNHANDLED_PARAM,
|
|
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 aggregates stats of individual Osmux connections. */
|
|
struct rate_ctr_group *all_osmux_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);
|
|
void mgcp_ratectr_global_free(struct mgcp_config *cfg);
|
|
int mgcp_ratectr_trunk_alloc(struct mgcp_trunk *trunk);
|
|
void mgcp_ratectr_trunk_free(struct mgcp_trunk *trunk);
|
|
|
|
/* Trunk-global common stat items */
|
|
enum {
|
|
TRUNK_STAT_ENDPOINTS_TOTAL,
|
|
TRUNK_STAT_ENDPOINTS_USED,
|
|
};
|
|
|
|
struct mgcp_stat_trunk {
|
|
/* Stat item group which contains general status values of the trunk. */
|
|
struct osmo_stat_item_group *common;
|
|
};
|
|
|
|
int mgcp_stat_trunk_alloc(struct mgcp_trunk *trunk);
|
|
void mgcp_stat_trunk_free(struct mgcp_trunk *trunk);
|