This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tango-tsg-master/src/tsg_stat.h
2023-06-27 14:58:46 +08:00

132 lines
3.4 KiB
C

#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);