summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorlijia <[email protected]>2021-09-09 17:19:51 +0800
committerlijia <[email protected]>2021-09-09 17:19:51 +0800
commit00afae66aa07534518ccf452fcff7ba2d1b10cb9 (patch)
tree60abb8391523adbc6ce92bc78d4a79b8ee4fe5ea /include
parent908cda2ef90d92d15d89b2b1fb659296e736b9f1 (diff)
TSG-7425, sapp支持释放所有资源而不退出当前进程, 便于做单元测试.
Diffstat (limited to 'include')
-rw-r--r--include/private/packet_io.h2
-rw-r--r--include/private/packet_io_internal.h5
-rw-r--r--include/private/sapp_declaration.h5
-rw-r--r--include/private/sapp_global_val.h1
-rw-r--r--include/private/stream_internal.h2
-rw-r--r--include/public/stream_inc/stream_entry.h3
6 files changed, 17 insertions, 1 deletions
diff --git a/include/private/packet_io.h b/include/private/packet_io.h
index 3c26839..e188aee 100644
--- a/include/private/packet_io.h
+++ b/include/private/packet_io.h
@@ -111,6 +111,8 @@ typedef struct{
int (*dl_io_get_version)(void);
void * (*dl_io_device_alias)(unsigned int target_id, char *device_args);
int (*dl_io_send_only_thread_init)(void); /* 2020-06-01 lijia add, ������д����Ķ��������߳�, ��Ҫ���ô˽ӿڰ󶨵��ض�CPU������ */
+ void (*dl_io_free_send_handle)(int thread_seq, void *handle);
+ void (*dl_io_destroy)(void);
}dl_io_fun_list_t;
/* ���º����������, ������ȷ���������������� */
diff --git a/include/private/packet_io_internal.h b/include/private/packet_io_internal.h
index a0ae5c3..151787b 100644
--- a/include/private/packet_io_internal.h
+++ b/include/private/packet_io_internal.h
@@ -182,6 +182,8 @@ int packet_io_hook_forward(raw_pkt_t *raw_pkt, unsigned char dir, int thread_num
int packet_io_hook_sendto(const raw_pkt_t *raw_pkt, unsigned char route_dir, char *send_pkt_data, void *send_pkt_io_reference);
void sapp_pkt_dump_by_raw_pkt(int tid, const void *pkt, int pkt_len, int has_layer2_hdr, unsigned short eth_pro_host_order, enum _pkt_classify class_val);
unsigned int dpdk_rte_ip_hash(const char *sipaddr, const char *dipaddr, int addrlen);
+void sendpacket_destroy(int tot_thread_num);
+void send_handle_destroy(int thread_index);
/********************** funcitons for dynamic link ***********************/
@@ -236,9 +238,11 @@ extern int pcap_dl_io_get_version(void);
extern void * pcap_dl_io_device_alias(unsigned int target_id, char *device_args);
void packet_io_under_ddos_run(void);
int packet_io_under_ddos_init(void);
+void packet_io_under_ddos_destroy(void);
int packet_io_under_ddos_should_bypass(int thread_index);
void update_under_ddos_stream_state(struct streaminfo *pstream);
int packet_io_under_ddos_global_status(void);
+void pcap_dl_io_destroy(void);
/********************** pcap funcitons for dynamic link ***********************/
@@ -267,6 +271,7 @@ extern int pag_dl_io_register_cb(PACKET_IO_CB_T fun);
extern int pag_dl_io_register_exit_cb(PACKET_IO_EXIT_CB_T exit_fun);
extern int pag_dl_io_get_version(void);
extern void * pag_dl_io_device_alias(unsigned int target_id, char *device_args);
+extern void pcap_dl_io_free_send_handle(int thread_seq, void *_handle);
/********************** pag funcitons for dynamic link ***********************/
diff --git a/include/private/sapp_declaration.h b/include/private/sapp_declaration.h
index 3580161..bf1ead4 100644
--- a/include/private/sapp_declaration.h
+++ b/include/private/sapp_declaration.h
@@ -16,6 +16,11 @@ extern "C" {
#define SAPP_MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
+#ifndef SAPP_FREE
+#define SAPP_FREE(m) do{if(m){free((void *)m); m = NULL;}}while(0)
+
+#endif
+
/* ��Ƕ�ײ��̫��, ʹ�ü������ */
#define ABBR_SAPP_LOG_LEVEL sapp_global_val->config.profiling.log.level
diff --git a/include/private/sapp_global_val.h b/include/private/sapp_global_val.h
index d272c41..3e06ad1 100644
--- a/include/private/sapp_global_val.h
+++ b/include/private/sapp_global_val.h
@@ -400,6 +400,7 @@ typedef struct{
sapp_gval_individual_fixed_fs_t field_stat2_para;
pthread_t thread_obtain_id[SAPP_MAX_THREADS]; /* pthread_create���ص�id */
pid_t thread_tid[SAPP_MAX_THREADS]; /* gdb �� top �鿴��id */
+ pthread_t thread_timer_event_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, ��Щ�㲻Ӧ�õ��ò��, ��עʱ��Ҫ���⴦�� */
diff --git a/include/private/stream_internal.h b/include/private/stream_internal.h
index 80d13ec..b5477da 100644
--- a/include/private/stream_internal.h
+++ b/include/private/stream_internal.h
@@ -435,6 +435,8 @@ void sapp_mem_free(void *data);
void *sapp_mem_realloc(void *old_ptr, int size);
void set_current_thread_cpu_affinity(int);
int get_current_thread_cpu_affinity_id(void);
+void sapp_fs2_destroy(void);
+void sapp_gval_destroy(void);
diff --git a/include/public/stream_inc/stream_entry.h b/include/public/stream_inc/stream_entry.h
index 01ec865..9fda956 100644
--- a/include/public/stream_inc/stream_entry.h
+++ b/include/public/stream_inc/stream_entry.h
@@ -85,7 +85,8 @@ char POLLING_ENTRY(struct streaminfo *stream, void **pme, int thread_seq,void *
char PROT_PROCESS(stSessionInfo* session_info, void **pme, int thread_seq,struct streaminfo *a_stream,const void *a_packet);
-int libsapp_setup_env(int argc, char *argv[]);
+int libsapp_setup_env(int argc, char *argv[]);
+void libsapp_destroy_env(void);
#ifdef __cplusplus