blob: a579f5b75017b91874d751a8429f0da3c06fdb2f [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
14/* Global MCGP CRCX related rate counters */
15enum {
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,
31};
32
33/* Global MCGP MDCX related rate counters */
34enum {
35 MGCP_MDCX_SUCCESS,
36 MGCP_MDCX_FAIL_WILDCARD,
37 MGCP_MDCX_FAIL_NO_CONN,
38 MGCP_MDCX_FAIL_INVALID_CALLID,
39 MGCP_MDCX_FAIL_INVALID_CONNID,
40 MGCP_MDCX_FAIL_UNHANDLED_PARAM,
41 MGCP_MDCX_FAIL_NO_CONNID,
42 MGCP_MDCX_FAIL_CONN_NOT_FOUND,
43 MGCP_MDCX_FAIL_INVALID_MODE,
44 MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS,
45 MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC,
46 MGCP_MDCX_FAIL_START_RTP,
47 MGCP_MDCX_FAIL_REJECTED_BY_POLICY,
48 MGCP_MDCX_DEFERRED_BY_POLICY
49};
50
51/* Global MCGP DLCX related rate counters */
52enum {
53 MGCP_DLCX_SUCCESS,
54 MGCP_DLCX_FAIL_WILDCARD,
55 MGCP_DLCX_FAIL_NO_CONN,
56 MGCP_DLCX_FAIL_INVALID_CALLID,
57 MGCP_DLCX_FAIL_INVALID_CONNID,
58 MGCP_DLCX_FAIL_UNHANDLED_PARAM,
59 MGCP_DLCX_FAIL_REJECTED_BY_POLICY,
60 MGCP_DLCX_DEFERRED_BY_POLICY,
61};
62
Philipp Maierc66ab2c2020-06-02 20:55:34 +020063/* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */
64
65struct mgcp_ratectr_global {
66 /* Rate counter group which contains stats for generic MGCP events. */
67 struct rate_ctr_group *mgcp_general_ctr_group;
68};
69
70struct mgcp_ratectr_trunk {
71 /* Rate counter group which contains stats for processed CRCX commands. */
72 struct rate_ctr_group *mgcp_crcx_ctr_group;
73 /* Rate counter group which contains stats for processed MDCX commands. */
74 struct rate_ctr_group *mgcp_mdcx_ctr_group;
75 /* Rate counter group which contains stats for processed DLCX commands. */
76 struct rate_ctr_group *mgcp_dlcx_ctr_group;
77 /* Rate counter group which aggregates stats of individual RTP connections. */
78 struct rate_ctr_group *all_rtp_conn_stats;
79};
80
81int mgcp_ratectr_global_alloc(void *ctx, struct mgcp_ratectr_global *ratectr);
82int mgcp_ratectr_trunk_alloc(void *ctx, struct mgcp_ratectr_trunk *ratectr);