diff options
| author | lijia <[email protected]> | 2021-09-09 17:19:51 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2021-09-09 17:19:51 +0800 |
| commit | 00afae66aa07534518ccf452fcff7ba2d1b10cb9 (patch) | |
| tree | 60abb8391523adbc6ce92bc78d4a79b8ee4fe5ea /include | |
| parent | 908cda2ef90d92d15d89b2b1fb659296e736b9f1 (diff) | |
TSG-7425, sapp支持释放所有资源而不退出当前进程, 便于做单元测试.
Diffstat (limited to 'include')
| -rw-r--r-- | include/private/packet_io.h | 2 | ||||
| -rw-r--r-- | include/private/packet_io_internal.h | 5 | ||||
| -rw-r--r-- | include/private/sapp_declaration.h | 5 | ||||
| -rw-r--r-- | include/private/sapp_global_val.h | 1 | ||||
| -rw-r--r-- | include/private/stream_internal.h | 2 | ||||
| -rw-r--r-- | include/public/stream_inc/stream_entry.h | 3 |
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 |
