TSG-16060: 支持statistics policy

This commit is contained in:
刘学利
2023-08-06 10:45:19 +00:00
parent e089f98c5a
commit 79ca2d2ac4
15 changed files with 300 additions and 79 deletions

View File

@@ -96,5 +96,6 @@ install(FILES inc/tsg_statistic.h DESTINATION /opt/MESA/include/tsg COMPONENT HE
install(FILES inc/tsg_label.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER) install(FILES inc/tsg_label.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER)
install(FILES inc/app_label.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER) install(FILES inc/app_label.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER)
install(FILES inc/tsg_gtp_signaling.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER) install(FILES inc/tsg_gtp_signaling.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER)
install(FILES inc/statistics_metrics.h DESTINATION /opt/MESA/include/tsg COMPONENT HEADER)
include(Package) include(Package)

View File

@@ -2,7 +2,7 @@
{ {
"table_id": 0, "table_id": 0,
"table_name": "TSG_COMPILE", "table_name": "TSG_COMPILE",
"db_tables":["TSG_SECURITY_COMPILE", "PXY_INTERCEPT_COMPILE", "TRAFFIC_SHAPING_COMPILE", "SERVICE_CHAINING_COMPILE", "APP_SIG_COMPILE", "APP_PRE_SIG_COMPILE", "APP_SELECTOR_COMPILE"], "db_tables":["TSG_SECURITY_COMPILE", "PXY_INTERCEPT_COMPILE", "TRAFFIC_SHAPING_COMPILE", "SERVICE_CHAINING_COMPILE", "APP_SIG_COMPILE", "APP_PRE_SIG_COMPILE", "APP_SELECTOR_COMPILE", "STATISTICS_COMPILE"],
"table_type": "compile", "table_type": "compile",
"user_region_encoded": "escape", "user_region_encoded": "escape",
"valid_column": 8, "valid_column": 8,
@@ -22,7 +22,7 @@
{ {
"table_id": 1, "table_id": 1,
"table_name": "TSG_GROUP_COMPILE_RELATION", "table_name": "TSG_GROUP_COMPILE_RELATION",
"db_tables":["GROUP_SECURITY_COMPILE_RELATION", "GROUP_PXY_INTERCEPT_COMPILE_RELATION", "GROUP_SHAPING_COMPILE_RELATION", "GROUP_SERVICE_CHAINING_COMPILE_RELATION", "APP_SIG_GROUP_COMPILE_RELATION", "APP_PRE_SIG_GROUP_COMPILE_RELATION", "APP_SELECTOR_GROUP_COMPILE_RELATION"], "db_tables":["GROUP_SECURITY_COMPILE_RELATION", "GROUP_PXY_INTERCEPT_COMPILE_RELATION", "GROUP_SHAPING_COMPILE_RELATION", "GROUP_SERVICE_CHAINING_COMPILE_RELATION", "APP_SIG_GROUP_COMPILE_RELATION", "APP_PRE_SIG_GROUP_COMPILE_RELATION", "APP_SELECTOR_GROUP_COMPILE_RELATION", "GROUP_STATISTICS_COMPILE_RELATION"],
"table_type": "group2compile", "table_type": "group2compile",
"associated_compile_table_id": 0, "associated_compile_table_id": 0,
"valid_column": 3, "valid_column": 3,
@@ -1013,5 +1013,29 @@
"low_bound": 3, "low_bound": 3,
"up_bound": 4 "up_bound": 4
} }
},
{
"table_id": 111,
"table_name": "STATISTICS_TEMPLATE",
"table_type": "plugin",
"valid_column": 3,
"custom": {
"key": 1,
"key_type": "integer",
"key_len": 8,
"gc_timeout_s":10
}
},
{
"table_id": 112,
"table_name": "STATISTICS_CHART",
"table_type": "plugin",
"valid_column": 7,
"custom": {
"key": 1,
"key_type": "integer",
"key_len": 8,
"gc_timeout_s":10
}
} }
] ]

39
inc/statistics_metrics.h Normal file
View File

@@ -0,0 +1,39 @@
#pragma once
enum STATISTICS_DIMENSION
{
DIMENSION_MAAT_RULE=0,
DIMENSION_MAAT_STATE,
DIMENSION_FQDN,
DIMENSION_CATEGORY_ID,
DIMENSION_APPLICATION,
DIMENSION_MAX
};
#ifndef MAX_CATEGORY_ID_NUM
#define MAX_CATEGORY_ID_NUM 8
#endif
struct server_fqdn_category
{
int n_ids;
unsigned int ids[MAX_CATEGORY_ID_NUM];
};
struct statistics_dimensions
{
enum STATISTICS_DIMENSION type;
union
{
char *server_fqdn;
char *application;
struct maat_state *maat_state;
struct matched_policy_rules *policy;
struct server_fqdn_category *category;
};
};
int session_dimension_server_fqdn_sync(const struct streaminfo *a_stream, char *server_fqdn);
int session_dimension_application_sync(const struct streaminfo *a_stream, char *application);
int session_dimension_maat_state_sync(const struct streaminfo *a_stream, struct maat_state *state);
int session_dimension_maat_rule_sync(const struct streaminfo *a_stream, struct matched_policy_rules *policy);
int session_dimension_category_id_sync(const struct streaminfo *a_stream, unsigned int *category_id, int n_category_id);

View File

@@ -2,7 +2,6 @@
#include <stddef.h> #include <stddef.h>
#define MAX_CATEGORY_ID_NUM 8
#define MAX_STR_FIELD_LEN 64 #define MAX_STR_FIELD_LEN 64
#define MAX_VLAN_ID_NUM 32 #define MAX_VLAN_ID_NUM 32

View File

@@ -12,7 +12,8 @@
#define TSG_ACTION_S_CHAINING 0x40 #define TSG_ACTION_S_CHAINING 0x40
#define TSG_ACTION_BYPASS 0x60 #define TSG_ACTION_BYPASS 0x60
#define TSG_ACTION_SHUNT 0x80 #define TSG_ACTION_SHUNT 0x80
#define TSG_ACTION_MAX 0x80 #define TSG_ACTION_STATISTICS 0x81
#define TSG_ACTION_MAX 0x81
enum TSG_SERVICE enum TSG_SERVICE
{ {
@@ -22,6 +23,7 @@ enum TSG_SERVICE
TSG_SERVICE_SHAPING=6, TSG_SERVICE_SHAPING=6,
TSG_SERVICE_PRE_SIGNATURE=7, TSG_SERVICE_PRE_SIGNATURE=7,
TSG_SERVICE_SIGNATURE=8, TSG_SERVICE_SIGNATURE=8,
TSG_SERVICE_STATISTICS=10,
TSG_SERVICE_MAX TSG_SERVICE_MAX
}; };

View File

