diff options
| author | yangwei <[email protected]> | 2024-10-31 12:06:54 +0800 |
|---|---|---|
| committer | yangwei <[email protected]> | 2024-10-31 12:06:54 +0800 |
| commit | ec3bbc9829499fb0aa89e9ede55825b0cd081408 (patch) | |
| tree | 3ae828cf98bdbb4c590e0f86e37fa1b4d25dc98e /include/private | |
| parent | 777986431587131db7f72a3eee2a01c334b440fc (diff) | |
🎈 perf(dup_pkt stat update): remove polling entry
Diffstat (limited to 'include/private')
| -rw-r--r-- | include/private/sapp_mem.h | 23 | ||||
| -rw-r--r-- | include/private/stream_internal.h | 315 |
2 files changed, 168 insertions, 170 deletions
diff --git a/include/private/sapp_mem.h b/include/private/sapp_mem.h index 84f4107..30f8743 100644 --- a/include/private/sapp_mem.h +++ b/include/private/sapp_mem.h @@ -5,32 +5,32 @@ extern "C" { #endif -#define MEM_STAT_GLOBAL_THREAD_ID -1 /* ȫ�ֱ����ڴ��thread_id, ��ʵû����, ���ֽӿ�һ��, ���ڷ�IO�߳� */ +#define MEM_STAT_GLOBAL_THREAD_ID -1 /* ȫ�ֱ����ڴ��thread_id, ��ʵû����, ���ֽӿ�һ��, ���ڷ�IO�߳� */ typedef enum{ __SAPP_MEM_TYPE_INIT = 0, - SAPP_MEM_STACK_LOCAL, /* ����ջ����ʱ������ڴ�, �������ؾͻᱻ�ͷ� */ + SAPP_MEM_STACK_LOCAL, /* ����ջ����ʱ������ڴ�, �������ؾͻᱻ�ͷ� */ SAPP_MEM_FIX_GLOBAL_VAL, SAPP_MEM_FIX_GLOBAL_STREAM, - SAPP_MEM_FIX_PLUG_CTRL, /* ���������ʼ�������������ݽṹ, ��ÿ������̬���صIJ���� */ + SAPP_MEM_FIX_PLUG_CTRL, /* ���������ʼ�������������ݽṹ, ��ÿ������̬���صIJ���� */ /******************************************* - ������ȫ�ֱ���, ���ʼ������ڴ� + ������ȫ�ֱ���, ���ʼ������ڴ� *******************************************/ __SAPP_FIX_DYN_SEPARATOR, /******************************************* - �����Ƕ��̶߳�̬�ڴ� + �����Ƕ��̶߳�̬�ڴ� *******************************************/ - SAPP_MEM_DYN_MEM_HDR, /* Ϊ���������ͳ��, ���ӵ��ڴ�ͷ������ */ - SAPP_MEM_DYN_IP_FRAG_PKT, /* ��̫��������ipv4��ipv6, �˴�ͳһ���� */ + SAPP_MEM_DYN_MEM_HDR, /* Ϊ���������ͳ��, ���ӵ��ڴ�ͷ������ */ + SAPP_MEM_DYN_IP_FRAG_PKT, /* ��̫��������ipv4��ipv6, �˴�ͳһ���� */ SAPP_MEM_DYN_TCP_STREAM, SAPP_MEM_DYN_UDP_STREAM, - SAPP_MEM_DYN_TCP_HALF_STREAM, /* c2s, s2c�����ṹ */ + SAPP_MEM_DYN_TCP_HALF_STREAM, /* c2s, s2c�����ṹ */ SAPP_MEM_DYN_UDP_HALF_STREAM, - SAPP_MEM_DYN_PLUG_CTRL, /* ÿ����������������������ݽṹ, ��������ҵ����ʹ�õ��ڴ� */ + SAPP_MEM_DYN_PLUG_CTRL, /* ÿ����������������������ݽṹ, ��������ҵ����ʹ�õ��ڴ� */ SAPP_MEM_DYN_TCP_UNORDER, SAPP_MEM_DYN_TCP_SYN_OPT, SAPP_MEM_DYN_TCP_POLLING_RAW_PKT, @@ -39,11 +39,11 @@ typedef enum{ SAPP_MEM_DYN_UDP_DETAIL, SAPP_MEM_DYN_TCP_FLOW_STAT, SAPP_MEM_DYN_UDP_FLOW_STAT, - SAPP_MEM_DYN_TCP_PROJECT, /* ������project����Ĺ����ṹ, �������������project_addʱ������ڴ� */ + SAPP_MEM_DYN_TCP_PROJECT, /* ������project����Ĺ����ṹ, �������������project_addʱ������ڴ� */ SAPP_MEM_DYN_UDP_PROJECT, SAPP_MEM_DYN_TCP_BRIDGE, SAPP_MEM_DYN_UDP_BRIDGE, - SAPP_MEM_DYN_PADDR, /* ÿ���ַ��ռ���ڴ�, �Ͳ��־���Э����, ̫�鷳��!! */ + SAPP_MEM_DYN_PADDR, /* ÿ���ַ��ռ���ڴ�, �Ͳ��־���Э����, ̫�鷳��!! */ SAPP_MEM_DYN_DETAIN_PKT, SAPP_MEM_DYN_SID_LIST, SAPP_MEM_DYN_BLOOM_FILTER, @@ -69,7 +69,6 @@ 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 } diff --git a/include/private/stream_internal.h b/include/private/stream_internal.h index c57f5f0..e103920 100644 --- a/include/private/stream_internal.h +++ b/include/private/stream_internal.h @@ -20,19 +20,19 @@ //#define STREAM_RAWPKT_MD5_CHECK "48fdc3294bced1c74a853e197db8fd67" //#define STREAM_TUNNEL_MD5_CHECK "d20aa6b4f5683b7b0040676547997be0" -#define IP_PORT_UNION_VERSION (1) /* �Ƿ�IP-PORT�ϲ� */ -#define COMPAT_PAPP_FOR_BENCHMARK (0) /* 2015-01-07 lijia add, ͬpapp�ԱȽ��ʱ, ��ʱ�ر�Ƕ�ס���������Э��, ����һ�� */ -#define USE_RBTREE_INSTEAD_LIST (0) /* ��HASH��ͻʱ, ʹ�ú������������, ������������±��� */ -//#define USE_LINUX_KERNEL_HASH_ALGO (1) /* ʹ��LINUX�ں�HASH�㷨 */ +#define IP_PORT_UNION_VERSION (1) /* �Ƿ�IP-PORT�ϲ� */ +#define COMPAT_PAPP_FOR_BENCHMARK (0) /* 2015-01-07 lijia add, ͬpapp�ԱȽ��ʱ, ��ʱ�ر�Ƕ�ס���������Э��, ����һ�� */ +#define USE_RBTREE_INSTEAD_LIST (0) /* ��HASH��ͻʱ, ʹ�ú������������, ������������±��� */ +//#define USE_LINUX_KERNEL_HASH_ALGO (1) /* ʹ��LINUX�ں�HASH�㷨 */ -#define SAPP_INSECTICIDE (0) /* ɱ��(DEBUG)��ʱ����, ������Ī�������BUGʱ��ʱ����, ���緢������, �����糬�� */ +#define SAPP_INSECTICIDE (0) /* ɱ��(DEBUG)��ʱ����, ������Ī�������BUGʱ��ʱ����, ���緢������, �����糬�� */ -//#define CYCLE_PKT_DUMP (1 && DEBUG) /* 2015-04-16 lijia add, �������������coredump, ���Ҳ���ԭ�� */ -#define CYCLE_PKT_DUMP (1) /* 2015-04-16 lijia add, �������������coredump, ���Ҳ���ԭ�� */ +//#define CYCLE_PKT_DUMP (1 && DEBUG) /* 2015-04-16 lijia add, �������������coredump, ���Ҳ���ԭ�� */ +#define CYCLE_PKT_DUMP (1) /* 2015-04-16 lijia add, �������������coredump, ���Ҳ���ԭ�� */ -#define PCAP_CAP_FROM_IP (0) /* Ϊ��ģ��pag��������, ��pcapҲģ���IPv4ͷ����ʼ��ȡ */ +#define PCAP_CAP_FROM_IP (0) /* Ϊ��ģ��pag��������, ��pcapҲģ���IPv4ͷ����ʼ��ȡ */ -//#define NON_PKT_THREAD_SEND_QUEUE (64) /* �����������߳�����Ͷ������� */ +//#define NON_PKT_THREAD_SEND_QUEUE (64) /* �����������߳�����Ͷ������� */ #define IKNOW_ENABLE (0) @@ -54,7 +54,7 @@ #define sapp_get_struct_header(ptr, type, member) container_of(ptr, type, member) -#define RAW_PKT_MAGIC_NUM (0xF1E2D3C4) /* 1:���ڼ��ݾ���Ŀ, ��call_old��������ݽṹʱ,ʶ��ԭʼ������Դ; 2:��ȫ�Լ�� */ +#define RAW_PKT_MAGIC_NUM (0xF1E2D3C4) /* 1:���ڼ��ݾ���Ŀ, ��call_old��������ݽṹʱ,ʶ��ԭʼ������Դ; 2:��ȫ�Լ�� */ #define SAPP_DESTROY_DONE_FLAG (0x7FFFFFFF) @@ -68,55 +68,55 @@ struct detain_pkt; struct rawpkt_metadata; -/* ԭʼ���ṹ */ +/* ԭʼ���ṹ */ typedef struct { /* ---8 bytes-- */ unsigned int magic_num; - int offset_to_raw_pkt_hdr; /* ����ص���Ӧ��������raw_pkt_data��ƫ���� */ + int offset_to_raw_pkt_hdr; /* ����ص���Ӧ��������raw_pkt_data��ƫ���� */ /* ===8 bytes=== */ /* ---8 bytes-- */ - enum addr_type_t low_layer_type; /* ԭʼ����ײ�Э�������, ������MAC(pcap����), Ҳ������IPv4(pag����) */ - int __lib_raw_pkt_len; /* �ײ㲶�����ṩ�İ���ʵԭʼ���� */ + enum addr_type_t low_layer_type; /* ԭʼ����ײ�Э�������, ������MAC(pcap����), Ҳ������IPv4(pag����) */ + int __lib_raw_pkt_len; /* �ײ㲶�����ṩ�İ���ʵԭʼ���� */ /* ===8 bytes=== */ /* ---8 bytes-- */ - int raw_pkt_len; /* ���ϲ�Ӧ�ÿ���ԭʼ���ܳ���, �п��ܲ�����ʵ��, ����������Ethernet�� */ - unsigned int hd_hash; /* ����Ӳ���������Ԫ��HASH, ����ƽ̨CPU�������� */ + int raw_pkt_len; /* ���ϲ�Ӧ�ÿ���ԭʼ���ܳ���, �п��ܲ�����ʵ��, ����������Ethernet�� */ + unsigned int hd_hash; /* ����Ӳ���������Ԫ��HASH, ����ƽ̨CPU�������� */ /* ===8 bytes=== */ - const void *__lib_raw_pkt_data; /* �ײ㲶�����ṩ����ʵԭʼ��ָ�� */ - const void *raw_pkt_data; /* ���ϲ�Ӧ�ÿ���ԭʼ��ͷָ��, �п���������Ethernet��, ����low_layer_type�ж�Э������ */ + const void *__lib_raw_pkt_data; /* �ײ㲶�����ṩ����ʵԭʼ��ָ�� */ + const void *raw_pkt_data; /* ���ϲ�Ӧ�ÿ���ԭʼ��ͷָ��, �п���������Ethernet��, ����low_layer_type�ж�Э������ */ - struct timeval raw_pkt_ts; /* ԭʼ������ʱ���, ���ȫΪ0��֧�ִ˹���(��pagģʽ) */ + struct timeval raw_pkt_ts; /* ԭʼ������ʱ���, ���ȫΪ0��֧�ִ˹���(��pagģʽ) */ //2*8 Bytes - const void *io_lib_pkt_reference; /* ���õײ�I/O���ԭʼ�������ṹ, ����:����marsio��˵, ���ײ��mbuf�ṹ */ + const void *io_lib_pkt_reference; /* ���õײ�I/O���ԭʼ�������ṹ, ����:����marsio��˵, ���ײ��mbuf�ṹ */ /* ---8 bytes-- */ - int payload_len; /* ���س��� */ - int device_index;/* �ж������ʱ, Ҫ��֤���ĸ������ʹ��ĸ����� */ + int payload_len; /* ���س��� */ + int device_index;/* �ж������ʱ, Ҫ��֤���ĸ������ʹ��ĸ����� */ /* ===8 bytes=== */ /* ---8 bytes-- */ unsigned char route_dir:1; - unsigned char is_overlay_pkt:1; /* ��ʾ����ʵ��·�е����ݰ�, Ҫ��������ע, ��������������һ������; ����Ҫ���� */ + unsigned char is_overlay_pkt:1; /* ��ʾ����ʵ��·�е����ݰ�, Ҫ��������ע, ��������������һ������; ����Ҫ���� */ unsigned char is_ctrl_pkt:1; - unsigned char diagnose_error_to_dump:1; /* ��ij�ִ������ݰ�, ����pkt_dump�洢��udp socket����tcpdump_mesa */ - unsigned char drop_current_pkt_flag:1; /* �������MSO_DROP_CURRENT_PKT���ö�����ǰ��, ÿ�δ�����Ҫ��� */ + unsigned char diagnose_error_to_dump:1; /* ��ij�ִ������ݰ�, ����pkt_dump�洢��udp socket����tcpdump_mesa */ + unsigned char drop_current_pkt_flag:1; /* �������MSO_DROP_CURRENT_PKT���ö�����ǰ��, ÿ�δ�����Ҫ��� */ unsigned char mac_flipping_enable:1; unsigned char padding_flags:2; //1 Bytes unsigned char padding[2]; - unsigned char overlay_layer_bytes; /* ������װ�㳤��, ����vxlanģʽ����50�ֽ� */ + unsigned char overlay_layer_bytes; /* ������װ�㳤��, ����vxlanģʽ����50�ֽ� */ //3 Bytes //4 Bytes - unsigned short vlan_flipping_couple[2]; /*2020-09-28 lijia add, in host order, vlan flipping for adev, index0��ʾ�յ���ǰ����vlan_id, index1��ʾԭ��ת����vlan_id */ + unsigned short vlan_flipping_couple[2]; /*2020-09-28 lijia add, in host order, vlan flipping for adev, index0��ʾ�յ���ǰ����vlan_id, index1��ʾԭ��ת����vlan_id */ //4Bytes /* ===8 bytes=== */ struct detain_pkt *d_pkt; - struct rawpkt_metadata *meta_route_dir[2];// ���������metadata, �����ڵ���low_level_sendʱ, ���marsio 4.6����Ҫ����Ϣ. + struct rawpkt_metadata *meta_route_dir[2];// ���������metadata, �����ڵ���low_level_sendʱ, ���marsio 4.6����Ҫ����Ϣ. struct segment_id_list *append_list; struct segment_id_list *prepend_list; unsigned long long stream_trace_id; @@ -144,10 +144,10 @@ struct buf_unorder struct buf_unorder *prev; //void *data; //UINT32 len; - void *this_ip_hdr; /* ������Դ����ʵԭʼ��, Ҳ������Դ�������IP��Ƭ��,��'ip_reassemble_pkt'���� */ + void *this_ip_hdr; /* ������Դ����ʵԭʼ��, Ҳ������Դ�������IP��Ƭ��,��'ip_reassemble_pkt'���� */ struct mesa_tcp_hdr *this_tcp_hdr; - void *tcpdata; /* TCP�����ݲ���ָ��, ����TCPͷ */ - UINT16 tcpdatalen; /* TCP�����ݲ��ֳ��� */ + void *tcpdata; /* TCP�����ݲ���ָ��, ����TCPͷ */ + UINT16 tcpdatalen; /* TCP�����ݲ��ֳ��� */ UINT16 urg_ptr; char fin; char urg; @@ -155,80 +155,80 @@ struct buf_unorder unsigned char ip_reassemble_pkt; UINT32 seq; UINT32 ack; - raw_ipfrag_list_t *ipfrag_list; /* �����ǰ����IP��Ƭ����İ�, ��Ҫ�洢����IP��Ƭ������ */ - raw_pkt_t raw_pkt; /* ������洢ԭʼ�� */ + raw_ipfrag_list_t *ipfrag_list; /* �����ǰ����IP��Ƭ����İ�, ��Ҫ�洢����IP��Ƭ������ */ + raw_pkt_t raw_pkt; /* ������洢ԭʼ�� */ }; -/*�����ṹ�嶨�壺*/ +/*�����ṹ�嶨�壺*/ struct half_tcpstream { UCHAR *data; - UINT32 offset; /*data�е�һ���ֽ���TCP�������е�ƫ����*/ - UINT32 count; /*�����ӽ���������Ϊֹ������������ܳ����ֽ���*/ - UINT32 count_new; /*�����µ��������ֽ���*/ - UINT32 count_ideal; /*�����ӽ���������Ϊֹ��������Ӧ�õ���������ܳ���*/ - UINT32 pktcout; /*�����ۼƵ���İ�����, �����ش���, ACK, ������SYN */ - UINT32 totallost; /*�����ۼƶ�������*/ - UINT32 seq; /*���������ڴ���seq���*/ - UINT32 first_data_seq; /*����������ʼ�ĵ�seq���*/ + UINT32 offset; /*data�е�һ���ֽ���TCP�������е�ƫ����*/ + UINT32 count; /*�����ӽ���������Ϊֹ������������ܳ����ֽ���*/ + UINT32 count_new; /*�����µ��������ֽ���*/ + UINT32 count_ideal; /*�����ӽ���������Ϊֹ��������Ӧ�õ���������ܳ���*/ + UINT32 pktcout; /*�����ۼƵ���İ�����, �����ش���, ACK, ������SYN */ + UINT32 totallost; /*�����ۼƶ�������*/ + UINT32 seq; /*���������ڴ���seq���*/ + UINT32 first_data_seq; /*����������ʼ�ĵ�seq���*/ - //UINT32 ack_seq; /*�����������ʹ�õ�Ӧ���, 2017-08-02 lijia modify , �ƶ���struct tcpdetail_private */ + //UINT32 ack_seq; /*�����������ʹ�õ�Ӧ���, 2017-08-02 lijia modify , �ƶ���struct tcpdetail_private */ - UINT16 window; /*�������ݻ������ڴ�С*/ + UINT16 window; /*�������ݻ������ڴ�С*/ UCHAR __pad__; UCHAR finstate; /*fin״̬*/ - UINT16 unorder_cnt;/* 2014-11-27 lijia modify, ijЩ����������, UCHAR�Ͳ���, ��չΪUINT16 */ - UINT16 maxunorder; /* 2014-11-27 lijia modify, ijЩ����������, UCHAR�Ͳ���, ��չΪUINT16 */ - struct buf_unorder *unorderlist; /*�����������*/ - struct buf_unorder *unorderlisttail; /*�����������β��ָ��*/ + UINT16 unorder_cnt;/* 2014-11-27 lijia modify, ijЩ����������, UCHAR�Ͳ���, ��չΪUINT16 */ + UINT16 maxunorder; /* 2014-11-27 lijia modify, ijЩ����������, UCHAR�Ͳ���, ��չΪUINT16 */ + struct buf_unorder *unorderlist; /*�����������*/ + struct buf_unorder *unorderlisttail; /*�����������β��ָ��*/ }; -/* ����ÿ�������������һ����, ����polling entry����ʹ�� */ +/* ����ÿ�������������һ����, ����polling entry����ʹ�� */ typedef struct { const raw_pkt_t *raw_pkt_stream_dir[2]; - struct rawpkt_metadata* meta_stream_dir[2];// ÿ������metadata��[0:c2s, 1:s2c]����洢��polling_inject_context��, update_raw_pkt��������ʱ����������䵽���ص�rawpkt�� + struct rawpkt_metadata* meta_stream_dir[2];// ÿ������metadata��[0:c2s, 1:s2c]����洢��polling_inject_context��, update_raw_pkt��������ʱ����������䵽���ص�rawpkt�� }polling_inject_context_t; struct streaminfo_private { - /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ + /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ struct streaminfo stream_public; - struct streaminfo_private *pfather_pr; /* ��ʵ�������ϲ���ָ��, ������vxlan�ȷ�װ��, stream_public.pfather�Ǹ�ҵ��������,������vxlan��� */ - /* ���±���Ϊƽ̨�ڲ�˽��, ���ⲻ�ɼ� */ + struct streaminfo_private *pfather_pr; /* ��ʵ�������ϲ���ָ��, ������vxlan�ȷ�װ��, stream_public.pfather�Ǹ�ҵ��������,������vxlan��� */ + /* ���±���Ϊƽ̨�ڲ�˽��, ���ⲻ�ɼ� */ void *cur_plugin_cb_func; - void *pproject; //ÿ�����̿����Զ���ʹ�ã� + void *pproject; //ÿ�����̿����Զ���ʹ�ã� /* ---8 bytes-- */ - UCHAR layer_dir:2; /* ������Ч, ��ǰ��ĵ�ַ�Ƿ��Ĭ�Ϲ���"��˿��ǿͻ���"��ͬ */ - UCHAR stream_dir:1; /* ��������������Ч, ���Ĵ洢�ĵ�ַ�Ƿ��Ĭ�Ϲ���"��˿��ǿͻ���"��ͬ */ - UCHAR stream_c2s_route_dir:1; /* c2s����İ�, ��Ӧ����·route dir����, ���ڻ�ȡinbound, outbound���� */ - UCHAR addr_use_as_hash:1; /* �����addr�Ƿ���ΪHASH����ͱȽϵIJ���, ��:MAC��ַ��������� */ + UCHAR layer_dir:2; /* ������Ч, ��ǰ��ĵ�ַ�Ƿ��Ĭ�Ϲ���"��˿��ǿͻ���"��ͬ */ + UCHAR stream_dir:1; /* ��������������Ч, ���Ĵ洢�ĵ�ַ�Ƿ��Ĭ�Ϲ���"��˿��ǿͻ���"��ͬ */ + UCHAR stream_c2s_route_dir:1; /* c2s����İ�, ��Ӧ����·route dir����, ���ڻ�ȡinbound, outbound���� */ + UCHAR addr_use_as_hash:1; /* �����addr�Ƿ���ΪHASH����ͱȽϵIJ���, ��:MAC��ַ��������� */ UCHAR set_special_timeout:1; - UCHAR need_update_opposite_addr:1;/*�����addr�Ƿ��ڶԲ�����ʱ���£��磺MPLS��ǩ�ǶԳ�ʱ��Ҫ��S2C���һ������¼�����ǩ,��ֵĬ��Ϊ0��������Ҫ����*/ - UCHAR stream_killed_flag:1; /* 2014-08-22 lijia add, ����ģʽ��, �Ѿ������Kill, ֮�������ֱ��Drop��Kill, �����ٸ��ϲ��� */ - UCHAR dirreverse; /* ��������ʱ�Ƿ������ip��ַ��ת, ����"��˿��ǿͻ���"�����෴ */ - UINT16 timeout;/* ÿ�����ӵĶ��г�ʱʱ��, ��ֵ��������;, 1:���ھ�����̭��ʱ���ް��������, �Խ�Լ�ڴ�; 2:���ڱ�����ʱ���ް�����, ����IM�ʱ���ް������Ӳ�δ����, �����ýϴ��timeout */ - unsigned short offset_to_raw_pkt_hdr; /* ����ͷ�����ԭʼ������ʼ��ַ��ƫ���� */ - unsigned short offset_to_ip_hdr; /* 2015-12-07 lijia add, UDP/TCP ��ͷ����ڳ��ص�IP��ͷƫ���� */ + UCHAR need_update_opposite_addr:1;/*�����addr�Ƿ��ڶԲ�����ʱ���£��磺MPLS��ǩ�ǶԳ�ʱ��Ҫ��S2C���һ������¼�����ǩ,��ֵĬ��Ϊ0��������Ҫ����*/ + UCHAR stream_killed_flag:1; /* 2014-08-22 lijia add, ����ģʽ��, �Ѿ������Kill, ֮�������ֱ��Drop��Kill, �����ٸ��ϲ��� */ + UCHAR dirreverse; /* ��������ʱ�Ƿ������ip��ַ��ת, ����"��˿��ǿͻ���"�����෴ */ + UINT16 timeout;/* ÿ�����ӵĶ��г�ʱʱ��, ��ֵ��������;, 1:���ھ�����̭��ʱ���ް��������, �Խ�Լ�ڴ�; 2:���ڱ�����ʱ���ް�����, ����IM�ʱ���ް������Ӳ�δ����, �����ýϴ��timeout */ + unsigned short offset_to_raw_pkt_hdr; /* ����ͷ�����ԭʼ������ʼ��ַ��ƫ���� */ + unsigned short offset_to_ip_hdr; /* 2015-12-07 lijia add, UDP/TCP ��ͷ����ڳ��ص�IP��ͷƫ���� */ /* ===8 bytes=== */ - const raw_pkt_t *raw_pkt; /* 2014-12-30 lijia add, ��Щ�ص�������֧��ԭʼ��, ����������Ҫ, �洢��private�ṹ�� */ + const raw_pkt_t *raw_pkt; /* 2014-12-30 lijia add, ��Щ�ص�������֧��ԭʼ��, ����������Ҫ, �洢��private�ṹ�� */ /* ---8 bytes-- */ - unsigned int hash_slave; /* 2015-12-14 lijia add, ʹ��linux_jhash����ʱ, ����ͬʱ�õ��������ϵ�HASHֵ, ��HASH����ȷ����HASH����SLOTλ��, slave_HASH���ڿ��ٱȽϵ�ַ�Ƿ���� */ - unsigned char hash_not_head_times;/* 2015-12-15 lijia add, ��ǰindex����HASH SLOT�ĵ�һλ�Ĵ��� */ - unsigned char cur_layer_raw_hdr_len; /* 2017-10-31 lijia add, ��ǰ���ԭʼ����ַ����, ��pppͷ��ѹ��, ԭ���汾���������״̬, ����ʱҲ����֪��ַ������ */ + unsigned int hash_slave; /* 2015-12-14 lijia add, ʹ��linux_jhash����ʱ, ����ͬʱ�õ��������ϵ�HASHֵ, ��HASH����ȷ����HASH����SLOTλ��, slave_HASH���ڿ��ٱȽϵ�ַ�Ƿ���� */ + unsigned char hash_not_head_times;/* 2015-12-15 lijia add, ��ǰindex����HASH SLOT�ĵ�һλ�Ĵ��� */ + unsigned char cur_layer_raw_hdr_len; /* 2017-10-31 lijia add, ��ǰ���ԭʼ����ַ����, ��pppͷ��ѹ��, ԭ���汾���������״̬, ����ʱҲ����֪��ַ������ */ unsigned char __pad:1; unsigned char packet_process_context:1; unsigned char is_ctrl_pkt:1; unsigned char plugin_process_context:1; /* 2019-09-07 lijia add, for polling entry send packet */ - unsigned char stream_close_reason:4; /* 2019-02-14 lijia add, ����TCPʹ��tcpdetail_private��link_state����, ����UDP֮ǰû��, ���pad�����˱��� */ + unsigned char stream_close_reason:4; /* 2019-02-14 lijia add, ����TCPʹ��tcpdetail_private��link_state����, ����UDP֮ǰû��, ���pad�����˱��� */ unsigned char gdev_block_timer; /* ===8 bytes=== */ /* ---8 bytes-- */ - unsigned short stream_low_layer_tunnel_type; /* 2016-07-25 lijia add, ��¼�����ײ���������, 0Ϊ������, �������:enum stream_carry_tunnel_t */ - unsigned short stream_carry_up_layer_tunnel_type; /* ��ǰ���ϲ����������, ���統ǰ��ΪUDP, ���صĿ�����teredo������L2TP���� */ - /* 2016-07-08 lijia add, for janus hijack, ��Ӧ�ô洢��half_stream, �����յ�SYNʱ, ��û�д���half_streamʵ��, �����ݴ���streaminfo_private */ + unsigned short stream_low_layer_tunnel_type; /* 2016-07-25 lijia add, ��¼�����ײ���������, 0Ϊ������, �������:enum stream_carry_tunnel_t */ + unsigned short stream_carry_up_layer_tunnel_type; /* ��ǰ���ϲ����������, ���統ǰ��ΪUDP, ���صĿ�����teredo������L2TP���� */ + /* 2016-07-08 lijia add, for janus hijack, ��Ӧ�ô洢��half_stream, �����յ�SYNʱ, ��û�д���half_streamʵ��, �����ݴ���streaminfo_private */ unsigned short syn_opt_num; unsigned short synack_opt_num; /* ===8 bytes=== */ @@ -243,67 +243,67 @@ struct streaminfo_private struct segment_id_list *sid_append_list; struct segment_id_list *sid_prepend_list; - /* ȫ����id, stream_index��ʷ���Ѿ���ʾ������Ψһid, �˴�Ҫ��֤��Ⱥ���л������ظ�, �����½�����; - ��λ --- ��λ + /* ȫ����id, stream_index��ʷ���Ѿ���ʾ������Ψһid, �˴�Ҫ��֤��Ⱥ���л������ظ�, �����½�����; + ��λ --- ��λ 1 | 12bit device_id | 8bit thread_id | 28bit timestamp in sec | 15bit sequence per thread */ unsigned long long global_stream_id; unsigned long long stream_create_timestamp_ms; unsigned long long stream_lastupdate_timestamp_ms; /* ---8 bytes-- */ - unsigned char layer_index:4; /* ��ʾ��ǰ��ļ���, ����ײ㿪ʼ,һ����ethernet��ʼ, ��0��ʼ����, 4bit���֧��15��Ƕ��, Ҳ�ܷ�ֹ����Ƕ����(Ŀǰ��û��������) */ - unsigned char create_dir_by_well_known_port:1; /* UDP��TCP��data������, ����well_known_port����, �����ǰ���˿��ǿͻ���ԭ���� */ + unsigned char layer_index:4; /* ��ʾ��ǰ��ļ���, ����ײ㿪ʼ,һ����ethernet��ʼ, ��0��ʼ����, 4bit���֧��15��Ƕ��, Ҳ�ܷ�ֹ����Ƕ����(Ŀǰ��û��������) */ + unsigned char create_dir_by_well_known_port:1; /* UDP��TCP��data������, ����well_known_port����, �����ǰ���˿��ǿͻ���ԭ���� */ char __pad2:3; - char has_duplicate_pkt; /* ��ǰ�������й��ظ����ݰ�, ����������Ӧ��ÿ������� */ + char has_duplicate_pkt; /* ��ǰ�������й��ظ����ݰ�, ����������Ӧ��ÿ������� */ char under_ddos_bypass; char __pad3[3]; /* ===8 bytes=== */ unsigned char ip_ttl_c2s; unsigned char ip_ttl_s2c; - void *stream_bridge; /* 20210425 lijia add, ����project����, ֧��ͬ�����첽����ģʽ, ԭ��project�����첽ģʽ */ + void *stream_bridge; /* 20210425 lijia add, ����project����, ֧��ͬ�����첽����ģʽ, ԭ��project�����첽ģʽ */ }; struct tcpdetail_private { - /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ + /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ struct tcpdetail tcpdetail_public; /* ---8 bytes-- */ UCHAR multisynflag:2; // multi syn - UCHAR ignore_rst_fin:1; //������rst, fin����, ֻ����ʱ��lru���� - UCHAR drop_stream_flag:1; //2019-11-20 lijia add, ����ͬDROPPKT, ֻ����������������stream - UCHAR auto_remedy_flag:1; //�Ƿ�����FD���� - UCHAR needackflag:1; //��Ҫ�ϴ�ack���� + UCHAR ignore_rst_fin:1; //������rst, fin����, ֻ����ʱ��lru���� + UCHAR drop_stream_flag:1; //2019-11-20 lijia add, ����ͬDROPPKT, ֻ����������������stream + UCHAR auto_remedy_flag:1; //�Ƿ�����FD���� + UCHAR needackflag:1; //��Ҫ�ϴ�ack���� UCHAR takeoverflag:1; - UCHAR has_lost_pkt_flag:1; //2020-08-23 lijia add, ����������������־λ - UCHAR tcpstateflag; // ���ڼ�¼tcp�ĻỰSYN���״̬ - UCHAR link_state; // ���ӵ�״̬ + UCHAR has_lost_pkt_flag:1; //2020-08-23 lijia add, ����������������־λ + UCHAR tcpstateflag; // ���ڼ�¼tcp�ĻỰSYN���״̬ + UCHAR link_state; // ���ӵ�״̬ UCHAR creat_mod; - UINT16 tcpoverlen; // modify by lqy 20150225, ��¼��ǰ������һ�������ص�tcp���ȣ� - UCHAR offload_stream_flag; //2022-04-13 liuxueli add, ������������stream + UINT16 tcpoverlen; // modify by lqy 20150225, ��¼��ǰ������һ�������ص�tcp���ȣ� + UCHAR offload_stream_flag; //2022-04-13 liuxueli add, ������������stream UCHAR pad; /* ===8 bytes=== */ time_t offload_stream_timestamp_s; - struct half_tcpstream *pclient; //��client��TCP������Ϣ - struct half_tcpstream *pserver; //�� server��TCP������Ϣ - UINT32 iserverseq; //���ӽ���ʱ��ʱ�洢seq, ��ֵ��C2S->SYN+1 - UINT32 iclientseq; //���ӽ���ʱ��ʱ�洢seq, ��ֵ��S2C->SYN+1 + struct half_tcpstream *pclient; //��client��TCP������Ϣ + struct half_tcpstream *pserver; //�� server��TCP������Ϣ + UINT32 iserverseq; //���ӽ���ʱ��ʱ�洢seq, ��ֵ��C2S->SYN+1 + UINT32 iclientseq; //���ӽ���ʱ��ʱ�洢seq, ��ֵ��S2C->SYN+1 /* NOTE: - Ϊ��first_ack_seq������half_tcpstream��? - ��half_tcpstream�����յ���һ�����и��صİ��ŷ����, - �����tcp_deal_ack()����������, �����S2C����, ��ô��һ��S2C���ݰ�����ʱ, �Ѿ�����first_ack_seq��. - �����Է�ֹDDOS����. + Ϊ��first_ack_seq������half_tcpstream��? + ��half_tcpstream�����յ���һ�����и��صİ��ŷ����, + �����tcp_deal_ack()����������, �����S2C����, ��ô��һ��S2C���ݰ�����ʱ, �Ѿ�����first_ack_seq��. + �����Է�ֹDDOS����. */ - UINT32 C2S_first_ack_seq; /* 2017-08-02 lijia modify, C2S���һ��ACK��, ��half_tcpstream->ack_seqһ����Լ�����������Բ���������� */ - UINT32 C2S_ack_seq; /* 2017-08-02 lijia add, C2S�൱ǰ��ACK�� */ - UINT32 S2C_first_ack_seq; /* 2017-08-02 lijia modify, C2S���һ��ACK��, ��half_tcpstream->ack_seqһ����Լ�����������Բ���������� */ - UINT32 S2C_ack_seq; /* 2017-08-02 lijia add, S2C�൱ǰ��ACK�� */ - void *apme; //Ӧ�ò������� - void *pAllpktpme; //��״̬��tcp���������� - struct tcp_flow_stat *flow_stat; /* 2016-07-14 lijia add, ���ڼ�¼TCP��data���ļ���, ʵ���ڴ������ͷ���projectģ�����, ����ΪNULL, */ - struct tcp_flow_stat *deduce_flow_stat; /* 2018-10-30 lijia add, ���ڼ�¼������ƶϳ������ϴ��������, ���������ij���; �Լ������������, �Զ�Ӧ���յ������� */ + UINT32 C2S_first_ack_seq; /* 2017-08-02 lijia modify, C2S���һ��ACK��, ��half_tcpstream->ack_seqһ����Լ�����������Բ���������� */ + UINT32 C2S_ack_seq; /* 2017-08-02 lijia add, C2S�൱ǰ��ACK�� */ + UINT32 S2C_first_ack_seq; /* 2017-08-02 lijia modify, C2S���һ��ACK��, ��half_tcpstream->ack_seqһ����Լ�����������Բ���������� */ + UINT32 S2C_ack_seq; /* 2017-08-02 lijia add, S2C�൱ǰ��ACK�� */ + void *apme; //Ӧ�ò������� + void *pAllpktpme; //��״̬��tcp���������� + struct tcp_flow_stat *flow_stat; /* 2016-07-14 lijia add, ���ڼ�¼TCP��data���ļ���, ʵ���ڴ������ͷ���projectģ�����, ����ΪNULL, */ + struct tcp_flow_stat *deduce_flow_stat; /* 2018-10-30 lijia add, ���ڼ�¼������ƶϳ������ϴ��������, ���������ij���; �Լ������������, �Զ�Ӧ���յ������� */ unsigned short rtt_csc; unsigned short rtt_scs; long long last_c2s_pkt_rcv_time; @@ -312,12 +312,12 @@ struct tcpdetail_private struct udpdetail_private { - /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ + /* ����ṹ�����ڽṹ����ǰ, ָ���ַ���Ի���ǿת */ struct udpdetail udpdetail_public; - void *apme; //Ӧ�ò������� - struct udp_flow_stat *flow_stat; /* 2015-12-28 lijia add, udpdetail�е���ϸ����(64bit), ʵ���ڴ������ͷ���projectģ�����, ����ΪNULL */ - UCHAR drop_stream_flag; //2020-06-02 lijia add, ����ͬDROPPKT, ֻ����������������stream - UCHAR offload_stream_flag; //2022-04-13 liuxueli add, ������������stream + void *apme; //Ӧ�ò������� + struct udp_flow_stat *flow_stat; /* 2015-12-28 lijia add, udpdetail�е���ϸ����(64bit), ʵ���ڴ������ͷ���projectģ�����, ����ΪNULL */ + UCHAR drop_stream_flag; //2020-06-02 lijia add, ����ͬDROPPKT, ֻ����������������stream + UCHAR offload_stream_flag; //2022-04-13 liuxueli add, ������������stream UCHAR pad[6]; time_t offload_stream_timestamp_s; }; @@ -325,98 +325,98 @@ struct udpdetail_private /* 2015-02-26 lijia add, for stream-addr-list ntop, pton */ typedef struct{ struct streaminfo stream; - char addr_value[MAX_ADDR_BIN_VALUE_LEN]; /* Ϊ��paddr������malloc, �������, ��stream������һ�黺�� */ + char addr_value[MAX_ADDR_BIN_VALUE_LEN]; /* Ϊ��paddr������malloc, �������, ��stream������һ�黺�� */ }addr_continuous_bin_t; typedef struct{ enum addr_type_t addr_type_bin; - UCHAR stream_type;/* ����ʶ��ADDR_TYPE_IPV4��TCP����UDP */ + UCHAR stream_type;/* ����ʶ��ADDR_TYPE_IPV4��TCP����UDP */ const char *addr_type_str; const char *addr_type_prefix; - const char *addr_type_prefix_with_delim; /* ���ָ�����ǰ, ���ڱȽ��ַ���, ��ֹIPv4��IPv4_TCP�ַ����Ƚ�ʱ����, �����IPv4:, IPv4_TCP:�Ͳ����ڻ������� */ + const char *addr_type_prefix_with_delim; /* ���ָ�����ǰ, ���ڱȽ��ַ���, ��ֹIPv4��IPv4_TCP�ַ����Ƚ�ʱ����, �����IPv4:, IPv4_TCP:�Ͳ����ڻ������� */ int (*addr_n2p_fun)(const struct layer_addr *paddr, char *buf, int buf_len); int (*addr_p2n_fun)(char *addr_str, addr_continuous_bin_t *addr_bin_val); const char *addr_type_string_abbreviation; }addr_convert_t; struct pptp_stream_key{ - UINT32 sip; /* TCP-SYN����ԴIP, ����ǰ�data������, ����pptp->message_type�ж�, REQ���������ԴIP��Ϊ��sip */ + UINT32 sip; /* TCP-SYN����ԴIP, ����ǰ�data������, ����pptp->message_type�ж�, REQ���������ԴIP��Ϊ��sip */ UINT32 dip; /* sip,dip are network order */ - UINT16 sip_side_call_id; /* �������ݰ�����sip������GRE����callid, ʵ�������ʾpeer call id, network order */ - UINT16 dip_side_call_id; /* �������ݰ�����dip������GRE����callid, ʵ�������ʾpeer call id, network order */ - //struct streaminfo_private *stream_pr; /* TODO 1, ���ڱ����ַ����, Ŀǰ��������ײ��IP��call_id */ + UINT16 sip_side_call_id; /* �������ݰ�����sip������GRE����callid, ʵ�������ʾpeer call id, network order */ + UINT16 dip_side_call_id; /* �������ݰ�����dip������GRE����callid, ʵ�������ʾpeer call id, network order */ + //struct streaminfo_private *stream_pr; /* TODO 1, ���ڱ����ַ����, Ŀǰ��������ײ��IP��call_id */ }; -/* PPTPЭ�����������ṹ, sapp�ڲ�ʹ�� */ +/* PPTPЭ�����������ṹ, sapp�ڲ�ʹ�� */ struct pptp_info_pri{ struct MESA_tunnel_info tunnel_context; struct pptp_stream_key pptp_key; - stSessionInfo ssinfo; /* ����ҵ�����������Ϣ */ - void *biz_pme; /* ҵ����Զ������� */ - struct streaminfo *my_stream; /* pptp�ײ�UDP�� */ + stSessionInfo ssinfo; /* ����ҵ�����������Ϣ */ + void *biz_pme; /* ҵ����Զ������� */ + struct streaminfo *my_stream; /* pptp�ײ�UDP�� */ unsigned char threadnum; - char insert_hash_flag; /* ���������ѽ�key����HASH�� */ - char content_notify_biz_flag; /* �Ƿ��Ѿ����ù�ҵ����, ��֮content_type */ + char insert_hash_flag; /* ���������ѽ�key����HASH�� */ + char content_notify_biz_flag; /* �Ƿ��Ѿ����ù�ҵ����, ��֮content_type */ }; -/* ˽��pptp��ַ, pptp_addr�ṩ��ҵ����, ����gre_layer_len����FDʱ����ʶ�𱾲�ͷ������ */ +/* ˽��pptp��ַ, pptp_addr�ṩ��ҵ����, ����gre_layer_len����FDʱ����ʶ�𱾲�ͷ������ */ struct layer_addr_pptp_pri{ struct layer_addr_pptp pptp_addr; int gre_layer_len; }; struct l2tp_stream_key{ - UINT32 sip; /* L2TP������������IP, ����������SCCRQ, ICRQ, SCCCN�Ȱ���ԴIP, network order */ - UINT32 dip; /* L2TP�����������˵�IP, network order */ + UINT32 sip; /* L2TP������������IP, ����������SCCRQ, ICRQ, SCCCN�Ȱ���ԴIP, network order */ + UINT32 dip; /* L2TP�����������˵�IP, network order */ UINT16 sport; /* network order */ UINT16 dport; /* network order */ - UINT16 sip_side_tunnel_id; /* sip�ⷢ������tunnelid, network order */ - UINT16 sip_side_session_id; /* sip�ⷢ������tunnelid, network order */ - UINT16 dip_side_tunnel_id; /* dip�ⷢ������tunnelid, network order */ - UINT16 dip_side_session_id; /* dip�ⷢ������tunnelid, network order */ - //struct streaminfo_private *stream_pr; /* TODO 1, ���ڱ����ַ����, Ŀǰ��������ײ��IP��call_id */ + UINT16 sip_side_tunnel_id; /* sip�ⷢ������tunnelid, network order */ + UINT16 sip_side_session_id; /* sip�ⷢ������tunnelid, network order */ + UINT16 dip_side_tunnel_id; /* dip�ⷢ������tunnelid, network order */ + UINT16 dip_side_session_id; /* dip�ⷢ������tunnelid, network order */ + //struct streaminfo_private *stream_pr; /* TODO 1, ���ڱ����ַ����, Ŀǰ��������ײ��IP��call_id */ }; struct l2tp_info_pri{ struct MESA_tunnel_info tunnel_context; struct l2tp_stream_key l2tp_key; - stSessionInfo ssinfo; /* ����ҵ��������� */ + stSessionInfo ssinfo; /* ����ҵ��������� */ void *biz_pme; - const struct streaminfo *my_stream; /* l2tp�ײ�UDP�� */ + const struct streaminfo *my_stream; /* l2tp�ײ�UDP�� */ unsigned char thread_seq; - char content_notify_biz_flag; /* �Ƿ��Ѿ����ù�ҵ����, ��֮content_type */ + char content_notify_biz_flag; /* �Ƿ��Ѿ����ù�ҵ����, ��֮content_type */ }; #define STATSD_SEND_MSS (1472) -/* ȫ��Ψһ��ȫ�ֱ���, ͨ���ǿ�����������, ���仯��ȫ�ֱ���, ����������, ������ֻ�� */ +/* ȫ��Ψһ��ȫ�ֱ���, ͨ���ǿ�����������, ���仯��ȫ�ֱ���, ����������, ������ֻ�� */ struct sapp_global_single_t{ - int signal_take_over_sw; /* �Ƿ�ӹܳ���ϵͳ�ź�, ��SIGSEGV, SIGABRT�ȵ� */ - int ipentry_priority_over_ipfrag; /* IP_entry���ȼ�����IP_frag_entry, Ĭ��Ϊ0, ��ӦWY�����ض����� */ - //int kill_tcp_with_gdev; /* FDδ��Чʱ, ����gdev�������� */ - int cfg_send_tcp_offload_sw; /* ��������MTUʱ, ������Ƭ�ɶ��С��MTU�İ����� */ - //int cfg_kill_tcp_rst_num; /* kill_tcp����rst������ */ - //int cfg_kill_tcp_rst_signature; /* kill_tcp���͵�rst�Ƿ���Ҫָ����Ϣ, ����ʶ�� */ - //int tuple4_reuse_time_interval; /* ��Ԫ�����õ���С���ʱ�� */ + int signal_take_over_sw; /* �Ƿ�ӹܳ���ϵͳ�ź�, ��SIGSEGV, SIGABRT�ȵ� */ + int ipentry_priority_over_ipfrag; /* IP_entry���ȼ�����IP_frag_entry, Ĭ��Ϊ0, ��ӦWY�����ض����� */ + //int kill_tcp_with_gdev; /* FDδ��Чʱ, ����gdev�������� */ + int cfg_send_tcp_offload_sw; /* ��������MTUʱ, ������Ƭ�ɶ��С��MTU�İ����� */ + //int cfg_kill_tcp_rst_num; /* kill_tcp����rst������ */ + //int cfg_kill_tcp_rst_signature; /* kill_tcp���͵�rst�Ƿ���Ҫָ����Ϣ, ����ʶ�� */ + //int tuple4_reuse_time_interval; /* ��Ԫ�����õ���С���ʱ�� */ //void *fs2_handle; const char *fs2_server_ip; unsigned short fs2_server_port_host; short __pad1; - //int send_fake_pkt_mode; /* 2018-10-26 lijia add, for PanGu, ����ȱ��FD·��, ����ô���GDEV����rst��, DNS-fake����,mode 0�� Э��ջ���㷢���� 1��Э��ջ���㷢����3��gdevע�뷢������ģʽ��send_fake_pkt_gdev_sport��Ч */ - //int send_fake_pkt_gdev_sport; /* 2018-10-26 lijia add, for PanGu, ����ѡ��vxlanԴ�˿� */ + //int send_fake_pkt_mode; /* 2018-10-26 lijia add, for PanGu, ����ȱ��FD·��, ����ô���GDEV����rst��, DNS-fake����,mode 0�� Э��ջ���㷢���� 1��Э��ջ���㷢����3��gdevע�뷢������ģʽ��send_fake_pkt_gdev_sport��Ч */ + //int send_fake_pkt_gdev_sport; /* 2018-10-26 lijia add, for PanGu, ����ѡ��vxlanԴ�˿� */ int send_fake_pkt_sip; }; -#define TIMESTAMP_SINGLE_PKT_REGION (4) /* ������ʱͳ������ */ -#define TIMESTAMP_SINGLE_PKT_REGION_MAX (5) /* ��������ͳ�������ֵ */ +#define TIMESTAMP_SINGLE_PKT_REGION (4) /* ������ʱͳ������ */ +#define TIMESTAMP_SINGLE_PKT_REGION_MAX (5) /* ��������ͳ�������ֵ */ typedef struct{ - unsigned int runtime_pkt_max_delay; /* �����������ʱ */ - unsigned long long pkt_total_num[TIMESTAMP_SINGLE_PKT_REGION_MAX]; /* ��¼��������ʱ���ܰ���, ������ͳ�� */ - unsigned long long pkt_total_time; /* ���һ��ʱ�������ʱ, ���ڼ���ƽ������������ʱ */ + unsigned int runtime_pkt_max_delay; /* �����������ʱ */ + unsigned long long pkt_total_num[TIMESTAMP_SINGLE_PKT_REGION_MAX]; /* ��¼��������ʱ���ܰ���, ������ͳ�� */ + unsigned long long pkt_total_time; /* ���һ��ʱ�������ʱ, ���ڼ���ƽ������������ʱ */ }timestamp_record_region_t; -/* ���߳�ȫ�ֱ���, �������ݰ�ͳ����Ϣ, ͨ��ֵ��ʵʱ�仯 */ +/* ���߳�ȫ�ֱ���, �������ݰ�ͳ����Ϣ, ͨ��ֵ��ʵʱ�仯 */ struct sapp_global_mthread_t{ int ipv6_pkt_type_flag; /* ipv6 packet type, normal, or rebuild */ int pptp_hash_max_search_times; @@ -424,28 +424,28 @@ struct sapp_global_mthread_t{ char __pad1[4]; double pptp_hash_avg_search_times; double l2tp_hash_avg_search_times; - int tcp_stream_special_timeout_num; /* ���õ�����ʱʱ�����, Ĭ�ϲ�����������������10% */ - int udp_stream_special_timeout_num;/* ���õ�����ʱʱ�����, Ĭ�ϲ�����������������10% */ + int tcp_stream_special_timeout_num; /* ���õ�����ʱʱ�����, Ĭ�ϲ�����������������10% */ + int udp_stream_special_timeout_num;/* ���õ�����ʱʱ�����, Ĭ�ϲ�����������������10% */ timestamp_record_region_t runtime_record; - timestamp_record_region_t runtime_record_driver; /* �����������õ���, ��ƽ̨�õ�������ʱ */ + timestamp_record_region_t runtime_record_driver; /* �����������õ���, ��ƽ̨�õ�������ʱ */ }__attribute__ ((aligned (64))); typedef struct{ #ifdef DEBUG - unsigned int magic; /* malloc�����0x4D4D4D4D, ��MMMM ��16����; free�����0xFEFEFEFE */ + unsigned int magic; /* malloc�����0x4D4D4D4D, ��MMMM ��16����; free�����0xFEFEFEFE */ #endif unsigned int user_buf_size; }sapp_private_mem_t; /* - vxlan ppp��hdlc�ֶλ�������, ����ethernet, �漰������, Ҫ��mac��ַ�ߵ�����. - ���Բ��ٴ���һ���µ�streaminfo�ṹ, �˷��ڴ�Ҳ�ķ�CPU, ���岻��, - ��hdlc, ppp���ֶκ�vxlan�ϲ�, ����ip���tcp/udp�Ĺ�ϵһ��. + vxlan ppp��hdlc�ֶλ�������, ����ethernet, �漰������, Ҫ��mac��ַ�ߵ�����. + ���Բ��ٴ���һ���µ�streaminfo�ṹ, �˷��ڴ�Ҳ�ķ�CPU, ���岻��, + ��hdlc, ppp���ֶκ�vxlan�ϲ�, ����ip���tcp/udp�Ĺ�ϵһ��. */ struct layer_addr_vxlan_private{ struct layer_addr_vxlan addr_public; - unsigned char actual_total_len; /* ���������紫���е�vxlanͷ����ַ����, ���������ӵ�hdlc, ppp�ֶ� */ + unsigned char actual_total_len; /* ���������紫���е�vxlanͷ����ַ����, ���������ӵ�hdlc, ppp�ֶ� */ union{ struct hdlc_net_hdr inner_hdlc; struct layer_ppp_hdr inner_ppp; @@ -523,7 +523,6 @@ 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 } |
