summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2020-09-30 11:23:10 +0800
committer杨威 <[email protected]>2020-09-30 11:23:10 +0800
commitfabea3c7063dfe29b3c0b223b0c0d1c099140a2f (patch)
treeb1370bbc8195552189c3868cdd9887fa8309e9e7
parentaf8d4382e08c29969fd2a5de1ad59e72c3b38b87 (diff)
✨feat(pkt_stat): sysinfo增加单双向流流量统计
-rw-r--r--include/private/sapp_pkt_stat.h39
-rw-r--r--src/dealpkt/stream_manage.c26
-rw-r--r--src/packet_io/packet_io_status.cpp80
3 files changed, 113 insertions, 32 deletions
diff --git a/include/private/sapp_pkt_stat.h b/include/private/sapp_pkt_stat.h
index 3b31b10..58e5e66 100644
--- a/include/private/sapp_pkt_stat.h
+++ b/include/private/sapp_pkt_stat.h
@@ -62,6 +62,14 @@ typedef enum __sapp_sys_stat_type{
SAPP_STAT_TCP_STREAM_S2C,/* ��������������ͳ��(total pkt num > m and total byte > n) */
SAPP_STAT_TCP_STREAM_DOUBLE,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+ SAPP_STAT_TCP_STREAM_C2S_PKTS, /* ��������������ͳ�� (total pkt num > m and total byte > n) */
+ SAPP_STAT_TCP_STREAM_S2C_PKTS,/* ��������������ͳ��(total pkt num > m and total byte > n) */
+ SAPP_STAT_TCP_STREAM_DOUBLE_PKTS,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+
+ SAPP_STAT_TCP_STREAM_C2S_BYTES, /* ��������������ͳ�� (total pkt num > m and total byte > n) */
+ SAPP_STAT_TCP_STREAM_S2C_BYTES,/* ��������������ͳ��(total pkt num > m and total byte > n) */
+ SAPP_STAT_TCP_STREAM_DOUBLE_BYTES,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+
SAPP_STAT_TCP_STREAM_NEW,
SAPP_STAT_TCP_STREAM_DEL,
SAPP_STAT_TCP_STREAM_RESET,
@@ -73,9 +81,17 @@ typedef enum __sapp_sys_stat_type{
SAPP_STAT_UDP_STREAM_DEL,
SAPP_STAT_UDP_STREAM_RESET,
- SAPP_STAT_TCP_STREAM_TOTAL_C2S, /* ȫ��TCP��ͳ�� */
- SAPP_STAT_TCP_STREAM_TOTAL_S2C,/* ȫ��TCP��ͳ�� */
- SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE, /* ȫ��TCP��ͳ�� */
+ SAPP_STAT_TCP_STREAM_TOTAL_C2S, /* ȫ��TCP��ͳ�� ������*/
+ SAPP_STAT_TCP_STREAM_TOTAL_S2C,/* ȫ��TCP��ͳ�� ������*/
+ SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE, /* ȫ��TCP��ͳ�� ������*/
+
+ SAPP_STAT_TCP_STREAM_TOTAL_C2S_PKTS, /* ȫ��TCP��ͳ�� ���� */
+ SAPP_STAT_TCP_STREAM_TOTAL_S2C_PKTS,/* ȫ��TCP��ͳ�� ����*/
+ SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_PKTS, /* ȫ��TCP��ͳ�� ����*/
+
+ SAPP_STAT_TCP_STREAM_TOTAL_C2S_BYTES, /* ȫ��TCP��ͳ�� �ֽ��� */
+ SAPP_STAT_TCP_STREAM_TOTAL_S2C_BYTES,/* ȫ��TCP��ͳ�� �ֽ���*/
+ SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_BYTES, /* ȫ��TCP��ͳ�� �ֽ���*/
SAPP_STAT_TCP_LOST_PKT_STREAM_NUM, /* ���������������� */
SAPP_STAT_TCP_LOST_PKT, /* �����ֽ��ܼ��� */
@@ -84,10 +100,27 @@ typedef enum __sapp_sys_stat_type{
SAPP_STAT_UDP_STREAM_S2C,/* ��������������ͳ��(total pkt num > m and total byte > n) */
SAPP_STAT_UDP_STREAM_DOUBLE,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+
+ SAPP_STAT_UDP_STREAM_C2S_PKTS, /* ��������������ͳ�� (total pkt num > m and total byte > n) */
+ SAPP_STAT_UDP_STREAM_S2C_PKTS,/* ��������������ͳ��(total pkt num > m and total byte > n) */
+ SAPP_STAT_UDP_STREAM_DOUBLE_PKTS,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+
+ SAPP_STAT_UDP_STREAM_C2S_BYTES, /* ��������������ͳ�� (total pkt num > m and total byte > n) */
+ SAPP_STAT_UDP_STREAM_S2C_BYTES,/* ��������������ͳ��(total pkt num > m and total byte > n) */
+ SAPP_STAT_UDP_STREAM_DOUBLE_BYTES,/* ��������������ͳ�� (total pkt num > m and total byte > n) */
+
SAPP_STAT_UDP_STREAM_TOTAL_C2S, /* ȫ��UDP��ͳ�� */
SAPP_STAT_UDP_STREAM_TOTAL_S2C,/* ȫ��UDP��ͳ�� */
SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE, /* ȫ��UDP��ͳ�� */
+ SAPP_STAT_UDP_STREAM_TOTAL_C2S_PKTS, /* ȫ��UDP��ͳ�� */
+ SAPP_STAT_UDP_STREAM_TOTAL_S2C_PKTS,/* ȫ��UDP��ͳ�� */
+ SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_PKTS, /* ȫ��UDP��ͳ�� */
+
+ SAPP_STAT_UDP_STREAM_TOTAL_C2S_BYTES, /* ȫ��UDP��ͳ�� */
+ SAPP_STAT_UDP_STREAM_TOTAL_S2C_BYTES,/* ȫ��UDP��ͳ�� */
+ SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_BYTES, /* ȫ��UDP��ͳ�� */
+
SAPP_STAT_HASH_LIST_MAX,
/************* memory stat *******************/
diff --git a/src/dealpkt/stream_manage.c b/src/dealpkt/stream_manage.c
index 090ff0d..653436e 100644
--- a/src/dealpkt/stream_manage.c
+++ b/src/dealpkt/stream_manage.c
@@ -1906,27 +1906,39 @@ void hash_del_stream(struct streamindex *pindex)
if(ptmp->dir == DIR_DOUBLE)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_DOUBLE]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_DOUBLE_PKTS]+=(ptmp->pudpdetail->clientpktnum+ptmp->pudpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_DOUBLE_BYTES]+=(ptmp->pudpdetail->clientbytes+ptmp->pudpdetail->serverbytes);
}
else if(ptmp->dir == DIR_C2S)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_C2S]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_C2S_PKTS]+=(ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_C2S_BYTES]+=(ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
else if(ptmp->dir == DIR_S2C)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_S2C]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_S2C_PKTS]+=(ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_S2C_BYTES]+=(ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
}
if(ptmp->dir == DIR_DOUBLE)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_PKTS] += (ptmp->pudpdetail->clientpktnum + ptmp->pudpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_BYTES] += (ptmp->pudpdetail->clientbytes + ptmp->pudpdetail->serverbytes);
}
else if(ptmp->dir == DIR_C2S)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_C2S]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_C2S_PKTS] += (ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_C2S_BYTES] += (ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
else if(ptmp->dir == DIR_S2C)
{
local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_S2C]++;
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_S2C_PKTS] += (ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_UDP_STREAM_TOTAL_S2C_BYTES] += (ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
}
else if (STREAM_TYPE_TCP==ptmp->type)
@@ -1948,16 +1960,22 @@ void hash_del_stream(struct streamindex *pindex)
{
//g_SysInputInfo[threadnum][LINK_DOUBLE]++;
local_sys_stat->count[SAPP_STAT_TCP_STREAM_DOUBLE]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_DOUBLE_PKTS]+=(ptmp->ptcpdetail->clientpktnum+ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_DOUBLE_BYTES]+=(ptmp->ptcpdetail->clientbytes+ptmp->ptcpdetail->serverbytes );
}
else if(ptmp->dir == DIR_C2S)
{
//g_SysInputInfo[threadnum][LINK_SINGLE_C2S]++;
local_sys_stat->count[SAPP_STAT_TCP_STREAM_C2S]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_C2S_PKTS]+=(ptmp->ptcpdetail->clientpktnum+ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_C2S_BYTES]+=(ptmp->ptcpdetail->clientbytes+ptmp->ptcpdetail->serverbytes );
}
else if(ptmp->dir == DIR_S2C)
{
//g_SysInputInfo[threadnum][LINK_SINGLE_S2C]++;
local_sys_stat->count[SAPP_STAT_TCP_STREAM_S2C]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_S2C_PKTS]+=(ptmp->ptcpdetail->clientpktnum+ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_S2C_BYTES]+=(ptmp->ptcpdetail->clientbytes+ptmp->ptcpdetail->serverbytes );
}
else
;
@@ -1966,14 +1984,20 @@ void hash_del_stream(struct streamindex *pindex)
if(ptmp->dir == DIR_DOUBLE)
{
local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_PKTS] += (ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_BYTES] += (ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
else if(ptmp->dir == DIR_C2S)
{
local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_C2S]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_C2S_PKTS] += (ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_C2S_BYTES] += (ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
else if(ptmp->dir == DIR_S2C)
{
local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_S2C]++;
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_S2C_PKTS] += (ptmp->ptcpdetail->clientpktnum + ptmp->ptcpdetail->serverpktnum);
+ local_sys_stat->count[SAPP_STAT_TCP_STREAM_TOTAL_S2C_BYTES] += (ptmp->ptcpdetail->clientbytes + ptmp->ptcpdetail->serverbytes);
}
}else{
@@ -2850,7 +2874,7 @@ void free_polling_inject_context(struct streaminfo_private *pstream_pr)
pstream_pr->polling_inject_context = NULL;
}
-/* 全局流id, stream_index历史上已经表示单机内唯一id, 此处要保证集群所有机器不重复, 所以新建变�?
+/* 全局流id, stream_index历史上已经表示单机内�?一id, 此�?��?�保证集群所有机器不重�??, 所以新建变�?
高位 --- 低位
1 | 12bit device_id | 8bit thread_id | 28bit timestamp in sec | 15bit sequence per thread
*/
diff --git a/src/packet_io/packet_io_status.cpp b/src/packet_io/packet_io_status.cpp
index 97d5e01..6d4ac40 100644
--- a/src/packet_io/packet_io_status.cpp
+++ b/src/packet_io/packet_io_status.cpp
@@ -292,20 +292,32 @@ void sysinfo_output(void)
}
fprintf(fp,"-----------------------------------------------------------------\n");
- fprintf(fp,"%-12s %12s %12s\n","STREAM_TYPE", "total_stream", "link_del/s");
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_DOU", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE],
- cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE]);
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_C2S", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S],
- cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S]);
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_S2C", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C],
- cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C]);
-
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_DOU", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE],
- cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE]);
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_C2S", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S],
- cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S]);
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_S2C", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C],
- cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C]);
+ fprintf(fp,"%-12s %12s %12s %12s %12s\n","STREAM_TYPE", "total_stream", "link_del/s", "total_pkts", "total_len");
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_DOU", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_TOTAL_DOUBLE_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_C2S", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_TOTAL_C2S_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_S2C", cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C] - history_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C],
+ cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_TOTAL_S2C_BYTES],1,1,s1));
+
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_DOU", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_TOTAL_DOUBLE_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_C2S", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_TOTAL_C2S_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_S2C", cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C] - history_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C],
+ cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_TOTAL_S2C_BYTES],1,1,s2));
fprintf(fp,"----------------------------------------------------------------\n");
fprintf(fp, "The follow TCP statistics meet the conditions:(total pkt_num>=%d and byte>=%d)\n",
@@ -314,20 +326,32 @@ void sysinfo_output(void)
fprintf(fp, "The follow UDP statistics meet the conditions:(total pkt_num>=%d and byte>=%d)\n",
sapp_global_val->config.stream.udp.meaningful_statistics_minimum_pkt,
sapp_global_val->config.stream.udp.meaningful_statistics_minimum_byte);
- fprintf(fp,"%-12s %12s %12s\n","STREAM_TYPE", "total_stream", "link_del/s");
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_DOU", cur_count[SAPP_STAT_TCP_STREAM_DOUBLE],
- cur_count[SAPP_STAT_TCP_STREAM_DOUBLE] - history_count[SAPP_STAT_TCP_STREAM_DOUBLE]);
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_C2S", cur_count[SAPP_STAT_TCP_STREAM_C2S],
- cur_count[SAPP_STAT_TCP_STREAM_C2S] - history_count[SAPP_STAT_TCP_STREAM_C2S]);
- fprintf(fp,"%-12s %12llu %12llu\n", "TCP_S2C", cur_count[SAPP_STAT_TCP_STREAM_S2C],
- cur_count[SAPP_STAT_TCP_STREAM_S2C] - history_count[SAPP_STAT_TCP_STREAM_S2C]);
-
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_DOU", cur_count[SAPP_STAT_UDP_STREAM_DOUBLE],
- cur_count[SAPP_STAT_UDP_STREAM_DOUBLE] - history_count[SAPP_STAT_UDP_STREAM_DOUBLE]);
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_C2S", cur_count[SAPP_STAT_UDP_STREAM_C2S],
- cur_count[SAPP_STAT_UDP_STREAM_C2S] - history_count[SAPP_STAT_UDP_STREAM_C2S]);
- fprintf(fp,"%-12s %12llu %12llu\n", "UDP_S2C", cur_count[SAPP_STAT_UDP_STREAM_S2C],
- cur_count[SAPP_STAT_UDP_STREAM_S2C] - history_count[SAPP_STAT_UDP_STREAM_S2C]);
+ fprintf(fp,"%-12s %12s %12s %12s %12s\n","STREAM_TYPE", "total_stream", "link_del/s", "total_pkts", "total_len");
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_DOU", cur_count[SAPP_STAT_TCP_STREAM_DOUBLE],
+ cur_count[SAPP_STAT_TCP_STREAM_DOUBLE] - history_count[SAPP_STAT_TCP_STREAM_DOUBLE],
+ cur_count[SAPP_STAT_TCP_STREAM_DOUBLE_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_DOUBLE_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_C2S", cur_count[SAPP_STAT_TCP_STREAM_C2S],
+ cur_count[SAPP_STAT_TCP_STREAM_C2S] - history_count[SAPP_STAT_TCP_STREAM_C2S],
+ cur_count[SAPP_STAT_TCP_STREAM_C2S_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_C2S_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "TCP_S2C", cur_count[SAPP_STAT_TCP_STREAM_S2C],
+ cur_count[SAPP_STAT_TCP_STREAM_S2C] - history_count[SAPP_STAT_TCP_STREAM_S2C],
+ cur_count[SAPP_STAT_TCP_STREAM_S2C_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_TCP_STREAM_S2C_BYTES],1,1,s1));
+
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_DOU", cur_count[SAPP_STAT_UDP_STREAM_DOUBLE],
+ cur_count[SAPP_STAT_UDP_STREAM_DOUBLE] - history_count[SAPP_STAT_UDP_STREAM_DOUBLE],
+ cur_count[SAPP_STAT_UDP_STREAM_DOUBLE_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_DOUBLE_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_C2S", cur_count[SAPP_STAT_UDP_STREAM_C2S],
+ cur_count[SAPP_STAT_UDP_STREAM_C2S] - history_count[SAPP_STAT_UDP_STREAM_C2S],
+ cur_count[SAPP_STAT_UDP_STREAM_C2S_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_C2S_BYTES],1,1,s1));
+ fprintf(fp,"%-12s %12llu %12llu %12llu %12s\n", "UDP_S2C", cur_count[SAPP_STAT_UDP_STREAM_S2C],
+ cur_count[SAPP_STAT_UDP_STREAM_S2C] - history_count[SAPP_STAT_UDP_STREAM_S2C],
+ cur_count[SAPP_STAT_UDP_STREAM_S2C_PKTS],
+ byte_convert_human(cur_count[SAPP_STAT_UDP_STREAM_S2C_BYTES],1,1,s1));
fprintf(fp,"#################################################################\n");
fprintf(fp,"%-10s %12s %12s %12s %12s\n","SND-PKT", "total_pkt", "total_len","pps", "bps");