@@ -47,7 +47,7 @@ int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle
int TLD_cancel(struct TLD_handle_t *handle); int TLD_cancel(struct TLD_handle_t *handle);
//return topic_id; return >=0 if success,otherwise return -1; //return topic_id; return >=0 if success,otherwise return -1;
int tsg_register_topic(struct tsg_log_instance_t *instance, const char *topic_name); int tsg_register_topic(struct tsg_log_instance_t *instance, char *topic_name);
int tsg_send_payload(struct tsg_log_instance_t *instance, int topic_id, char *payload, int payload_len, int thread_id); int tsg_send_payload(struct tsg_log_instance_t *instance, int topic_id, char *payload, int payload_len, int thread_id);
int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, const struct streaminfo *a_stream, enum LOG_TYPE log_type, struct maat_rule *rules, size_t n_rules, int thread_id); int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, const struct streaminfo *a_stream, enum LOG_TYPE log_type, struct maat_rule *rules, size_t n_rules, int thread_id);

View File

@@ -28,7 +28,7 @@ struct traffic_packet_info
uint64_t c2s_pkts; uint64_t c2s_pkts;
uint64_t s2c_pkts; uint64_t s2c_pkts;
uint64_t c2s_fragments; uint64_t c2s_fragments;
uint64_t s2c_fragments; uint64_t s2c_fragments;
uint64_t c2s_tcp_ooorder_pkts; uint64_t c2s_tcp_ooorder_pkts;
uint64_t s2c_tcp_ooorder_pkts; uint64_t s2c_tcp_ooorder_pkts;
uint64_t c2s_tcp_retransmitted_pkts; uint64_t c2s_tcp_retransmitted_pkts;
@@ -49,4 +49,17 @@ int tsg_set_statistic_opt(int value, enum _STATISTIC_OPT_TYPE type, int thread_s
int tsg_set_application_metrics(const struct streaminfo *a_stream, const char *l4_protocol, const char *app_full_path, struct traffic_packet_info *app_statis, int thread_seq); int tsg_set_application_metrics(const struct streaminfo *a_stream, const char *l4_protocol, const char *app_full_path, struct traffic_packet_info *app_statis, int thread_seq);
//statistics policy
int tsg_set_statistics_policy(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
int tsg_set_statistics_fqdn(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
int tsg_set_statistics_fqdn_category(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
int tsg_set_statistics_client_object(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
int tsg_set_statistics_server_object(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
int tsg_set_statistics_application(const struct streaminfo *a_stream, struct maat_rule *p_result, int thread_seq);
// statistics object
int tsg_set_statistics_object(const struct streaminfo *a_stream, struct maat_hit_group *group, long long *item_id, int n_item_id, int thread_seq);
#endif #endif

View File

@@ -10,6 +10,7 @@
#include "tsg_variable.h" #include "tsg_variable.h"
#include "tsg_sync_state.h" #include "tsg_sync_state.h"
#include "tsg_rule_internal.h" #include "tsg_rule_internal.h"
#include "statistics_metrics.h"
extern int session_app_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data); extern int session_app_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data);
extern int session_flags_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data); extern int session_flags_identify_result_cb(const struct streaminfo *a_stream, int bridge_id, void *data);
@@ -1002,6 +1003,75 @@ void session_matched_rules_notify(const struct streaminfo *a_stream, TSG_SERVICE
return ; return ;
} }
int session_dimension_server_fqdn_sync(const struct streaminfo *a_stream, char *server_fqdn)
{
if(server_fqdn==NULL)
{
return 0;
}
struct statistics_dimensions dimension;
dimension.type=DIMENSION_FQDN;
dimension.server_fqdn=server_fqdn;
return stream_bridge_sync_data_put(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].id, (void *)&(dimension));
}
int session_dimension_application_sync(const struct streaminfo *a_stream, char *application)
{
if(application==NULL)
{
return 0;
}
struct statistics_dimensions dimension;
dimension.type=DIMENSION_APPLICATION;
dimension.application=application;
return stream_bridge_sync_data_put(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].id, (void *)&(dimension));
}
int session_dimension_maat_state_sync(const struct streaminfo *a_stream, struct maat_state *state)
{
if(state==NULL)
{
return 0;
}
struct statistics_dimensions dimension;
dimension.type=DIMENSION_MAAT_STATE;
dimension.maat_state=state;
return stream_bridge_sync_data_put(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].id, (void *)&(dimension));
}
int session_dimension_maat_rule_sync(const struct streaminfo *a_stream, struct matched_policy_rules *policy)
{
if(policy==NULL)
{
return 0;
}
struct statistics_dimensions dimension;
dimension.type=DIMENSION_MAAT_RULE;
dimension.policy=policy;
return stream_bridge_sync_data_put(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].id, (void *)&(dimension));
}
int session_dimension_category_id_sync(const struct streaminfo *a_stream, unsigned int *category_id, int n_category_id)
{
if(category_id==NULL || n_category_id==0)
{
return 0;
}
struct server_fqdn_category category;
category.n_ids=MIN(n_category_id, MAX_CATEGORY_ID_NUM);
memcpy(category.ids, category_id, category.n_ids*sizeof(unsigned int));
struct statistics_dimensions dimension;
dimension.type=DIMENSION_CATEGORY_ID;
dimension.category=&category;
return stream_bridge_sync_data_put(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].id, (void *)&(dimension));
}
void *session_mac_linkinfo_get(const struct streaminfo *a_stream) void *session_mac_linkinfo_get(const struct streaminfo *a_stream)
{ {
return session_async_bridge_get_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_MAC_LINKINFO].id); return session_async_bridge_get_data(a_stream, g_tsg_bridge_para[BRIDGE_TYPE_MAC_LINKINFO].id);
@@ -1161,6 +1231,9 @@ int tsg_bridge_init(const char *conffile)
MESA_load_profile_string_def(conffile, "BRIDGE", "PROXY_LOG_UPDATE_BRIDGE_NAME", g_tsg_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].name, MAX_BRIDGE_NAME_LEN, "PROXY_LOG_UPDATE"); MESA_load_profile_string_def(conffile, "BRIDGE", "PROXY_LOG_UPDATE_BRIDGE_NAME", g_tsg_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].name, MAX_BRIDGE_NAME_LEN, "PROXY_LOG_UPDATE");
g_tsg_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].free_cb = session_proxy_log_update_free; g_tsg_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].free_cb = session_proxy_log_update_free;
// statistics dimensions
MESA_load_profile_string_def(conffile, "BRIDGE", "STATISTICS_DIMENSIONS", g_tsg_bridge_para[BRIDGE_TYPE_STATISTICS_DIMENSION].name, MAX_BRIDGE_NAME_LEN, "STATISTICS_DIMENSIONS");
for(int i=0; i<BRIDGE_TYPE_MAX; i++) for(int i=0; i<BRIDGE_TYPE_MAX; i++)
{ {
g_tsg_bridge_para[i].id=stream_bridge_build(g_tsg_bridge_para[i].name, "w"); g_tsg_bridge_para[i].id=stream_bridge_build(g_tsg_bridge_para[i].name, "w");

View File

@@ -8,6 +8,8 @@
#include "tsg_leaky_bucket.h" #include "tsg_leaky_bucket.h"
#include "tsg_send_log_internal.h" #include "tsg_send_log_internal.h"
#include "tsg_statistic.h" #include "tsg_statistic.h"
#include "statistics_metrics.h"
#ifndef MAX_BRIDGE_NAME_LEN #ifndef MAX_BRIDGE_NAME_LEN
#define MAX_BRIDGE_NAME_LEN 64 #define MAX_BRIDGE_NAME_LEN 64
@@ -40,7 +42,7 @@ enum BRIDGE_TYPE
BRIDGE_TYPE_LOG_UPDATE_SCE, BRIDGE_TYPE_LOG_UPDATE_SCE,
BRIDGE_TYPE_LOG_UPDATE_SHAPER, BRIDGE_TYPE_LOG_UPDATE_SHAPER,
BRIDGE_TYPE_LOG_UPDATE_PROXY, BRIDGE_TYPE_LOG_UPDATE_PROXY,
BRIDGE_TYPE_STATISTICS_DIMENSION,
BRIDGE_TYPE_MAX BRIDGE_TYPE_MAX
}; };

