diff options
| author | lijia <[email protected]> | 2024-04-27 22:31:48 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2024-04-28 19:13:45 +0800 |
| commit | ed1ff3bc45c45a3ed131beadf1584529e28b2856 (patch) | |
| tree | f0762619ceeabb70aadd8508799a9b1ac0ae9e44 | |
| parent | 16a633839f9917d26fe229ddaa887fe10b57deac (diff) | |
update g_current_time based on the timestamp of the pcap packet header
| -rw-r--r-- | benchmark_pcap/tcp/tcp_timeout_reset.pcap | bin | 471 -> 2100 bytes | |||
| -rw-r--r-- | module_test/src/gtest_inline_plug.cpp | 9 | ||||
| -rw-r--r-- | module_test/src/gtest_main.cpp | 33 | ||||
| -rw-r--r-- | module_test/src/gtest_mpls.cpp | 3 | ||||
| -rw-r--r-- | module_test/src/gtest_mpls_plug.cpp | 30 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_ipv4_plug.cpp | 41 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_support.cpp | 68 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_support_plug.cpp | 15 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_tcp.cpp | 80 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_tcp_plug.cpp | 53 | ||||
| -rw-r--r-- | module_test/src/gtest_sapp_udp.cpp | 69 | ||||
| -rw-r--r-- | module_test/src/gtest_vlan.cpp | 4 | ||||
| -rw-r--r-- | module_test/src/gtest_vlan_plug.cpp | 32 | ||||
| -rw-r--r-- | src/dealpkt/plug_support.c | 27 |
14 files changed, 253 insertions, 211 deletions
diff --git a/benchmark_pcap/tcp/tcp_timeout_reset.pcap b/benchmark_pcap/tcp/tcp_timeout_reset.pcap Binary files differindex 5f51ec9..4319b2d 100644 --- a/benchmark_pcap/tcp/tcp_timeout_reset.pcap +++ b/benchmark_pcap/tcp/tcp_timeout_reset.pcap diff --git a/module_test/src/gtest_inline_plug.cpp b/module_test/src/gtest_inline_plug.cpp index d3ea463..4f24fb7 100644 --- a/module_test/src/gtest_inline_plug.cpp +++ b/module_test/src/gtest_inline_plug.cpp @@ -34,6 +34,7 @@ extern "C" char tcpall_pkt_stat(struct streaminfo *pstream,void **pme, int threa extern "C" char tcp_pkt_stat(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet); extern gtest_plug_stat_t gtest_tcp_stat; +extern gtest_plug_stat_t gtest_tcpall_stat; static void build_rst_tcp_paras(struct rst_tcp_para *inject_paras, unsigned char send_dir) { @@ -320,10 +321,10 @@ extern "C" char inline_stream_addr_ntop_entry(struct streaminfo *stream,void **p extern "C" char inline_tcpall_simple(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet) { if(pstream->pktstate == OP_STATE_CLOSE){ - if((1 == gtest_tcp_stat.C2S_all_pkt) - &&(0 == gtest_tcp_stat.C2S_all_byte) - &&(1 == gtest_tcp_stat.S2C_all_pkt) - &&(0 == gtest_tcp_stat.S2C_all_byte)){ + if((1 == gtest_tcpall_stat.C2S_all_pkt) + &&(0 == gtest_tcpall_stat.C2S_all_byte) + &&(1 == gtest_tcpall_stat.S2C_all_pkt) + &&(0 == gtest_tcpall_stat.S2C_all_byte)){ SAPP_PLUG_LOG(RLOG_LV_INFO,"inline_tcpall_simple", "\033[32m inline_tcpall_simple() test succ!\033[0m\n"); fprintf(stderr,"\033[32m inline_tcpall_simple() test succ!\033[0m\n"); gtest_set_libsapp_devel_result(GTEST_INLINE_TO_SAPP_SUCC); diff --git a/module_test/src/gtest_main.cpp b/module_test/src/gtest_main.cpp index fa44674..8a4ff00 100644 --- a/module_test/src/gtest_main.cpp +++ b/module_test/src/gtest_main.cpp @@ -24,7 +24,7 @@ int g_slient_mode = 0; const char *for_test_sapp_version = "4.2.68_c9193fe"; -static int g_libsapp_devel_res = GTEST_SAPP_ERR; /* 使用lisapp_devel.so在同一个进程内运行的测试结�??*/ +static int g_libsapp_devel_res = GTEST_SAPP_ERR; /* 使用lisapp_devel.so在同一个进程内运行的测试结�???*/ int gtest_set_libsapp_devel_result(int res_value) { g_libsapp_devel_res = res_value; @@ -170,7 +170,7 @@ void call_libsapp_devel_online_mode(void) while(sapp_get_current_state() != SAPP_STATE_PROCESSING){ usleep(100); } - sleep(3); /* TODO: 此处不用超时, 而是靠一个标志位或特定状�??*/ + sleep(3); /* TODO: 此处不用超时, 而是靠一个标志位或特定状�???*/ libsapp_destroy_env(); } @@ -481,14 +481,14 @@ TEST(tcp, dropstream_and_unorder) } #define tcp_tuple4_reuse_with_fin 1 // for SI symbol view -TEST(tcp, DISABLED_tuple4_reuse_with_fin) +TEST(tcp, tuple4_reuse_with_fin) { tcp_tuple4_reuse_with_fin_run(); EXPECT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); } #define tcpall_tuple4_reuse_with_fin 1 // for SI symbol view -TEST(tcpall, DISABLED_tuple4_reuse_with_fin) +TEST(tcpall, tuple4_reuse_with_fin) { tcpall_tuple4_reuse_with_fin_run(); EXPECT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); @@ -958,15 +958,18 @@ TEST(control, get_ip_ttl) #define control_get_tcp_rtt 1 -TEST(control, DISABLED_get_tcp_rtt) +TEST(control, get_tcp_rtt) { - control_get_tcp_rtt_run(); - ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); - // EXPECT_EXIT(control_get_tcp_rtt_run(), testing::ExitedWithCode(0), "test succ"); +#if 0 + //control_get_tcp_rtt_run(); + //ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); +#else + EXPECT_EXIT(control_get_tcp_rtt_run(), testing::ExitedWithCode(0), "test succ"); +#endif } #define control_get_tcp_rtt_c2s 1 -TEST(control, DISABLED_get_tcp_rtt_c2s) +TEST(control, get_tcp_rtt_c2s) { control_get_tcp_rtt_c2s_run(); ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); @@ -974,7 +977,7 @@ TEST(control, DISABLED_get_tcp_rtt_c2s) } #define control_get_tcp_rtt_s2c 1 -TEST(control, DISABLED_get_tcp_rtt_s2c) +TEST(control, get_tcp_rtt_s2c) { control_get_tcp_rtt_s2c_run(); ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); @@ -1314,7 +1317,7 @@ TEST(appstate, kill_follow_ip_entry) /************************ sapp timer test ***********************/ #if SAPP_V4 //timer only support in sapp-v4.0 #define timer_simple 1 // for SI symbol view -TEST(timer, simple) +TEST(timer, DISABLED_simple) { timer_simple_run(); //ASSERT_EQ(GTEST_SAPP_SUCC, gtest_get_libsapp_devel_result()); @@ -1326,7 +1329,7 @@ TEST(timer, simple) /********************* inject rst packet Test ***********************/ #if SAPP_V4 //rst_tcp only support in sapp-v4.0 -#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�??*/ +#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�???*/ #define inject_rst_packet_test_v4 1 // for SI symbol view TEST(inject, rst_pkt_v4) { @@ -1337,7 +1340,7 @@ TEST(inject, rst_pkt_v4) /********************* inject rst packet Test ***********************/ #define inject_rst_packet_test_v6 1 // for SI symbol view -#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�??*/ +#if 0 /* 改成用sapp_benchmark框架测试, 不需要写代码、不用重新编�???*/ TEST(inject, rst_pkt_v6) { MESA_rst_tcp_test_v6_run(); @@ -2044,7 +2047,7 @@ TEST(proxy, simple) #define _proxy_kill_tcp 1 /* TODO: - 使用libsapp_devel实测, 两个用例不能顺序执行, 疑似与解析层dlopen有关�?? 暂未定位原因, 待解�??!!! + 使用libsapp_devel实测, 两个用例不能顺序执行, 疑似与解析层dlopen有关�??? 暂未定位原因, 待解�???!!! */ #if 0 TEST(proxy, kill_tcp) @@ -2166,7 +2169,7 @@ TEST(fake_marsio, vlan_flip_and_symmetric_mpls1vs2) #define _fake_marsio_vlan_mac_flip_inject_no_asymmetric 1 TEST(fake_marsio, vlan_mac_flip_inject_no_asymmetric) { - /* 别着�?? 不是BUG! + /* 别着�??? 不是BUG! 这个测试用例就是应该错的 !!! */ EXPECT_EXIT(fake_marsio_vlan_mac_flipping_inject_run(0), testing::ExitedWithCode(1), "index:4, mac addr error"); diff --git a/module_test/src/gtest_mpls.cpp b/module_test/src/gtest_mpls.cpp index e868f8c..4bafcfd 100644 --- a/module_test/src/gtest_mpls.cpp +++ b/module_test/src/gtest_mpls.cpp @@ -30,7 +30,8 @@ void mpls_asymmetric_1vs2_run(void) ASSERT_EQ(file_md5_checksum("dumpfile", "3894f69adfab6c2fe690982866aa8d9c"),0); - gtest_start_sapp_progress(sapp_start_args); + call_libsapp_devel_for_dumpfile_topspeed(); + // gtest_start_sapp_progress(sapp_start_args); } diff --git a/module_test/src/gtest_mpls_plug.cpp b/module_test/src/gtest_mpls_plug.cpp index 163425d..33cc480 100644 --- a/module_test/src/gtest_mpls_plug.cpp +++ b/module_test/src/gtest_mpls_plug.cpp @@ -39,94 +39,94 @@ extern "C" char tcp_entry_for_asymmetric_1vs2(struct streaminfo *pstream,void ** if(OP_STATE_CLOSE == pstream->opstate){ if(mpls_pstream->addr.addrtype != ADDR_TYPE_MPLS){ printf("\033[1;31;40mnot found mpls stream layer!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } /* c2s */ if(mpls_pstream->addr.mpls->c2s_layer_num != 2){ printf("\033[1;31;40mmpls c2s layer num error, expect 2, but actual is:%d!\033[0m\n", mpls_pstream->addr.mpls->c2s_layer_num); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(ntohl(mpls_pstream->addr.mpls->c2s_addr_array[0].label) != 301632){ printf("\033[1;31;40mmpls c2s addr error, expect label:301632, but actual is:%u!\033[0m\n", ntohl(mpls_pstream->addr.mpls->c2s_addr_array[0].label)); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->c2s_addr_array[0].experimental != 0){ printf("\033[1;31;40mmpls c2s addr error, expect experimental:0, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->c2s_addr_array[0].experimental); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->c2s_addr_array[0].ttl != 63){ printf("\033[1;31;40mmpls c2s addr error, expect ttl:63, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->c2s_addr_array[0].ttl); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(ntohl(mpls_pstream->addr.mpls->c2s_addr_array[1].label) != 794436){ printf("\033[1;31;40mmpls c2s addr error, expect label:794436, but actual is:%u!\033[0m\n", ntohl(mpls_pstream->addr.mpls->c2s_addr_array[1].label)); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->c2s_addr_array[1].experimental != 0){ printf("\033[1;31;40mmpls c2s addr error, expect experimental:0, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->c2s_addr_array[1].experimental); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->c2s_addr_array[1].ttl != 63){ printf("\033[1;31;40mmpls c2s addr error, expect ttl:63, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->c2s_addr_array[1].ttl); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->c2s_addr_array[1].bottom != 1){ printf("\033[1;31;40mmpls c2s addr error, expect bottom:1, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->c2s_addr_array[1].bottom); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } /* s2c */ if(mpls_pstream->addr.mpls->s2c_layer_num != 1){ printf("\033[1;31;40mmpls s2c layer num error, expect 1, but actual is:%d!\033[0m\n", mpls_pstream->addr.mpls->s2c_layer_num); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(ntohl(mpls_pstream->addr.mpls->s2c_addr_array[0].label) != 23041){ printf("\033[1;31;40mmpls c2s addr error, expect label:23041, but actual is:%u!\033[0m\n", ntohl(mpls_pstream->addr.mpls->s2c_addr_array[0].label)); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->s2c_addr_array[0].experimental != 6){ printf("\033[1;31;40mmpls c2s addr error, expect experimental:6, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->s2c_addr_array[0].experimental); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->s2c_addr_array[0].ttl != 251){ printf("\033[1;31;40mmpls c2s addr error, expect ttl:251, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->s2c_addr_array[0].ttl); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(mpls_pstream->addr.mpls->s2c_addr_array[0].bottom != 1){ printf("\033[1;31;40mmpls c2s addr error, expect bottom:1, but actual is:%u!\033[0m\n", mpls_pstream->addr.mpls->s2c_addr_array[0].bottom); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } printf("\033[32mtest mpls 1vs2 success!\033[0m\n"); - sendto_test_result(GTEST_SAPP_SUCC); + gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC); } return APP_STATE_GIVEME; diff --git a/module_test/src/gtest_sapp_ipv4_plug.cpp b/module_test/src/gtest_sapp_ipv4_plug.cpp index a76f6a9..63800ce 100644 --- a/module_test/src/gtest_sapp_ipv4_plug.cpp +++ b/module_test/src/gtest_sapp_ipv4_plug.cpp @@ -1,4 +1,5 @@ #include <assert.h> +#include <sys/select.h> #include <time.h> #include <arpa/inet.h> #include "stream.h" @@ -105,4 +106,44 @@ extern "C" char ipv4_frag_assemble_checksum(const struct streaminfo *pstream, return APP_STATE_GIVEME; } +#include "../../include/private/sapp_private_api.h" +extern volatile long long g_current_time_ms; +extern volatile time_t g_current_time; +/* If the Real World time is used, the time difference may be inaccurate due to overload CPU resources, operating system scheduling or other issues. */ +extern "C" char iplayer_readjust_time_entry(const struct streaminfo *pstream, unsigned char nouse1, int nouse2, const struct ip *nouse3) +{ + int ret; + struct timeval cur_pkt_stamp = {}; + static struct timeval first_pkt_stamp = {0,0}; + ret = get_rawpkt_opt_from_streaminfo(pstream, RAW_PKT_GET_TIMESTAMP, &cur_pkt_stamp); + if (ret < 0) + { + fprintf(stderr, "\033[1;31;40mipv4_adjust_time_entry get pcap timestamp error!\033[0m\n"); + return APP_STATE_DROPME; + } + + unsigned long long tot_pkt = 0; + int optlen = sizeof(long long); + ret = sapp_get_platform_opt(SPO_TOTAL_RCV_PKT, &tot_pkt, &optlen); + if (ret < 0) + { + fprintf(stderr, "\033[1;31;40msapp_get_platform_opt() error!\033[0m\n"); + return APP_STATE_DROPME; + } + + if (tot_pkt <= 1) + { + /* stop background timer thread, and set current time based on the pcap header timestamp */ + pthread_cancel(sapp_global_val->individual_fixed.thread_timer_loop_id); + usleep(1000 * 100); + first_pkt_stamp.tv_sec = cur_pkt_stamp.tv_sec; + first_pkt_stamp.tv_usec = cur_pkt_stamp.tv_usec; + g_current_time_ms = 0; // set time to PanGu + g_current_time = 0; // set time to PanGu + return APP_STATE_GIVEME; + } + g_current_time_ms = ((long)cur_pkt_stamp.tv_sec * 1000 + cur_pkt_stamp.tv_usec / 1000) - ((long)first_pkt_stamp.tv_sec * 1000 + first_pkt_stamp.tv_usec / 1000); + g_current_time = g_current_time_ms / 1000; + return APP_STATE_GIVEME; +} diff --git a/module_test/src/gtest_sapp_support.cpp b/module_test/src/gtest_sapp_support.cpp index 82c9550..c58dd81 100644 --- a/module_test/src/gtest_sapp_support.cpp +++ b/module_test/src/gtest_sapp_support.cpp @@ -68,34 +68,25 @@ void control_takeover_run(void) void control_timeout_run(void) { - const char *sapp_argv[4]; - - sapp_argv[0] = (char *)"./sapp "; - sapp_argv[1] = (char *)"--dumpfile"; - sapp_argv[2] = (char *)"--dumpfile-speed=timestamp"; - sapp_argv[3] = NULL; - - set_default_config(); #if SAPP_V3 update_config_file("conf/main.conf", "CreatLinkMode", "1"); update_config_file("conf/main.conf", "LinkTimeout", "0"); update_config_file("conf/main.conf", "UdpResetTime", "0"); #elif SAPP_V4 - update_config_file("etc/sapp.toml", "syn_mandatory", "0"); + update_config_file("etc/sapp.toml", "syn_mandatory", "1"); update_config_file("etc/sapp.toml", "timeout", "5"); #else abort(); #endif - update_plugin_inf("TCP", "ctrl_tcp_timeout_entry"); + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP", "ctrl_tcp_timeout_entry"); set_pcap_dumpfile("tcp/tcp_timeout_reset.pcap"); - ASSERT_EQ(file_md5_checksum("dumpfile", "9e8c65901915a0535d210e3766030b9e"),0); + ASSERT_EQ(file_md5_checksum("dumpfile", "064293d96e1299cfc29d419399e8137e"),0); - printf("test for timer, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_with_args(3, sapp_argv); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -408,14 +399,6 @@ void global_stream_id_run(void) void global_stream_id_tuple4_reuse_run(void) { - const char *reuse_argv[4]; - - reuse_argv[0] = (char *)"./sapp"; - reuse_argv[1] = (char *)"--dumpfile"; - reuse_argv[2] = (char *)"--dumpfile-speed=timestamp"; - reuse_argv[3] = NULL; - - set_default_config(); set_project_list_conf_default(); @@ -426,15 +409,14 @@ void global_stream_id_tuple4_reuse_run(void) update_config_file("etc/sapp.toml", "tuple4_reuse_time_interval", "10"); update_config_file("etc/sapp.toml", "stream_id_base_time", "\"2018-08-08 08:08:08\""); - update_plugin_inf("TCP_ALL", "global_stream_id_tuple4_reuse_tcpall_entry"); + /* stop background timer thread, and set current time based on the pcap header timestamp */ + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP_ALL", "global_stream_id_tuple4_reuse_tcpall_entry"); set_pcap_dumpfile("tcp/tcp_tuple4_reuse.pcap"); - ASSERT_EQ(file_md5_checksum("dumpfile", "4a7f3337a2039de8a91b7186e9a71c62"),0); - printf("test for tuple4 reuse, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_with_args(3, reuse_argv); + call_libsapp_devel_for_dumpfile_topspeed(); } /* @@ -442,14 +424,13 @@ void global_stream_id_tuple4_reuse_run(void) */ void stream_creattime_tuple4_reuse_run(void) { - const char *reuse_argv[4]; + // const char *reuse_argv[4]; - reuse_argv[0] = (char *)"./sapp"; - reuse_argv[1] = (char *)"--dumpfile"; - reuse_argv[2] = (char *)"--dumpfile-speed=timestamp"; - reuse_argv[3] = NULL; + // reuse_argv[0] = (char *)"./sapp"; + // reuse_argv[1] = (char *)"--dumpfile"; + // reuse_argv[2] = (char *)"--dumpfile-speed=timestamp"; + // reuse_argv[3] = NULL; - set_default_config(); set_project_list_conf_default(); @@ -459,16 +440,17 @@ void stream_creattime_tuple4_reuse_run(void) update_config_file("etc/sapp.toml", "timeout", "0"); update_config_file("etc/sapp.toml", "tuple4_reuse_time_interval", "10"); update_config_file("etc/sapp.toml", "stream_id_base_time", "\"2018-08-08 08:08:08\""); - - update_plugin_inf("TCP_ALL", "stream_creatime_tuple4_reuse_tcpall_entry"); + /* stop background timer thread, and set current time based on the pcap header timestamp */ + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP_ALL", "stream_creatime_tuple4_reuse_tcpall_entry"); set_pcap_dumpfile("tcp/tcp_tuple4_reuse.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "4a7f3337a2039de8a91b7186e9a71c62"),0); - printf("test for tuple4 reuse, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_with_args(3, reuse_argv); + // printf("test for tuple4 reuse, set --dumpfile-speed=timestamp please wait for a monment......\n"); + // call_libsapp_devel_with_args(3, reuse_argv); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -1112,12 +1094,14 @@ void control_get_ip_ttl_run(void) void control_get_tcp_rtt_run(void) { set_default_config(); - update_plugin_inf("TCP", "get_tcp_rtt_entry"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP", "get_tcp_rtt_entry"); set_pcap_dumpfile("for_gtest_only/tcp/tcp_rtt.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "1e06f7ed52405f9014bea2b117ecadff"),0); - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } void control_get_tcp_rtt_c2s_run(void) @@ -1128,7 +1112,7 @@ void control_get_tcp_rtt_c2s_run(void) set_pcap_dumpfile("tcp/tcp_isn_c2s_single.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "a5d0d96ee6f44f729d79aeac5cc2fee0"),0); - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } void control_get_tcp_rtt_s2c_run(void) @@ -1139,5 +1123,5 @@ void control_get_tcp_rtt_s2c_run(void) set_pcap_dumpfile("for_gtest_only/tcp/tcp_rtt_s2c.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "006277b38aa1f9a0d272b643b8a3b686"),0); - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } diff --git a/module_test/src/gtest_sapp_support_plug.cpp b/module_test/src/gtest_sapp_support_plug.cpp index ce1cc33..19158b1 100644 --- a/module_test/src/gtest_sapp_support_plug.cpp +++ b/module_test/src/gtest_sapp_support_plug.cpp @@ -154,14 +154,9 @@ extern "C" char ctrl_takeover_exclusive_entry(struct streaminfo *pstream,void ** extern "C" char ctrl_tcp_timeout_entry(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet) { int ret; - static int rcv_pkt = 0; unsigned char mclose_type; int opt_len = sizeof(mclose_type); - if(OP_STATE_PENDING == pstream->opstate){ - gtest_sapp_sleep(5, "tcp time out"); /* 收到第一个包后, 强制sleep, 使当前流后续的包超时, 导致当前流被结束 */ - } - if(OP_STATE_CLOSE == pstream->opstate){ ret = MESA_get_stream_opt(pstream, MSO_STREAM_CLOSE_REASON, (void *)&mclose_type, &opt_len); if(ret < 0){ @@ -176,15 +171,13 @@ extern "C" char ctrl_tcp_timeout_entry(struct streaminfo *pstream,void **pme, in } - if(1 == rcv_pkt){ + if(6 == pstream->ptcpdetail->clientpktnum + pstream->ptcpdetail->serverpktnum){ printf("\033[32m ctrl_tcp_timeout_entry() test succ!\033[0m\n"); sendto_test_result(GTEST_SAPP_SUCC); }else{ printf("\033[1;31;40mset timeout, but stream is hasn't close!\033[0m\n"); sendto_test_result(GTEST_SAPP_ERR); } - }else{ - rcv_pkt++; } return APP_STATE_GIVEME; @@ -2504,13 +2497,14 @@ extern "C" char get_tcp_rtt_entry(struct streaminfo *pstream, void **pme, int th int ret; int opt_len = sizeof(short); - if (DIR_DOUBLE == pstream->dir) + if (pstream->opstate == OP_STATE_CLOSE) { ret = MESA_get_stream_opt(pstream, MSO_TCP_RTT_CSC, &rtt_csc, &opt_len); if (ret < 0) { fprintf(stderr, "\033[1;31;40mget_tcp_rtt_entry error: get MSO_TCP_RTT_CSC test fail!\033[0m\n"); gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); + exit(1); return APP_STATE_DROPME; } @@ -2519,6 +2513,7 @@ extern "C" char get_tcp_rtt_entry(struct streaminfo *pstream, void **pme, int th { fprintf(stderr, "\033[1;31;40mget_tcp_rtt_entry error: get MSO_TCP_RTT_SCS test fail!\033[0m\n"); gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); + exit(1); return APP_STATE_DROPME; } @@ -2527,10 +2522,12 @@ extern "C" char get_tcp_rtt_entry(struct streaminfo *pstream, void **pme, int th { fprintf(stderr, "\033[32mget_tcp_rtt_entry test succ \033[0m\n"); gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC); + exit(0); return APP_STATE_DROPME; }else{ fprintf(stderr, "\033[1;31;40mget_tcp_rtt_entry error: get rtt_csc:%d, but expect:%d, get rtt_scs:%d, but expect:%d\033[0m\n", rtt_csc, 65, rtt_scs, 143); gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); + exit(1); return APP_STATE_DROPME; } } diff --git a/module_test/src/gtest_sapp_tcp.cpp b/module_test/src/gtest_sapp_tcp.cpp index 59ab500..4fea257 100644 --- a/module_test/src/gtest_sapp_tcp.cpp +++ b/module_test/src/gtest_sapp_tcp.cpp @@ -59,7 +59,7 @@ void tcp_oos_run(void) } -/* TCP因乱�?? 且最大乱序数不合适导致丢包测�??*/ +/* TCP因乱�??? 且最大乱序数不合适导致丢包测�???*/ void tcp_oos_lost_pkt_run(void) { set_default_config(); @@ -99,11 +99,9 @@ void tcp_timeout_reset_run(void) append_plugin_inf("IP", "ip_entry_check_tcp_timeout"); set_pcap_dumpfile("tcp/tcp_timeout_reset.pcap"); - ASSERT_EQ(file_md5_checksum("dumpfile", "9e8c65901915a0535d210e3766030b9e"),0); + ASSERT_EQ(file_md5_checksum("dumpfile", "064293d96e1299cfc29d419399e8137e"),0); - printf("test for timeout_reset, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -221,7 +219,7 @@ void tcp_lost_pkt_run(void) 33333333333333333333333333333333333333333333333 44444444444444444444444444444444444444444444444 55555555555555555555555555555555555555555555555 - 故意将第3个数据包删除, 测试丢包检测功�?? + 故意将第3个数据包删除, 测试丢包检测功�??? */ void tcp_lost_pkt_manual_run(void) { @@ -251,8 +249,8 @@ void tcp_raw_entry_run(void) } /* - 读取一批pcap文件, 这些小pcap文件实际是通过editcap切割一个原始pcap文件而得�?? - 目的是测�??f --dumpfile-list参数功能. + 读取一批pcap文件, 这些小pcap文件实际是通过editcap切割一个原始pcap文件而得�??? + 目的是测�???f --dumpfile-list参数功能. */ void tcp_dumpfile_list_run(void) { @@ -290,9 +288,9 @@ void tcp_dup_pkt_positive_run(void) update_config_file("etc/sapp.toml", "bloom_capacity", "1000000"); update_config_file("etc/sapp.toml", "bloom_error_rate", "0.00001"); update_config_file("etc/sapp.toml", "bloom_timeout", "10"); - /* tcp层的重复数据包不能在tcp入口测试,因为序号一样肯定被认为是重传而不调用插件,要挂载到TCP_ALL�?? */ + /* tcp层的重复数据包不能在tcp入口测试,因为序号一样肯定被认为是重传而不调用插件,要挂载到TCP_ALL�??? */ update_plugin_inf("TCP_ALL", "tcpall_dup_pkt_positive_check"); - /* 此pcap包一共有9个包,前两个和后两个是人为制造的重复包, tcpall插件应该只收到7个包才是对的 */ + /* 此pcap包一共有9个包,前两个和后两个是人为制造的重复�?, tcpall插件应该只收�?7个包才是对的 */ set_pcap_dumpfile("for_gtest_only/duplicate_packet/tcp_no_syn_dup.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "a56bfea74cd5168e9e3cbf1e2c5c17fb"),0); @@ -308,9 +306,9 @@ void tcp_dup_pkt_negative_run(void) update_config_file("etc/sapp.toml", "bloom_capacity", "1000000"); update_config_file("etc/sapp.toml", "bloom_error_rate", "0.00001"); update_config_file("etc/sapp.toml", "bloom_timeout", "10"); - /* tcp层的重复数据包不能在tcp入口测试,因为序号一样肯定被认为是重传而不调用插件,要挂载到TCP_ALL�?? */ + /* tcp层的重复数据包不能在tcp入口测试,因为序号一样肯定被认为是重传而不调用插件,要挂载到TCP_ALL�??? */ update_plugin_inf("TCP_ALL", "tcpall_dup_pkt_negative_check"); - /* 此pcap包一共有9个包,前两个和后两个是人为制造的重复包, 关闭重复包检查, tcpall插件应该全收到9个包才是对的 */ + /* 此pcap包一共有9个包,前两个和后两个是人为制造的重复�?, 关闭重复包检�?, tcpall插件应该全收�?9个包才是对的 */ set_pcap_dumpfile("for_gtest_only/duplicate_packet/tcp_no_syn_dup.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "a56bfea74cd5168e9e3cbf1e2c5c17fb"),0); @@ -318,7 +316,7 @@ void tcp_dup_pkt_negative_run(void) } /* - 一个流有乱序包, 但是插件曾经调用过MSO_DROP_STREAM, 理论上什么情况都不应该再调用插件�?? + 一个流有乱序包, 但是插件曾经调用过MSO_DROP_STREAM, 理论上什么情况都不应该再调用插件�??? */ void tcp_dropstream_and_unorder_run(void) { @@ -334,7 +332,7 @@ void tcp_dropstream_and_unorder_run(void) } /* - 期待�??gtest_sapp_hybrid_stream.log 日志内容: + 期待�???gtest_sapp_hybrid_stream.log 日志内容: stream:192.168.36.103.57222>120.241.25.57.36688,c2s_pkt:5,c2s_byte:548,s2c_pkt:4,s2c_byte:20 stream:192.168.36.103.57235>120.241.25.15.36688,c2s_pkt:7,c2s_byte:424,s2c_pkt:5,s2c_byte:40 @@ -480,7 +478,7 @@ void hybrid_pure_tcp_run(void) update_plugin_inf_with_options("./plug/business/gtest_sapp", "gtest", "gtest_sapp_slave_init", "hybrid_tcp_destroy", "TCP", "hybrid_stream_log_entry"); - /* hybrid混合包测试用例不开启重复流量检�??*/ + /* hybrid混合包测试用例不开启重复流量检�???*/ update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); @@ -501,7 +499,7 @@ void hybrid_pure_tcp_run(void) /* - 单次读取一批pcap包测�?? 期待�??gtest_sapp_hybrid_stream.log: + 单次读取一批pcap包测�??? 期待�???gtest_sapp_hybrid_stream.log: stream:2001::192:168:40:134.37948>2001::192:168:40:133.22,c2s_pkt:60,c2s_byte:3937,s2c_pkt:41,s2c_byte:4813 stream:2a00:5e80:101:212d:504:7b1:2572:db22.37034>2606:f200:0:7:bad:f00d:d00d:1.80,c2s_pkt:5,c2s_byte:82,s2c_pkt:4,s2c_byte:381 @@ -534,7 +532,7 @@ void hybrid_dataset_run(void) update_config_file("etc/sapp.toml", "reorder_pkt_max", "100"); update_config_file("etc/sapp.toml", "timeout", "0"); - /* hybrid混合包测试用例不开启重复流量检�??*/ + /* hybrid混合包测试用例不开启重复流量检�???*/ update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); @@ -553,7 +551,7 @@ void hybrid_dataset_run(void) /* - 带fin包正常结束的tcp四元组重用测�?? 没有TCP_ALL插件. + 带fin包正常结束的tcp四元组重用测�??? 没有TCP_ALL插件. */ void tcp_tuple4_reuse_with_fin_run(void) { @@ -570,18 +568,17 @@ void tcp_tuple4_reuse_with_fin_run(void) #else abort(); #endif - update_plugin_inf("TCP", "tcp_tuple4_reuse_with_fin_entry"); + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP", "tcp_tuple4_reuse_with_fin_entry"); set_pcap_dumpfile("tcp/tcp_tuple4_reuse.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "4a7f3337a2039de8a91b7186e9a71c62"),0); - printf("test for timeout_reset, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } /* - 带fin包正常结束的tcp四元组重用测�?? 还加载了TCP_ALL插件, 此时第一个流结束不会真正free, 而是转到nouse链表. + 带fin包正常结束的tcp四元组重用测�??? 还加载了TCP_ALL插件, 此时第一个流结束不会真正free, 而是转到nouse链表. */ void tcpall_tuple4_reuse_with_fin_run(void) { @@ -599,21 +596,20 @@ void tcpall_tuple4_reuse_with_fin_run(void) abort(); #endif - update_plugin_inf("TCP", "tcp_tuple4_reuse_with_fin_entry"); + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP", "tcp_tuple4_reuse_with_fin_entry"); append_plugin_inf("TCP_ALL", "void_entry"); set_pcap_dumpfile("tcp/tcp_tuple4_reuse.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "4a7f3337a2039de8a91b7186e9a71c62"),0); - printf("test for timeout_reset, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } /* - 没有正常结束的tcp四元组重用测�?? + 没有正常结束的tcp四元组重用测�??? */ void tcp_tuple4_reuse_no_close_run(void) { @@ -631,14 +627,14 @@ void tcp_tuple4_reuse_no_close_run(void) abort(); #endif update_config_file_by_lastline("etc/sapp.toml", "packet_io.polling","enabled", "1"); - update_plugin_inf("TCP", "tcp_tuple4_reuse_no_close_entry"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("TCP", "tcp_tuple4_reuse_no_close_entry"); set_pcap_dumpfile("tcp/tcp_tuple4_reuse_5.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "4094ca41ca245c72987638e3c9fad8eb"),0); - printf("test for timeout_reset, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -652,7 +648,7 @@ void tcp_well_known_port_run_v4(void) update_plugin_inf("TCP", "tcp_well_known_port_v4_entry"); system("echo [TCP] > ./etc/well_known_port.conf"); system("echo 8088 >> ./etc/well_known_port.conf"); - /* UDP的配置在这里其实没啥�?? 就是顺带测试一下解析配置文件的功能 */ + /* UDP的配置在这里其实没啥�??? 就是顺带测试一下解析配置文件的功能 */ system("echo [UDP] >> ./etc/well_known_port.conf"); system("echo 12345 >> ./etc/well_known_port.conf"); system("echo 54321 >> ./etc/well_known_port.conf"); @@ -666,7 +662,7 @@ void tcp_well_known_port_run_v4(void) /* 测试小端口是客户端的四元组创建流方向, - 此包是带SYN标志�?? 理论上不应该受etc/well_known_port.conf影响, 故意将源端口33720设成服务�?? + 此包是带SYN标志�??? 理论上不应该受etc/well_known_port.conf影响, 故意将源端口33720设成服务�??? */ void tcp_not_use_well_known_port_run_v4(void) { @@ -675,7 +671,7 @@ void tcp_not_use_well_known_port_run_v4(void) update_plugin_inf("TCP", "tcp_should_not_use_well_known_port_v4_entry"); system("echo [TCP] > ./etc/well_known_port.conf"); system("echo 33720 >> ./etc/well_known_port.conf"); - /* UDP的配置在这里其实没啥�?? 就是顺带测试一下解析配置文件的功能 */ + /* UDP的配置在这里其实没啥�??? 就是顺带测试一下解析配置文件的功能 */ system("echo [UDP] >> ./etc/well_known_port.conf"); system("echo 12345 >> ./etc/well_known_port.conf"); system("echo 54321 >> ./etc/well_known_port.conf"); @@ -698,7 +694,7 @@ void tcp_well_known_port_run_v6(void) update_plugin_inf("TCP", "tcp_well_known_port_v6_entry"); system("echo [TCP] > ./etc/well_known_port.conf"); system("echo 55555 >> ./etc/well_known_port.conf"); - /* UDP的配置在这里其实没啥�?? 就是顺带测试一下解析配置文件的功能 */ + /* UDP的配置在这里其实没啥�??? 就是顺带测试一下解析配置文件的功能 */ system("echo [UDP] >> ./etc/well_known_port.conf"); system("echo 12345 >> ./etc/well_known_port.conf"); system("echo 54321 >> ./etc/well_known_port.conf"); @@ -711,7 +707,7 @@ void tcp_well_known_port_run_v6(void) } /* - tcp重传包处�?? + tcp重传包处�??? */ void tcp_retransmit_run(void) { @@ -752,9 +748,9 @@ void tcp_overlap_run(void) /* 在没有TCP插件且第一个包就是乱序的情况下, - sapp在函数tcp_deal_unorder()�?? 会调用update_stream_list_raw_pkt_pointer(), + sapp在函数tcp_deal_unorder()�??? 会调用update_stream_list_raw_pkt_pointer(), 但是忘记恢复rawpkt指针就返回了, 导致后续再访问rawpkt其实是被free的乱序包中的rawpkt, - 如果有插件获取原始包选项, �??021-08-23之前是错误的! + 如果有插件获取原始包选项, �???021-08-23之前是错误的! */ void tcp_first_unorder_rawpkt_run(void) { @@ -769,7 +765,7 @@ void tcp_first_unorder_rawpkt_run(void) } /* - gtp有序�?? 无扩展头�?? + gtp有序�??? 无扩展头�??? */ void gtp_with_seq_no_ext_tcp_run(void) { @@ -784,7 +780,7 @@ void gtp_with_seq_no_ext_tcp_run(void) } /* - gtp无序�?? 但是有扩展头�?? + gtp无序�??? 但是有扩展头�??? */ void gtp_without_seq_and_ext_tcp_run(void) { @@ -800,7 +796,7 @@ void gtp_without_seq_and_ext_tcp_run(void) /* - gtp有序号且有扩展头�?? + gtp有序号且有扩展头�??? */ #if (0 == HIGH_PERF) void gtp_with_seq_and_ext_tcp_run(void) diff --git a/module_test/src/gtest_sapp_tcp_plug.cpp b/module_test/src/gtest_sapp_tcp_plug.cpp index 4257442..9b23de4 100644 --- a/module_test/src/gtest_sapp_tcp_plug.cpp +++ b/module_test/src/gtest_sapp_tcp_plug.cpp @@ -34,6 +34,7 @@ #include "sapp_global_val.h" gtest_plug_stat_t gtest_tcp_stat; +gtest_plug_stat_t gtest_tcpall_stat; extern "C" char tcp_pkt_stat(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet) { @@ -41,13 +42,10 @@ extern "C" char tcp_pkt_stat(struct streaminfo *pstream,void **pme, int thread_s if(OP_STATE_PENDING == pstream->opstate){ /* pending״̬���ü��� */ - memset(>est_tcp_stat, 0, sizeof(gtest_tcp_stat)); + memset(>est_tcp_stat, 0, sizeof(gtest_tcp_stat)); } if(pstream->opstate != OP_STATE_CLOSE){ - printf("tcp_pkt_stat, curdir:%u, data_len:%u, c2s_pkt:%u, c2s_bytes:%llu, s2c_pkt:%u, s2c_bytes:%llu\n", - pstream->curdir, pdetail->datalen, - gtest_tcp_stat.C2S_data_pkt, gtest_tcp_stat.C2S_data_byte, gtest_tcp_stat.S2C_data_pkt, gtest_tcp_stat.S2C_data_byte); if(DIR_C2S == pstream->curdir){ gtest_tcp_stat.C2S_data_pkt++; gtest_tcp_stat.C2S_data_byte += pdetail->datalen; @@ -61,6 +59,9 @@ extern "C" char tcp_pkt_stat(struct streaminfo *pstream,void **pme, int thread_s gtest_tcp_stat.S2C_lost_byte += pdetail->lostlen; } } + printf("tcp_pkt_stat, curdir:%u, data_len:%u, c2s_pkt:%u, c2s_bytes:%llu, s2c_pkt:%u, s2c_bytes:%llu\n", + pstream->curdir, pdetail->datalen, + gtest_tcp_stat.C2S_data_pkt, gtest_tcp_stat.C2S_data_byte, gtest_tcp_stat.S2C_data_pkt, gtest_tcp_stat.S2C_data_byte); } return APP_STATE_GIVEME; @@ -72,34 +73,36 @@ extern "C" char tcpall_pkt_stat(struct streaminfo *pstream,void **pme, int threa if(OP_STATE_PENDING == pstream->pktstate){ /* pending״̬���ü��� */ - memset(>est_tcp_stat, 0, sizeof(gtest_tcp_stat)); + memset(>est_tcpall_stat, 0, sizeof(gtest_tcpall_stat)); } if(pstream->pktstate != OP_STATE_CLOSE){ - printf("tcpall_pkt_stat, curdir:%u, data_len:%u,c2s_pkt:%u, c2s_bytes:%llu, s2c_pkt:%u, s2c_bytes:%llu\n", pstream->curdir, pdetail->datalen - , gtest_tcp_stat.C2S_all_pkt, gtest_tcp_stat.C2S_all_byte, gtest_tcp_stat.S2C_all_pkt, gtest_tcp_stat.S2C_all_byte); if(DIR_C2S == pstream->curdir){ - gtest_tcp_stat.C2S_all_pkt++; - gtest_tcp_stat.C2S_all_byte += pdetail->datalen; + gtest_tcpall_stat.C2S_all_pkt++; + gtest_tcpall_stat.C2S_all_byte += pdetail->datalen; }else{ - gtest_tcp_stat.S2C_all_pkt++; - gtest_tcp_stat.S2C_all_byte += pdetail->datalen; + gtest_tcpall_stat.S2C_all_pkt++; + gtest_tcpall_stat.S2C_all_byte += pdetail->datalen; } + printf("tcpall_pkt_stat, curdir:%u, data_len:%u,c2s_all_pkt:%u, c2s_all_bytes:%llu, s2c_all_pkt:%u, s2c_all_bytes:%llu\n", pstream->curdir, pdetail->datalen + , gtest_tcpall_stat.C2S_all_pkt, gtest_tcpall_stat.C2S_all_byte, gtest_tcpall_stat.S2C_all_pkt, gtest_tcpall_stat.S2C_all_byte); } return APP_STATE_GIVEME; } - +extern "C" char iplayer_readjust_time_entry(const struct streaminfo *pstream, unsigned char nouse1, int nouse2, const struct ip *nouse3); extern "C" char ip_entry_check_tcp_timeout(const struct streaminfo *pstream, unsigned char routedir,int thread_seq, const struct ip *ipv4_hdr) { static int ip_pkt_number = 0; - /* tcp_timeout_reset.pcapһ��5����, - ��4������ʱ����, ��Ϊ�ǰ�SYN������, �Ժ�İ����Ὠ����, tcp��������ᱻ����, - tcpall����ᱻǰ3��������, ��4����������,Ҳ�������, + iplayer_readjust_time_entry(pstream, routedir, thread_seq, ipv4_hdr); + + /* tcp_timeout_reset.pcapһ��7����, + ��7������ʱ����, ��Ϊ�ǰ�SYN������, �Ժ�İ����Ὠ����, tcp��������ᱻ����, + tcpall����ᱻǰ6��������, ��7����������,Ҳ�������, ��ǰ���ǵ�5��,ipentry�ȵ���,tcpall��δ����. */ if(ipv4_hdr->ip_p == IPPROTO_TCP) @@ -108,17 +111,17 @@ extern "C" char ip_entry_check_tcp_timeout(const struct streaminfo *pstream, printf("ip_entry_check_tcp_timeout, ipid:%x\n", ipv4_hdr->ip_id); } - if(5 == ip_pkt_number){ - if((gtest_tcp_stat.C2S_data_pkt == 0) - && (gtest_tcp_stat.S2C_data_pkt == 0) - && (gtest_tcp_stat.C2S_all_pkt == 2) - && (gtest_tcp_stat.S2C_all_pkt == 1) + if(7 == ip_pkt_number){ + if((gtest_tcp_stat.C2S_data_pkt == 1) + && (gtest_tcp_stat.S2C_data_pkt == 1) + && (gtest_tcpall_stat.C2S_all_pkt == 3) + && (gtest_tcpall_stat.S2C_all_pkt == 3) ){ printf("\033[32mtcp.timeout_reset() test succ!\033[0m\n"); gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC); }else{ printf("\033[1;31;40mtcp_timeout_reset: check data error, ip_number:%d, tcp_c2s:%u, tcp_s2c:%u, tcpall_c2s:%u, tcpall_s2c:%u!\033[0m\n", - ip_pkt_number, gtest_tcp_stat.C2S_data_pkt, gtest_tcp_stat.S2C_data_pkt, gtest_tcp_stat.C2S_all_pkt, gtest_tcp_stat.S2C_all_pkt); + ip_pkt_number, gtest_tcp_stat.C2S_data_pkt, gtest_tcp_stat.S2C_data_pkt, gtest_tcpall_stat.C2S_all_pkt, gtest_tcpall_stat.S2C_all_pkt); gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); } } @@ -177,10 +180,10 @@ extern "C" char tcp_simple(struct streaminfo *pstream,void **pme, int thread_seq extern "C" char tcpall_simple(struct streaminfo *pstream,void **pme, int thread_seq, void *a_packet) { if(pstream->pktstate == OP_STATE_CLOSE){ - if((31 == gtest_tcp_stat.C2S_all_pkt) - &&(2329 == gtest_tcp_stat.C2S_all_byte) - &&(37 == gtest_tcp_stat.S2C_all_pkt) - &&(11345 == gtest_tcp_stat.S2C_all_byte)){ + if((31 == gtest_tcpall_stat.C2S_all_pkt) + &&(2329 == gtest_tcpall_stat.C2S_all_byte) + &&(37 == gtest_tcpall_stat.S2C_all_pkt) + &&(11345 == gtest_tcpall_stat.S2C_all_byte)){ SAPP_PLUG_LOG(RLOG_LV_INFO, "tcpall.simple", "\033[32m tcpall_simple() test succ!\033[0m\n"); sendto_test_result(GTEST_SAPP_SUCC); }else{ diff --git a/module_test/src/gtest_sapp_udp.cpp b/module_test/src/gtest_sapp_udp.cpp index 5687c6c..8fa7601 100644 --- a/module_test/src/gtest_sapp_udp.cpp +++ b/module_test/src/gtest_sapp_udp.cpp @@ -40,17 +40,21 @@ void udp_link_c2s_1pkt_run(void) update_config_file("etc/sapp.toml", "syn_mandatory", "0"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_pkt", "3"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_byte", "5"); + + update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); + update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); + update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); + update_config_file("etc/sapp.toml", "kickout_udp_stream_enabled", "0"); - update_plugin_inf("UDP", "udp_link_c2s_1pkt_entry"); + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("UDP", "udp_link_c2s_1pkt_entry"); append_plugin_inf("TCP", "udp_link_check_result_tcp_entry"); set_pcap_dumpfile("for_gtest_only/udp/udp_C2S_1.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "7872fd733ba5610ad23e4d2dee133793"),0); - printf("test for udp timeout and close, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -63,8 +67,14 @@ void udp_link_c2s_10pkt_run(void) update_config_file("etc/sapp.toml", "syn_mandatory", "0"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_pkt", "3"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_byte", "5"); - - update_plugin_inf("UDP", "udp_link_c2s_10pkt_entry"); + + update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); + update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); + update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); + update_config_file("etc/sapp.toml", "kickout_udp_stream_enabled", "0"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("UDP", "udp_link_c2s_10pkt_entry"); append_plugin_inf("TCP", "udp_link_check_result_tcp_entry"); set_pcap_dumpfile("for_gtest_only/udp/udp_C2S_10.pcap"); @@ -77,9 +87,7 @@ void udp_link_c2s_10pkt_run(void) */ ASSERT_EQ(file_md5_checksum("dumpfile", "ff140c986f5d412d6cd234f1b44024fa"),0); - printf("test for udp timeout and close, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -92,17 +100,21 @@ void udp_link_s2c_1pkt_run(void) update_config_file("etc/sapp.toml", "syn_mandatory", "0"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_pkt", "3"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_byte", "5"); - - update_plugin_inf("UDP", "udp_link_s2c_1pkt_entry"); + + update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); + update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); + update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); + update_config_file("etc/sapp.toml", "kickout_udp_stream_enabled", "0"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("UDP", "udp_link_s2c_1pkt_entry"); append_plugin_inf("TCP", "udp_link_check_result_tcp_entry"); set_pcap_dumpfile("for_gtest_only/udp/udp_S2C_1.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "8944e363d3398b0cde08990d33052f8e"),0); - printf("test for udp timeout and close, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } void udp_link_s2c_10pkt_run(void) @@ -114,18 +126,21 @@ void udp_link_s2c_10pkt_run(void) update_config_file("etc/sapp.toml", "syn_mandatory", "0"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_pkt", "3"); update_config_file("etc/sapp.toml", "meaningful_statistics_minimum_byte", "5"); - - update_plugin_inf("UDP", "udp_link_s2c_10pkt_entry"); + + update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); + update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); + update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); + update_config_file("etc/sapp.toml", "kickout_udp_stream_enabled", "0"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("UDP", "udp_link_s2c_10pkt_entry"); append_plugin_inf("TCP", "udp_link_check_result_tcp_entry"); set_pcap_dumpfile("for_gtest_only/udp/udp_S2C_10.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "e487e9dc01b973bc90115dd4b4f7c54f"),0); - printf("test for udp timeout and close, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); - + call_libsapp_devel_for_dumpfile_topspeed(); } void udp_dup_pkt_positive_run(void) @@ -443,17 +458,21 @@ void udp_tuple4_reuse_test(void) update_config_file_by_lastline("etc/sapp.toml", "packet_io.polling","enabled", "0"); update_config_file("etc/sapp.toml", "timeout", "10"); - - update_plugin_inf("UDP", "udp_timeout_reset_entry"); + + update_config_file("etc/sapp.toml", "original_ipv4_udp_enabled", "0"); + update_config_file("etc/sapp.toml", "original_ipv4_tcp_enabled", "0"); + update_config_file("etc/sapp.toml", "inject_all_enabled", "0"); + update_config_file("etc/sapp.toml", "kickout_udp_stream_enabled", "0"); + + update_plugin_inf("IP", "iplayer_readjust_time_entry"); + append_plugin_inf("UDP", "udp_timeout_reset_entry"); /* 这个pcap�?0秒后会超�? 被sapp分成两个流处�?*/ set_pcap_dumpfile("for_gtest_only/udp/udp_timeout_reuse.pcap"); ASSERT_EQ(file_md5_checksum("dumpfile", "b7c83190ac89dd081a6235aafe9ed096"),0); - printf("test for udp timeout and reset, set --dumpfile-speed=timestamp please wait for a monment......\n"); - - call_libsapp_devel_for_dumpfile_timestamp(); + call_libsapp_devel_for_dumpfile_topspeed(); } void udp_givestate_entry_offload_run(void) diff --git a/module_test/src/gtest_vlan.cpp b/module_test/src/gtest_vlan.cpp index 9d89bdc..bc85dfb 100644 --- a/module_test/src/gtest_vlan.cpp +++ b/module_test/src/gtest_vlan.cpp @@ -29,7 +29,7 @@ void vlan_2layer_run(void) ASSERT_EQ(file_md5_checksum("dumpfile", "d31d70928b2a647b7820e27a99b247cb"),0); - gtest_start_sapp_progress(sapp_start_args); + call_libsapp_devel_for_dumpfile_topspeed(); } @@ -52,7 +52,7 @@ void vlan_asymmetric_merge_run(void) ASSERT_EQ(file_md5_checksum("dumpfile", "502c003b622d9e7a15d242375634837c"),0); - gtest_start_sapp_progress(sapp_start_args); + call_libsapp_devel_for_dumpfile_topspeed(); } diff --git a/module_test/src/gtest_vlan_plug.cpp b/module_test/src/gtest_vlan_plug.cpp index 8eaaf45..0e15b09 100644 --- a/module_test/src/gtest_vlan_plug.cpp +++ b/module_test/src/gtest_vlan_plug.cpp @@ -39,59 +39,59 @@ extern "C" char tcp_entry_for_vlan_2layer(struct streaminfo *pstream,void **pme, if(OP_STATE_CLOSE == pstream->opstate){ if(vlan_pstream->addr.addrtype != ADDR_TYPE_VLAN){ printf("\033[1;31;40mnot found vlan stream layer!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->c2s_layer_num != 0){ printf("\033[1;31;40mvlan c2s_layer num is not 0!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->s2c_layer_num != 2){ printf("\033[1;31;40mvlan s2c layer num is not 2!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(ntohs(vlan_pstream->addr.vlan->s2c_addr_array[0].VID) != 118){ printf("\033[1;31;40mvlan layer0 VID is not 118!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->s2c_addr_array[0].PCP != 1){ printf("\033[1;31;40mvlan layer0 PCP is not 1!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->s2c_addr_array[0].DEI != 1){ printf("\033[1;31;40mvlan layer0 DEI is not 1!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(ntohs(vlan_pstream->addr.vlan->s2c_addr_array[1].VID) != 10){ printf("\033[1;31;40mvlan layer1 VID is not 10!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->s2c_addr_array[1].PCP != 4){ printf("\033[1;31;40mvlan layer0 PCP is not 4!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(vlan_pstream->addr.vlan->s2c_addr_array[1].DEI != 0){ printf("\033[1;31;40mvlan layer0 DEI is not 0!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } printf("\033[32mtest vlan 2layer success!\033[0m\n"); - sendto_test_result(GTEST_SAPP_SUCC); + gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC); } return APP_STATE_GIVEME; @@ -104,33 +104,33 @@ extern "C" char tcp_entry_for_vlan_asymmetric(struct streaminfo *pstream,void ** if(OP_STATE_CLOSE == pstream->opstate){ if(vlan_pstream->addr.addrtype != ADDR_TYPE_MAC){ printf("\033[1;31;40masymmetric should be skip vlan layer!\033[0m\n"); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(pstream->ptcpdetail->serverpktnum != 18){ printf("\033[1;31;40masymmetric vlan c2s tcp pkt is:%u, but expect:%d!\033[0m\n", pstream->ptcpdetail->serverpktnum, 18); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(pstream->ptcpdetail->serverbytes != 4672){ printf("\033[1;31;40masymmetric vlan c2s tcp byte is:%u, but expect:%d!\033[0m\n", pstream->ptcpdetail->serverbytes, 4672); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(pstream->ptcpdetail->clientpktnum != 27){ printf("\033[1;31;40masymmetric vlan s2c tcp pkt is:%u, but expect:%d!\033[0m\n", pstream->ptcpdetail->clientpktnum, 27); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } if(pstream->ptcpdetail->clientbytes != 53920){ printf("\033[1;31;40masymmetric vlan s2c tcp byte is:%u, but expect:%d!\033[0m\n", pstream->ptcpdetail->clientbytes, 53920); - sendto_test_result(GTEST_SAPP_ERR); + gtest_set_libsapp_devel_result(GTEST_SAPP_ERR); return APP_STATE_DROPME; } printf("\033[32mtest vlan_asymmetric success!\033[0m\n"); - sendto_test_result(GTEST_SAPP_SUCC); + gtest_set_libsapp_devel_result(GTEST_SAPP_SUCC); } return APP_STATE_GIVEME; diff --git a/src/dealpkt/plug_support.c b/src/dealpkt/plug_support.c index b5a5aab..2b2e765 100644 --- a/src/dealpkt/plug_support.c +++ b/src/dealpkt/plug_support.c @@ -538,7 +538,7 @@ int get_rawpkt_opt_from_streaminfo(const struct streaminfo *pstream, int type, v return ret;
}
- /* sappv4.2֮��, û��mrtunnat, ����ctrlzone��ȡ��Щvxlan��ص��?, Ҫ��streaminfo->pfatherƫ�ƻ�ȡ */
+ /* sappv4.2֮��, û��mrtunnat, ����ctrlzone��ȡ��Щvxlan��ص��?, Ҫ��streaminfo->pfatherƫ�ƻ�ȡ */
switch(type){
case RAW_PKT_GET_GDEV_IP:
case RAW_PKT_GET_VXLAN_ID:
@@ -552,16 +552,13 @@ int get_rawpkt_opt_from_streaminfo(const struct streaminfo *pstream, int type, v return get_vxlan_info_from_streaminfo(pstream_pr, type, out_value);
break;
}
- if(pstream_pr->polling_inject_context == NULL)
- {
- return ret;
- }
+
switch(type)
{
case RAW_PKT_GET_ROUTE_CTX:
{
void **value = (void **)out_value;
- if(pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1] != NULL)
+ if(pstream_pr->polling_inject_context!= NULL && pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1] != NULL)
{
*value = (void *)(pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1]->data);
ret = pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1]->sz_data;
@@ -572,7 +569,7 @@ int get_rawpkt_opt_from_streaminfo(const struct streaminfo *pstream, int type, v case RAW_PKT_GET_SID_LIST:
{
void **value = (void **)out_value;
- if(pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1] != NULL)
+ if(pstream_pr->polling_inject_context!= NULL && pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1] != NULL)
{
*value = (void *)(&pstream_pr->polling_inject_context->meta_stream_dir[pstream->curdir - 1]->raw_sid_list);
ret = sizeof(struct segment_id_list);
@@ -1208,7 +1205,7 @@ static void sapp_mac_addr_to_long(const unsigned char *mac_addr, unsigned long l ptr += 5; /* ָ��long long �ĵ�6���ֽ� */
for(i = 0; i < 6; i++){
- *ptr-- = *mac_addr++; /* �������ݰ���mac������?, copy��long long����������?(��ȥ���?2���ֽں�) */
+ *ptr-- = *mac_addr++; /* �������ݰ���mac������?, copy��long long����������?(��ȥ���?2���ֽں�) */
}
}
@@ -1264,14 +1261,14 @@ static int sapp_get_vxlan_info_from_streaminfo(const struct streaminfo *pstream, for(i = 0; i < 6; i++, ptr += 3){
sprintf((char *)ptr, "%02x:", mim_addr->inner_src_mac[i]);
}
- vxinfo->inner_smac[17] = '\0'; /* ���һλ����? */
+ vxinfo->inner_smac[17] = '\0'; /* ���һλ����? */
memcpy(vxinfo->inner_smac_hex, mim_addr->inner_src_mac, 6);
ptr = vxinfo->inner_dmac;
for(i = 0; i < 6; i++, ptr += 3){
sprintf((char *)ptr, "%02x:", mim_addr->inner_dst_mac[i]);
}
- vxinfo->inner_dmac[17] = '\0'; /* ���һλ����? */
+ vxinfo->inner_dmac[17] = '\0'; /* ���һλ����? */
memcpy(vxinfo->inner_dmac_hex, mim_addr->inner_dst_mac, 6);
}
else
@@ -1280,14 +1277,14 @@ static int sapp_get_vxlan_info_from_streaminfo(const struct streaminfo *pstream, for(i = 0; i < 6; i++, ptr += 3){
sprintf((char *)ptr, "%02x:", mac_addr->src_addr.h_source[i]);
}
- vxinfo->inner_smac[17] = '\0'; /* ���һλ����? */
+ vxinfo->inner_smac[17] = '\0'; /* ���һλ����? */
memcpy(vxinfo->inner_smac_hex, mac_addr->src_addr.h_source, 6);
ptr = vxinfo->inner_dmac;
for(i = 0; i < 6; i++, ptr += 3){
sprintf((char *)ptr, "%02x:", mac_addr->src_addr.h_dest[i]);
}
- vxinfo->inner_dmac[17] = '\0'; /* ���һλ����? */
+ vxinfo->inner_dmac[17] = '\0'; /* ���һλ����? */
memcpy(vxinfo->inner_dmac_hex, mac_addr->src_addr.h_dest, 6);
}
return 0;
@@ -1396,7 +1393,7 @@ static int MESA_get_stream_dup_pkt_stat(const struct streaminfo *pstream, void * return 0;
}
- /* �������ظ�������?,����û�������ظ��� */
+ /* �������ظ�������?,����û�������ظ��� */
if(STREAM_TYPE_TCP == pstream->type){
if(pstream->ptcpdetail->clientpktnum + pstream->ptcpdetail->serverpktnum < dup_pkt_para->first_packets){ /* ��̫��, �������ж���û���ظ��� */
*res_val = -2;
@@ -2105,7 +2102,7 @@ int get_current_thread_cpu_affinity_id(void) int tot_cpu_set_count = CPU_COUNT(¤t_cpu_mask);
if((tot_cpu_set_count == tot_cpu_core) || (tot_cpu_set_count > 1)){
/* ȫ����������, ��ʵ����û�а�,
- �����������isolcpus, ���㲻���?, CPU_COUNT���ܺ������������?,
+ �����������isolcpus, ���㲻���?, CPU_COUNT���ܺ������������?,
��������1���϶���û�о�ȷ��ij������ */
return -1;
}
@@ -2150,7 +2147,7 @@ void *dictator_realloc(int thread_seq, void *ptr, size_t size) return realloc(ptr, size);
}
-/* ��ҵ�������ص�ֵת����ƽ̨������?, ����PROT_STATE_xxxת��ΪAPP_STATE_xxx */
+/* ��ҵ�������ص�ֵת����ƽ̨������?, ����PROT_STATE_xxxת��ΪAPP_STATE_xxx */
char biz_retval_to_platform(char biz_ret)
{
char plat_ret = 0;
|
