blob: 657e897149c060479602cdb644923fd66b0d3775 [file] [log] [blame]
Philipp Maierc66ab2c2020-06-02 20:55:34 +02001#pragma once
2
Philipp Maier3d5a2dd2020-06-17 12:48:29 +02003
4/* Global MCGP general rate counters */
5enum {
6 MGCP_GENERAL_RX_MSGS_TOTAL,
7 MGCP_GENERAL_RX_MSGS_RETRANSMITTED,
8 MGCP_GENERAL_RX_MSGS_HANDLED,
9 MGCP_GENERAL_RX_MSGS_UNHANDLED,
10 MGCP_GENERAL_RX_FAIL_MSG_PARSE,
11 MGCP_GENERAL_RX_FAIL_NO_ENDPOINT,
12};
13
Philipp Maier113141d2020-08-10 21:12:49 +020014/* Trunk-global MCGP CRCX related rate counters */
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020015enum {
16 MGCP_CRCX_SUCCESS,
17 MGCP_CRCX_FAIL_BAD_ACTION,
18 MGCP_CRCX_FAIL_UNHANDLED_PARAM,
19 MGCP_CRCX_FAIL_MISSING_CALLID,
20 MGCP_CRCX_FAIL_INVALID_MODE,
21 MGCP_CRCX_FAIL_LIMIT_EXCEEDED,
22 MGCP_CRCX_FAIL_UNKNOWN_CALLID,
23 MGCP_CRCX_FAIL_ALLOC_CONN,
24 MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC,
25 MGCP_CRCX_FAIL_START_RTP,
26 MGCP_CRCX_FAIL_REJECTED_BY_POLICY,
27 MGCP_CRCX_FAIL_NO_OSMUX,
28 MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS,
29 MGCP_CRCX_FAIL_CODEC_NEGOTIATION,
30 MGCP_CRCX_FAIL_BIND_PORT,
Philipp Maier8d6a1932020-06-18 12:19:31 +020031 MGCP_CRCX_FAIL_AVAIL,
Philipp Maier889fe7f2020-07-06 17:44:12 +020032 MGCP_CRCX_FAIL_CLAIM,
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020033};
34
Philipp Maier113141d2020-08-10 21:12:49 +020035/* Trunk-global MCGP MDCX related rate counters */
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020036enum {
37 MGCP_MDCX_SUCCESS,
38 MGCP_MDCX_FAIL_WILDCARD,
39 MGCP_MDCX_FAIL_NO_CONN,
40 MGCP_MDCX_FAIL_INVALID_CALLID,
41 MGCP_MDCX_FAIL_INVALID_CONNID,
42 MGCP_MDCX_FAIL_UNHANDLED_PARAM,
43 MGCP_MDCX_FAIL_NO_CONNID,
44 MGCP_MDCX_FAIL_CONN_NOT_FOUND,
45 MGCP_MDCX_FAIL_INVALID_MODE,
46 MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS,
47 MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC,
48 MGCP_MDCX_FAIL_START_RTP,
49 MGCP_MDCX_FAIL_REJECTED_BY_POLICY,
Philipp Maier8d6a1932020-06-18 12:19:31 +020050 MGCP_MDCX_DEFERRED_BY_POLICY,
51 MGCP_MDCX_FAIL_AVAIL,
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020052};
53
Philipp Maier113141d2020-08-10 21:12:49 +020054/* Trunk-global MCGP DLCX related rate counters */
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020055enum {
56 MGCP_DLCX_SUCCESS,
57 MGCP_DLCX_FAIL_WILDCARD,
58 MGCP_DLCX_FAIL_NO_CONN,
59 MGCP_DLCX_FAIL_INVALID_CALLID,
60 MGCP_DLCX_FAIL_INVALID_CONNID,
61 MGCP_DLCX_FAIL_UNHANDLED_PARAM,
62 MGCP_DLCX_FAIL_REJECTED_BY_POLICY,
63 MGCP_DLCX_DEFERRED_BY_POLICY,
Philipp Maier8d6a1932020-06-18 12:19:31 +020064 MGCP_DLCX_FAIL_AVAIL,
Philipp Maier3d5a2dd2020-06-17 12:48:29 +020065};
66
Philipp Maier889fe7f2020-07-06 17:44:12 +020067/* Trunk-global E1 related counters */
68enum {
69 E1_I460_TRAU_RX_FAIL_CTR,
70 E1_I460_TRAU_TX_FAIL_CTR,
71 E1_I460_TRAU_MUX_EMPTY_CTR,
72};
73
Philipp Maierc66ab2c2020-06-02 20:55:34 +020074/* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */
75
76struct mgcp_ratectr_global {
77 /* Rate counter group which contains stats for generic MGCP events. */
78 struct rate_ctr_group *mgcp_general_ctr_group;
79};
80
81struct mgcp_ratectr_trunk {
82 /* Rate counter group which contains stats for processed CRCX commands. */
83 struct rate_ctr_group *mgcp_crcx_ctr_group;
84 /* Rate counter group which contains stats for processed MDCX commands. */
85 struct rate_ctr_group *mgcp_mdcx_ctr_group;
86 /* Rate counter group which contains stats for processed DLCX commands. */
87 struct rate_ctr_group *mgcp_dlcx_ctr_group;
88 /* Rate counter group which aggregates stats of individual RTP connections. */
89 struct rate_ctr_group *all_rtp_conn_stats;
Philipp Maier889fe7f2020-07-06 17:44:12 +020090 /* Rate counter group which contains stats for E1 events (only valid for E1 trunks) */
91 struct rate_ctr_group *e1_stats;
Philipp Maierc66ab2c2020-06-02 20:55:34 +020092};
93
94int mgcp_ratectr_global_alloc(void *ctx, struct mgcp_ratectr_global *ratectr);
95int mgcp_ratectr_trunk_alloc(void *ctx, struct mgcp_ratectr_trunk *ratectr);