View File

@@ -36,6 +36,7 @@
#include "tsg_proxy.h" #include "tsg_proxy.h"
#include "tsg_bridge.h" #include "tsg_bridge.h"
#include "uthash.h" #include "uthash.h"
#include "statistics_metrics.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
@@ -1656,19 +1657,6 @@ int session_l7_protocol_identify(const struct streaminfo *a_stream, struct sessi
return ret; return ret;
} }
static size_t tsg_scan_fqdn_category_id(const struct streaminfo *a_stream, struct maat *feather, char *domain, int table_idx, struct maat_state *s_mid, maat_rule *matched_rules, size_t n_matched_rules)
{
struct session_runtime_attribute *srt_attribute=(struct session_runtime_attribute *)session_runtime_attribute_new(a_stream);
if(srt_attribute!=NULL && domain!=NULL && table_idx>=0)
{
srt_attribute->n_fqdn_category_ids=tsg_get_fqdn_category_ids(g_tsg_maat_feather, domain, srt_attribute->fqdn_category_ids, MAX_CATEGORY_ID_NUM);
return tsg_scan_fqdn_category_id(a_stream, g_tsg_maat_feather, srt_attribute->fqdn_category_ids, srt_attribute->n_fqdn_category_ids, table_idx, s_mid, matched_rules, n_matched_rules);
}
return 0;
}
size_t session_app_id_and_properties_scan(const struct streaminfo *a_stream, struct maat_rule *matched_rules, size_t n_matched_rules, struct session_runtime_process_context *srt_process_context, struct app_attributes *app_attribute, char app_attribute_num, APP_IDENTIFY_ORIGIN origin, int thread_seq) size_t session_app_id_and_properties_scan(const struct streaminfo *a_stream, struct maat_rule *matched_rules, size_t n_matched_rules, struct session_runtime_process_context *srt_process_context, struct app_attributes *app_attribute, char app_attribute_num, APP_IDENTIFY_ORIGIN origin, int thread_seq)
{ {
size_t matched_cnt=0; size_t matched_cnt=0;
@@ -1832,6 +1820,18 @@ static unsigned char matched_security_rules_deal(const struct streaminfo *a_stre
return state; return state;
} }
int matched_statistics_rules_deal(const struct streaminfo *a_stream, struct maat_rule *statistics_rules, size_t n_statistics_rules, int thread_seq)
{
struct matched_policy_rules policy;
policy.n_rules=MIN(MAX_RESULT_NUM, n_statistics_rules);
memcpy(policy.rules, statistics_rules, (policy.n_rules)*sizeof(struct maat_rule));
session_dimension_maat_rule_sync(a_stream, &policy);
srt_action_context_set_rule_method(a_stream, TSG_METHOD_TYPE_UNKNOWN, thread_seq);
return 0;
}
int matched_shaping_rules_deal(const struct streaminfo *a_stream, struct maat_rule *shaping_rules, size_t n_shaping_rules, int thread_seq) int matched_shaping_rules_deal(const struct streaminfo *a_stream, struct maat_rule *shaping_rules, size_t n_shaping_rules, int thread_seq)
{ {
session_state_sync_in_activing(a_stream, TSG_SERVICE_SHAPING, shaping_rules, n_shaping_rules, thread_seq); session_state_sync_in_activing(a_stream, TSG_SERVICE_SHAPING, shaping_rules, n_shaping_rules, thread_seq);
@@ -1860,13 +1860,14 @@ int matched_service_chaining_rules_deal(const struct streaminfo *a_stream, struc
unsigned char session_matched_rules_deal(const struct streaminfo *a_stream, struct session_runtime_process_context *srt_process_context, struct maat_rule *matched_rules, size_t n_matched_rules, const void *a_packet) unsigned char session_matched_rules_deal(const struct streaminfo *a_stream, struct session_runtime_process_context *srt_process_context, struct maat_rule *matched_rules, size_t n_matched_rules, const void *a_packet)
{ {
int thread_seq=a_stream->threadnum;
unsigned char state=APP_STATE_GIVEME; unsigned char state=APP_STATE_GIVEME;
struct maat_rule security_rules[MAX_RESULT_NUM]={0}; struct maat_rule security_rules[MAX_RESULT_NUM]={0};
size_t n_security_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, security_rules, MAX_RESULT_NUM, TSG_SERVICE_SECURITY); size_t n_security_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, security_rules, MAX_RESULT_NUM, TSG_SERVICE_SECURITY);
if(n_security_rules>0) if(n_security_rules>0)
{ {
state=matched_security_rules_deal(a_stream, srt_process_context, security_rules, n_security_rules, a_packet, a_stream->threadnum); state=matched_security_rules_deal(a_stream, srt_process_context, security_rules, n_security_rules, a_packet,thread_seq);
if(state&APP_STATE_KILL_OTHER) if(state&APP_STATE_KILL_OTHER)
{ {
return state; return state;
@@ -1877,21 +1878,28 @@ unsigned char session_matched_rules_deal(const struct streaminfo *a_stream, stru
size_t n_s_chaining_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, s_chaining_rules, MAX_RESULT_NUM, TSG_SERVICE_CHAINING); size_t n_s_chaining_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, s_chaining_rules, MAX_RESULT_NUM, TSG_SERVICE_CHAINING);
if(n_s_chaining_rules>0) if(n_s_chaining_rules>0)
{ {
matched_service_chaining_rules_deal(a_stream, s_chaining_rules, n_s_chaining_rules, a_stream->threadnum); matched_service_chaining_rules_deal(a_stream, s_chaining_rules, n_s_chaining_rules, thread_seq);
} }
struct maat_rule shaping_rules[MAX_RESULT_NUM]={0}; struct maat_rule shaping_rules[MAX_RESULT_NUM]={0};
size_t n_shaping_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, shaping_rules, MAX_RESULT_NUM, TSG_SERVICE_SHAPING); size_t n_shaping_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, shaping_rules, MAX_RESULT_NUM, TSG_SERVICE_SHAPING);
if(n_shaping_rules>0) if(n_shaping_rules>0)
{ {
matched_shaping_rules_deal(a_stream, shaping_rules, n_shaping_rules, a_stream->threadnum); matched_shaping_rules_deal(a_stream, shaping_rules, n_shaping_rules, thread_seq);
} }
struct maat_rule intercept_rules[MAX_RESULT_NUM]={0}; struct maat_rule intercept_rules[MAX_RESULT_NUM]={0};
size_t n_intercept_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, intercept_rules, MAX_RESULT_NUM, TSG_SERVICE_INTERCEPT); size_t n_intercept_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, intercept_rules, MAX_RESULT_NUM, TSG_SERVICE_INTERCEPT);
if(n_intercept_rules>0) if(n_intercept_rules>0)
{ {
matched_intercept_rules_deal(a_stream, intercept_rules, n_intercept_rules, a_stream->threadnum); matched_intercept_rules_deal(a_stream, intercept_rules, n_intercept_rules, thread_seq);
}
struct maat_rule statistics_rules[MAX_RESULT_NUM];
size_t n_statistics_rules=tsg_select_rules_by_service_id(matched_rules, n_matched_rules, statistics_rules, MAX_RESULT_NUM, TSG_SERVICE_STATISTICS);
if(n_shaping_rules>0)
{
matched_statistics_rules_deal(a_stream, statistics_rules, n_statistics_rules, thread_seq);
} }
return state; return state;
@@ -2019,6 +2027,13 @@ int session_app_identify_result_cb(const struct streaminfo *a_stream, int bridge
return 0; return 0;
} }
char app_full_path[256]={0};
session_application_full_path_update(a_stream, app_full_path, sizeof(app_full_path));
if(strlen(app_full_path)>0)
{
session_dimension_application_sync(a_stream, app_full_path);
}
if(srt_process_context->mid==NULL) if(srt_process_context->mid==NULL)
{ {
return 0; return 0;
@@ -2094,11 +2109,32 @@ size_t session_pending_state_deal(const struct streaminfo *a_stream, struct sess
session_ssl_ja3_fingerprint_generate(a_stream); session_ssl_ja3_fingerprint_generate(a_stream);
} }
int table_idx=tsg_domain_table_idx_get(srt_process_context->proto); if(srt_process_context->domain!=NULL)
matched_cnt+=tsg_scan_shared_policy(a_stream, g_tsg_maat_feather, srt_process_context->domain, table_idx, (srt_process_context->mid), matched_rules+matched_cnt, n_matched_rules-matched_cnt); {
int table_idx=tsg_domain_table_idx_get(srt_process_context->proto);
table_idx=tsg_fqdn_category_table_idx_get(srt_process_context->proto); matched_cnt+=tsg_scan_shared_policy(a_stream, g_tsg_maat_feather, srt_process_context->domain, table_idx, (srt_process_context->mid), matched_rules+matched_cnt, n_matched_rules-matched_cnt);
matched_cnt+=tsg_scan_fqdn_category_id(a_stream, g_tsg_maat_feather, srt_process_context->domain, table_idx, (srt_process_context->mid), matched_rules+matched_cnt, n_matched_rules-matched_cnt);
struct session_runtime_attribute *srt_attribute=(struct session_runtime_attribute *)session_runtime_attribute_new(a_stream);
srt_attribute->n_fqdn_category_ids=tsg_get_fqdn_category_ids(g_tsg_maat_feather, srt_process_context->domain, srt_attribute->fqdn_category_ids, MAX_CATEGORY_ID_NUM);
session_dimension_server_fqdn_sync(a_stream, srt_process_context->domain);
session_dimension_category_id_sync(a_stream, srt_attribute->fqdn_category_ids, srt_attribute->n_fqdn_category_ids);
table_idx=tsg_fqdn_category_table_idx_get(srt_process_context->proto);
if(srt_attribute!=NULL && table_idx>=0)
{
matched_cnt+=tsg_scan_fqdn_category_id(a_stream,
g_tsg_maat_feather,
srt_attribute->fqdn_category_ids,
srt_attribute->n_fqdn_category_ids,
table_idx,
srt_process_context->mid,
matched_rules+matched_cnt,
n_matched_rules-matched_cnt
);
}
}
if(srt_process_context->is_esni) if(srt_process_context->is_esni)
{ {
protocol_id=tsg_l7_protocol_name2id("ESNI", 4); protocol_id=tsg_l7_protocol_name2id("ESNI", 4);
@@ -2121,7 +2157,7 @@ size_t session_pending_state_deal(const struct streaminfo *a_stream, struct sess
if(srt_process_context->proto==PROTO_HTTP && srt_process_context->http_url!=NULL) if(srt_process_context->proto==PROTO_HTTP && srt_process_context->http_url!=NULL)
{ {
table_idx=tsg_http_url_table_idx_get(); int table_idx=tsg_http_url_table_idx_get();
matched_cnt+=tsg_scan_shared_policy(a_stream, g_tsg_maat_feather, srt_process_context->http_url, table_idx, (srt_process_context->mid), matched_rules+matched_cnt, n_matched_rules-matched_cnt); matched_cnt+=tsg_scan_shared_policy(a_stream, g_tsg_maat_feather, srt_process_context->http_url, table_idx, (srt_process_context->mid), matched_rules+matched_cnt, n_matched_rules-matched_cnt);
} }
@@ -2243,6 +2279,8 @@ static unsigned char tsg_master_data_entry(const struct streaminfo *a_stream, vo
state=session_matched_rules_deal(a_stream, srt_process_context, matched_rules, matched_cnt, a_packet); state=session_matched_rules_deal(a_stream, srt_process_context, matched_rules, matched_cnt, a_packet);
break; break;
} }
session_dimension_maat_state_sync(a_stream, srt_process_context->mid);
if((a_stream->opstate==OP_STATE_CLOSE) || (state&APP_STATE_DROPME)==APP_STATE_DROPME) if((a_stream->opstate==OP_STATE_CLOSE) || (state&APP_STATE_DROPME)==APP_STATE_DROPME)
{ {
@@ -2303,8 +2341,16 @@ static unsigned char tsg_master_all_entry(const struct streaminfo *a_stream, uns
{ {
matched_shaping_rules_deal(a_stream, shaping_rules, n_shaping_rules, thread_seq); matched_shaping_rules_deal(a_stream, shaping_rules, n_shaping_rules, thread_seq);
} }
struct maat_rule statistics_rules[MAX_RESULT_NUM];
size_t n_statistics_rules=tsg_select_rules_by_service_id(matched_rules, matched_cnt, statistics_rules, MAX_RESULT_NUM, TSG_SERVICE_SHAPING);
if(state==APP_STATE_GIVEME && n_statistics_rules>0)
{
matched_statistics_rules_deal(a_stream, statistics_rules, n_statistics_rules, thread_seq);
}
} }
session_dimension_maat_state_sync(a_stream, scan_mid);
maat_state_free(scan_mid); maat_state_free(scan_mid);
scan_mid=NULL; scan_mid=NULL;
} }

View File

@@ -290,6 +290,8 @@ int tsg_stat_init(void)
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_catalog", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_CATALOG]); fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_catalog", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_CATALOG]);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_endpoint", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_ENDPOINT]); fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_endpoint", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_ENDPOINT]);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_label", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_LABEL]); fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_label", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_LABEL]);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "statistics_template", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_STATISTICS_TEMPLATE]);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "statistics_chart", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_STATISTICS_CHART]);
enum field_type flow_column_type[FLOW_STAT_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE}; enum field_type flow_column_type[FLOW_STAT_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *flow_column_name[FLOW_STAT_MAX]={"inject", "mirror_pkts", "mirror_bytes", "set_timeout", "tamper"}; const char *flow_column_name[FLOW_STAT_MAX]={"inject", "mirror_pkts", "mirror_bytes", "set_timeout", "tamper"};

View File

@@ -45,6 +45,8 @@ enum SYNC_EXDATA_ROW
SYNC_EXDATA_ROW_TUNNEL_CATALOG, SYNC_EXDATA_ROW_TUNNEL_CATALOG,
SYNC_EXDATA_ROW_TUNNEL_ENDPOINT, SYNC_EXDATA_ROW_TUNNEL_ENDPOINT,
SYNC_EXDATA_ROW_TUNNEL_LABEL, SYNC_EXDATA_ROW_TUNNEL_LABEL,
SYNC_EXDATA_ROW_STATISTICS_TEMPLATE,
SYNC_EXDATA_ROW_STATISTICS_CHART,
SYNC_EXDATA_ROW_MAX SYNC_EXDATA_ROW_MAX
}; };

