diff options
| author | lijia <[email protected]> | 2024-05-11 17:56:37 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2024-05-17 14:10:21 +0800 |
| commit | 0f7206776498b621de13255189cf1c659c04a701 (patch) | |
| tree | f7d749e6f4c0796e164de4fea15e60e4b9b6f49a /include | |
| parent | b497224a3738a8c55768915288eafdeb97573d66 (diff) | |
TSG-20808,TSG-20954:split bm into multi-partition to avoid long latency by memset large memory;Both bm are queried in transition
Diffstat (limited to 'include')
| -rw-r--r-- | include/private/duplicate_pkt_distinguish.h | 8 | ||||
| -rw-r--r-- | include/private/sapp_global_val.h | 42 | ||||
| -rw-r--r-- | include/private/sapp_mem.h | 10 | ||||
| -rw-r--r-- | include/private/stream_internal.h | 3 |
4 files changed, 33 insertions, 30 deletions
diff --git a/include/private/duplicate_pkt_distinguish.h b/include/private/duplicate_pkt_distinguish.h index dffd6e8..2a437cf 100644 --- a/include/private/duplicate_pkt_distinguish.h +++ b/include/private/duplicate_pkt_distinguish.h @@ -4,10 +4,10 @@ #include "mesa_net.h" #include "stream_internal.h" -/* 网络序, network order */ +/* 网络�?, network order */ -/* ipv4和ipv6分别定义, 因为ipv6地址巨大, 比例也相对较少, - 统一使用union定义, 都会按最大长度计算, 影响性能. +/* ipv4和ipv6分别定义, 因为ipv6地址巨大, 比例也相对较�?, + 统一使用union定义, 都会按最大长度计�?, 影响性能. */ struct sapp_dup_key_ip4_tuple{ unsigned int sip; @@ -29,7 +29,7 @@ struct __sapp_dup_pkt_key_l4{ struct __sapp_dup_pkt_key_v4{ struct __sapp_dup_pkt_key_l4 l4; - unsigned short ip_id; /* TCP层SYN重传时, 或者应用层重传数据, ipid是不一样的, 其实不能算为重复包, 所以ipid也作为Key */ + unsigned short ip_id; /* TCP层SYN重传�?, 或者应用层重传数据, ipid是不一样的, 其实不能算为重复�?, 所以ipid也作为Key */ struct sapp_dup_key_ip4_tuple ip_addr; }__attribute__((packed, aligned(1))); diff --git a/include/private/sapp_global_val.h b/include/private/sapp_global_val.h index b4b41da..80caa54 100644 --- a/include/private/sapp_global_val.h +++ b/include/private/sapp_global_val.h @@ -18,7 +18,7 @@ enum pkt_dump_mode{ /* - vxlan��vlan_flipping�ǿ��Թ����?, + vxlan��vlan_flipping�ǿ��Թ����?, vxlan������������, vlan_flipping���ڱ����Լ�����, */ @@ -42,7 +42,7 @@ typedef struct{ typedef struct{ int worker_threads; - int send_only_threads_max_num; /* �������߳��������?, �Dz����̬������?, sapp������Ԥ֪, ֻ��������ֵ */ + int send_only_threads_max_num; /* �������߳��������?, �Dz����̬������?, sapp������Ԥ֪, ֻ��������ֵ */ int bind_mask_array_num; long bind_mask_array[SAPP_MAX_THREADS]; long bind_mask; /* bind_mask_array�е�ÿ��������Ϊbit_indexת�ɵ�����ֵ */ @@ -117,7 +117,7 @@ typedef struct{ int timeout; int meaningful_statistics_minimum_pkt; int meaningful_statistics_minimum_byte; - unsigned short *well_known_ports_array; /* �����½�����ȷ��server��, ����4001->8000, ʵ������OICQ��C2S�������ݰ�,֮ǰ�İ汾�ᱻ��ʶ��ΪS2C�����? */ + unsigned short *well_known_ports_array; /* �����½�����ȷ��server��, ����4001->8000, ʵ������OICQ��C2S�������ݰ�,֮ǰ�İ汾�ᱻ��ʶ��ΪS2C�����? */ int well_known_ports_array_num; int max_timeouts_per_sec; int max_opening_per_sec; @@ -161,9 +161,9 @@ typedef struct{ int process_latency_refresh_interval_s; int process_latency_threshold_in_us; /* �����ļ��ﵥλ��microsecond, ��Ҫ����1000 */ /* ��ȷģʽ������, fs2����ͳ��Ҳ�dz���CPU, ÿ������Ҫ����FS_operate(), - ���ͣ�þ�ȷģ�?, ����fs2���DZ������һ��ʱ�������?, ��Сֵ����һ��ʱ���ƽ���?, ������FS_operate()����, + ���ͣ�þ�ȷģ�?, ����fs2���DZ������һ��ʱ�������?, ��Сֵ����һ��ʱ���ƽ���?, ������FS_operate()����, ��ȷ�Ƚ�����һЩ, ���������˵���FS_operate()�Ĵ���. - ����pkt_latency_accurate_enable��ƽ��ֵ�����ǶԵ�, ������Ͳ���?. + ����pkt_latency_accurate_enable��ƽ��ֵ�����ǶԵ�, ������Ͳ���?. */ int process_latency_clock_id; @@ -191,7 +191,7 @@ enum __sapp_config_packet_io_deployment_mode{ SAPP_CFG_PKT_IO_DEPOLY_MODE_TRANSPARENT, }; -#define MAX_VLAN_FLIPPING_MAP_NUM (4096) /* vlan_id���Χ��?0~4095, ���鳤����4096 */ +#define MAX_VLAN_FLIPPING_MAP_NUM (4096) /* vlan_id���Χ��?0~4095, ���鳤����4096 */ typedef struct{ unsigned short couple_vlan_id; /* vlan flipping�dzɶԴ���, �����±��ʾһ��vlanid, Ԫ�ص�ֵ����һ��vlanid, host order */ @@ -221,9 +221,11 @@ typedef struct{ int dup_pkt_distinguish_ipv4_tcp; int dup_pkt_distinguish_ipv4_udp; int bloom_capacity; - int bloom_timeout; int bloom_slice_num; + long bloom_timeout_ms; enum bloom_library bloom_library; + int bloom_partition_num; + long transition_time_ms; double bloom_error_rate; int first_packets; }sapp_dup_pkt_t; @@ -242,17 +244,17 @@ typedef struct{ sapp_config_packet_io_tunnel_t packet_io_tunnel; const char *input_bpf_filter; char deployment_mode_str[NAME_MAX]; /* [mirror, inline, transparent, dumpfile] */ - enum sapp_deploment_mode_t deployment_mode_bin; /* ��������ڴ���?, ת����ֵ��ʽ, ��1:mirror; 2:transparent; 3:inline��, ���?: enum sapp_deploment_mode_t */ + enum sapp_deploment_mode_t deployment_mode_bin; /* ��������ڴ���?, ת����ֵ��ʽ, ��1:mirror; 2:transparent; 3:inline��, ���?: enum sapp_deploment_mode_t */ sapp_config_packet_io_dev_t internal; sapp_config_packet_io_dev_t external; char pcap_dumpfile_name[NAME_MAX]; int polling_priority; /* call sapp_recv_pkt every call polling_entry times, ���ö��ٴ�polling�����һ��recv pkt, 1��ʾ�������ȼ���ͬ */ int work_percent; int without_usleep; /* ���ܲ���ģʽ, �������usleep, CPU��100% */ - int inbound_route_dir; /* ��ʾ�뾳, I2C�����ֵ��?0����1 */ + int inbound_route_dir; /* ��ʾ�뾳, I2C�����ֵ��?0����1 */ char pcap_capture_direction[NAME_MAX]; /* in, out, inout */ char inject_pkt_mode_string[NAME_MAX]; - int inject_pkt_mode; /* ��ע�뷽ʽ������ֵ, ���?: enum send_fake_packet_mode */ + int inject_pkt_mode; /* ��ע�뷽ʽ������ֵ, ���?: enum send_fake_packet_mode */ int inject_pkt_prepend_segment_id; unsigned short inject_mode_inline_device_sport; /* udp socket�ı���Դ�˿�, host order, ������ */ char inject_mode_single_gateway_device[NAME_MAX]; @@ -306,7 +308,7 @@ typedef struct{ const char *cfg_file_inline_dev_relative; const char *cfg_file_inline_dev_absolute; - const char *cfg_file_necessary_plug_relative; /* ��Ҫ����б�?, �������ʧ��sapp���˳� */ + const char *cfg_file_necessary_plug_relative; /* ��Ҫ����б�?, �������ʧ��sapp���˳� */ const char *cfg_file_necessary_plug_absolute; const char *cfg_file_stream_compare_layer_relative; @@ -357,7 +359,7 @@ typedef struct{ typedef struct{ int ipv6_decapsulation_enabled; /* �Ƿ����ipv6���ݰ� */ - int ipv6_send_packet_enabled; /* �Ƿ�֧�ַ���ipv6���ݰ�, ��������ϵͳipv6�ں�ģ���Ƿ����? */ + int ipv6_send_packet_enabled; /* �Ƿ�֧�ַ���ipv6���ݰ�, ��������ϵͳipv6�ں�ģ���Ƿ����? */ int tcp_drop_pure_ack_pkt; /* ����û�и��صĴ�ack��, ���Խ�Լһ��������ѯ, ����ҵ���������� */ int tcp_syn_option_parse_enabled; /* �Ƿ����tcp syn��ͷ��ѡ�� */ int skip_not_ip_layer_over_eth; /* ������ip��, ��֤�ڲ���ģʽ��, ����ͨ��ϵͳ·�ɷ���rst�� */ @@ -422,15 +424,15 @@ typedef struct{ pthread_t thread_timer_loop_id; int cpu_bind_core_id_per_thread[SAPP_MAX_THREADS]; /* ���������bind_mask, ��¼ÿ��IO�����̰߳�cpu core id */ void *breakpad; - char overlay_layer_def[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; /* ��ʾ��ԭʼ���Ļ����Ϸ�װ������, ��vxlan, ��Щ�㲻Ӧ�õ��ò��?, ��עʱ��Ҫ����� */ - char prune_layer_def[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; /* ��ʾע���ʱ��Ҫ�����IJ�?, ���ڴ�������������ļ�?: skip_not_iop_layer, ����vlan, mpls��, ����mirrorģʽ��, ������ע��㲻һ�������绷��? */ + char overlay_layer_def[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; /* ��ʾ��ԭʼ���Ļ����Ϸ�װ������, ��vxlan, ��Щ�㲻Ӧ�õ��ò��?, ��עʱ��Ҫ����� */ + char prune_layer_def[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; /* ��ʾע���ʱ��Ҫ�����IJ�?, ���ڴ�������������ļ�?: skip_not_iop_layer, ����vlan, mpls��, ����mirrorģʽ��, ������ע��㲻һ�������绷��? */ void *under_ddos_handle; pthread_t gdev_keepalive_log_thread_id; }sapp_gval_individual_fixed_t; typedef struct{ - unsigned long long count[SAPP_STAT_NUM_MAX]; /* ������, �����?, �½�������, ������������ */ + unsigned long long count[SAPP_STAT_NUM_MAX]; /* ������, �����?, �½�������, ������������ */ unsigned long long length[SAPP_STAT_NUM_MAX]; /* ������, �����ݰ����ֽ��� */ unsigned long long count_per_layer[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; unsigned long long length_per_layer[__ADDR_TYPE_MAX][SAPP_SUPPORT_LAYER_NUM_MAX]; @@ -457,7 +459,7 @@ struct __sapp_gval_mthread{ sapp_fuzzy_latency_stat_t fuzzy_pkt_latency_stat_per_thread; sapp_fuzzy_latency_stat_t fuzzy_pkt_latency_stat_per_entry_per_thread[SAPP_MAX_PLUG_ENTRY_NUM]; const raw_pkt_t *raw_pkt; /* ��ΪMESA_fakepacket_send_xxxϵ�к���û��raw_pkt����, Ҳû��stream_info, Ϊ����ǰ����, �����Ľӿ�, ����ȫ�ֱ������ڴ洢��ǰ�� */ - void *dup_pkt_distinguish_handle; /* ����������ڿ���?, inject, ipv4_tcp, ipv4_udp, ��ͬʹ��һ��bloom���? */ + void *dup_pkt_distinguish_handle; /* ����������ڿ���?, inject, ipv4_tcp, ipv4_udp, ��ͬʹ��һ��bloom���? */ volatile int destory_env_done; //0:do nothing; 1:doing; 2:done sapp_mem_used_stat_t mem_used_stat; }__attribute__ ((aligned (64))); /* for multi-thread, must 64byte alignment */ @@ -476,16 +478,16 @@ typedef struct{ sapp_cmd_args_val_t **cmd_args_array; int cmd_args_num; char **dumpfie_list_array; /* ����--dumpfile-list����ִ�к�, �õ����ļ��б�, �ַ���ָ������ */ - int slient_mode; /* ��Ĭģʽ, ǰ̨������κ����? */ + int slient_mode; /* ��Ĭģʽ, ǰ̨������κ����? */ }sapp_cla_t; typedef struct{ sapp_cla_t cla; sapp_config_t config; - sapp_gval_individual_fixed_t individual_fixed; /* ��ʼ�����ٸı�ı���? */ - sapp_gval_individual_volatile_t *individual_volatile; /* �����������ʵʱ���µĶ�������? */ - sapp_gval_mthread_t *mthread_volatile[SAPP_MAX_THREADS]; /* �����������ʵʱ���µĶ��̱߳���? */ + sapp_gval_individual_fixed_t individual_fixed; /* ��ʼ�����ٸı�ı���? */ + sapp_gval_individual_volatile_t *individual_volatile; /* �����������ʵʱ���µĶ�������? */ + sapp_gval_mthread_t *mthread_volatile[SAPP_MAX_THREADS]; /* �����������ʵʱ���µĶ��̱߳���? */ }sapp_global_t; extern embed_layer_t g_stream_compare_layer_set; diff --git a/include/private/sapp_mem.h b/include/private/sapp_mem.h index d68a0ac..b6b6ca8 100644 --- a/include/private/sapp_mem.h +++ b/include/private/sapp_mem.h @@ -46,14 +46,14 @@ typedef enum{ SAPP_MEM_DYN_PADDR, /* 每层地址所占的内存, 就不分具体协议了, 太麻烦了!! */ SAPP_MEM_DYN_DETAIN_PKT, SAPP_MEM_DYN_SID_LIST, - + SAPP_MEM_DYN_BLOOM_FILTER, __SAPP_MEM_TYPE_MAX, }sapp_mem_type_t; -void *sapp_mem_malloc(sapp_mem_type_t type, int thread_seq, int size); -void *sapp_mem_calloc(sapp_mem_type_t type, int thread_seq, int size); +void *sapp_mem_malloc(sapp_mem_type_t type, int thread_seq, unsigned int size); +void *sapp_mem_calloc(sapp_mem_type_t type, int thread_seq, unsigned int size); void sapp_mem_free(sapp_mem_type_t type, int thread_seq, void *data); -void *sapp_mem_realloc(sapp_mem_type_t type, int thread_seq, void *old_ptr, int size); +void *sapp_mem_realloc(sapp_mem_type_t type, int thread_seq, void *old_ptr, unsigned int size); void sapp_mem_stat_output(void); #ifndef SAPP_FREE @@ -69,6 +69,8 @@ void sapp_mem_stat_output(void); #define SAPP_GLOBAL_FREE(mem) do{if(mem){sapp_mem_free(SAPP_MEM_FIX_GLOBAL_VAL, MEM_STAT_GLOBAL_THREAD_ID, (void *)mem); mem = NULL;}}while(0) #endif +int bloomfilter_get_mem_stat(int tseq, long long *mem_blocks, long long *mem_bytes); + #ifdef __cplusplus } #endif diff --git a/include/private/stream_internal.h b/include/private/stream_internal.h index 90030b5..c57f5f0 100644 --- a/include/private/stream_internal.h +++ b/include/private/stream_internal.h @@ -523,8 +523,7 @@ void packet_io_device_alias_destroy(void); void sapp_dup_pkt_destroy(void); const char *stream_bridge_id_to_name(int bridge_id); void sapp_printf(const char *fmt, ...); - - +int sapp_mem_init(void); #ifdef __cplusplus } |
