diff options
| author | lijia <[email protected]> | 2019-08-23 18:21:39 +0800 |
|---|---|---|
| committer | lijia <[email protected]> | 2019-08-23 18:21:39 +0800 |
| commit | c85feeb44eef858cf53b8bc97082db25c0dcb3f7 (patch) | |
| tree | 8326ee7b71fc884ac3131c3eb62bcd26848cc3c3 /test | |
| parent | e3403925b9823bd4603825f7cc26701823d3d3c0 (diff) | |
增加新发包接口sapp_inject_pkt; 改polling_entry优先级; tcpdump_mesa配置文件修改
Diffstat (limited to 'test')
| -rw-r--r-- | test/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | test/test_app_sapp.c | 63 |
2 files changed, 44 insertions, 24 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fd6bc77..f2b67db 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,11 +1,12 @@ cmake_minimum_required(VERSION 2.8) -include_directories(${MESA_SDK_PREFIX}/include) -include_directories(${MESA_SDK_PREFIX}/include/MESA) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_SOURCE_DIR}/include/private) include_directories(${CMAKE_SOURCE_DIR}/include/public) include_directories(${CMAKE_SOURCE_DIR}/include/support) +include_directories(${MESA_SDK_PREFIX}/include) +include_directories(${MESA_SDK_PREFIX}/include/MESA) + if(OPT_IOMODE_MARSIO) include_directories(${MARSIO_SDK_PREFIX}/include) diff --git a/test/test_app_sapp.c b/test/test_app_sapp.c index 71979d2..e504781 100644 --- a/test/test_app_sapp.c +++ b/test/test_app_sapp.c @@ -1392,36 +1392,53 @@ char test_inject_tcp_pkt(struct streaminfo *stream,void **pme, int thread_seq,co return APP_STATE_DROPME; } -char test_20140731(struct streaminfo *pstream,void **pme, int thread_seq,const void *raw_pkt) +char test_sapp_inject_pkt(struct streaminfo *stream,void **pme, int thread_seq,const void *raw_pkt) { - static int __tot_c2s_pkt = 0; - static int __tot_s2c_pkt = 0; - static int __tot_s2c_len = 0; - static int __tot_c2s_len = 0; - struct tcpdetail *a_tcp = (struct tcpdetail *)pstream->pdetail; - - /* 2014-07-31, lijia add for test, ���ò�ͬ��unorderֵ, ���ջ�ȡ�����ݿ��ܲ�һ�� */ - tcp_set_single_stream_max_unorder(pstream, DIR_DOUBLE, 1); + char MESA_inject_pkt_payload[] = "send by MESA_inject_pkt "; + char sapp_inject_pkt_def_payload[] = "send by sapp_inject_pkt def"; + char sapp_inject_pkt_no_hdr_payload[256]; + struct stream_tuple4_v4 *tuple_v4; - if(a_tcp->datalen <= 0){ - return APP_STATE_GIVEME; - } - - if(DIR_C2S == pstream->curdir){ - __tot_c2s_pkt++; - __tot_c2s_len += a_tcp->datalen; - }else{ - __tot_s2c_pkt++; - __tot_s2c_len += a_tcp->datalen; + if(OP_STATE_CLOSE == stream->opstate){ + return APP_STATE_DROPME; } - printf("tot pkt: C2S:%6d, S2C:%6d\n", __tot_c2s_pkt, __tot_s2c_pkt); - printf("tot len: C2S:%6d, S2C:%6d\n\n", __tot_c2s_len, __tot_s2c_len); + tuple_v4 = (struct stream_tuple4_v4 *)(stream->addr.paddr); + + MESA_inject_pkt(stream, MESA_inject_pkt_payload, strlen("send by MESA_inject_pkt "), raw_pkt, stream->routedir); + sapp_inject_pkt(stream, SIO_DEFAULT, sapp_inject_pkt_def_payload, strlen("send by sapp_inject_pkt def"), stream->routedir); + struct mesa_ip4_hdr *ip4hdr = (struct mesa_ip4_hdr *)sapp_inject_pkt_no_hdr_payload; + struct mesa_tcp_hdr *thdr = (struct mesa_tcp_hdr *)((char *)ip4hdr + sizeof(struct mesa_ip4_hdr)); //no options + + thdr->th_sport = tuple_v4->source; + thdr->th_dport = tuple_v4->dest; + thdr->th_seq = 0x11111111; + thdr->th_ack = 0x22222222; + thdr->th_off = 5; + thdr->th_win = 100; + thdr->th_sum = 0; + + ip4hdr->ip_v = 4; + ip4hdr->ip_hl = 5; + ip4hdr->ip_len = htons(sizeof(struct mesa_ip4_hdr) + sizeof(struct mesa_tcp_hdr) + strlen("send by sapp_inject_pkt hdr")); + ip4hdr->ip_id = 0x3333; + ip4hdr->ip_off = 0; + ip4hdr->ip_ttl = 128; + ip4hdr->ip_p = 6; + ip4hdr->ip_sum = 0; + ip4hdr->ip_src.s_addr = tuple_v4->saddr; + ip4hdr->ip_dst.s_addr = tuple_v4->daddr; + + strcpy(sapp_inject_pkt_no_hdr_payload + sizeof(struct mesa_ip4_hdr) + sizeof(struct mesa_tcp_hdr), "send by sapp_inject_pkt hdr"); + + sapp_inject_pkt(stream, SIO_EXCLUDE_THIS_LAYER_HDR, sapp_inject_pkt_no_hdr_payload, ntohs(ip4hdr->ip_len), stream->routedir); + return APP_STATE_GIVEME; } + char test_project_add(struct streaminfo *pstream,void **pme, int thread_seq,const void *a_packet) { static int __init_flag = 0; @@ -2363,12 +2380,14 @@ char IPv6_RAW_ENTRY(const struct streaminfo *pstream, const void *this_hdr, cons return APP_STATE_GIVEME; } +#endif + char POLLING_ENTRY(struct streaminfo *stream, void **pme, int thread_seq,void *a_packet) { + printf("polling entry, tid:%d\n", thread_seq); return APP_STATE_GIVEME; } -#endif int CHAR_INIT() |