View File

@@ -16,6 +16,7 @@ global:
*session_matched_rules_notify*; *session_matched_rules_notify*;
*session_matched_rules_copy*; *session_matched_rules_copy*;
*session_packet_capture_by_rules_notify*; *session_packet_capture_by_rules_notify*;
*session_dimension_*;
*GIT*; *GIT*;
}; };
local: *; local: *;

View File

@@ -2452,6 +2452,23 @@
"123\ttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest\t[66]\t1" "123\ttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest\t[66]\t1"
] ]
}, },
{
"table_name": "STATISTICS_TEMPLATE",
"table_content": [
"100\t[1000,1001,1002,1003]\t1",
"101\t[1000,1001,1002,1003\t1",
"102\t[]\t1"
]
},
{
"table_name": "STATISTICS_CHART",
"table_content": [
"1000\t[\"server_ip\",\"client_ip\"]\t[{\"metric\":\"bytes\",\"type\":\"counter\"},{\"metric\":\"sessions\",\"type\":\"counter\"}]\t{\"type\":\"Top-K\",\"order_by\":\"bytes\",\"max_values\":1024}\t{\"incoming_bytes\":1000,\"outgoing_bytes\":2000}\t10\t1",
"1001\t[\"server_ip\",\"client_ip\"]\t[{\"metric\":\"bytes\",\"type\":\"counter\"},{\"metric\":\"sessions\",\"type\":\"counter\"}]\t{\"type\":\"Top-K\",\"order_by\":\"bytes\",\"max_values\":1024}\t{\"incoming_bytes\":1000,\"outgoing_bytes\":2000}\t10\t1",
"1002\t[\"server_ip\",\"client_ip\"]\t[{\"metric\":\"bytes\",\"type\":\"counter\"},{\"metric\":\"sessions\",\"type\":\"counter\"}]\t{\"type\":\"Top-K\",\"order_by\":\"bytes\",\"max_values\":1024}\t{\"incoming_bytes\":1000,\"outgoing_bytes\":2000}\t10\t1",
"1003\t[\"server_ip\",\"client_ip\"]\t[{\"metric\":\"bytes\",\"type\":\"counter\"},{\"metric\":\"sessions\",\"type\":\"counter\"}]\t{\"type\":\"Top-K\",\"order_by\":\"bytes\",\"max_values\":1024}\t{\"incoming_bytes\":1000,\"outgoing_bytes\":2000}\t10\t1"
]
},
{ {
"table_name": "T_VSYS_INFO", "table_name": "T_VSYS_INFO",
"table_content": [ "table_content": [

View File

@@ -40,7 +40,7 @@ int session_capture_packets_sync(const struct streaminfo * a_stream, struct maat
return 0; return 0;
} }
TEST(TM, ExDataGTPC) TEST(TSG_RULE, ExDataGTPC)
{ {
/****************************************************************************************************** /******************************************************************************************************
table name: TSG_DYN_MOBILE_IDENTITY_APN_TEID table name: TSG_DYN_MOBILE_IDENTITY_APN_TEID
@@ -66,7 +66,7 @@ TEST(TM, ExDataGTPC)
EXPECT_STREQ("8626070583008402", user_info->imei); EXPECT_STREQ("8626070583008402", user_info->imei);
} }
TEST(TM, ExDataAPPIDDictUnknown) TEST(TSG_RULE, ExDataAPPIDDictUnknown)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -99,7 +99,7 @@ TEST(TM, ExDataAPPIDDictUnknown)
dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id); dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id);
} }
TEST(TM, ExDataAPPIDDictDenyActionDrop) TEST(TSG_RULE, ExDataAPPIDDictDenyActionDrop)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -137,7 +137,7 @@ TEST(TM, ExDataAPPIDDictDenyActionDrop)
dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id); dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id);
} }
TEST(TM, ExDataAPPIDDictDenyActionRatelimit) TEST(TSG_RULE, ExDataAPPIDDictDenyActionRatelimit)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -173,7 +173,7 @@ TEST(TM, ExDataAPPIDDictDenyActionRatelimit)
dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id); dict=(struct app_id_dict *)matched_rule_cites_app_id_dict(g_tsg_maat_feather, ll_app_id);
} }
TEST(TM, ExDataASNBuiltIn) TEST(TSG_RULE, ExDataASNBuiltIn)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_ASN_BUILT_IN table name: TSG_IP_ASN_BUILT_IN
@@ -181,7 +181,7 @@ TEST(TM, ExDataASNBuiltIn)
EXPECT_EQ(1, 1); EXPECT_EQ(1, 1);
} }
TEST(TM, ExDataASNUserDefine) TEST(TSG_RULE, ExDataASNUserDefine)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_ASN_USER_DEFINED table name: TSG_IP_ASN_USER_DEFINED
@@ -189,7 +189,7 @@ TEST(TM, ExDataASNUserDefine)
EXPECT_EQ(1, 1); EXPECT_EQ(1, 1);
} }
TEST(TM, ExDataLocationBuiltIn) TEST(TSG_RULE, ExDataLocationBuiltIn)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_LOCATION_BUILT_IN table name: TSG_IP_LOCATION_BUILT_IN
@@ -218,7 +218,7 @@ TEST(TM, ExDataLocationBuiltIn)
EXPECT_EQ(NULL, location); EXPECT_EQ(NULL, location);
} }
TEST(TM, ExDataLocationUserDefine) TEST(TSG_RULE, ExDataLocationUserDefine)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_LOCATION_USER_DEFINED table name: TSG_IP_LOCATION_USER_DEFINED
@@ -240,7 +240,7 @@ TEST(TM, ExDataLocationUserDefine)
EXPECT_EQ(NULL, location); EXPECT_EQ(NULL, location);
} }
TEST(TM, ExDataFQDNCategoryBuiltIn) TEST(TSG_RULE, ExDataFQDNCategoryBuiltIn)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_FQDN_CATEGORY_BUILT_IN table name: TSG_FQDN_CATEGORY_BUILT_IN
@@ -264,7 +264,7 @@ TEST(TM, ExDataFQDNCategoryBuiltIn)
category_ids[0] = NULL; category_ids[0] = NULL;
} }
TEST(TM, ExDataFQDNCategoryUserDefine) TEST(TSG_RULE, ExDataFQDNCategoryUserDefine)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_FQDN_CATEGORY_USER_DEFINED table name: TSG_FQDN_CATEGORY_USER_DEFINED
@@ -288,7 +288,7 @@ TEST(TM, ExDataFQDNCategoryUserDefine)
category_ids[0] = NULL; category_ids[0] = NULL;
} }
TEST(TM, ExDataTunnelCatalog) TEST(TSG_RULE, ExDataTunnelCatalog)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_CATALOG table name: TSG_TUNNEL_CATALOG
@@ -317,7 +317,7 @@ TEST(TM, ExDataTunnelCatalog)
t_catalog[1] = NULL; t_catalog[1] = NULL;
} }
TEST(TM, ExDataTunnelEndpoint) TEST(TSG_RULE, ExDataTunnelEndpoint)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_ENDPOINT table name: TSG_TUNNEL_ENDPOINT
@@ -353,7 +353,7 @@ TEST(TM, ExDataTunnelEndpoint)
all_endpoint[1] = NULL; all_endpoint[1] = NULL;
} }
TEST(TM, ExDataTunnelLabel) TEST(TSG_RULE, ExDataTunnelLabel)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_LABEL table name: TSG_TUNNEL_LABEL
@@ -365,7 +365,7 @@ TEST(TM, ExDataTunnelLabel)
EXPECT_EQ(0, (long long)label_id); EXPECT_EQ(0, (long long)label_id);
} }
TEST(TM, ExDataSubscriberID) TEST(TSG_RULE, ExDataSubscriberID)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_DYN_SUBSCRIBER_IP table name: TSG_DYN_SUBSCRIBER_IP
@@ -399,7 +399,7 @@ TEST(TM, ExDataSubscriberID)
EXPECT_STREQ("test5629", source_subscribe_id->subscribe_id); EXPECT_STREQ("test5629", source_subscribe_id->subscribe_id);
} }
TEST(TM, ExDataDNSRecordsProfileA) TEST(TSG_RULE, ExDataDNSRecordsProfileA)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_DNS_RECORDS table name: TSG_PROFILE_DNS_RECORDS
@@ -434,7 +434,7 @@ TEST(TM, ExDataDNSRecordsProfileA)
EXPECT_EQ(NULL, profile_records); EXPECT_EQ(NULL, profile_records);
} }
TEST(TM, ExDataDNSRecordsProfileAAAA) TEST(TSG_RULE, ExDataDNSRecordsProfileAAAA)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_DNS_RECORDS table name: TSG_PROFILE_DNS_RECORDS
@@ -467,7 +467,7 @@ TEST(TM, ExDataDNSRecordsProfileAAAA)
EXPECT_EQ(NULL, profile_records); EXPECT_EQ(NULL, profile_records);
} }
TEST(TM, ExDataDNSRecordsProfileCNAME) TEST(TSG_RULE, ExDataDNSRecordsProfileCNAME)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_DNS_RECORDS table name: TSG_PROFILE_DNS_RECORDS
@@ -497,13 +497,13 @@ TEST(TM, ExDataDNSRecordsProfileCNAME)
EXPECT_EQ(NULL, profile_records); EXPECT_EQ(NULL, profile_records);
} }
TEST(TM, ExDataResponsePagesProfile) TEST(TSG_RULE, ExDataResponsePagesProfile)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_RESPONSE_PAGES table name: TSG_PROFILE_RESPONSE_PAGES
profile_id profile_name format path is_valid profile_id profile_name format path is_valid
"957\ttest-html-1\thtml\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.1\t1", "957\ttest-hTSG_RULEl-1\thTSG_RULEl\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.1\t1",
"958\ttest-html-2\thtml\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.2\t1" "958\ttest-hTSG_RULEl-2\thTSG_RULEl\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.2\t1"
**************************************************************************************************************************/ **************************************************************************************************************************/
long long profile_id = 957; long long profile_id = 957;
struct http_response_pages *response_pages = (struct http_response_pages *)maat_plugin_table_get_ex_data(g_tsg_maat_feather, g_tsg_maat_rt_para.plugin_tb[MAAT_PLUGIN_RESPONSE_PAGES].id, (const char *)&profile_id, sizeof(long long)); struct http_response_pages *response_pages = (struct http_response_pages *)maat_plugin_table_get_ex_data(g_tsg_maat_feather, g_tsg_maat_rt_para.plugin_tb[MAAT_PLUGIN_RESPONSE_PAGES].id, (const char *)&profile_id, sizeof(long long));
@@ -524,7 +524,7 @@ TEST(TM, ExDataResponsePagesProfile)
EXPECT_EQ(NULL, response_pages); EXPECT_EQ(NULL, response_pages);
} }
TEST(TM, ExDataTrafficMirrorProfile) TEST(TSG_RULE, ExDataTrafficMirrorProfile)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_TRAFFIC_MIRROR table name: TSG_PROFILE_TRAFFIC_MIRROR
@@ -552,7 +552,7 @@ TEST(TM, ExDataTrafficMirrorProfile)
EXPECT_EQ(NULL, mirror_profile); EXPECT_EQ(NULL, mirror_profile);
} }
TEST(TM, ExDataSessionRecordEnable) TEST(TSG_RULE, ExDataSessionRecordEnable)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: T_VSYS_INFO table name: T_VSYS_INFO
@@ -562,7 +562,7 @@ TEST(TM, ExDataSessionRecordEnable)
EXPECT_EQ(g_tsg_maat_rt_para.session_record_switch, 1); EXPECT_EQ(g_tsg_maat_rt_para.session_record_switch, 1);
} }
TEST(TMAPI, GetUmtsUserInfoFromRedis) TEST(TSG_RULE_API, GetUmtsUserInfoFromRedis)
{ {
/****************************************************************************************************** /******************************************************************************************************
table name: TSG_DYN_MOBILE_IDENTITY_APN_TEID table name: TSG_DYN_MOBILE_IDENTITY_APN_TEID
@@ -585,7 +585,7 @@ TEST(TMAPI, GetUmtsUserInfoFromRedis)
user_info_right = NULL; user_info_right = NULL;
} }
TEST(TMAPI, GetAppIdDictUnknown) TEST(TSG_RULE_API, GetAppIdDictUnknown)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -601,7 +601,7 @@ TEST(TMAPI, GetAppIdDictUnknown)
dict = NULL; dict = NULL;
} }
TEST(TMAPI, GetAppIdDictDenyActionDrop) TEST(TSG_RULE_API, GetAppIdDictDenyActionDrop)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -617,7 +617,7 @@ TEST(TMAPI, GetAppIdDictDenyActionDrop)
dict = NULL; dict = NULL;
} }
TEST(TMAPI, GetAppIdDictDenyActionRatelimit) TEST(TSG_RULE_API, GetAppIdDictDenyActionRatelimit)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -633,7 +633,7 @@ TEST(TMAPI, GetAppIdDictDenyActionRatelimit)
dict = NULL; dict = NULL;
} }
TEST(TMAPI, GetAppNameByIdIllegalPara) TEST(TSG_RULE_API, GetAppNameByIdIllegalPara)
{ {
// int tsg_get_app_name_by_id(int app_id, char *app_name, int app_name_len, int is_joint_parent) // int tsg_get_app_name_by_id(int app_id, char *app_name, int app_name_len, int is_joint_parent)
char app_name[128] = {0}; char app_name[128] = {0};
@@ -642,7 +642,7 @@ TEST(TMAPI, GetAppNameByIdIllegalPara)
EXPECT_EQ(0, tsg_get_app_name_by_id(g_tsg_maat_feather, 68, app_name, 0, 1)); EXPECT_EQ(0, tsg_get_app_name_by_id(g_tsg_maat_feather, 68, app_name, 0, 1));
} }
TEST(TMAPI, GetAppNameByIdParentAppId0) TEST(TSG_RULE_API, GetAppNameByIdParentAppId0)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -655,7 +655,7 @@ TEST(TMAPI, GetAppNameByIdParentAppId0)
EXPECT_EQ(strlen("https"), tsg_get_app_name_by_id(g_tsg_maat_feather, app_id, app_name, 128, 1)); EXPECT_EQ(strlen("https"), tsg_get_app_name_by_id(g_tsg_maat_feather, app_id, app_name, 128, 1));
} }
TEST(TMAPI, GetAppNameByIdParentAppId1) TEST(TSG_RULE_API, GetAppNameByIdParentAppId1)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: APP_ID_DICT table name: APP_ID_DICT
@@ -668,7 +668,7 @@ TEST(TMAPI, GetAppNameByIdParentAppId1)
EXPECT_EQ(strlen("ssl.https"), tsg_get_app_name_by_id(g_tsg_maat_feather, app_id, app_name, 128, 1)); EXPECT_EQ(strlen("ssl.https"), tsg_get_app_name_by_id(g_tsg_maat_feather, app_id, app_name, 128, 1));
} }
TEST(TMAPI, GetLocationInfoLocationBuiltIn) TEST(TSG_RULE_API, GetLocationInfoLocationBuiltIn)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_LOCATION_BUILT_IN table name: TSG_IP_LOCATION_BUILT_IN
@@ -707,7 +707,7 @@ TEST(TMAPI, GetLocationInfoLocationBuiltIn)
EXPECT_EQ(NULL, client_location); EXPECT_EQ(NULL, client_location);
} }
TEST(TMAPI, GetLocationInfoLocationUserDefine) TEST(TSG_RULE_API, GetLocationInfoLocationUserDefine)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_LOCATION_USER_DEFINED table name: TSG_IP_LOCATION_USER_DEFINED
@@ -732,7 +732,7 @@ TEST(TMAPI, GetLocationInfoLocationUserDefine)
EXPECT_EQ(server_location, location); EXPECT_EQ(server_location, location);
} }
TEST(TMAPI, GetLocationInfoBoth) TEST(TSG_RULE_API, GetLocationInfoBoth)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_IP_LOCATION_USER_DEFINED table name: TSG_IP_LOCATION_USER_DEFINED
@@ -764,7 +764,7 @@ TEST(TMAPI, GetLocationInfoBoth)
EXPECT_NE(server_location, location); EXPECT_NE(server_location, location);
} }
TEST(TMAPI, GetFQDNCategoryIdUserDefine) TEST(TSG_RULE_API, GetFQDNCategoryIdUserDefine)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_FQDN_CATEGORY_USER_DEFINED table name: TSG_FQDN_CATEGORY_USER_DEFINED
@@ -786,7 +786,7 @@ TEST(TMAPI, GetFQDNCategoryIdUserDefine)
EXPECT_EQ(0, category_ids[1]); EXPECT_EQ(0, category_ids[1]);
} }
TEST(TMAPI, GetFQDNCategoryIdBuiltIn) TEST(TSG_RULE_API, GetFQDNCategoryIdBuiltIn)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_FQDN_CATEGORY_BUILT_IN table name: TSG_FQDN_CATEGORY_BUILT_IN
@@ -809,7 +809,7 @@ TEST(TMAPI, GetFQDNCategoryIdBuiltIn)
EXPECT_EQ(0, category_ids[1]); EXPECT_EQ(0, category_ids[1]);
} }
TEST(TMAPI, GetFQDNCategoryIdBoth) TEST(TSG_RULE_API, GetFQDNCategoryIdBoth)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_FQDN_CATEGORY_BUILT_IN table name: TSG_FQDN_CATEGORY_BUILT_IN
@@ -827,7 +827,7 @@ TEST(TMAPI, GetFQDNCategoryIdBoth)
EXPECT_EQ(0, category_ids[1]); EXPECT_EQ(0, category_ids[1]);
} }
TEST(TMAPI, ScanTunnelId) TEST(TSG_RULE_API, ScanTunnelId)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_CATALOG table name: TSG_TUNNEL_CATALOG
@@ -859,7 +859,7 @@ TEST(TMAPI, ScanTunnelId)
} }
extern int tsg_get_endpoint_id(const struct streaminfo *a_stream, struct maat *feather, struct tunnel_endpoint **client_endpoint, struct tunnel_endpoint **server_endpoint, long long *endpoint_id_array, int endpoint_id_array_num); extern int tsg_get_endpoint_id(const struct streaminfo *a_stream, struct maat *feather, struct tunnel_endpoint **client_endpoint, struct tunnel_endpoint **server_endpoint, long long *endpoint_id_array, int endpoint_id_array_num);
TEST(TMAPI, GetEndPointId) TEST(TSG_RULE_API, GetEndPointId)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_ENDPOINT table name: TSG_TUNNEL_ENDPOINT
@@ -907,7 +907,7 @@ TEST(TMAPI, GetEndPointId)
all_endpoint[1] = NULL; all_endpoint[1] = NULL;
} }
TEST(TMAPI, GetEndPointIdMultipleTunnelEndpoint) TEST(TSG_RULE_API, GetEndPointIdMultipleTunnelEndpoint)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_ENDPOINT table name: TSG_TUNNEL_ENDPOINT
@@ -938,7 +938,7 @@ TEST(TMAPI, GetEndPointIdMultipleTunnelEndpoint)
EXPECT_EQ(990, server_endpoint->id); EXPECT_EQ(990, server_endpoint->id);
} }
TEST(TMAPI, GetEndPointIdSourceIpEqualToDestIp) // 也可能在一个网段是否可以两个不同的endpoint_id拥有相同的网段是否有可能源ip和目的ip同时可以处于一个endpoint的网段endpoint_id_array是否可能重复 TEST(TSG_RULE_API, GetEndPointIdSourceIpEqualToDestIp) // 也可能在一个网段是否可以两个不同的endpoint_id拥有相同的网段是否有可能源ip和目的ip同时可以处于一个endpoint的网段endpoint_id_array是否可能重复
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_ENDPOINT table name: TSG_TUNNEL_ENDPOINT
@@ -970,7 +970,7 @@ TEST(TMAPI, GetEndPointIdSourceIpEqualToDestIp) // 也可能在一个网段,
} }
extern int tsg_get_vlan_label_id(struct maat *feather, struct single_layer_vlan_addr *vlan_array, int vlan_array_num, long long *label_id_array, int label_id_array_num); extern int tsg_get_vlan_label_id(struct maat *feather, struct single_layer_vlan_addr *vlan_array, int vlan_array_num, long long *label_id_array, int label_id_array_num);
TEST(TMAPI, GetVlanLabelIdIllegalPara) TEST(TSG_RULE_API, GetVlanLabelIdIllegalPara)
{ {
// int tsg_get_vlan_label_id(struct maat *feather, struct single_layer_vlan_addr *vlan_array, int vlan_array_num, long long *label_id_array, int label_id_array_num) // int tsg_get_vlan_label_id(struct maat *feather, struct single_layer_vlan_addr *vlan_array, int vlan_array_num, long long *label_id_array, int label_id_array_num)
struct single_layer_vlan_addr vlan_array[2] = {0}; struct single_layer_vlan_addr vlan_array[2] = {0};
@@ -981,7 +981,7 @@ TEST(TMAPI, GetVlanLabelIdIllegalPara)
EXPECT_EQ(0, tsg_get_vlan_label_id(g_tsg_maat_feather, NULL, 2, label_id_array, 2)); EXPECT_EQ(0, tsg_get_vlan_label_id(g_tsg_maat_feather, NULL, 2, label_id_array, 2));
} }
TEST(TMAPI, GetVlanLabelIdFunction) TEST(TSG_RULE_API, GetVlanLabelIdFunction)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_TUNNEL_LABEL table name: TSG_TUNNEL_LABEL
@@ -993,7 +993,7 @@ TEST(TMAPI, GetVlanLabelIdFunction)
EXPECT_EQ(1, 1); EXPECT_EQ(1, 1);
} }
TEST(TMAPI, GetDNSProfileRecord) TEST(TSG_RULE_API, GetDNSProfileRecord)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_DNS_RECORDS table name: TSG_PROFILE_DNS_RECORDS
@@ -1027,13 +1027,13 @@ TEST(TMAPI, GetDNSProfileRecord)
EXPECT_EQ(profile_records_right, profile_records); EXPECT_EQ(profile_records_right, profile_records);
} }
TEST(TMAPI, GetHttpResponsePagesProfile) TEST(TSG_RULE_API, GetHttpResponsePagesProfile)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_RESPONSE_PAGES table name: TSG_PROFILE_RESPONSE_PAGES
profile_id profile_name format path is_valid profile_id profile_name format path is_valid
"957\ttest-html-1\thtml\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.1\t1", "957\ttest-hTSG_RULEl-1\thTSG_RULEl\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.1\t1",
"958\ttest-html-2\thtml\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.2\t1" "958\ttest-hTSG_RULEl-2\thTSG_RULEl\tforeign_files/TSG_PROFILE_RESPONSE_PAGES.2\t1"
**************************************************************************************************************************/ **************************************************************************************************************************/
// void *matched_rule_cites_http_response_pages(struct maat *feather, long long profile_id) // void *matched_rule_cites_http_response_pages(struct maat *feather, long long profile_id)
@@ -1050,7 +1050,7 @@ TEST(TMAPI, GetHttpResponsePagesProfile)
EXPECT_EQ(response_pages_right, response_pages); EXPECT_EQ(response_pages_right, response_pages);
} }
TEST(TMAPI, GetSessionRecordSwitch) TEST(TSG_RULE_API, GetSessionRecordSwitch)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: T_VSYS_INFO table name: T_VSYS_INFO
@@ -1060,7 +1060,7 @@ TEST(TMAPI, GetSessionRecordSwitch)
EXPECT_EQ(1, tsg_session_record_switch_get()); EXPECT_EQ(1, tsg_session_record_switch_get());
} }
TEST(TMAPI, NotifyPacketCaptureByPolicy) TEST(TSG_RULE_API, NotifyPacketCaptureByPolicy)
{ {
/************************************************************************************************************************* /*************************************************************************************************************************
table name: TSG_PROFILE_TRAFFIC_MIRROR table name: TSG_PROFILE_TRAFFIC_MIRROR
@@ -1071,12 +1071,12 @@ TEST(TMAPI, NotifyPacketCaptureByPolicy)
// int session_packet_capture_by_rules_notify(const struct streaminfo *a_stream, struct maat_rule *rules, int n_rules, int thread_seq) // int session_packet_capture_by_rules_notify(const struct streaminfo *a_stream, struct maat_rule *rules, int n_rules, int thread_seq)
} }
TEST(TMAPI, ScanNestingAddr) TEST(TSG_RULE_API, ScanNestingAddr)
{ {
// int tsg_scan_nesting_addr(const struct streaminfo *a_stream, enum TSG_PROTOCOL proto, struct maat_state **s_mid, struct maat_rule *results, size_t n_results) // int tsg_scan_nesting_addr(const struct streaminfo *a_stream, enum TSG_PROTOCOL proto, struct maat_state **s_mid, struct maat_rule *results, size_t n_results)
} }
TEST(TMAPI, ScanAppPropertiesPolicy) TEST(TSG_RULE_API, ScanAppPropertiesPolicy)
{ {
// int tsg_scan_app_properties_policy(const struct streaminfo *a_stream, char *property, char *district, struct maat_state *s_mid, struct maat_rule *results, int n_results) // int tsg_scan_app_properties_policy(const struct streaminfo *a_stream, char *property, char *district, struct maat_state *s_mid, struct maat_rule *results, int n_results)
} }