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
|
#ifndef _SAPP_DECLARATION_H_
#define _SAPP_DECLARATION_H_ 1
#ifdef __cplusplus
extern "C" {
#endif
#include "sapp_private_api.h"
#ifndef SAPP_MAX
#define SAPP_MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef SAPP_MIN
#define SAPP_MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
/* ��Ƕ�ײ��̫��, ʹ�ü������ */
#define ABBR_SAPP_LOG_LEVEL sapp_global_val->config.profiling.log.level
#define ABBR_SAPP_LOG_HANDLE sapp_global_val->individual_fixed.log_handle
#define ABBR_SAPP_TIMER_HANDLE sapp_global_val->individual_fixed.sapp_timer_handle
#define ABBR_SAPP_START_TIME sapp_global_val->individual_fixed.sapp_start_time
#define ABBR_CURRENT_TIME sapp_global_val->individual_volatile->current_time
#define ABBR_CURRENT_TIME_MS sapp_global_val->individual_volatile->current_time_ms
#define ABBR_INJECT_RST_NUM sapp_global_val->config.stream.tcp.inject.rst_num
#define ABBR_INJECT_RST_SIGN sapp_global_val->config.stream.tcp.inject.rst_signature_enable
#define ABBR_INTERFACE_TYPE sapp_global_val->config.packet_io.internal.interface.type_bin
#define ABBR_CFG_FILE_MAIN_ENTRY sapp_global_val->config.cfg_file_path.cfg_main_entry_absolute
#define ABBR_PLUG_LIST_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_plug_list_absolute
#define ABBR_SAPP_LOG_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_sapp_log_absolute
#define ABBR_PROJECT_LIST_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_project_list_absolute
#define ABBR_PLUG_ENTRY_LIST_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_entry_list_absolute
#define ABBR_SEND_RAW_PKT_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_send_raw_pkt_absolute
#define ABBR_VXLAN_SPORT_MAP_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_vxlan_sport_map_absolute
#define ABBR_INLINE_DEV_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_inline_dev_absolute
#define ABBR_NECESSARY_PLUG_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_necessary_plug_absolute
#define ABBR_STREAM_CMP_LAYER_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_stream_compare_layer_absolute
#define ABBR_VLAN_FLIPPING_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_vlan_flipping_absolute
#define ABBR_ASYM_LAYER_ADDR_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_asymmetric_addr_layer_absolute
#define ABBR_WELL_KNOWN_PORT_CONF_FILE sapp_global_val->config.cfg_file_path.cfg_file_well_known_port_absolute
#define ABBR_SYSINFO_LOG_DATA_FILE sapp_global_val->config.data_file_path.data_sapp_sysinfo_log_absolute
#define ABBR_FS2_LOG_DATA_FILE sapp_global_val->config.data_file_path.data_sapp_fs2_log_absolute
#define ABBR_INLINE_KEEPALIVE_LOG_DATA_FILE sapp_global_val->config.data_file_path.data_inline_keepalive_log_absolute
#define ABBR_LOAD_PLUG_STAT_LOG_DATA_FILE sapp_global_val->config.data_file_path.data_load_plugin_stat_log_absolute
#define ABBR_MARSIO_LIBRARY_FILE sapp_global_val->config.library_file_path.libmarsio_file_path
#define ABBR_MEMORY_STAT_LOG_DATA_FILE sapp_global_val->config.data_file_path.data_memory_stat_log_absolute
extern sapp_global_t *sapp_global_val;
/* ��֮ǰ��ɢ��ȫ�ֱ���ǿ�Ƹ���Ϊ�µ�ȫ�ֱ��� */
#define g_CurrentTime sapp_global_val->individual_volatile->current_time
#define g_sapp_log_handle sapp_global_val->individual_fixed.log_handle
#define g_iThreadNum sapp_global_val->config.cpu.worker_threads
#define g_packet_io_thread_num sapp_global_val->config.cpu.worker_threads
#define max_udp_stream_num sapp_global_val->config.stream.udp.max
#define max_tcp_stream_num sapp_global_val->config.stream.tcp.max
#define special_udp_timeout_ratio sapp_global_val->config.stream.udp.special_timeout_ratio
#define special_tcp_timeout_ratio sapp_global_val->config.stream.tcp.special_timeout_ratio
#define create_link_mode sapp_global_val->individual_fixed.create_stream_mode
#define g_iMaxRandVal sapp_global_val->config.stream.tcp.inject.rst_signature_seed1
#define g_iRandKey sapp_global_val->config.stream.tcp.inject.rst_signature_seed2
#define tcp_default_unorder sapp_global_val->config.stream.tcp.reorder_pkt_max
#define tcp_creatlink_model sapp_global_val->individual_fixed.create_stream_mode
#define link_default_nopkt_time sapp_global_val->config.stream.tcp.timeout
#define udp_reset_time sapp_global_val->config.stream.udp.timeout
#define g_topology_mode sapp_global_val->individual_fixed.depolyment_mode_private
#define g_topology_mode_raw sapp_global_val->config.packet_io.depolyment_mode_bin
#define g_packet_io_cap_mode sapp_global_val->config.packet_io.internal.interface.type_bin
#define g_packet_io_cap_level sapp_global_val->individual_fixed.packet_io_cap_level
#define g_timestamp_record_sw sapp_global_val->config.profiling.pkt_latency_enabled
#define g_timestamp_record_accurate sapp_global_val->config.profiling.pkt_latency_accurate_enable
#define g_timestamp_record_threshold sapp_global_val->config.profiling.pkt_latency_threshold_in_ns
#define g_discard_ack_sw sapp_global_val->config.protocol_feature.tcp_drop_pure_ack_pkt
#define g_tcp_syn_option_parse_enabled sapp_global_val->config.protocol_feature.tcp_syn_option_parse_enabled
#define g_ipv6_decapsulation_enabled sapp_global_val->config.protocol_feature.ipv6_decapsulation_enabled
#define g_ipv6_send_packet_enabled sapp_global_val->config.protocol_feature.ipv6_send_packet_enabled
#define G_SKIP_NOT_IP_LAYER sapp_global_val->config.protocol_feature.skip_not_ip_layer_over_eth
#define G_DICTATOR_SW sapp_global_val->config.mem.dictator_enable
#define sapp_runtime_log(log_level, format, args...) do{if(log_level>=ABBR_SAPP_LOG_LEVEL){MESA_handle_runtime_log(ABBR_SAPP_LOG_HANDLE, log_level, "sapp", format, ##args);}}while(0)
extern void sapp_log(int level, int print_sw, int file_sw, const char *format, ...);
int sapp_parse_cmd_args(int argc, char *argv[]);
int sapp_parse_config(void);
void sapp_init_breakpad_mini(void);
void sapp_segv_generate(void);
void sapp_generate_example_config(const char *filename, const char *version);
void sapp_cla_override_cfg_file(void);
void sapp_global_val_sanity_check(void);
void *sapp_time_event_thread(void *arg);
void sapp_fs2_update_count(int field_index, unsigned long long value);
void sapp_fs2_update_length(int field_index, unsigned long long value);
void sapp_fs2_set_latency(int thead_seq, long long time_cost);
void sapp_fs2_set_plug_entry_latency(int entry_id, long long time_cost);
void sapp_fs2_set_tcp_unorder_historgram(int thead_seq, long long unorder_num);
int sapp_independent_thread_init(void);
void sapp_gval_init(void);
struct mr_instance *sapp_get_marsio_instance(void);
int __sapp_timer_platform_init(void);
void __st_pkt_proc_context_check_timeout(int tid);
void __sapp_timer_platform_run(void);
void sapp_set_current_state(enum sapp_state_t st);
void line_protocol_update_metrics(void);
char *timet_to_str(time_t timet, char *time_str, int time_str_len);
void sapp_fuzzy_latency_update(void);
extern volatile unsigned int g_aiSysCounter[COUNTER_NUM]; /*newly modified ---LiLei*/
extern const struct dl_io_lib_name g_dl_io_lib_info[__CAP_MODEL_MAX];
extern dl_io_fun_list_t dl_io_fun_list;
#ifdef __cplusplus
}
#endif
#endif
|