summaryrefslogtreecommitdiff
path: root/src/tsg_stat.h
blob: 078d67d889ce4745c783086a74b63361c9ab20cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#pragma once

enum STAT_STATUS
{
	STAT_STATUS_SUCCESS=0,
	STAT_STATUS_FAIL
};

//table: inject, mirror, set_timeout, tamper
enum FLOW_STAT
{
	FLOW_STAT_INJECT=0,
	FLOW_STAT_MIRROR_PKT,
	FLOW_STAT_MIRROR_BYTE,
	FLOW_STAT_SET_TIMEOUT,
	FLOW_STAT_TAMPER,
	FLOW_STAT_MAX
};

//table: LPI, DPKT, THRID, USER_DEFINE, BUILT_IN
enum SYNC_APP
{
	SYNC_APP_LPI=0,
	SYNC_APP_DPKT,
	SYNC_APP_THRID,
	SYNC_APP_USER_DEFINE,
	SYNC_APP_BUILT_IN,
	SYNC_APP_MAX
};

//table: add del
//asn, gtpc, location, fqdn_category, subscriber, compile, mirror, http_response, dns_response, app_id_dict, tunnel_catalog, tunnel_endpoint, tunnel_label
enum SYNC_EXDATA_ROW
{
	SYNC_EXDATA_ROW_ASN=0,
	SYNC_EXDATA_ROW_GTPC,
	SYNC_EXDATA_ROW_LOCATION,
	SYNC_EXDATA_ROW_FQDN_CATEGORY,
	SYNC_EXDATA_ROW_SUBSCRIBER,
	SYNC_EXDATA_ROW_COMPILE,
	SYNC_EXDATA_ROW_MIRRORED,
	SYNC_EXDATA_ROW_HTTP_RESPONSE,
	SYNC_EXDATA_ROW_DNS_RESPONSE,
	SYNC_EXDATA_ROW_APP_ID_DICT,
	SYNC_EXDATA_ROW_TUNNEL_CATALOG,
	SYNC_EXDATA_ROW_TUNNEL_ENDPOINT,
	SYNC_EXDATA_ROW_TUNNEL_LABEL,
	SYNC_EXDATA_ROW_MAX
};

//table: success, success/s, fail, fail/s, drop, drop/s
enum LOG_STATUS
{
	LOG_STATUS_SUCCESS=0,
	LOG_STATUS_SUCCESS_S,
	LOG_STATUS_FAIL,
	LOG_STATUS_FAIL_S,
	LOG_STATUS_DROP,
	LOG_STATUS_DROP_S,
	LOG_STATUS_MAX
};

//table: create, duplication, append, free_count, free_size, free_capacity

enum LOG_HANDLE
{
	LOG_HANDLE_CREATE_CNT,
	LOG_HANDLE_DUP_CNT,
	LOG_HANDLE_APPEND_CNT,
	LOG_HANDLE_FREE_CNT,
	LOG_HANDLE_FREE_SIZE,
	LOG_HANDLE_FREE_CAPACITY,
	LOG_HANDLE_MAX
};

//table: unknown, shunt, allow, deny, shaping, intercept, no_intercept, service_chaining, monitor

enum RULE_TYPE
{
	RULE_TYPE_UNKNOW=0,
	RULE_TYPE_SHUNT,
	RULE_TYPE_ALLOW,
	RULE_TYPE_DENY,
	RULE_TYPE_SHAPING,
	RULE_TYPE_INTERCEPT,
	RULE_TYPE_NO_INTERCEPT,
	RULE_TYPE_SERVICE_CHAINING,
	RULE_TYPE_MONITOR,
	RULE_TYPE_MAX
};

//table: unknown, rstall, opening, activing, log_update, closing
enum CTRL_SYNC
{
	CTRL_SYNC_UNKNOWN=0,
	CTRL_SYNC_RSTALL,
	CTRL_SYNC_OPENING,
	CTRL_SYNC_ACTIVING,
	CTRL_SYNC_LOG_UPDATE,
	CTRL_SYNC_CLOSING,
	CTRL_SYNC_MAX
};

//table: activing, updating
enum CTRL_SERVICE
{
	CTRL_SERVICE_UNKNOWN=0,
	CTRL_SERVICE_CHAINING,
	CTRL_SERVICE_SHAPING,
	CTRL_SERVICE_INTERCEPT,
	CTRL_SERVICE_MAX
};

int tsg_stat_create(const char *conffile);
int tsg_stat_init(void);
int tsg_stat_sendlog_row_init(const char *row_name);
void tsg_stat_start(void);
// return row index

void tsg_stat_abort_rule_update(enum RULE_TYPE column_idx, long long increase);
void tsg_stat_send_rule_update(enum RULE_TYPE column_idx, long long increase);
void tsg_stat_log_handle_update(enum LOG_HANDLE column_idx, long long increase);
void tsg_stat_sync_exdata_add_update(enum SYNC_EXDATA_ROW row_idx, long long increase);
void tsg_stat_sync_exdata_del_update(enum SYNC_EXDATA_ROW row_idx, long long increase);
void tsg_stat_sync_application_update(enum SYNC_APP column_idx, long long increase);
void tsg_stat_sendlog_update(int row_idx, enum LOG_STATUS column_idx, long long increase);
void tsg_stat_flow_update(enum STAT_STATUS status, enum FLOW_STAT column_idx, long long increase);
void tsg_stat_sync_ctrl_update(enum STAT_STATUS status, enum CTRL_SYNC column_idx, long long increase);
void tsg_stat_ctrl_service_activing_update(enum STAT_STATUS status, enum CTRL_SERVICE column_idx, long long increase);
void tsg_stat_ctrl_service_updating_update(enum STAT_STATUS status, enum CTRL_SERVICE column_idx, long long increase);