summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorlijia <[email protected]>2019-08-23 18:21:39 +0800
committerlijia <[email protected]>2019-08-23 18:21:39 +0800
commitc85feeb44eef858cf53b8bc97082db25c0dcb3f7 (patch)
tree8326ee7b71fc884ac3131c3eb62bcd26848cc3c3 /test
parente3403925b9823bd4603825f7cc26701823d3d3c0 (diff)
增加新发包接口sapp_inject_pkt; 改polling_entry优先级; tcpdump_mesa配置文件修改
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt5
-rw-r--r--test/test_app_sapp.c63
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()