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